* feat: scaffold desktop_objc
* feat: rename fido2 to autofill
* feat: scaffold electron autofill
* feat: auto call hello world on init
* feat: scaffold call to basic objc function
* feat: simple log that checks if autofill is enabled
* feat: adding some availability guards
* feat: scaffold services and allow calls from inspector
* feat: create custom type for returning strings across rust/objc boundary
* chore: clean up comments
* feat: enable ARC
* feat: add util function `c_string_to_nsstring`
* chore: refactor and rename to `run_command`
* feat: add try-catch around command execution
* feat: properly implement command calling
Add static typing. Add proper error handling.
* feat: add autoreleasepool to avoid memory leaks
* chore: change objc names to camelCase
* fix: error returning
* feat: extract some helper functions into utils class
* feat: scaffold status command
* feat: implement status command
* feat: implement password credential mapping
* wip: implement sync command
This crashes because we are not properly handling the fact that `saveCredentialIdentities` uses callbacks, resulting in a race condition where we try to access a variable (result) that has already gotten dealloc'd.
* feat: first version of callback
* feat: make run_command async
* feat: functioning callback returns
* chore: refactor to make objc code easier to read and use
* feat: refactor everything to use new callback return method
* feat: re-implement status command with callback
* fix: warning about CommandContext not being FFI-safe
* feat: implement sync command using callbacks
* feat: implement manual password credential sync
* feat: add auto syncing
* docs: add todo
* feat: add support for passkeys
* chore: move desktop autofill service to init service
* feat: auto-add all .m files to builder
* fix: native build on unix and windows
* fix: unused compiler warnings
* fix: napi type exports
* feat: add corresponding dist command
* feat: comment signing profile until we fix signing
* fix: build breaking on non-macOS platforms
* chore: cargo lock update
* chore: revert accidental version change
* feat: put sync behind feature flag
* chore: put files in autofill folder
* fix: obj-c code not recompiling on changes
* feat: add `namespace` to commands
* fix: linting complaining about flag
* feat: add autofill as owner of their objc code
* chore: make autofill owner of run_command in core crate
* fix: re-add napi annotation
* fix: remove dev bypass
* Move ownership of biometrics to key-management
* Move biometrics ipc ownership to km
* Move further files to km; split off preload / ipc to km
* Fix linting
* Fix linting
* Fix tests
* Fix tests
* Update .github/CODEOWNERS
Co-authored-by: Maciej Zieniuk <167752252+mzieniukbw@users.noreply.github.com>
* Update .github/CODEOWNERS
Co-authored-by: Maciej Zieniuk <167752252+mzieniukbw@users.noreply.github.com>
* Change ownership of native messaging to key-management
* Move biometrics to libs/key-management
* Add README to capital whitelist
* Update package-lock.json
* Move km to key-management
* Move km to key-management
* Fix build for cli
* Import fixes
* Apply prettier fix
* Fix test
* Import fixes
* Import fixes
* Update libs/key-management/README.md
Co-authored-by: Maciej Zieniuk <167752252+mzieniukbw@users.noreply.github.com>
* Update libs/key-management/package.json
Co-authored-by: Maciej Zieniuk <167752252+mzieniukbw@users.noreply.github.com>
* Update lock file
* Change imports to top level km package
---------
Co-authored-by: Maciej Zieniuk <167752252+mzieniukbw@users.noreply.github.com>
* Disable node integration and enable context isolation
* Review comments
* Log in renderer through IPC
* Missed imports
* Mock electron API
* resourcesPath is undefined in the preload, but process.windowsStore works correctly
* Replace fromBufferToUtf8 conditional implementation for the `buffer` package
The current non-node implementation is different than the node implementation,
as the non-node would break when the contents can't be parsed as a URI component.
Replacing the impl by the `buffer` package makes the result match in both environments.
* Fix lint
* Add some more tests
* Remove buffer from devDependencies
This PR wires up a polyfill for window.ipc which allows us to progressively migrate the codebase to a format which supports context bridge. This avoids a big bang effort where every non sandboxed call has to be migrated before we can run the code.
Once all calls to node modules are removed from the renderer and only exists in preload.ts. We will turn on context isolation and use the context bridge for communication instead.