akanjs 3.0.0-beta.20 → 3.0.0-beta.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ko.md +0 -1
- package/README.md +0 -1
- package/base/baseEnv.ts +40 -3
- package/client/cookie.ts +56 -20
- package/client/device.ts +47 -95
- package/client/frameConfig.ts +2 -2
- package/client/native.ts +44 -0
- package/client/router.ts +11 -1
- package/client/rscNavigation.ts +5 -0
- package/client/storage.ts +68 -39
- package/fetch/client/fetchClient.ts +13 -4
- package/index.ts +47 -46
- package/package.json +6 -87
- package/server/devtools/signalSerializer.ts +1 -2
- package/server/hmr/devHmrController.ts +29 -11
- package/server/resolver/signal.resolver.ts +1 -10
- package/server/routeTreeBuilder.ts +8 -11
- package/server/routing/apiRouter.ts +15 -2
- package/server/rscClient.tsx +1 -2
- package/server/ssrFromRscRenderer.tsx +2 -0
- package/server/webRouter.ts +1 -0
- package/signal/CrossSiteGuard.ts +34 -2
- package/signal/endpoint.ts +12 -7
- package/signal/endpointInfo.ts +13 -0
- package/signal/internal.ts +9 -5
- package/signal/serializer/fetch.serializer.ts +6 -3
- package/signal/slice.ts +34 -24
- package/store/baseSt.ts +0 -1
- package/store/storeInstance.ts +29 -17
- package/types/client/cookie.d.ts +6 -4
- package/types/client/device.d.ts +7 -10
- package/types/client/native.d.ts +26 -0
- package/types/client/rscNavigation.d.ts +4 -0
- package/types/client/storage.d.ts +8 -1
- package/types/index.d.ts +48 -44
- package/types/server/hmr/devHmrController.d.ts +2 -1
- package/types/server/resolver/signal.resolver.d.ts +0 -1
- package/types/server/rscClient.d.ts +0 -3
- package/types/signal/CrossSiteGuard.d.ts +7 -2
- package/types/signal/endpoint.d.ts +1 -1
- package/types/signal/endpointInfo.d.ts +3 -0
- package/types/signal/slice.d.ts +3 -2
- package/types/store/baseSt.d.ts +0 -13
- package/types/vendor/@akanjs/native/packages/cli/src/api.d.ts +182 -0
- package/types/vendor/@akanjs/native/packages/cli/src/commands/build.d.ts +28 -0
- package/types/vendor/@akanjs/native/packages/cli/src/commands/compat.d.ts +2 -0
- package/types/vendor/@akanjs/native/packages/cli/src/commands/dev.d.ts +2 -0
- package/types/vendor/@akanjs/native/packages/cli/src/commands/doctor.d.ts +37 -0
- package/types/vendor/@akanjs/native/packages/cli/src/commands/plugin.d.ts +2 -0
- package/types/vendor/@akanjs/native/packages/cli/src/commands/signing.d.ts +2 -0
- package/types/vendor/@akanjs/native/packages/cli/src/commands/test.d.ts +2 -0
- package/types/vendor/@akanjs/native/packages/cli/src/commands/toolchain.d.ts +2 -0
- package/types/vendor/@akanjs/native/packages/cli/src/commands/update.d.ts +2 -0
- package/types/vendor/@akanjs/native/packages/cli/src/config.d.ts +278 -0
- package/types/vendor/@akanjs/native/packages/cli/src/index.d.ts +2 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/acl.d.ts +21 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/apilevel.d.ts +40 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/apk.d.ts +36 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/args.d.ts +9 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/boot.d.ts +32 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/chrome.d.ts +6 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/codegen.d.ts +94 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/compat.d.ts +49 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/configkeys.d.ts +2 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/csp.d.ts +51 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/env.d.ts +44 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/exec.d.ts +31 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/googleservices.d.ts +2 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/hmr.d.ts +120 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/html.d.ts +20 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/icons.d.ts +44 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/image.d.ts +21 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/iossigning.d.ts +81 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/launch.d.ts +51 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/log.d.ts +42 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/manifestmerge.d.ts +18 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/maven.d.ts +97 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/names.d.ts +45 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/native-plugins.d.ts +67 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/nativeconfig.d.ts +11 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/permissions.d.ts +10 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/plist.d.ts +11 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/png.d.ts +11 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/prepare.d.ts +138 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/privacy.d.ts +13 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/project.d.ts +208 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/root.d.ts +1 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/routes.d.ts +1 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/serve.d.ts +17 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/signing.d.ts +14 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/spec.d.ts +96 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/toolchains.d.ts +150 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/updates.d.ts +77 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/vectors.d.ts +13 -0
- package/types/vendor/@akanjs/native/packages/cli/src/lib/xml.d.ts +13 -0
- package/types/vendor/@akanjs/native/packages/cli/src/platforms/android.d.ts +57 -0
- package/types/vendor/@akanjs/native/packages/cli/src/platforms/desktop-update.d.ts +4 -0
- package/types/vendor/@akanjs/native/packages/cli/src/platforms/desktop.d.ts +40 -0
- package/types/vendor/@akanjs/native/packages/cli/src/platforms/index.d.ts +14 -0
- package/types/vendor/@akanjs/native/packages/cli/src/platforms/ios.d.ts +44 -0
- package/types/vendor/@akanjs/native/packages/cli/src/platforms/linux.d.ts +6 -0
- package/types/vendor/@akanjs/native/packages/cli/src/platforms/macos.d.ts +7 -0
- package/types/vendor/@akanjs/native/packages/cli/src/platforms/targets.d.ts +4 -0
- package/types/vendor/@akanjs/native/packages/cli/src/platforms/web-run.d.ts +15 -0
- package/types/vendor/@akanjs/native/packages/cli/src/platforms/web.d.ts +2 -0
- package/types/vendor/@akanjs/native/packages/cli/src/platforms/windows.d.ts +8 -0
- package/types/vendor/@akanjs/native/packages/cli/src/platforms.d.ts +1 -0
- package/types/vendor/@akanjs/native/packages/cli/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/packages/core/src/acl.d.ts +97 -0
- package/types/vendor/@akanjs/native/packages/core/src/boot.d.ts +66 -0
- package/types/vendor/@akanjs/native/packages/core/src/contract.d.ts +35 -0
- package/types/vendor/@akanjs/native/packages/core/src/errors.d.ts +27 -0
- package/types/vendor/@akanjs/native/packages/core/src/files.d.ts +23 -0
- package/types/vendor/@akanjs/native/packages/core/src/index.d.ts +14 -0
- package/types/vendor/@akanjs/native/packages/core/src/kernel.d.ts +112 -0
- package/types/vendor/@akanjs/native/packages/core/src/live.d.ts +12 -0
- package/types/vendor/@akanjs/native/packages/core/src/mime.d.ts +2 -0
- package/types/vendor/@akanjs/native/packages/core/src/plugin.d.ts +71 -0
- package/types/vendor/@akanjs/native/packages/core/src/protocol.d.ts +109 -0
- package/types/vendor/@akanjs/native/packages/core/src/runtime.d.ts +66 -0
- package/types/vendor/@akanjs/native/packages/core/src/state.d.ts +28 -0
- package/types/vendor/@akanjs/native/packages/core/src/testing.d.ts +41 -0
- package/types/vendor/@akanjs/native/packages/core/src/version.d.ts +2 -0
- package/types/vendor/@akanjs/native/packages/core/src/veto.d.ts +17 -0
- package/types/vendor/@akanjs/native/packages/core/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/packages/desktop/src/deeplinks.d.ts +24 -0
- package/types/vendor/@akanjs/native/packages/desktop/src/delta.d.ts +2 -0
- package/types/vendor/@akanjs/native/packages/desktop/src/dispatcher.d.ts +95 -0
- package/types/vendor/@akanjs/native/packages/desktop/src/ffi.d.ts +144 -0
- package/types/vendor/@akanjs/native/packages/desktop/src/host.d.ts +11 -0
- package/types/vendor/@akanjs/native/packages/desktop/src/lifecycle.d.ts +40 -0
- package/types/vendor/@akanjs/native/packages/desktop/src/main.d.ts +4 -0
- package/types/vendor/@akanjs/native/packages/desktop/src/page-veto.d.ts +17 -0
- package/types/vendor/@akanjs/native/packages/desktop/src/paths.d.ts +25 -0
- package/types/vendor/@akanjs/native/packages/desktop/src/plugin.d.ts +179 -0
- package/types/vendor/@akanjs/native/packages/react/src/index.d.ts +8 -0
- package/types/vendor/@akanjs/native/packages/react/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/accessibility/src/announce.d.ts +8 -0
- package/types/vendor/@akanjs/native/plugins/accessibility/src/index.d.ts +47 -0
- package/types/vendor/@akanjs/native/plugins/accessibility/src/web.d.ts +4 -0
- package/types/vendor/@akanjs/native/plugins/accessibility/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/app/src/desktop.d.ts +3 -0
- package/types/vendor/@akanjs/native/plugins/app/src/index.d.ts +66 -0
- package/types/vendor/@akanjs/native/plugins/app/src/web.d.ts +2 -0
- package/types/vendor/@akanjs/native/plugins/app/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/app-state/src/index.d.ts +19 -0
- package/types/vendor/@akanjs/native/plugins/app-state/src/web.d.ts +2 -0
- package/types/vendor/@akanjs/native/plugins/app-state/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/appearance/src/desktop.d.ts +9 -0
- package/types/vendor/@akanjs/native/plugins/appearance/src/index.d.ts +32 -0
- package/types/vendor/@akanjs/native/plugins/appearance/src/setting.d.ts +6 -0
- package/types/vendor/@akanjs/native/plugins/appearance/src/web.d.ts +3 -0
- package/types/vendor/@akanjs/native/plugins/appearance/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/auth-session/src/args.d.ts +18 -0
- package/types/vendor/@akanjs/native/plugins/auth-session/src/desktop.d.ts +17 -0
- package/types/vendor/@akanjs/native/plugins/auth-session/src/index.d.ts +41 -0
- package/types/vendor/@akanjs/native/plugins/auth-session/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/autostart/src/desktop.d.ts +44 -0
- package/types/vendor/@akanjs/native/plugins/autostart/src/index.d.ts +44 -0
- package/types/vendor/@akanjs/native/plugins/autostart/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/badge/src/count.d.ts +4 -0
- package/types/vendor/@akanjs/native/plugins/badge/src/desktop.d.ts +3 -0
- package/types/vendor/@akanjs/native/plugins/badge/src/index.d.ts +37 -0
- package/types/vendor/@akanjs/native/plugins/badge/src/web.d.ts +2 -0
- package/types/vendor/@akanjs/native/plugins/badge/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/biometric/src/index.d.ts +53 -0
- package/types/vendor/@akanjs/native/plugins/biometric/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/browser/src/args.d.ts +8 -0
- package/types/vendor/@akanjs/native/plugins/browser/src/desktop.d.ts +9 -0
- package/types/vendor/@akanjs/native/plugins/browser/src/index.d.ts +36 -0
- package/types/vendor/@akanjs/native/plugins/browser/src/web.d.ts +2 -0
- package/types/vendor/@akanjs/native/plugins/browser/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/camera/src/desktop.d.ts +5 -0
- package/types/vendor/@akanjs/native/plugins/camera/src/index.d.ts +55 -0
- package/types/vendor/@akanjs/native/plugins/camera/src/web.d.ts +2 -0
- package/types/vendor/@akanjs/native/plugins/camera/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/clipboard/src/desktop.d.ts +8 -0
- package/types/vendor/@akanjs/native/plugins/clipboard/src/index.d.ts +40 -0
- package/types/vendor/@akanjs/native/plugins/clipboard/src/web.d.ts +2 -0
- package/types/vendor/@akanjs/native/plugins/clipboard/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/device/src/desktop.d.ts +33 -0
- package/types/vendor/@akanjs/native/plugins/device/src/index.d.ts +55 -0
- package/types/vendor/@akanjs/native/plugins/device/src/web.d.ts +22 -0
- package/types/vendor/@akanjs/native/plugins/device/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/dialog/src/desktop.d.ts +3 -0
- package/types/vendor/@akanjs/native/plugins/dialog/src/index.d.ts +60 -0
- package/types/vendor/@akanjs/native/plugins/dialog/src/options.d.ts +29 -0
- package/types/vendor/@akanjs/native/plugins/dialog/src/web.d.ts +2 -0
- package/types/vendor/@akanjs/native/plugins/dialog/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/dock/src/desktop.d.ts +3 -0
- package/types/vendor/@akanjs/native/plugins/dock/src/index.d.ts +46 -0
- package/types/vendor/@akanjs/native/plugins/dock/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/file-picker/src/common.d.ts +33 -0
- package/types/vendor/@akanjs/native/plugins/file-picker/src/desktop.d.ts +9 -0
- package/types/vendor/@akanjs/native/plugins/file-picker/src/index.d.ts +84 -0
- package/types/vendor/@akanjs/native/plugins/file-picker/src/web.d.ts +6 -0
- package/types/vendor/@akanjs/native/plugins/file-picker/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/filesystem/src/common.d.ts +49 -0
- package/types/vendor/@akanjs/native/plugins/filesystem/src/desktop.d.ts +8 -0
- package/types/vendor/@akanjs/native/plugins/filesystem/src/index.d.ts +123 -0
- package/types/vendor/@akanjs/native/plugins/filesystem/src/web.d.ts +2 -0
- package/types/vendor/@akanjs/native/plugins/filesystem/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/geolocation/src/index.d.ts +93 -0
- package/types/vendor/@akanjs/native/plugins/geolocation/src/web.d.ts +11 -0
- package/types/vendor/@akanjs/native/plugins/geolocation/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/global-shortcut/src/desktop.d.ts +3 -0
- package/types/vendor/@akanjs/native/plugins/global-shortcut/src/index.d.ts +52 -0
- package/types/vendor/@akanjs/native/plugins/global-shortcut/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/haptics/src/index.d.ts +31 -0
- package/types/vendor/@akanjs/native/plugins/haptics/src/web.d.ts +2 -0
- package/types/vendor/@akanjs/native/plugins/haptics/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/http/src/common.d.ts +71 -0
- package/types/vendor/@akanjs/native/plugins/http/src/desktop.d.ts +5 -0
- package/types/vendor/@akanjs/native/plugins/http/src/index.d.ts +104 -0
- package/types/vendor/@akanjs/native/plugins/http/src/web.d.ts +2 -0
- package/types/vendor/@akanjs/native/plugins/http/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/iap/src/index.d.ts +171 -0
- package/types/vendor/@akanjs/native/plugins/iap/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/keep-awake/src/desktop.d.ts +15 -0
- package/types/vendor/@akanjs/native/plugins/keep-awake/src/index.d.ts +33 -0
- package/types/vendor/@akanjs/native/plugins/keep-awake/src/web.d.ts +2 -0
- package/types/vendor/@akanjs/native/plugins/keep-awake/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/keyboard/src/index.d.ts +42 -0
- package/types/vendor/@akanjs/native/plugins/keyboard/src/web.d.ts +2 -0
- package/types/vendor/@akanjs/native/plugins/keyboard/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/local-notifications/src/desktop.d.ts +29 -0
- package/types/vendor/@akanjs/native/plugins/local-notifications/src/index.d.ts +126 -0
- package/types/vendor/@akanjs/native/plugins/local-notifications/src/schedule.d.ts +38 -0
- package/types/vendor/@akanjs/native/plugins/local-notifications/src/timers.d.ts +25 -0
- package/types/vendor/@akanjs/native/plugins/local-notifications/src/web.d.ts +4 -0
- package/types/vendor/@akanjs/native/plugins/local-notifications/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/menu/src/desktop.d.ts +3 -0
- package/types/vendor/@akanjs/native/plugins/menu/src/index.d.ts +85 -0
- package/types/vendor/@akanjs/native/plugins/menu/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/network/src/index.d.ts +22 -0
- package/types/vendor/@akanjs/native/plugins/network/src/web.d.ts +3 -0
- package/types/vendor/@akanjs/native/plugins/network/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/opener/src/desktop.d.ts +14 -0
- package/types/vendor/@akanjs/native/plugins/opener/src/index.d.ts +33 -0
- package/types/vendor/@akanjs/native/plugins/opener/src/url.d.ts +16 -0
- package/types/vendor/@akanjs/native/plugins/opener/src/web.d.ts +2 -0
- package/types/vendor/@akanjs/native/plugins/opener/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/preferences/src/desktop.d.ts +3 -0
- package/types/vendor/@akanjs/native/plugins/preferences/src/index.d.ts +26 -0
- package/types/vendor/@akanjs/native/plugins/preferences/src/web.d.ts +2 -0
- package/types/vendor/@akanjs/native/plugins/preferences/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/push/src/index.d.ts +57 -0
- package/types/vendor/@akanjs/native/plugins/push/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/screen/src/desktop.d.ts +3 -0
- package/types/vendor/@akanjs/native/plugins/screen/src/index.d.ts +70 -0
- package/types/vendor/@akanjs/native/plugins/screen/src/web.d.ts +18 -0
- package/types/vendor/@akanjs/native/plugins/screen/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/screen-orientation/src/index.d.ts +32 -0
- package/types/vendor/@akanjs/native/plugins/screen-orientation/src/types.d.ts +8 -0
- package/types/vendor/@akanjs/native/plugins/screen-orientation/src/web.d.ts +3 -0
- package/types/vendor/@akanjs/native/plugins/screen-orientation/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/secure-storage/src/desktop.d.ts +16 -0
- package/types/vendor/@akanjs/native/plugins/secure-storage/src/index.d.ts +39 -0
- package/types/vendor/@akanjs/native/plugins/secure-storage/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/share/src/index.d.ts +55 -0
- package/types/vendor/@akanjs/native/plugins/share/src/options.d.ts +6 -0
- package/types/vendor/@akanjs/native/plugins/share/src/web.d.ts +5 -0
- package/types/vendor/@akanjs/native/plugins/share/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/single-instance/src/desktop.d.ts +8 -0
- package/types/vendor/@akanjs/native/plugins/single-instance/src/index.d.ts +25 -0
- package/types/vendor/@akanjs/native/plugins/single-instance/src/socket.d.ts +46 -0
- package/types/vendor/@akanjs/native/plugins/single-instance/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/splash-screen/src/index.d.ts +19 -0
- package/types/vendor/@akanjs/native/plugins/splash-screen/src/web.d.ts +4 -0
- package/types/vendor/@akanjs/native/plugins/splash-screen/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/sqlite/src/common.d.ts +34 -0
- package/types/vendor/@akanjs/native/plugins/sqlite/src/desktop.d.ts +6 -0
- package/types/vendor/@akanjs/native/plugins/sqlite/src/index.d.ts +115 -0
- package/types/vendor/@akanjs/native/plugins/sqlite/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/toast/src/index.d.ts +30 -0
- package/types/vendor/@akanjs/native/plugins/toast/src/queue.d.ts +23 -0
- package/types/vendor/@akanjs/native/plugins/toast/src/web.d.ts +2 -0
- package/types/vendor/@akanjs/native/plugins/toast/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/tray/src/desktop.d.ts +3 -0
- package/types/vendor/@akanjs/native/plugins/tray/src/index.d.ts +113 -0
- package/types/vendor/@akanjs/native/plugins/tray/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/updates/src/desktop.d.ts +4 -0
- package/types/vendor/@akanjs/native/plugins/updates/src/index.d.ts +68 -0
- package/types/vendor/@akanjs/native/plugins/updates/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/window/src/desktop.d.ts +6 -0
- package/types/vendor/@akanjs/native/plugins/window/src/index.d.ts +185 -0
- package/types/vendor/@akanjs/native/plugins/window/src/web.d.ts +2 -0
- package/types/vendor/@akanjs/native/plugins/window/src.d.ts +1 -0
- package/types/vendor/@akanjs/native/plugins/window-state/src/desktop.d.ts +7 -0
- package/types/vendor/@akanjs/native/plugins/window-state/src/index.d.ts +33 -0
- package/types/vendor/@akanjs/native/plugins/window-state/src/state.d.ts +39 -0
- package/types/vendor/@akanjs/native/plugins/window-state/src.d.ts +1 -0
- package/types/webkit/index.d.ts +0 -2
- package/types/webkit/nativeNavigation.d.ts +25 -0
- package/types/webkit/nativePurchase.d.ts +37 -0
- package/types/webkit/useCamera.d.ts +13 -15
- package/types/webkit/useGeoLocation.d.ts +4 -5
- package/types/webkit/usePurchase.d.ts +12 -16
- package/ui/Link/Anchor.tsx +2 -5
- package/ui/System/Client.tsx +2 -6
- package/vendor/@akanjs/native/LICENSE +21 -0
- package/vendor/@akanjs/native/README.ko.md +88 -0
- package/vendor/@akanjs/native/README.md +93 -0
- package/vendor/@akanjs/native/THIRD_PARTY_NOTICES.md +237 -0
- package/vendor/@akanjs/native/native/android/maven.lock.json +1751 -0
- package/vendor/@akanjs/native/native/android/src/com/akanjs/runtime/AkanNativeAcl.kt +243 -0
- package/vendor/@akanjs/native/native/android/src/com/akanjs/runtime/AkanNativeActivity.kt +936 -0
- package/vendor/@akanjs/native/native/android/src/com/akanjs/runtime/AkanNativeApplication.kt +189 -0
- package/vendor/@akanjs/native/native/android/src/com/akanjs/runtime/AkanNativeAssetServer.kt +225 -0
- package/vendor/@akanjs/native/native/android/src/com/akanjs/runtime/AkanNativeBridge.kt +444 -0
- package/vendor/@akanjs/native/native/android/src/com/akanjs/runtime/AkanNativeCompat.kt +55 -0
- package/vendor/@akanjs/native/native/android/src/com/akanjs/runtime/AkanNativeContract.kt +99 -0
- package/vendor/@akanjs/native/native/android/src/com/akanjs/runtime/AkanNativeEd25519.kt +100 -0
- package/vendor/@akanjs/native/native/android/src/com/akanjs/runtime/AkanNativeFileProvider.kt +71 -0
- package/vendor/@akanjs/native/native/android/src/com/akanjs/runtime/AkanNativeKernel.kt +324 -0
- package/vendor/@akanjs/native/native/android/src/com/akanjs/runtime/AkanNativePlugin.kt +361 -0
- package/vendor/@akanjs/native/native/android/src/com/akanjs/runtime/AkanNativeSpec.kt +100 -0
- package/vendor/@akanjs/native/native/android/src/com/akanjs/runtime/AkanNativeUpdates.kt +305 -0
- package/vendor/@akanjs/native/native/android/src/com/akanjs/runtime/AkanNativeVectors.kt +132 -0
- package/vendor/@akanjs/native/native/desktop/Cargo.lock +2565 -0
- package/vendor/@akanjs/native/native/desktop/Cargo.toml +49 -0
- package/vendor/@akanjs/native/native/desktop/build.rs +19 -0
- package/vendor/@akanjs/native/native/desktop/rust-toolchain.toml +7 -0
- package/vendor/@akanjs/native/native/desktop/src/accelerator.rs +466 -0
- package/vendor/@akanjs/native/native/desktop/src/autostart.rs +158 -0
- package/vendor/@akanjs/native/native/desktop/src/camera.rs +53 -0
- package/vendor/@akanjs/native/native/desktop/src/chrome.rs +710 -0
- package/vendor/@akanjs/native/native/desktop/src/contract.rs +105 -0
- package/vendor/@akanjs/native/native/desktop/src/devproxy.rs +234 -0
- package/vendor/@akanjs/native/native/desktop/src/dialog_args.rs +189 -0
- package/vendor/@akanjs/native/native/desktop/src/dock.rs +209 -0
- package/vendor/@akanjs/native/native/desktop/src/hotkey.rs +209 -0
- package/vendor/@akanjs/native/native/desktop/src/js_panels.rs +125 -0
- package/vendor/@akanjs/native/native/desktop/src/json.rs +272 -0
- package/vendor/@akanjs/native/native/desktop/src/keychain.rs +151 -0
- package/vendor/@akanjs/native/native/desktop/src/lib.rs +2185 -0
- package/vendor/@akanjs/native/native/desktop/src/linux/appearance.rs +177 -0
- package/vendor/@akanjs/native/native/desktop/src/linux/camera.rs +11 -0
- package/vendor/@akanjs/native/native/desktop/src/linux/clipboard.rs +48 -0
- package/vendor/@akanjs/native/native/desktop/src/linux/device.rs +9 -0
- package/vendor/@akanjs/native/native/desktop/src/linux/dialogs.rs +348 -0
- package/vendor/@akanjs/native/native/desktop/src/linux/dock.rs +146 -0
- package/vendor/@akanjs/native/native/desktop/src/linux/hotkey.rs +228 -0
- package/vendor/@akanjs/native/native/desktop/src/linux/keychain.rs +243 -0
- package/vendor/@akanjs/native/native/desktop/src/linux/menu.rs +445 -0
- package/vendor/@akanjs/native/native/desktop/src/linux/mod.rs +116 -0
- package/vendor/@akanjs/native/native/desktop/src/linux/notify.rs +211 -0
- package/vendor/@akanjs/native/native/desktop/src/linux/open.rs +79 -0
- package/vendor/@akanjs/native/native/desktop/src/linux/power.rs +155 -0
- package/vendor/@akanjs/native/native/desktop/src/linux/screen.rs +158 -0
- package/vendor/@akanjs/native/native/desktop/src/linux/tray.rs +604 -0
- package/vendor/@akanjs/native/native/desktop/src/menu.rs +517 -0
- package/vendor/@akanjs/native/native/desktop/src/navigation.rs +381 -0
- package/vendor/@akanjs/native/native/desktop/src/notify.rs +411 -0
- package/vendor/@akanjs/native/native/desktop/src/notify_schedule.rs +382 -0
- package/vendor/@akanjs/native/native/desktop/src/page_menu.rs +287 -0
- package/vendor/@akanjs/native/native/desktop/src/panels.rs +333 -0
- package/vendor/@akanjs/native/native/desktop/src/placement.rs +92 -0
- package/vendor/@akanjs/native/native/desktop/src/routes.rs +153 -0
- package/vendor/@akanjs/native/native/desktop/src/screen.rs +190 -0
- package/vendor/@akanjs/native/native/desktop/src/tray.rs +279 -0
- package/vendor/@akanjs/native/native/desktop/src/vectors.rs +126 -0
- package/vendor/@akanjs/native/native/desktop/src/win/appearance.rs +51 -0
- package/vendor/@akanjs/native/native/desktop/src/win/autostart.rs +77 -0
- package/vendor/@akanjs/native/native/desktop/src/win/camera.rs +34 -0
- package/vendor/@akanjs/native/native/desktop/src/win/clipboard.rs +106 -0
- package/vendor/@akanjs/native/native/desktop/src/win/device.rs +80 -0
- package/vendor/@akanjs/native/native/desktop/src/win/dialogs.rs +917 -0
- package/vendor/@akanjs/native/native/desktop/src/win/dock.rs +228 -0
- package/vendor/@akanjs/native/native/desktop/src/win/hotkey.rs +110 -0
- package/vendor/@akanjs/native/native/desktop/src/win/keychain.rs +103 -0
- package/vendor/@akanjs/native/native/desktop/src/win/menu.rs +500 -0
- package/vendor/@akanjs/native/native/desktop/src/win/mod.rs +100 -0
- package/vendor/@akanjs/native/native/desktop/src/win/msgwin.rs +86 -0
- package/vendor/@akanjs/native/native/desktop/src/win/notify.rs +334 -0
- package/vendor/@akanjs/native/native/desktop/src/win/open.rs +127 -0
- package/vendor/@akanjs/native/native/desktop/src/win/power.rs +64 -0
- package/vendor/@akanjs/native/native/desktop/src/win/registry.rs +87 -0
- package/vendor/@akanjs/native/native/desktop/src/win/screen.rs +127 -0
- package/vendor/@akanjs/native/native/desktop/src/win/tray.rs +280 -0
- package/vendor/@akanjs/native/native/ios/Sources/AkanNativeAcl.swift +241 -0
- package/vendor/@akanjs/native/native/ios/Sources/AkanNativeApp.swift +285 -0
- package/vendor/@akanjs/native/native/ios/Sources/AkanNativeBridge.swift +407 -0
- package/vendor/@akanjs/native/native/ios/Sources/AkanNativeContract.swift +106 -0
- package/vendor/@akanjs/native/native/ios/Sources/AkanNativeKernel.swift +317 -0
- package/vendor/@akanjs/native/native/ios/Sources/AkanNativePlugin.swift +250 -0
- package/vendor/@akanjs/native/native/ios/Sources/AkanNativeSchemeHandler.swift +209 -0
- package/vendor/@akanjs/native/native/ios/Sources/AkanNativeShell.swift +161 -0
- package/vendor/@akanjs/native/native/ios/Sources/AkanNativeSpec.swift +143 -0
- package/vendor/@akanjs/native/native/ios/Sources/AkanNativeUpdates.swift +270 -0
- package/vendor/@akanjs/native/native/ios/Sources/AkanNativeVectors.swift +155 -0
- package/vendor/@akanjs/native/native/ios/Sources/AkanNativeViewController.swift +371 -0
- package/vendor/@akanjs/native/packages/cli/src/api.ts +600 -0
- package/vendor/@akanjs/native/packages/cli/src/commands/build.ts +101 -0
- package/vendor/@akanjs/native/packages/cli/src/commands/compat.ts +53 -0
- package/vendor/@akanjs/native/packages/cli/src/commands/dev.ts +249 -0
- package/vendor/@akanjs/native/packages/cli/src/commands/doctor.ts +536 -0
- package/vendor/@akanjs/native/packages/cli/src/commands/plugin.ts +164 -0
- package/vendor/@akanjs/native/packages/cli/src/commands/signing.ts +32 -0
- package/vendor/@akanjs/native/packages/cli/src/commands/test.ts +130 -0
- package/vendor/@akanjs/native/packages/cli/src/commands/toolchain.ts +143 -0
- package/vendor/@akanjs/native/packages/cli/src/commands/update.ts +168 -0
- package/vendor/@akanjs/native/packages/cli/src/config.ts +257 -0
- package/vendor/@akanjs/native/packages/cli/src/index.ts +77 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/acl.ts +420 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/apilevel.ts +245 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/apk.ts +203 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/args.ts +44 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/boot.ts +73 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/chrome.ts +89 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/codegen.ts +1128 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/compat.ts +185 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/configkeys.ts +91 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/csp.ts +198 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/env.ts +257 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/exec.ts +104 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/googleservices.ts +53 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/hmr.ts +534 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/html.ts +63 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/icons.ts +316 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/image.ts +175 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/iossigning.ts +295 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/launch.ts +98 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/log.ts +105 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/manifestmerge.ts +107 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/maven.ts +244 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/names.ts +202 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/native-plugins.ts +326 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/nativeconfig.ts +68 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/permissions.ts +80 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/plist.ts +139 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/png.ts +240 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/prepare.ts +290 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/privacy.ts +64 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/project.ts +710 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/root.ts +18 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/routes.ts +3 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/serve.ts +83 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/signing.ts +117 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/spec.ts +521 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/toolchains.ts +579 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/updates.ts +160 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/vectors.ts +121 -0
- package/vendor/@akanjs/native/packages/cli/src/lib/xml.ts +72 -0
- package/vendor/@akanjs/native/packages/cli/src/platforms/android.ts +1320 -0
- package/vendor/@akanjs/native/packages/cli/src/platforms/desktop-update.ts +78 -0
- package/vendor/@akanjs/native/packages/cli/src/platforms/desktop.ts +279 -0
- package/vendor/@akanjs/native/packages/cli/src/platforms/index.ts +31 -0
- package/vendor/@akanjs/native/packages/cli/src/platforms/ios.ts +801 -0
- package/vendor/@akanjs/native/packages/cli/src/platforms/linux.ts +52 -0
- package/vendor/@akanjs/native/packages/cli/src/platforms/macos.ts +97 -0
- package/vendor/@akanjs/native/packages/cli/src/platforms/targets.ts +12 -0
- package/vendor/@akanjs/native/packages/cli/src/platforms/web-run.ts +69 -0
- package/vendor/@akanjs/native/packages/cli/src/platforms/web.ts +28 -0
- package/vendor/@akanjs/native/packages/cli/src/platforms/windows.ts +82 -0
- package/vendor/@akanjs/native/packages/core/contract.json +96 -0
- package/vendor/@akanjs/native/packages/core/src/acl.ts +272 -0
- package/vendor/@akanjs/native/packages/core/src/boot.ts +97 -0
- package/vendor/@akanjs/native/packages/core/src/contract.ts +100 -0
- package/vendor/@akanjs/native/packages/core/src/errors.ts +95 -0
- package/vendor/@akanjs/native/packages/core/src/files.ts +105 -0
- package/vendor/@akanjs/native/packages/core/src/index.ts +35 -0
- package/vendor/@akanjs/native/packages/core/src/kernel.ts +281 -0
- package/vendor/@akanjs/native/packages/core/src/live.ts +62 -0
- package/vendor/@akanjs/native/packages/core/src/mime.ts +8 -0
- package/vendor/@akanjs/native/packages/core/src/plugin.ts +358 -0
- package/vendor/@akanjs/native/packages/core/src/protocol.ts +194 -0
- package/vendor/@akanjs/native/packages/core/src/runtime.ts +520 -0
- package/vendor/@akanjs/native/packages/core/src/state.ts +46 -0
- package/vendor/@akanjs/native/packages/core/src/testing.ts +176 -0
- package/vendor/@akanjs/native/packages/core/src/version.ts +2 -0
- package/vendor/@akanjs/native/packages/core/src/veto.ts +55 -0
- package/vendor/@akanjs/native/packages/core/vectors/acl.json +57 -0
- package/vendor/@akanjs/native/packages/core/vectors/bridge.json +76 -0
- package/vendor/@akanjs/native/packages/core/vectors/ed25519.json +29 -0
- package/vendor/@akanjs/native/packages/core/vectors/ids.json +73 -0
- package/vendor/@akanjs/native/packages/core/vectors/navigation.json +75 -0
- package/vendor/@akanjs/native/packages/core/vectors/ranges.json +39 -0
- package/vendor/@akanjs/native/packages/core/vectors/retained.json +17 -0
- package/vendor/@akanjs/native/packages/core/vectors/routes.json +66 -0
- package/vendor/@akanjs/native/packages/core/vectors/scope.json +143 -0
- package/vendor/@akanjs/native/packages/desktop/src/deeplinks.ts +143 -0
- package/vendor/@akanjs/native/packages/desktop/src/delta.ts +174 -0
- package/vendor/@akanjs/native/packages/desktop/src/dispatcher.ts +679 -0
- package/vendor/@akanjs/native/packages/desktop/src/ffi.ts +76 -0
- package/vendor/@akanjs/native/packages/desktop/src/host.ts +355 -0
- package/vendor/@akanjs/native/packages/desktop/src/lifecycle.ts +142 -0
- package/vendor/@akanjs/native/packages/desktop/src/main.ts +133 -0
- package/vendor/@akanjs/native/packages/desktop/src/page-veto.ts +103 -0
- package/vendor/@akanjs/native/packages/desktop/src/paths.ts +59 -0
- package/vendor/@akanjs/native/packages/desktop/src/plugin.ts +232 -0
- package/vendor/@akanjs/native/packages/react/src/index.ts +23 -0
- package/vendor/@akanjs/native/plugins/accessibility/android/AccessibilityPlugin.kt +96 -0
- package/vendor/@akanjs/native/plugins/accessibility/ios/AccessibilityPlugin.swift +92 -0
- package/vendor/@akanjs/native/plugins/accessibility/native-plugin.json +21 -0
- package/vendor/@akanjs/native/plugins/accessibility/src/announce.ts +71 -0
- package/vendor/@akanjs/native/plugins/accessibility/src/index.ts +77 -0
- package/vendor/@akanjs/native/plugins/accessibility/src/web.ts +52 -0
- package/vendor/@akanjs/native/plugins/app/android/AppPlugin.kt +72 -0
- package/vendor/@akanjs/native/plugins/app/ios/AppPlugin.swift +52 -0
- package/vendor/@akanjs/native/plugins/app/native-plugin.json +21 -0
- package/vendor/@akanjs/native/plugins/app/src/desktop.ts +64 -0
- package/vendor/@akanjs/native/plugins/app/src/index.ts +77 -0
- package/vendor/@akanjs/native/plugins/app/src/web.ts +12 -0
- package/vendor/@akanjs/native/plugins/app-state/android/AppStatePlugin.kt +54 -0
- package/vendor/@akanjs/native/plugins/app-state/ios/AppStatePlugin.swift +58 -0
- package/vendor/@akanjs/native/plugins/app-state/native-plugin.json +17 -0
- package/vendor/@akanjs/native/plugins/app-state/src/index.ts +42 -0
- package/vendor/@akanjs/native/plugins/app-state/src/web.ts +33 -0
- package/vendor/@akanjs/native/plugins/appearance/android/AppearancePlugin.kt +133 -0
- package/vendor/@akanjs/native/plugins/appearance/ios/AppearancePlugin.swift +109 -0
- package/vendor/@akanjs/native/plugins/appearance/native-plugin.json +18 -0
- package/vendor/@akanjs/native/plugins/appearance/src/desktop.ts +133 -0
- package/vendor/@akanjs/native/plugins/appearance/src/index.ts +62 -0
- package/vendor/@akanjs/native/plugins/appearance/src/setting.ts +18 -0
- package/vendor/@akanjs/native/plugins/appearance/src/web.ts +25 -0
- package/vendor/@akanjs/native/plugins/auth-session/android/AuthSessionPlugin.kt +171 -0
- package/vendor/@akanjs/native/plugins/auth-session/ios/AuthSessionPlugin.swift +112 -0
- package/vendor/@akanjs/native/plugins/auth-session/native-plugin.json +19 -0
- package/vendor/@akanjs/native/plugins/auth-session/src/args.ts +62 -0
- package/vendor/@akanjs/native/plugins/auth-session/src/desktop.ts +133 -0
- package/vendor/@akanjs/native/plugins/auth-session/src/index.ts +39 -0
- package/vendor/@akanjs/native/plugins/autostart/native-plugin.json +10 -0
- package/vendor/@akanjs/native/plugins/autostart/src/desktop.ts +189 -0
- package/vendor/@akanjs/native/plugins/autostart/src/index.ts +51 -0
- package/vendor/@akanjs/native/plugins/badge/ios/BadgePlugin.swift +92 -0
- package/vendor/@akanjs/native/plugins/badge/native-plugin.json +15 -0
- package/vendor/@akanjs/native/plugins/badge/src/count.ts +12 -0
- package/vendor/@akanjs/native/plugins/badge/src/desktop.ts +24 -0
- package/vendor/@akanjs/native/plugins/badge/src/index.ts +40 -0
- package/vendor/@akanjs/native/plugins/badge/src/web.ts +37 -0
- package/vendor/@akanjs/native/plugins/biometric/android/BiometricPlugin.kt +179 -0
- package/vendor/@akanjs/native/plugins/biometric/ios/BiometricPlugin.swift +129 -0
- package/vendor/@akanjs/native/plugins/biometric/native-plugin.json +22 -0
- package/vendor/@akanjs/native/plugins/biometric/src/index.ts +100 -0
- package/vendor/@akanjs/native/plugins/browser/android/BrowserPlugin.kt +178 -0
- package/vendor/@akanjs/native/plugins/browser/ios/BrowserPlugin.swift +63 -0
- package/vendor/@akanjs/native/plugins/browser/native-plugin.json +22 -0
- package/vendor/@akanjs/native/plugins/browser/src/args.ts +34 -0
- package/vendor/@akanjs/native/plugins/browser/src/desktop.ts +40 -0
- package/vendor/@akanjs/native/plugins/browser/src/index.ts +47 -0
- package/vendor/@akanjs/native/plugins/browser/src/web.ts +60 -0
- package/vendor/@akanjs/native/plugins/camera/android/CameraPlugin.kt +365 -0
- package/vendor/@akanjs/native/plugins/camera/ios/CameraPlugin.swift +296 -0
- package/vendor/@akanjs/native/plugins/camera/native-plugin.json +32 -0
- package/vendor/@akanjs/native/plugins/camera/src/desktop.ts +27 -0
- package/vendor/@akanjs/native/plugins/camera/src/index.ts +85 -0
- package/vendor/@akanjs/native/plugins/camera/src/web.ts +267 -0
- package/vendor/@akanjs/native/plugins/clipboard/android/ClipboardPlugin.kt +51 -0
- package/vendor/@akanjs/native/plugins/clipboard/ios/ClipboardPlugin.swift +35 -0
- package/vendor/@akanjs/native/plugins/clipboard/native-plugin.json +17 -0
- package/vendor/@akanjs/native/plugins/clipboard/src/desktop.ts +66 -0
- package/vendor/@akanjs/native/plugins/clipboard/src/index.ts +72 -0
- package/vendor/@akanjs/native/plugins/clipboard/src/web.ts +69 -0
- package/vendor/@akanjs/native/plugins/device/android/DevicePlugin.kt +70 -0
- package/vendor/@akanjs/native/plugins/device/ios/DevicePlugin.swift +80 -0
- package/vendor/@akanjs/native/plugins/device/native-plugin.json +18 -0
- package/vendor/@akanjs/native/plugins/device/src/desktop.ts +276 -0
- package/vendor/@akanjs/native/plugins/device/src/index.ts +72 -0
- package/vendor/@akanjs/native/plugins/device/src/web.ts +162 -0
- package/vendor/@akanjs/native/plugins/dialog/android/DialogPlugin.kt +260 -0
- package/vendor/@akanjs/native/plugins/dialog/ios/DialogPlugin.swift +198 -0
- package/vendor/@akanjs/native/plugins/dialog/native-plugin.json +18 -0
- package/vendor/@akanjs/native/plugins/dialog/src/desktop.ts +80 -0
- package/vendor/@akanjs/native/plugins/dialog/src/index.ts +87 -0
- package/vendor/@akanjs/native/plugins/dialog/src/options.ts +111 -0
- package/vendor/@akanjs/native/plugins/dialog/src/web.ts +296 -0
- package/vendor/@akanjs/native/plugins/dock/native-plugin.json +10 -0
- package/vendor/@akanjs/native/plugins/dock/src/desktop.ts +34 -0
- package/vendor/@akanjs/native/plugins/dock/src/index.ts +46 -0
- package/vendor/@akanjs/native/plugins/file-picker/android/FilePickerPlugin.kt +316 -0
- package/vendor/@akanjs/native/plugins/file-picker/ios/FilePickerPlugin.swift +366 -0
- package/vendor/@akanjs/native/plugins/file-picker/native-plugin.json +18 -0
- package/vendor/@akanjs/native/plugins/file-picker/src/common.ts +125 -0
- package/vendor/@akanjs/native/plugins/file-picker/src/desktop.ts +164 -0
- package/vendor/@akanjs/native/plugins/file-picker/src/index.ts +187 -0
- package/vendor/@akanjs/native/plugins/file-picker/src/web.ts +158 -0
- package/vendor/@akanjs/native/plugins/filesystem/android/FilesystemPlugin.kt +561 -0
- package/vendor/@akanjs/native/plugins/filesystem/ios/FilesystemPlugin.swift +596 -0
- package/vendor/@akanjs/native/plugins/filesystem/native-plugin.json +45 -0
- package/vendor/@akanjs/native/plugins/filesystem/src/common.ts +150 -0
- package/vendor/@akanjs/native/plugins/filesystem/src/desktop.ts +438 -0
- package/vendor/@akanjs/native/plugins/filesystem/src/index.ts +179 -0
- package/vendor/@akanjs/native/plugins/filesystem/src/web.ts +334 -0
- package/vendor/@akanjs/native/plugins/geolocation/android/GeolocationPlugin.kt +360 -0
- package/vendor/@akanjs/native/plugins/geolocation/ios/GeolocationPlugin.swift +284 -0
- package/vendor/@akanjs/native/plugins/geolocation/native-plugin.json +23 -0
- package/vendor/@akanjs/native/plugins/geolocation/src/index.ts +155 -0
- package/vendor/@akanjs/native/plugins/geolocation/src/web.ts +132 -0
- package/vendor/@akanjs/native/plugins/global-shortcut/native-plugin.json +10 -0
- package/vendor/@akanjs/native/plugins/global-shortcut/src/desktop.ts +36 -0
- package/vendor/@akanjs/native/plugins/global-shortcut/src/index.ts +55 -0
- package/vendor/@akanjs/native/plugins/haptics/android/HapticsPlugin.kt +127 -0
- package/vendor/@akanjs/native/plugins/haptics/ios/HapticsPlugin.swift +127 -0
- package/vendor/@akanjs/native/plugins/haptics/native-plugin.json +19 -0
- package/vendor/@akanjs/native/plugins/haptics/src/index.ts +34 -0
- package/vendor/@akanjs/native/plugins/haptics/src/web.ts +53 -0
- package/vendor/@akanjs/native/plugins/http/android/HttpPlugin.kt +234 -0
- package/vendor/@akanjs/native/plugins/http/android/HttpUrl.kt +182 -0
- package/vendor/@akanjs/native/plugins/http/ios/HttpPlugin.swift +228 -0
- package/vendor/@akanjs/native/plugins/http/ios/HttpUrl.swift +166 -0
- package/vendor/@akanjs/native/plugins/http/native-plugin.json +27 -0
- package/vendor/@akanjs/native/plugins/http/src/common.ts +294 -0
- package/vendor/@akanjs/native/plugins/http/src/desktop.ts +69 -0
- package/vendor/@akanjs/native/plugins/http/src/index.ts +181 -0
- package/vendor/@akanjs/native/plugins/http/src/web.ts +40 -0
- package/vendor/@akanjs/native/plugins/iap/android/IapPlugin.kt +358 -0
- package/vendor/@akanjs/native/plugins/iap/ios/IapPlugin.swift +306 -0
- package/vendor/@akanjs/native/plugins/iap/native-plugin.json +28 -0
- package/vendor/@akanjs/native/plugins/iap/src/index.ts +206 -0
- package/vendor/@akanjs/native/plugins/keep-awake/android/KeepAwakePlugin.kt +48 -0
- package/vendor/@akanjs/native/plugins/keep-awake/ios/KeepAwakePlugin.swift +36 -0
- package/vendor/@akanjs/native/plugins/keep-awake/native-plugin.json +17 -0
- package/vendor/@akanjs/native/plugins/keep-awake/src/desktop.ts +127 -0
- package/vendor/@akanjs/native/plugins/keep-awake/src/index.ts +79 -0
- package/vendor/@akanjs/native/plugins/keep-awake/src/web.ts +78 -0
- package/vendor/@akanjs/native/plugins/keyboard/android/KeyboardPlugin.kt +77 -0
- package/vendor/@akanjs/native/plugins/keyboard/ios/KeyboardPlugin.swift +93 -0
- package/vendor/@akanjs/native/plugins/keyboard/native-plugin.json +18 -0
- package/vendor/@akanjs/native/plugins/keyboard/src/index.ts +78 -0
- package/vendor/@akanjs/native/plugins/keyboard/src/web.ts +57 -0
- package/vendor/@akanjs/native/plugins/local-notifications/android/LocalNotificationReceiver.kt +38 -0
- package/vendor/@akanjs/native/plugins/local-notifications/android/LocalNotifications.kt +284 -0
- package/vendor/@akanjs/native/plugins/local-notifications/android/LocalNotificationsPlugin.kt +248 -0
- package/vendor/@akanjs/native/plugins/local-notifications/ios/LocalNotificationsPlugin.swift +279 -0
- package/vendor/@akanjs/native/plugins/local-notifications/native-plugin.json +35 -0
- package/vendor/@akanjs/native/plugins/local-notifications/src/desktop.ts +196 -0
- package/vendor/@akanjs/native/plugins/local-notifications/src/index.ts +174 -0
- package/vendor/@akanjs/native/plugins/local-notifications/src/schedule.ts +164 -0
- package/vendor/@akanjs/native/plugins/local-notifications/src/timers.ts +72 -0
- package/vendor/@akanjs/native/plugins/local-notifications/src/web.ts +158 -0
- package/vendor/@akanjs/native/plugins/menu/native-plugin.json +10 -0
- package/vendor/@akanjs/native/plugins/menu/src/desktop.ts +52 -0
- package/vendor/@akanjs/native/plugins/menu/src/index.ts +107 -0
- package/vendor/@akanjs/native/plugins/network/android/NetworkPlugin.kt +124 -0
- package/vendor/@akanjs/native/plugins/network/ios/NetworkPlugin.swift +82 -0
- package/vendor/@akanjs/native/plugins/network/native-plugin.json +19 -0
- package/vendor/@akanjs/native/plugins/network/src/index.ts +59 -0
- package/vendor/@akanjs/native/plugins/network/src/web.ts +43 -0
- package/vendor/@akanjs/native/plugins/opener/android/OpenerPlugin.kt +81 -0
- package/vendor/@akanjs/native/plugins/opener/ios/OpenerPlugin.swift +83 -0
- package/vendor/@akanjs/native/plugins/opener/native-plugin.json +25 -0
- package/vendor/@akanjs/native/plugins/opener/src/desktop.ts +88 -0
- package/vendor/@akanjs/native/plugins/opener/src/index.ts +35 -0
- package/vendor/@akanjs/native/plugins/opener/src/url.ts +39 -0
- package/vendor/@akanjs/native/plugins/opener/src/web.ts +33 -0
- package/vendor/@akanjs/native/plugins/preferences/android/PreferencesPlugin.kt +44 -0
- package/vendor/@akanjs/native/plugins/preferences/ios/PreferencesPlugin.swift +47 -0
- package/vendor/@akanjs/native/plugins/preferences/native-plugin.json +18 -0
- package/vendor/@akanjs/native/plugins/preferences/src/desktop.ts +59 -0
- package/vendor/@akanjs/native/plugins/preferences/src/index.ts +75 -0
- package/vendor/@akanjs/native/plugins/preferences/src/web.ts +55 -0
- package/vendor/@akanjs/native/plugins/push/android/AkanNativeMessagingService.kt +17 -0
- package/vendor/@akanjs/native/plugins/push/android/PushPlugin.kt +257 -0
- package/vendor/@akanjs/native/plugins/push/ios/PushPlugin.swift +169 -0
- package/vendor/@akanjs/native/plugins/push/native-plugin.json +23 -0
- package/vendor/@akanjs/native/plugins/push/src/index.ts +73 -0
- package/vendor/@akanjs/native/plugins/screen/native-plugin.json +10 -0
- package/vendor/@akanjs/native/plugins/screen/src/desktop.ts +50 -0
- package/vendor/@akanjs/native/plugins/screen/src/index.ts +107 -0
- package/vendor/@akanjs/native/plugins/screen/src/web.ts +92 -0
- package/vendor/@akanjs/native/plugins/screen-orientation/android/ScreenOrientationPlugin.kt +113 -0
- package/vendor/@akanjs/native/plugins/screen-orientation/ios/ScreenOrientationPlugin.swift +150 -0
- package/vendor/@akanjs/native/plugins/screen-orientation/native-plugin.json +17 -0
- package/vendor/@akanjs/native/plugins/screen-orientation/src/index.ts +69 -0
- package/vendor/@akanjs/native/plugins/screen-orientation/src/types.ts +26 -0
- package/vendor/@akanjs/native/plugins/screen-orientation/src/web.ts +67 -0
- package/vendor/@akanjs/native/plugins/secure-storage/android/SecureStoragePlugin.kt +184 -0
- package/vendor/@akanjs/native/plugins/secure-storage/ios/SecureStoragePlugin.swift +145 -0
- package/vendor/@akanjs/native/plugins/secure-storage/native-plugin.json +18 -0
- package/vendor/@akanjs/native/plugins/secure-storage/src/desktop.ts +332 -0
- package/vendor/@akanjs/native/plugins/secure-storage/src/index.ts +33 -0
- package/vendor/@akanjs/native/plugins/share/android/SharePlugin.kt +218 -0
- package/vendor/@akanjs/native/plugins/share/ios/SharePlugin.swift +142 -0
- package/vendor/@akanjs/native/plugins/share/native-plugin.json +18 -0
- package/vendor/@akanjs/native/plugins/share/src/index.ts +87 -0
- package/vendor/@akanjs/native/plugins/share/src/options.ts +43 -0
- package/vendor/@akanjs/native/plugins/share/src/web.ts +116 -0
- package/vendor/@akanjs/native/plugins/single-instance/native-plugin.json +10 -0
- package/vendor/@akanjs/native/plugins/single-instance/src/desktop.ts +63 -0
- package/vendor/@akanjs/native/plugins/single-instance/src/index.ts +32 -0
- package/vendor/@akanjs/native/plugins/single-instance/src/socket.ts +248 -0
- package/vendor/@akanjs/native/plugins/splash-screen/android/SplashScreenPlugin.kt +19 -0
- package/vendor/@akanjs/native/plugins/splash-screen/ios/SplashScreenPlugin.swift +20 -0
- package/vendor/@akanjs/native/plugins/splash-screen/native-plugin.json +17 -0
- package/vendor/@akanjs/native/plugins/splash-screen/src/index.ts +24 -0
- package/vendor/@akanjs/native/plugins/splash-screen/src/web.ts +17 -0
- package/vendor/@akanjs/native/plugins/sqlite/android/SqlStatements.kt +121 -0
- package/vendor/@akanjs/native/plugins/sqlite/android/SqlitePlugin.kt +327 -0
- package/vendor/@akanjs/native/plugins/sqlite/ios/SqlitePlugin.swift +361 -0
- package/vendor/@akanjs/native/plugins/sqlite/native-plugin.json +18 -0
- package/vendor/@akanjs/native/plugins/sqlite/src/common.ts +221 -0
- package/vendor/@akanjs/native/plugins/sqlite/src/desktop.ts +140 -0
- package/vendor/@akanjs/native/plugins/sqlite/src/index.ts +114 -0
- package/vendor/@akanjs/native/plugins/toast/android/ToastPlugin.kt +27 -0
- package/vendor/@akanjs/native/plugins/toast/native-plugin.json +14 -0
- package/vendor/@akanjs/native/plugins/toast/src/index.ts +41 -0
- package/vendor/@akanjs/native/plugins/toast/src/queue.ts +77 -0
- package/vendor/@akanjs/native/plugins/toast/src/web.ts +130 -0
- package/vendor/@akanjs/native/plugins/tray/native-plugin.json +10 -0
- package/vendor/@akanjs/native/plugins/tray/src/desktop.ts +73 -0
- package/vendor/@akanjs/native/plugins/tray/src/index.ts +111 -0
- package/vendor/@akanjs/native/plugins/updates/android/UpdatesPlugin.kt +290 -0
- package/vendor/@akanjs/native/plugins/updates/ios/UpdatesPlugin.swift +292 -0
- package/vendor/@akanjs/native/plugins/updates/native-plugin.json +19 -0
- package/vendor/@akanjs/native/plugins/updates/src/desktop.ts +558 -0
- package/vendor/@akanjs/native/plugins/updates/src/index.ts +95 -0
- package/vendor/@akanjs/native/plugins/window/native-plugin.json +32 -0
- package/vendor/@akanjs/native/plugins/window/src/desktop.ts +170 -0
- package/vendor/@akanjs/native/plugins/window/src/index.ts +342 -0
- package/vendor/@akanjs/native/plugins/window/src/web.ts +43 -0
- package/vendor/@akanjs/native/plugins/window-state/native-plugin.json +10 -0
- package/vendor/@akanjs/native/plugins/window-state/src/desktop.ts +73 -0
- package/vendor/@akanjs/native/plugins/window-state/src/index.ts +35 -0
- package/vendor/@akanjs/native/plugins/window-state/src/state.ts +146 -0
- package/webkit/bootCsr.tsx +26 -14
- package/webkit/index.ts +0 -2
- package/webkit/nativeNavigation.ts +116 -0
- package/webkit/nativePurchase.ts +93 -0
- package/webkit/useCamera.tsx +76 -71
- package/webkit/useCsrValues.ts +10 -124
- package/webkit/useGeoLocation.tsx +11 -13
- package/webkit/usePurchase.tsx +68 -123
- package/capacitor.base.config.ts +0 -140
- package/client/capacitor.ts +0 -252
- package/types/capacitor.base.config.d.ts +0 -3
- package/types/client/capacitor.d.ts +0 -290
- package/types/webkit/useCodepush.d.ts +0 -16
- package/types/webkit/useContact.d.ts +0 -11
- package/webkit/useCodepush.tsx +0 -76
- package/webkit/useContact.tsx +0 -45
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export declare const ERROR_CODES: readonly ["UNSUPPORTED", "PERMISSION_DENIED", "CANCELLED", "TIMEOUT", "INVALID_ARGS", "NOT_FOUND", "NOT_ALLOWED", "INTERNAL"];
|
|
2
|
+
/** File name extension → MIME type (assets and FileRefs). */
|
|
3
|
+
export declare const MIME: Readonly<Record<string, string>>;
|
|
4
|
+
/** Besides text/*, the asset types served with charset=utf-8. */
|
|
5
|
+
export declare const MIME_UTF8: readonly string[];
|
|
6
|
+
/** An id grammar: allowed characters, length, and an optional extension after the first dot. */
|
|
7
|
+
export interface IdSpec {
|
|
8
|
+
chars: string;
|
|
9
|
+
first: string;
|
|
10
|
+
notFirst: string;
|
|
11
|
+
min: number;
|
|
12
|
+
max: number;
|
|
13
|
+
extChars: string;
|
|
14
|
+
extMax: number;
|
|
15
|
+
}
|
|
16
|
+
export declare const ID_FILE_REF: IdSpec;
|
|
17
|
+
export declare const ID_BUNDLE: IdSpec;
|
|
18
|
+
export declare const ID_DOCUMENT: IdSpec;
|
|
19
|
+
export declare const ID_NAME: IdSpec;
|
|
20
|
+
export declare const EXTERNAL_SCHEMES: readonly string[];
|
|
21
|
+
export declare const FRAME_SCHEMES: readonly string[];
|
|
22
|
+
/** Schemes an app can never add to the external list. */
|
|
23
|
+
export declare const NEVER_EXTERNAL_SCHEMES: readonly string[];
|
|
24
|
+
export declare const ROUTES: {
|
|
25
|
+
readonly root: "__akan_native";
|
|
26
|
+
readonly init: "init.js";
|
|
27
|
+
readonly ipc: "ipc";
|
|
28
|
+
readonly hello: "hello";
|
|
29
|
+
readonly file: "file";
|
|
30
|
+
};
|
|
31
|
+
export declare const INIT_PREFIX = "window.__AKAN_NATIVE__=(function(o,b,e){for(var k in b)o[k]=b[k];o.env=e;return o})(window.__AKAN_NATIVE__||{},";
|
|
32
|
+
export declare const INIT_SUFFIX = ");\n";
|
|
33
|
+
export declare const MAX_RANGE_BYTES = 1024000;
|
|
34
|
+
export declare const EXTERNAL_OPENS_PER_SECOND = 1;
|
|
35
|
+
export declare const MAX_RETAINED_EVENTS = 16;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type BridgeErrorBody, type ErrorCode } from "./protocol.ts";
|
|
2
|
+
export interface AkanNativeErrorOptions {
|
|
3
|
+
cause?: unknown;
|
|
4
|
+
/** Details a caller can act on, e.g. `{ reason: "packageManaged" }`. */
|
|
5
|
+
data?: unknown;
|
|
6
|
+
/** The same call may work later. */
|
|
7
|
+
retryable?: boolean;
|
|
8
|
+
/** Overrides the name derived from the code (DataCloneError for arguments JSON cannot carry). */
|
|
9
|
+
name?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare class AkanNativeError extends Error {
|
|
12
|
+
readonly code: ErrorCode;
|
|
13
|
+
readonly data?: unknown;
|
|
14
|
+
readonly retryable: boolean;
|
|
15
|
+
constructor(code: ErrorCode, message: string, options?: AkanNativeErrorOptions);
|
|
16
|
+
/**
|
|
17
|
+
* Builds a real Error from a wire error so callers get a stack trace
|
|
18
|
+
* (Capacitor copies native error fields onto an Error for the same reason:
|
|
19
|
+
* capacitor/core/native-bridge.ts `returnResult`).
|
|
20
|
+
*/
|
|
21
|
+
static fromBody(body: BridgeErrorBody | undefined, cause?: unknown): AkanNativeError;
|
|
22
|
+
/** Normalizes anything thrown by an implementation into an AkanNativeError. */
|
|
23
|
+
static from(error: unknown): AkanNativeError;
|
|
24
|
+
/** The error body a host sends for this error. */
|
|
25
|
+
toBody(): BridgeErrorBody;
|
|
26
|
+
}
|
|
27
|
+
export declare function isAkanNativeError(error: unknown, code?: ErrorCode): error is AkanNativeError;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type FileRef } from "./protocol.ts";
|
|
2
|
+
/**
|
|
3
|
+
* Stops serving a FileRef. FileRefs live for the app session (architecture review, 2026-09-26), so
|
|
4
|
+
* release the ones the page no longer shows: photos, picked files, downloads. The host forgets the
|
|
5
|
+
* URL and deletes akan-native's own copy of the file; files that belong to the user (a document served in
|
|
6
|
+
* place) stay. Holding the URL is the permission, as for any follow-up on what a call handed out.
|
|
7
|
+
* Resolves whether it was served. On the web, a blob: URL is revoked.
|
|
8
|
+
*/
|
|
9
|
+
export declare function releaseFile(file: FileRef | string): Promise<boolean>;
|
|
10
|
+
export interface FileReadOptions {
|
|
11
|
+
/** Bytes per Range request. Default 4 MiB. */
|
|
12
|
+
chunkSize?: number;
|
|
13
|
+
signal?: AbortSignal;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Reads a FileRef (or any same-origin URL) in pieces with HTTP Range requests, so a big file never
|
|
17
|
+
* has to be one response: the desktop shell answers without streaming (WRY), reading a whole
|
|
18
|
+
* response into memory (architecture review stage 4). Every host serves FileRefs with
|
|
19
|
+
* `Accept-Ranges: bytes`. A server that ignores Range (200) is streamed as it answers.
|
|
20
|
+
*/
|
|
21
|
+
export declare function fileStream(file: FileRef | string, options?: FileReadOptions): ReadableStream<Uint8Array>;
|
|
22
|
+
/** A FileRef as a Blob, read in Range pieces (see fileStream); `type` is the FileRef's MIME type. */
|
|
23
|
+
export declare function fileBlob(file: FileRef | string, options?: FileReadOptions): Promise<Blob>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type { Access, AclGrant, CallScope, ResolvedAcl, ScopeEntry } from "./acl.ts";
|
|
2
|
+
export { aclCheck, aclProblem, DENY_ALL, globMatch, listenItem, loadAcl, scopePermits, urlMatch } from "./acl.ts";
|
|
3
|
+
export type { AkanNativeBoot, AppInfo, Platform, PluginDecl } from "./boot.ts";
|
|
4
|
+
export { AkanNativeError, type AkanNativeErrorOptions, isAkanNativeError } from "./errors.ts";
|
|
5
|
+
export { type FileReadOptions, fileBlob, fileStream, releaseFile } from "./files.ts";
|
|
6
|
+
export type { LiveValue } from "./live.ts";
|
|
7
|
+
export { createLiveValue, shallowEqual } from "./live.ts";
|
|
8
|
+
export { mimeFor } from "./mime.ts";
|
|
9
|
+
export type { CallOptions, Implementation, ListenOptions, Plugin, PluginHandle, PluginMethods, PluginOptions, WebCallContext, WebPlugin, } from "./plugin.ts";
|
|
10
|
+
export { definePlugin, defineWebPlugin } from "./plugin.ts";
|
|
11
|
+
export type { CancelReason, ErrorCode, FileRef } from "./protocol.ts";
|
|
12
|
+
export { type AkanNativeEnv, app, type Env, env, isDev, isNative, nativeApi, platform, runtimeVersion, windowId, } from "./state.ts";
|
|
13
|
+
export type { VetoEvent, VetoHandler } from "./veto.ts";
|
|
14
|
+
export { vetoable } from "./veto.ts";
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { type IdSpec } from "./contract.ts";
|
|
2
|
+
/** Whether `s` follows an id grammar: its characters and length, and an optional ".ext" after the first dot. */
|
|
3
|
+
export declare function idValid(spec: IdSpec, s: string): boolean;
|
|
4
|
+
export declare const isFileRefId: (s: string) => boolean;
|
|
5
|
+
export declare const isBundleId: (s: string) => boolean;
|
|
6
|
+
export declare const isDocumentId: (s: string) => boolean;
|
|
7
|
+
export declare const isName: (s: string) => boolean;
|
|
8
|
+
/** Strict percent-decoding: "%" and two hex digits, and the result must be UTF-8; otherwise null. */
|
|
9
|
+
export declare function decodePath(s: string): string | null;
|
|
10
|
+
export type Route = {
|
|
11
|
+
kind: "init";
|
|
12
|
+
} | {
|
|
13
|
+
kind: "ipc";
|
|
14
|
+
} | {
|
|
15
|
+
kind: "hello";
|
|
16
|
+
} | {
|
|
17
|
+
kind: "file";
|
|
18
|
+
id: string;
|
|
19
|
+
} | {
|
|
20
|
+
kind: "asset";
|
|
21
|
+
path: string;
|
|
22
|
+
} | {
|
|
23
|
+
kind: "not-found";
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Maps a URL pathname (still percent-encoded) to a route. `exists` tells whether a relative asset
|
|
27
|
+
* path exists. Every host routes /__akan_native/ipc and /__akan_native/hello; the ones that do not serve them
|
|
28
|
+
* answer 404.
|
|
29
|
+
*
|
|
30
|
+
* /__akan_native/init.js · /__akan_native/ipc · /__akan_native/hello · /__akan_native/file/<id> the host's own
|
|
31
|
+
* /__akan_native/<anything else> 404
|
|
32
|
+
* existing file the file
|
|
33
|
+
* missing, no extension index.html (SPA route)
|
|
34
|
+
* missing, with extension 404 (a missing asset should not turn into HTML)
|
|
35
|
+
*
|
|
36
|
+
* Traversal is refused, not normalized. A path with ":" is never looked up as a file: on Windows
|
|
37
|
+
* "C:" makes the joined path absolute (the host would read outside the app folder) and "a:b" names
|
|
38
|
+
* an alternate data stream. It can still be an SPA route ("/at/12:30").
|
|
39
|
+
*/
|
|
40
|
+
export declare function route(pathname: string, exists: (relativePath: string) => boolean): Route;
|
|
41
|
+
/** Paths a host answers itself even when its pages come from a dev server: /__akan_native/*, and paths that do not decode. */
|
|
42
|
+
export declare function isHostPath(pathname: string): boolean;
|
|
43
|
+
/** The MIME type for a file name (FileRefs): application/octet-stream when unknown. */
|
|
44
|
+
export declare function fileMime(path: string): string;
|
|
45
|
+
/** The Content-Type an asset is served with: text types carry charset=utf-8. */
|
|
46
|
+
export declare function assetMime(path: string): string;
|
|
47
|
+
/**
|
|
48
|
+
* Whether a FileRef of this type is served with `Content-Security-Policy: sandbox`: everything but
|
|
49
|
+
* images other than SVG, audio, video, fonts and PDF. A sandboxed document has an opaque origin, so
|
|
50
|
+
* an HTML or SVG file a plugin serves (a picked or downloaded file) cannot reach the bridge or the
|
|
51
|
+
* page even when it is opened as a document; <img>, <video> and <audio> are unaffected. PDF is left
|
|
52
|
+
* out because macOS WebKit draws nothing for a sandboxed PDF (iOS and WebView2 do; checked
|
|
53
|
+
* 2026-09-26); its viewer runs no page script, and nosniff keeps HTML named .pdf a PDF.
|
|
54
|
+
*/
|
|
55
|
+
export declare function fileRefSandboxed(mime: string): boolean;
|
|
56
|
+
export type RangeAnswer = {
|
|
57
|
+
status: 200;
|
|
58
|
+
} | {
|
|
59
|
+
status: 206;
|
|
60
|
+
start: number;
|
|
61
|
+
end: number;
|
|
62
|
+
} | {
|
|
63
|
+
status: 416;
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* A Range header (IN-5, RFC 9110 §14) for a file of `size` bytes. One "bytes=" range is supported:
|
|
67
|
+
* a header that is not one (another unit, several ranges, bad syntax, last before first) is ignored
|
|
68
|
+
* and the whole file is sent. A valid range the file cannot satisfy is 416. A response carries at
|
|
69
|
+
* most MAX_RANGE_BYTES, from the range's start.
|
|
70
|
+
*/
|
|
71
|
+
export declare function parseRange(header: string | null, size: number): RangeAnswer;
|
|
72
|
+
export type Admission = "current" | "new" | "ended" | "no-doc";
|
|
73
|
+
/**
|
|
74
|
+
* What a host does with a request of document `requested` (null: none) while `current` is the
|
|
75
|
+
* window's document (null: none; "": one without an id): join the current one, start a new one
|
|
76
|
+
* (ending the current), refuse it because that document ended, or refuse it because it has no id
|
|
77
|
+
* while the current document has one (its answer would take a number the page never sees).
|
|
78
|
+
*/
|
|
79
|
+
export declare function admitDocument(current: string | null, ended: readonly string[], requested: string | null): Admission;
|
|
80
|
+
/**
|
|
81
|
+
* Events that can come before the page listens (links, notification taps; plugins.md C2, Capacitor
|
|
82
|
+
* retainUntilConsumed). A live event goes to every listener; one that no listener accepted is kept
|
|
83
|
+
* when `retain` (at most MAX_RETAINED_EVENTS, the oldest go) and replayed, in order, to the next
|
|
84
|
+
* listener, once. A listener returns false when it is gone (its window ended): it is dropped and the
|
|
85
|
+
* event counts as not delivered.
|
|
86
|
+
*/
|
|
87
|
+
export declare class RetainedEvents<T> {
|
|
88
|
+
private readonly listeners;
|
|
89
|
+
private readonly queue;
|
|
90
|
+
listen(key: string, listener: (event: T) => boolean): void;
|
|
91
|
+
unlisten(key: string): void;
|
|
92
|
+
emit(event: T, retain: boolean): void;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Whether a plugin's declaration in boot.json (`plugins[id]`: "web", or its native methods and
|
|
96
|
+
* events on this platform) lets a call through: hosts refuse undeclared methods and events with
|
|
97
|
+
* NOT_FOUND before the ACL and the plugin, whatever the plugin's code implements.
|
|
98
|
+
*/
|
|
99
|
+
export declare function declares(decl: unknown, method: string, event: string | null): boolean;
|
|
100
|
+
/** The lowercase scheme of a URL, or null when it has none. */
|
|
101
|
+
export declare function schemeOf(url: string): string | null;
|
|
102
|
+
/** The schemes the shell hands to the OS: the contract's, and what the app added (never the forbidden ones). */
|
|
103
|
+
export declare function externalSchemes(extra?: readonly string[]): string[];
|
|
104
|
+
/**
|
|
105
|
+
* Where a navigation goes. The app's own pages (and about:) load, but its /__akan_native/* paths never
|
|
106
|
+
* become a document of the app's origin: a FileRef holding someone's HTML would run with the
|
|
107
|
+
* bridge (Capacitor GHSA-rvm3-566m-v7fv); a frame may show a FileRef, which is served sandboxed
|
|
108
|
+
* (fileRefSandboxed). Otherwise a top-level navigation is handed to the OS when its scheme is an
|
|
109
|
+
* external one and dropped when not; a frame may load http, https, data, blob and about pages but
|
|
110
|
+
* never opens anything.
|
|
111
|
+
*/
|
|
112
|
+
export declare function decideNavigation(url: string, topLevel: boolean, origin: string, extra?: readonly string[]): "load" | "open" | "drop";
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface LiveValue<T> {
|
|
2
|
+
get(): T;
|
|
3
|
+
set(value: T): void;
|
|
4
|
+
subscribe(onChange: () => void): () => void;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* `start` runs when the first subscriber arrives and may return a stop function,
|
|
8
|
+
* which runs one microtask after the last subscriber leaves (StrictMode safe).
|
|
9
|
+
*/
|
|
10
|
+
export declare function createLiveValue<T>(initial: T, start?: (set: (value: T) => void) => (() => void) | void, equals?: (a: T, b: T) => boolean): LiveValue<T>;
|
|
11
|
+
/** Shallow equality for plain state objects. */
|
|
12
|
+
export declare function shallowEqual<T extends object>(a: T, b: T): boolean;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { type CallScope } from "./acl.ts";
|
|
2
|
+
export type Implementation = "native" | "web" | "none";
|
|
3
|
+
type Unsubscribe = () => void;
|
|
4
|
+
type Emit<T> = (data: T) => void;
|
|
5
|
+
/** Second argument of a web implementation method: what the app's capabilities allow this call (PL-11). */
|
|
6
|
+
export interface WebCallContext {
|
|
7
|
+
scope?: CallScope;
|
|
8
|
+
/** The caller's AbortSignal: stop the work when it fires (the call has already been rejected). */
|
|
9
|
+
signal?: AbortSignal;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* The last argument of every plugin method (bridge v1.1 `cancel`). There is no timeout option:
|
|
13
|
+
* `AbortSignal.timeout(ms)` rejects with TIMEOUT, any other abort with CANCELLED, and
|
|
14
|
+
* `AbortSignal.any([...])` combines them.
|
|
15
|
+
*/
|
|
16
|
+
export interface CallOptions {
|
|
17
|
+
signal?: AbortSignal;
|
|
18
|
+
}
|
|
19
|
+
export interface ListenOptions {
|
|
20
|
+
/** Unsubscribes when it fires. */
|
|
21
|
+
signal?: AbortSignal;
|
|
22
|
+
/** Unsubscribes after the first event. */
|
|
23
|
+
once?: boolean;
|
|
24
|
+
}
|
|
25
|
+
export interface WebPlugin<Api, Events> {
|
|
26
|
+
methods: {
|
|
27
|
+
[K in keyof Api]?: Api[K];
|
|
28
|
+
};
|
|
29
|
+
/** Event sources. Started for the first listener, stopped after the last one leaves. */
|
|
30
|
+
events?: {
|
|
31
|
+
[E in keyof Events]?: (emit: Emit<Events[E]>) => Unsubscribe;
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export interface PluginOptions<Api, Events> {
|
|
35
|
+
methods: readonly (keyof Api & string)[];
|
|
36
|
+
events?: readonly (keyof Events & string)[];
|
|
37
|
+
web?: WebPlugin<Api, Events>;
|
|
38
|
+
}
|
|
39
|
+
export interface PluginHandle<Api, Events> {
|
|
40
|
+
readonly id: string;
|
|
41
|
+
readonly methods: readonly (keyof Api & string)[];
|
|
42
|
+
readonly events: readonly (keyof Events & string)[];
|
|
43
|
+
/** Where a call to this method would go on the current host. */
|
|
44
|
+
implementation(method: keyof Api & string): Implementation;
|
|
45
|
+
isSupported(method: keyof Api & string): boolean;
|
|
46
|
+
/** Whether the app's capabilities let this window call the method (PL-11). Independent of isSupported. */
|
|
47
|
+
isAllowed(method: keyof Api & string): boolean;
|
|
48
|
+
eventImplementation(event: keyof Events & string): Implementation;
|
|
49
|
+
/** Subscribes to an event. Safe to call and undo repeatedly (React StrictMode). */
|
|
50
|
+
listen<E extends keyof Events & string>(event: E, listener: (data: Events[E]) => void, options?: ListenOptions): Unsubscribe;
|
|
51
|
+
}
|
|
52
|
+
/** A method with the CallOptions argument after its own (a method without arguments takes `undefined` first). */
|
|
53
|
+
type WithOptions<F> = F extends (...args: infer P) => infer R ? (...args: P extends [] ? [args: undefined, options: CallOptions] : [...P, options: CallOptions]) => R : never;
|
|
54
|
+
/**
|
|
55
|
+
* Each method keeps its own signature (generics and overloads intact) and gains an overload that
|
|
56
|
+
* takes CallOptions last. With options, the argument types come from the last overload.
|
|
57
|
+
*/
|
|
58
|
+
export type PluginMethods<Api> = {
|
|
59
|
+
[K in keyof Api]: Api[K] & WithOptions<Api[K]>;
|
|
60
|
+
};
|
|
61
|
+
export type Plugin<Api, Events = {}> = PluginMethods<Api> & PluginHandle<Api, Events>;
|
|
62
|
+
/** Identity helper that gives web implementations their types. */
|
|
63
|
+
export declare function defineWebPlugin<Api, Events = {}>(impl: WebPlugin<Api, Events>): WebPlugin<Api, Events>;
|
|
64
|
+
export declare function definePlugin<Api extends object, Events extends object = {}>(id: string, options: PluginOptions<Api, Events>): Plugin<Api, Events>;
|
|
65
|
+
/**
|
|
66
|
+
* Dev builds: why `value` would not survive the JSON trip to a native host, or null. JSON would
|
|
67
|
+
* silently turn these into something else (a Date into a string, a Map into {}, NaN into null) or
|
|
68
|
+
* throw (BigInt, a cycle). Plain objects, arrays, strings, finite numbers, booleans and null pass.
|
|
69
|
+
*/
|
|
70
|
+
export declare function cloneProblem(value: unknown, path: string, ancestors?: object[]): string | null;
|
|
71
|
+
export {};
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { ERROR_CODES as CONTRACT_ERROR_CODES, INIT_PREFIX, INIT_SUFFIX } from "./contract.ts";
|
|
2
|
+
export declare const PROTOCOL_VERSION = 1;
|
|
3
|
+
/**
|
|
4
|
+
* What the hosts of this akan-native version speak beyond v1 (boot.json `bridge.features`, part of the UP-3
|
|
5
|
+
* fingerprint, so a web bundle never runs on a shell that lacks one):
|
|
6
|
+
* - doc: every request names its document (one page load); the host ends the previous document
|
|
7
|
+
* when a new one calls or the main frame commits a navigation, and refuses calls of ended ones
|
|
8
|
+
* - seq: the host numbers a document's responses and events (from 1) where it sends them; the page
|
|
9
|
+
* delivers them in that order
|
|
10
|
+
* - once: a document's request id runs at most once
|
|
11
|
+
* - cancel: `$bridge.cancel { id, reason }` ends a running call of the same document at once
|
|
12
|
+
* (CANCELLED, or TIMEOUT for reason "timeout") and tells its plugin; `$bridge.release { url }`
|
|
13
|
+
* drops a FileRef. Errors may carry `data` and `retryable`.
|
|
14
|
+
*/
|
|
15
|
+
export declare const BRIDGE_FEATURES: readonly ["doc", "seq", "once", "cancel"];
|
|
16
|
+
/** Reserved method names for event subscription. */
|
|
17
|
+
export declare const LISTEN = "$listen";
|
|
18
|
+
export declare const UNLISTEN = "$unlisten";
|
|
19
|
+
/**
|
|
20
|
+
* Reserved plugin id for the bridge's follow-up operations (v1.1 `cancel`). They act on something a
|
|
21
|
+
* call of the same page handed out, so holding it is the permission (no ACL entry):
|
|
22
|
+
* - cancel { id, reason }: the call `id` of this document ends now (reason "abort" → CANCELLED,
|
|
23
|
+
* "timeout" → TIMEOUT); answers `{ cancelled }`, false when the call already finished
|
|
24
|
+
* - release { url }: the FileRef at `url` is no longer served; answers `{ released }`
|
|
25
|
+
*/
|
|
26
|
+
export declare const BRIDGE_PLUGIN = "$bridge";
|
|
27
|
+
export declare const CANCEL = "cancel";
|
|
28
|
+
export declare const RELEASE = "release";
|
|
29
|
+
export type CancelReason = "abort" | "timeout";
|
|
30
|
+
/**
|
|
31
|
+
* A plugin's method and event names (manifest, definePlugin): a letter, then letters, digits and "_".
|
|
32
|
+
* Names starting with "$" belong to the bridge ($listen, $unlisten, $bridge, $host, $console).
|
|
33
|
+
*/
|
|
34
|
+
export declare const MEMBER_NAME: RegExp;
|
|
35
|
+
/** Method names the plugin object uses itself, or that JavaScript and React look for on any object. */
|
|
36
|
+
export declare const RESERVED_MEMBERS: readonly string[];
|
|
37
|
+
export declare const CANCEL_REASONS: readonly CancelReason[];
|
|
38
|
+
/** The app's capabilities do not grant a call: NOT_ALLOWED (PL-11). PERMISSION_DENIED is the OS or the user saying no. */
|
|
39
|
+
export type ErrorCode = (typeof CONTRACT_ERROR_CODES)[number];
|
|
40
|
+
export declare const ERROR_CODES: readonly ErrorCode[];
|
|
41
|
+
/** JS → host */
|
|
42
|
+
export interface BridgeRequest {
|
|
43
|
+
v: 1;
|
|
44
|
+
id: number;
|
|
45
|
+
plugin: string;
|
|
46
|
+
method: string;
|
|
47
|
+
args?: unknown;
|
|
48
|
+
/** The calling document (v1.1 `doc`). The page runtime always sends it. */
|
|
49
|
+
doc?: string;
|
|
50
|
+
}
|
|
51
|
+
export interface BridgeErrorBody {
|
|
52
|
+
code: ErrorCode;
|
|
53
|
+
message: string;
|
|
54
|
+
/** Details a caller can act on, e.g. `{ reason: "packageManaged" }` (v1.1 `cancel`). */
|
|
55
|
+
data?: unknown;
|
|
56
|
+
/** The same call may work later (a plugin still starting, the network, a busy database). */
|
|
57
|
+
retryable?: boolean;
|
|
58
|
+
}
|
|
59
|
+
/** Where a host message goes and its place in the document's order (v1.1 `doc`, `seq`). */
|
|
60
|
+
export interface Delivery {
|
|
61
|
+
doc?: string;
|
|
62
|
+
seq?: number;
|
|
63
|
+
}
|
|
64
|
+
/** host → JS, answers one request */
|
|
65
|
+
export type BridgeResponse = ({
|
|
66
|
+
v: 1;
|
|
67
|
+
id: number;
|
|
68
|
+
ok: true;
|
|
69
|
+
result?: unknown;
|
|
70
|
+
} & Delivery) | ({
|
|
71
|
+
v: 1;
|
|
72
|
+
id: number;
|
|
73
|
+
ok: false;
|
|
74
|
+
error: BridgeErrorBody;
|
|
75
|
+
} & Delivery);
|
|
76
|
+
/** host → JS, push */
|
|
77
|
+
export interface BridgeEvent extends Delivery {
|
|
78
|
+
v: 1;
|
|
79
|
+
plugin: string;
|
|
80
|
+
event: string;
|
|
81
|
+
data?: unknown;
|
|
82
|
+
}
|
|
83
|
+
/** Arguments of the reserved $listen / $unlisten methods. */
|
|
84
|
+
export interface ListenArgs {
|
|
85
|
+
event: string;
|
|
86
|
+
}
|
|
87
|
+
/** Large results (photos, files) are returned as a URL served by the host (PL-7). */
|
|
88
|
+
export interface FileRef {
|
|
89
|
+
url: string;
|
|
90
|
+
mime: string;
|
|
91
|
+
size: number;
|
|
92
|
+
}
|
|
93
|
+
/** A document id: the page runtime makes 32 hex digits; hosts accept 8 to 64 of [A-Za-z0-9_-] (contract.json). */
|
|
94
|
+
export declare const DOC_ID: RegExp;
|
|
95
|
+
/** Validates an incoming request (SEC-3). Returns an error message or null. */
|
|
96
|
+
export declare function validateRequest(value: unknown): string | null;
|
|
97
|
+
export declare function isResponse(value: unknown): value is BridgeResponse;
|
|
98
|
+
export declare function isEvent(value: unknown): value is BridgeEvent;
|
|
99
|
+
export declare function okResponse(id: number, result?: unknown): BridgeResponse;
|
|
100
|
+
export declare function errorResponse(id: number, code: ErrorCode, message: string, extra?: {
|
|
101
|
+
data?: unknown;
|
|
102
|
+
retryable?: boolean;
|
|
103
|
+
}): BridgeResponse;
|
|
104
|
+
export { INIT_PREFIX, INIT_SUFFIX };
|
|
105
|
+
export declare function renderInitScript(bootJson: string, envJson: string): string;
|
|
106
|
+
/** Reserved plugin id for forwarding page console output to the host log in dev builds (WV-3). */
|
|
107
|
+
export declare const CONSOLE_PLUGIN = "$console";
|
|
108
|
+
/** Reserved plugin id for shell built-ins the page runtime calls itself, e.g. `print` (plugins.md D8). */
|
|
109
|
+
export declare const HOST_PLUGIN = "$host";
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { type AkanNativeBoot } from "./boot.ts";
|
|
2
|
+
import { type BridgeEvent, type BridgeRequest, type BridgeResponse, type CancelReason } from "./protocol.ts";
|
|
3
|
+
/** One way to reach the host. Events always come back through `__AKAN_NATIVE__.receive`. */
|
|
4
|
+
export interface Transport {
|
|
5
|
+
send(request: BridgeRequest): Promise<BridgeResponse>;
|
|
6
|
+
/** Internal diagnostics for the self-test (e.g. how many bridge ports the page adopted). */
|
|
7
|
+
info?(): Record<string, unknown>;
|
|
8
|
+
}
|
|
9
|
+
type Listener = (data: unknown) => void;
|
|
10
|
+
interface Pending {
|
|
11
|
+
resolve(response: BridgeResponse): void;
|
|
12
|
+
}
|
|
13
|
+
export interface Runtime {
|
|
14
|
+
boot: AkanNativeBoot;
|
|
15
|
+
transport: Transport | null;
|
|
16
|
+
nextId: number;
|
|
17
|
+
/** Calls waiting for their response, which always comes through receive(). */
|
|
18
|
+
pending: Map<number, Pending>;
|
|
19
|
+
/** "plugin\0event" → listeners, shared by native and web event sources. */
|
|
20
|
+
listeners: Map<string, Set<Listener>>;
|
|
21
|
+
/** This document's id (bridge v1.1 `doc`), sent with every request. */
|
|
22
|
+
doc: string;
|
|
23
|
+
/** The runtime's timers (the gap timer, the next-task deferrals); tests replace them with a virtual clock. */
|
|
24
|
+
timers: Timers;
|
|
25
|
+
/** In-order delivery of host messages (v1.1 `seq`): see receive(). */
|
|
26
|
+
order: {
|
|
27
|
+
/** The next number to deliver, and later ones that came early. */
|
|
28
|
+
next: number;
|
|
29
|
+
held: Map<number, BridgeResponse | BridgeEvent>;
|
|
30
|
+
timer: unknown;
|
|
31
|
+
/** A response was delivered in this task: events wait for the next one. */
|
|
32
|
+
answered: boolean;
|
|
33
|
+
/** Messages in order that wait for the next task. */
|
|
34
|
+
later: (BridgeResponse | BridgeEvent)[];
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
export interface Timers {
|
|
38
|
+
set(fn: () => void, ms: number): unknown;
|
|
39
|
+
clear(handle: unknown): void;
|
|
40
|
+
}
|
|
41
|
+
export declare function eventKey(plugin: string, event: string): string;
|
|
42
|
+
export declare function runtime(): Runtime;
|
|
43
|
+
/**
|
|
44
|
+
* macOS: WKWebView ignores window.print(), so the page asks the shell to print its window
|
|
45
|
+
* (plugins.md D8; Tauri replaces window.print the same way, tauri/crates/tauri/src/webview/scripts/print.js).
|
|
46
|
+
* Runs when @akanjs/native/core loads; init.js has already set the platform by then. Returns whether it replaced print.
|
|
47
|
+
*/
|
|
48
|
+
export declare function installPrint(): boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Dev builds: errors the page had before this module ran, collected by the snippet the build puts
|
|
51
|
+
* after init.js (__AKAN_NATIVE__.early). They go to the host log once, marked "[before runtime]"; the
|
|
52
|
+
* snippet stops collecting and does not report them itself.
|
|
53
|
+
*/
|
|
54
|
+
export declare function flushEarlyErrors(): void;
|
|
55
|
+
/** Drops all runtime state. Only for tests. */
|
|
56
|
+
export declare function resetRuntime(): void;
|
|
57
|
+
export declare function dispatchEvent(rt: Runtime, plugin: string, event: string, data: unknown): void;
|
|
58
|
+
/** How long later messages wait for a missing number before they are delivered anyway. */
|
|
59
|
+
export declare const SEQ_GAP_MS = 500;
|
|
60
|
+
/**
|
|
61
|
+
* The page gave up on a call that has no answer yet (its AbortSignal fired, v1.1 `cancel`): it stops
|
|
62
|
+
* waiting now, and the host is told so that the plugin can stop and the call's resources go. The
|
|
63
|
+
* host's late answer finds no pending call and is dropped.
|
|
64
|
+
*/
|
|
65
|
+
export declare function cancelCall(rt: Runtime, id: number, reason: CancelReason): void;
|
|
66
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { AppInfo, Platform } from "./boot.ts";
|
|
2
|
+
/**
|
|
3
|
+
* The PUBLIC_ keys the app's config and .env files define. `akan-native build` writes akan-native-env.d.ts next
|
|
4
|
+
* to akan-native.config.ts, which adds them to this interface (ENV-7).
|
|
5
|
+
*/
|
|
6
|
+
export interface AkanNativeEnv {
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Known keys from AkanNativeEnv; other keys (set only at run time through AKAN_NATIVE_PUBLIC_*) stay a plain
|
|
10
|
+
* index signature, so with noUncheckedIndexedAccess they read as string | undefined.
|
|
11
|
+
*/
|
|
12
|
+
export type Env = Readonly<AkanNativeEnv> & Readonly<Record<string, string>>;
|
|
13
|
+
export declare let platform: Platform;
|
|
14
|
+
export declare let env: Env;
|
|
15
|
+
export declare let runtimeVersion: string;
|
|
16
|
+
export declare let app: AppInfo | null;
|
|
17
|
+
export declare let isDev: boolean;
|
|
18
|
+
/** True inside an akan-native app shell (macOS, iOS, Android ...), false on the web. */
|
|
19
|
+
export declare let isNative: boolean;
|
|
20
|
+
/** Desktop: this page's window (1 = the window the app opened, SH-6). null elsewhere. */
|
|
21
|
+
export declare let windowId: number | null;
|
|
22
|
+
/**
|
|
23
|
+
* Native hosts: a fingerprint of what this app binary provides natively (bridge protocol, akan-native
|
|
24
|
+
* runtime minor, plugins, capabilities, permissions). A web bundle runs only in a binary with the
|
|
25
|
+
* same value (UP-3). null on the web.
|
|
26
|
+
*/
|
|
27
|
+
export declare let nativeApi: string | null;
|
|
28
|
+
export declare function refreshBoot(): void;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { type CallScope, type ResolvedAcl } from "./acl.ts";
|
|
2
|
+
import type { Platform } from "./boot.ts";
|
|
3
|
+
import { type BridgeRequest } from "./protocol.ts";
|
|
4
|
+
/**
|
|
5
|
+
* `scope`: what the app's capabilities allow this call (PL-11), as a real host passes it. `signal`
|
|
6
|
+
* fires when the page cancels the call ($bridge.cancel), like a desktop plugin's ctx.signal.
|
|
7
|
+
*/
|
|
8
|
+
export type MockMethod = (args: any, host: MockHost, scope?: CallScope, signal?: AbortSignal) => unknown;
|
|
9
|
+
export interface MockPlugin {
|
|
10
|
+
methods?: Record<string, MockMethod>;
|
|
11
|
+
events?: string[];
|
|
12
|
+
/** The other methods and events use the web implementation (a native subset with `web: true`). */
|
|
13
|
+
web?: true;
|
|
14
|
+
}
|
|
15
|
+
export interface MockHostOptions {
|
|
16
|
+
platform?: Platform;
|
|
17
|
+
env?: Record<string, string>;
|
|
18
|
+
dev?: boolean;
|
|
19
|
+
/** "web" makes the page use the plugin's web implementation, as a desktop host may declare. */
|
|
20
|
+
plugins?: Record<string, MockPlugin | "web">;
|
|
21
|
+
/** Capabilities (PL-11): the mock host enforces them like a real host, and the page sees them in boot. */
|
|
22
|
+
acl?: ResolvedAcl;
|
|
23
|
+
/** The page's window id (desktop multi-window). Default 1. */
|
|
24
|
+
windowId?: number;
|
|
25
|
+
}
|
|
26
|
+
export interface MockHost {
|
|
27
|
+
readonly requests: BridgeRequest[];
|
|
28
|
+
/** $bridge.cancel requests the page sent: the call id and the reason. */
|
|
29
|
+
readonly cancels: {
|
|
30
|
+
id: number;
|
|
31
|
+
reason: string;
|
|
32
|
+
cancelled: boolean;
|
|
33
|
+
}[];
|
|
34
|
+
/** $bridge.release requests: the FileRef URLs (answered released: true). */
|
|
35
|
+
readonly releases: string[];
|
|
36
|
+
/** Pushes an event the way a native host would. Delivered only while subscribed. */
|
|
37
|
+
emit(plugin: string, event: string, data?: unknown): boolean;
|
|
38
|
+
subscriptions(plugin: string, event: string): number;
|
|
39
|
+
uninstall(): void;
|
|
40
|
+
}
|
|
41
|
+
export declare function installMockHost(options?: MockHostOptions): MockHost;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface VetoEvent {
|
|
2
|
+
/** Keeps the window open / the app running. Call it before the handler returns (await first if needed). */
|
|
3
|
+
preventDefault(): void;
|
|
4
|
+
readonly defaultPrevented: boolean;
|
|
5
|
+
}
|
|
6
|
+
export type VetoHandler<E> = (event: E & VetoEvent) => void | Promise<void>;
|
|
7
|
+
/**
|
|
8
|
+
* Builds an `onX(handler)` registration for a cancelable event.
|
|
9
|
+
* `listen` subscribes to the plugin event; `answer` is the plugin method the host waits for.
|
|
10
|
+
* Registering is a no-op where the event is not supported (it simply never fires).
|
|
11
|
+
*/
|
|
12
|
+
export declare function vetoable<E extends object>(listen: (listener: (data: E & {
|
|
13
|
+
id: number;
|
|
14
|
+
}) => void) => () => void, answer: (args: {
|
|
15
|
+
id: number;
|
|
16
|
+
allow?: boolean;
|
|
17
|
+
}) => Promise<unknown>): (handler: VetoHandler<E>) => () => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./src/index.d.ts";
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
type Env = Record<string, string | undefined>;
|
|
2
|
+
type Runner = (argv: string[]) => Promise<{
|
|
3
|
+
code: number;
|
|
4
|
+
stdout: string;
|
|
5
|
+
}>;
|
|
6
|
+
/** The links in a launch's arguments (without the executable): one argument, of an app scheme. */
|
|
7
|
+
export declare function linkArguments(args: readonly string[], schemes: readonly string[]): string[];
|
|
8
|
+
/** Exec= of a desktop entry: the path quoted, with the characters the spec reserves escaped. */
|
|
9
|
+
export declare function desktopExec(exe: string): string;
|
|
10
|
+
export declare function desktopEntry(name: string, exe: string, schemes: readonly string[]): string;
|
|
11
|
+
/** mimeapps.list with `x-scheme-handler/<scheme>=<desktop file>` set in [Default Applications]. */
|
|
12
|
+
export declare function withDefaults(list: string, desktopFile: string, schemes: readonly string[]): string;
|
|
13
|
+
/** Makes this executable the current user's handler of the app's schemes (Windows, Linux). */
|
|
14
|
+
export declare function registerDeepLinks(app: {
|
|
15
|
+
id: string;
|
|
16
|
+
name: string;
|
|
17
|
+
}, schemes: readonly string[], options?: {
|
|
18
|
+
exe?: string;
|
|
19
|
+
platform?: NodeJS.Platform;
|
|
20
|
+
env?: Env;
|
|
21
|
+
home?: string;
|
|
22
|
+
run?: Runner;
|
|
23
|
+
}): Promise<void>;
|
|
24
|
+
export {};
|