@nativescript/vite 8.0.0-alpha.7 → 8.0.0-alpha.70
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.md +51 -11
- package/bin/cli.cjs +8 -14
- package/configuration/angular.d.ts +34 -1
- package/configuration/angular.js +293 -172
- package/configuration/angular.js.map +1 -1
- package/configuration/base.js +177 -110
- package/configuration/base.js.map +1 -1
- package/configuration/javascript.js +14 -93
- package/configuration/javascript.js.map +1 -1
- package/configuration/react.js +41 -73
- package/configuration/react.js.map +1 -1
- package/configuration/solid.js +51 -6
- package/configuration/solid.js.map +1 -1
- package/configuration/typescript.js +12 -93
- package/configuration/typescript.js.map +1 -1
- package/helpers/app-components.d.ts +2 -1
- package/helpers/app-components.js.map +1 -1
- package/helpers/app-css-refresh.d.ts +31 -0
- package/helpers/app-css-refresh.js +43 -0
- package/helpers/app-css-refresh.js.map +1 -0
- package/helpers/app-css-state.d.ts +17 -0
- package/helpers/app-css-state.js +51 -0
- package/helpers/app-css-state.js.map +1 -0
- package/helpers/bundler-context.d.ts +11 -0
- package/helpers/bundler-context.js +71 -0
- package/helpers/bundler-context.js.map +1 -0
- package/helpers/cli-flags.d.ts +12 -0
- package/helpers/cli-flags.js +34 -0
- package/helpers/cli-flags.js.map +1 -1
- package/helpers/css-platform-plugin.d.ts +14 -0
- package/helpers/css-platform-plugin.js +43 -25
- package/helpers/css-platform-plugin.js.map +1 -1
- package/helpers/dev-host.d.ts +360 -0
- package/helpers/dev-host.js +694 -0
- package/helpers/dev-host.js.map +1 -0
- package/helpers/dynamic-import-plugin.js +9 -4
- package/helpers/dynamic-import-plugin.js.map +1 -1
- package/helpers/esbuild-platform-resolver.js +4 -1
- package/helpers/esbuild-platform-resolver.js.map +1 -1
- package/helpers/external-configs.d.ts +10 -12
- package/helpers/external-configs.js +58 -35
- package/helpers/external-configs.js.map +1 -1
- package/helpers/flavor.d.ts +13 -0
- package/helpers/flavor.js +17 -0
- package/helpers/flavor.js.map +1 -1
- package/helpers/global-defines.d.ts +101 -33
- package/helpers/global-defines.js +187 -64
- package/helpers/global-defines.js.map +1 -1
- package/helpers/hmr-scope.d.ts +26 -0
- package/helpers/hmr-scope.js +67 -0
- package/helpers/hmr-scope.js.map +1 -0
- package/helpers/init.js +0 -18
- package/helpers/init.js.map +1 -1
- package/helpers/logging.js +29 -1
- package/helpers/logging.js.map +1 -1
- package/helpers/main-entry.d.ts +4 -1
- package/helpers/main-entry.js +366 -47
- package/helpers/main-entry.js.map +1 -1
- package/helpers/nativeclass-esbuild-plugin.d.ts +2 -1
- package/helpers/nativeclass-esbuild-plugin.js +6 -1
- package/helpers/nativeclass-esbuild-plugin.js.map +1 -1
- package/helpers/nativeclass-transform.d.ts +13 -0
- package/helpers/nativeclass-transform.js +37 -7
- package/helpers/nativeclass-transform.js.map +1 -1
- package/helpers/nativeclass-transformer-plugin.d.ts +9 -2
- package/helpers/nativeclass-transformer-plugin.js +163 -15
- package/helpers/nativeclass-transformer-plugin.js.map +1 -1
- package/helpers/nativescript-package-resolver.js +10 -62
- package/helpers/nativescript-package-resolver.js.map +1 -1
- package/helpers/normalize-id.d.ts +42 -0
- package/helpers/normalize-id.js +60 -0
- package/helpers/normalize-id.js.map +1 -0
- package/helpers/ns-core-external-urls.d.ts +32 -0
- package/helpers/ns-core-external-urls.js +107 -0
- package/helpers/ns-core-external-urls.js.map +1 -0
- package/helpers/ns-core-url.d.ts +26 -3
- package/helpers/ns-core-url.js +66 -8
- package/helpers/ns-core-url.js.map +1 -1
- package/helpers/optimize-deps.d.ts +16 -0
- package/helpers/optimize-deps.js +17 -0
- package/helpers/optimize-deps.js.map +1 -0
- package/helpers/package-platform-aliases.js +34 -49
- package/helpers/package-platform-aliases.js.map +1 -1
- package/helpers/platform-types.d.ts +2 -0
- package/helpers/platform-types.js +2 -0
- package/helpers/platform-types.js.map +1 -0
- package/helpers/postcss-platform-config.d.ts +17 -1
- package/helpers/postcss-platform-config.js +20 -37
- package/helpers/postcss-platform-config.js.map +1 -1
- package/helpers/project.d.ts +35 -0
- package/helpers/project.js +120 -2
- package/helpers/project.js.map +1 -1
- package/helpers/resolve-main-field-platform.d.ts +20 -0
- package/helpers/resolve-main-field-platform.js +49 -0
- package/helpers/resolve-main-field-platform.js.map +1 -0
- package/helpers/resolver.js +17 -2
- package/helpers/resolver.js.map +1 -1
- package/helpers/theme-core-plugins.js +1 -1
- package/helpers/theme-core-plugins.js.map +1 -1
- package/helpers/ts-config-paths.d.ts +32 -0
- package/helpers/ts-config-paths.js +156 -27
- package/helpers/ts-config-paths.js.map +1 -1
- package/helpers/typescript-check.d.ts +2 -1
- package/helpers/typescript-check.js +4 -4
- package/helpers/typescript-check.js.map +1 -1
- package/helpers/ui-registration.d.ts +21 -0
- package/helpers/ui-registration.js +156 -0
- package/helpers/ui-registration.js.map +1 -0
- package/helpers/utils.d.ts +9 -0
- package/helpers/utils.js +22 -2
- package/helpers/utils.js.map +1 -1
- package/helpers/vite-package-version.d.ts +7 -0
- package/helpers/vite-package-version.js +44 -0
- package/helpers/vite-package-version.js.map +1 -0
- package/helpers/workers.d.ts +40 -19
- package/helpers/workers.js +324 -13
- package/helpers/workers.js.map +1 -1
- package/hmr/client/css-handler.d.ts +2 -1
- package/hmr/client/css-handler.js +63 -32
- package/hmr/client/css-handler.js.map +1 -1
- package/hmr/client/css-update-overlay.d.ts +18 -0
- package/hmr/client/css-update-overlay.js +27 -0
- package/hmr/client/css-update-overlay.js.map +1 -0
- package/hmr/client/framework-client-strategy.d.ts +87 -0
- package/hmr/client/framework-client-strategy.js +18 -0
- package/hmr/client/framework-client-strategy.js.map +1 -0
- package/hmr/client/hmr-pending-overlay.d.ts +0 -14
- package/hmr/client/hmr-pending-overlay.js +2 -11
- package/hmr/client/hmr-pending-overlay.js.map +1 -1
- package/hmr/client/hot-context.d.ts +67 -0
- package/hmr/client/hot-context.js +307 -0
- package/hmr/client/hot-context.js.map +1 -0
- package/hmr/client/index.d.ts +9 -1
- package/hmr/client/index.js +70 -1970
- package/hmr/client/index.js.map +1 -1
- package/hmr/client/overlay-driver.d.ts +10 -0
- package/hmr/client/overlay-driver.js +33 -0
- package/hmr/client/overlay-driver.js.map +1 -0
- package/hmr/client/protocol-dispatch.d.ts +8 -0
- package/hmr/client/protocol-dispatch.js +308 -0
- package/hmr/client/protocol-dispatch.js.map +1 -0
- package/hmr/client/root-reset.d.ts +15 -0
- package/hmr/client/root-reset.js +358 -0
- package/hmr/client/root-reset.js.map +1 -0
- package/hmr/client/strategy-loader.d.ts +24 -0
- package/hmr/client/strategy-loader.js +83 -0
- package/hmr/client/strategy-loader.js.map +1 -0
- package/hmr/client/update-pipeline.d.ts +27 -0
- package/hmr/client/update-pipeline.js +464 -0
- package/hmr/client/update-pipeline.js.map +1 -0
- package/hmr/client/utils.d.ts +9 -1
- package/hmr/client/utils.js +117 -97
- package/hmr/client/utils.js.map +1 -1
- package/hmr/client/ws-transport.d.ts +21 -0
- package/hmr/client/ws-transport.js +323 -0
- package/hmr/client/ws-transport.js.map +1 -0
- package/hmr/entry-runtime.d.ts +2 -1
- package/hmr/entry-runtime.js +282 -71
- package/hmr/entry-runtime.js.map +1 -1
- package/hmr/frameworks/angular/build/angular-linker.d.ts +12 -0
- package/hmr/frameworks/angular/build/angular-linker.js +113 -0
- package/hmr/frameworks/angular/build/angular-linker.js.map +1 -0
- package/hmr/frameworks/angular/build/inject-component-hmr-registration.d.ts +112 -0
- package/hmr/frameworks/angular/build/inject-component-hmr-registration.js +291 -0
- package/hmr/frameworks/angular/build/inject-component-hmr-registration.js.map +1 -0
- package/hmr/frameworks/angular/build/inject-hmr-vite-ignore.d.ts +75 -0
- package/hmr/frameworks/angular/build/inject-hmr-vite-ignore.js +221 -0
- package/hmr/frameworks/angular/build/inject-hmr-vite-ignore.js.map +1 -0
- package/{helpers/angular → hmr/frameworks/angular/build}/inline-decorator-component-templates.js +1 -170
- package/hmr/frameworks/angular/build/inline-decorator-component-templates.js.map +1 -0
- package/hmr/frameworks/angular/build/js-lexer.d.ts +4 -0
- package/{helpers/angular/synthesize-decorator-ctor-parameters.js → hmr/frameworks/angular/build/js-lexer.js} +22 -96
- package/hmr/frameworks/angular/build/js-lexer.js.map +1 -0
- package/hmr/frameworks/angular/build/linker-stats.d.ts +18 -0
- package/hmr/frameworks/angular/build/linker-stats.js +29 -0
- package/hmr/frameworks/angular/build/linker-stats.js.map +1 -0
- package/hmr/frameworks/angular/build/shared-linker.d.ts +39 -0
- package/hmr/frameworks/angular/build/shared-linker.js +128 -0
- package/hmr/frameworks/angular/build/shared-linker.js.map +1 -0
- package/hmr/frameworks/angular/build/synthesize-decorator-ctor-parameters.js +88 -0
- package/hmr/frameworks/angular/build/synthesize-decorator-ctor-parameters.js.map +1 -0
- package/{helpers/angular → hmr/frameworks/angular/build}/synthesize-injectable-factories.js +1 -174
- package/hmr/frameworks/angular/build/synthesize-injectable-factories.js.map +1 -0
- package/hmr/frameworks/angular/build/ts-fallback-transform.d.ts +5 -0
- package/hmr/frameworks/angular/build/ts-fallback-transform.js +138 -0
- package/hmr/frameworks/angular/build/ts-fallback-transform.js.map +1 -0
- package/{helpers/angular → hmr/frameworks/angular/build}/util.d.ts +1 -0
- package/hmr/frameworks/angular/build/util.js +155 -0
- package/hmr/frameworks/angular/build/util.js.map +1 -0
- package/hmr/frameworks/angular/build/worker-url-preserve.d.ts +5 -0
- package/hmr/frameworks/angular/build/worker-url-preserve.js +140 -0
- package/hmr/frameworks/angular/build/worker-url-preserve.js.map +1 -0
- package/hmr/frameworks/angular/client/index.d.ts +0 -1
- package/hmr/frameworks/angular/client/index.js +459 -223
- package/hmr/frameworks/angular/client/index.js.map +1 -1
- package/hmr/frameworks/angular/client/strategy.d.ts +9 -0
- package/hmr/frameworks/angular/client/strategy.js +19 -0
- package/hmr/frameworks/angular/client/strategy.js.map +1 -0
- package/hmr/frameworks/angular/server/angular-root-component.d.ts +79 -0
- package/hmr/frameworks/angular/server/angular-root-component.js +149 -0
- package/hmr/frameworks/angular/server/angular-root-component.js.map +1 -0
- package/hmr/frameworks/angular/server/linker.js +1 -4
- package/hmr/frameworks/angular/server/linker.js.map +1 -1
- package/hmr/frameworks/angular/server/ng-component-route.d.ts +43 -0
- package/hmr/frameworks/angular/server/ng-component-route.js +113 -0
- package/hmr/frameworks/angular/server/ng-component-route.js.map +1 -0
- package/hmr/frameworks/angular/server/strategy.js +677 -13
- package/hmr/frameworks/angular/server/strategy.js.map +1 -1
- package/hmr/{server → frameworks/angular/server}/websocket-angular-entry.js +2 -2
- package/hmr/frameworks/angular/server/websocket-angular-entry.js.map +1 -0
- package/hmr/{server → frameworks/angular/server}/websocket-angular-hot-update.d.ts +28 -11
- package/hmr/{server → frameworks/angular/server}/websocket-angular-hot-update.js +191 -105
- package/hmr/frameworks/angular/server/websocket-angular-hot-update.js.map +1 -0
- package/hmr/frameworks/react/client/strategy.d.ts +12 -0
- package/hmr/frameworks/react/client/strategy.js +27 -0
- package/hmr/frameworks/react/client/strategy.js.map +1 -0
- package/hmr/frameworks/react/server/strategy.d.ts +2 -0
- package/hmr/frameworks/react/server/strategy.js +230 -0
- package/hmr/frameworks/react/server/strategy.js.map +1 -0
- package/hmr/frameworks/solid/build/solid-jsx-deps.d.ts +15 -0
- package/hmr/frameworks/solid/build/solid-jsx-deps.js +178 -0
- package/hmr/frameworks/solid/build/solid-jsx-deps.js.map +1 -0
- package/hmr/frameworks/solid/client/app-runtime.d.ts +68 -0
- package/hmr/frameworks/solid/client/app-runtime.js +252 -0
- package/hmr/frameworks/solid/client/app-runtime.js.map +1 -0
- package/hmr/frameworks/solid/client/strategy.d.ts +7 -0
- package/hmr/frameworks/solid/client/strategy.js +391 -0
- package/hmr/frameworks/solid/client/strategy.js.map +1 -0
- package/hmr/frameworks/solid/server/strategy.js +293 -16
- package/hmr/frameworks/solid/server/strategy.js.map +1 -1
- package/hmr/frameworks/typescript/client/strategy.d.ts +7 -0
- package/hmr/frameworks/typescript/client/strategy.js +418 -0
- package/hmr/frameworks/typescript/client/strategy.js.map +1 -0
- package/hmr/frameworks/typescript/server/strategy.js +40 -14
- package/hmr/frameworks/typescript/server/strategy.js.map +1 -1
- package/hmr/frameworks/vue/client/dep-propagation.d.ts +44 -0
- package/hmr/frameworks/vue/client/dep-propagation.js +148 -0
- package/hmr/frameworks/vue/client/dep-propagation.js.map +1 -0
- package/hmr/frameworks/vue/client/index.d.ts +10 -1
- package/hmr/frameworks/vue/client/index.js +287 -562
- package/hmr/frameworks/vue/client/index.js.map +1 -1
- package/hmr/frameworks/vue/client/navigate-app.d.ts +3 -0
- package/hmr/frameworks/vue/client/navigate-app.js +178 -0
- package/hmr/frameworks/vue/client/navigate-app.js.map +1 -0
- package/hmr/frameworks/vue/client/strategy.d.ts +33 -0
- package/hmr/frameworks/vue/client/strategy.js +152 -0
- package/hmr/frameworks/vue/client/strategy.js.map +1 -0
- package/hmr/frameworks/vue/client/vue-sfc-update-overlay.d.ts +49 -0
- package/hmr/frameworks/vue/client/vue-sfc-update-overlay.js +124 -0
- package/hmr/frameworks/vue/client/vue-sfc-update-overlay.js.map +1 -0
- package/hmr/frameworks/vue/server/compiler.d.ts +3 -1
- package/hmr/frameworks/vue/server/compiler.js +3 -1
- package/hmr/frameworks/vue/server/compiler.js.map +1 -1
- package/hmr/frameworks/vue/server/sfc-route-assemble.d.ts +7 -0
- package/hmr/frameworks/vue/server/sfc-route-assemble.js +823 -0
- package/hmr/frameworks/vue/server/sfc-route-assemble.js.map +1 -0
- package/hmr/frameworks/vue/server/sfc-route-meta.d.ts +7 -0
- package/hmr/frameworks/vue/server/sfc-route-meta.js +80 -0
- package/hmr/frameworks/vue/server/sfc-route-meta.js.map +1 -0
- package/hmr/frameworks/vue/server/sfc-route-serve.d.ts +8 -0
- package/hmr/frameworks/vue/server/sfc-route-serve.js +462 -0
- package/hmr/frameworks/vue/server/sfc-route-serve.js.map +1 -0
- package/hmr/frameworks/vue/server/sfc-route-shared.d.ts +45 -0
- package/hmr/frameworks/vue/server/sfc-route-shared.js +105 -0
- package/hmr/frameworks/vue/server/sfc-route-shared.js.map +1 -0
- package/hmr/frameworks/vue/server/strategy.d.ts +35 -0
- package/hmr/frameworks/vue/server/strategy.js +291 -7
- package/hmr/frameworks/vue/server/strategy.js.map +1 -1
- package/hmr/frameworks/vue/server/websocket-sfc.d.ts +15 -0
- package/hmr/frameworks/vue/server/websocket-sfc.js +20 -0
- package/hmr/frameworks/vue/server/websocket-sfc.js.map +1 -0
- package/hmr/helpers/ast-normalizer.d.ts +3 -1
- package/hmr/helpers/ast-normalizer.js +109 -14
- package/hmr/helpers/ast-normalizer.js.map +1 -1
- package/hmr/helpers/cjs-named-exports.d.ts +23 -0
- package/hmr/helpers/cjs-named-exports.js +152 -0
- package/hmr/helpers/cjs-named-exports.js.map +1 -0
- package/hmr/helpers/package-exports.d.ts +16 -0
- package/hmr/helpers/package-exports.js +396 -0
- package/hmr/helpers/package-exports.js.map +1 -0
- package/hmr/helpers/vendor-rewrite.d.ts +1 -1
- package/hmr/helpers/vendor-rewrite.js +5 -3
- package/hmr/helpers/vendor-rewrite.js.map +1 -1
- package/hmr/server/boot-recording.d.ts +51 -0
- package/hmr/server/boot-recording.js +214 -0
- package/hmr/server/boot-recording.js.map +1 -0
- package/hmr/server/constants.js +20 -5
- package/hmr/server/constants.js.map +1 -1
- package/hmr/server/content-css-update.d.ts +54 -0
- package/hmr/server/content-css-update.js +78 -0
- package/hmr/server/content-css-update.js.map +1 -0
- package/hmr/server/core-bundle.d.ts +140 -0
- package/hmr/server/core-bundle.js +614 -0
- package/hmr/server/core-bundle.js.map +1 -0
- package/hmr/server/core-sanitize.d.ts +86 -7
- package/hmr/server/core-sanitize.js +164 -39
- package/hmr/server/core-sanitize.js.map +1 -1
- package/hmr/server/css-connect-sync.d.ts +28 -0
- package/hmr/server/css-connect-sync.js +59 -0
- package/hmr/server/css-connect-sync.js.map +1 -0
- package/hmr/server/css-device-module.d.ts +28 -0
- package/hmr/server/css-device-module.js +44 -0
- package/hmr/server/css-device-module.js.map +1 -0
- package/hmr/server/css-update-message.d.ts +23 -0
- package/hmr/server/css-update-message.js +41 -0
- package/hmr/server/css-update-message.js.map +1 -0
- package/hmr/server/deps-bundle.d.ts +233 -0
- package/hmr/server/deps-bundle.js +1022 -0
- package/hmr/server/deps-bundle.js.map +1 -0
- package/hmr/server/device-transform-helpers.d.ts +24 -0
- package/hmr/server/device-transform-helpers.js +408 -0
- package/hmr/server/device-transform-helpers.js.map +1 -0
- package/hmr/server/framework-strategy.d.ts +182 -11
- package/hmr/server/hmr-module-graph.d.ts +37 -0
- package/hmr/server/hmr-module-graph.js +215 -0
- package/hmr/server/hmr-module-graph.js.map +1 -0
- package/hmr/server/import-map.d.ts +51 -19
- package/hmr/server/import-map.js +136 -66
- package/hmr/server/import-map.js.map +1 -1
- package/hmr/server/index.js +7 -16
- package/hmr/server/index.js.map +1 -1
- package/hmr/server/node-builtins-route.d.ts +12 -0
- package/hmr/server/node-builtins-route.js +86 -0
- package/hmr/server/node-builtins-route.js.map +1 -0
- package/hmr/server/ns-core-cjs-shape.js +1 -1
- package/hmr/server/ns-core-cjs-shape.js.map +1 -1
- package/hmr/server/ns-m-response-memo.d.ts +10 -0
- package/hmr/server/ns-m-response-memo.js +33 -0
- package/hmr/server/ns-m-response-memo.js.map +1 -0
- package/hmr/server/ns-rt-bridge.d.ts +51 -0
- package/hmr/server/ns-rt-bridge.js +131 -0
- package/hmr/server/ns-rt-bridge.js.map +1 -0
- package/hmr/server/ns-rt-route.d.ts +5 -0
- package/hmr/server/ns-rt-route.js +39 -0
- package/hmr/server/ns-rt-route.js.map +1 -0
- package/hmr/server/perf-instrumentation.d.ts +1 -1
- package/hmr/server/perf-instrumentation.js +3 -1
- package/hmr/server/perf-instrumentation.js.map +1 -1
- package/hmr/server/process-code-for-device.d.ts +44 -0
- package/hmr/server/process-code-for-device.js +834 -0
- package/hmr/server/process-code-for-device.js.map +1 -0
- package/hmr/server/require-guard.d.ts +1 -0
- package/hmr/server/require-guard.js +12 -0
- package/hmr/server/require-guard.js.map +1 -0
- package/hmr/server/rewrite-imports.d.ts +2 -0
- package/hmr/server/rewrite-imports.js +631 -0
- package/hmr/server/rewrite-imports.js.map +1 -0
- package/hmr/server/route-helpers.d.ts +7 -0
- package/hmr/server/route-helpers.js +13 -0
- package/hmr/server/route-helpers.js.map +1 -0
- package/hmr/server/runtime-graph-filter.js +8 -1
- package/hmr/server/runtime-graph-filter.js.map +1 -1
- package/hmr/server/server-origin.d.ts +2 -0
- package/hmr/server/server-origin.js +88 -0
- package/hmr/server/server-origin.js.map +1 -0
- package/hmr/server/shared-transform-request.js +1 -2
- package/hmr/server/shared-transform-request.js.map +1 -1
- package/hmr/server/socket-utils.d.ts +10 -0
- package/hmr/server/socket-utils.js +14 -0
- package/hmr/server/socket-utils.js.map +1 -0
- package/hmr/server/transform-cache-invalidation.d.ts +37 -0
- package/hmr/server/transform-cache-invalidation.js +156 -0
- package/hmr/server/transform-cache-invalidation.js.map +1 -0
- package/hmr/server/vendor-bare-module-shims.d.ts +4 -0
- package/hmr/server/vendor-bare-module-shims.js +80 -0
- package/hmr/server/vendor-bare-module-shims.js.map +1 -0
- package/hmr/server/vite-plugin.d.ts +1 -0
- package/hmr/server/vite-plugin.js +227 -53
- package/hmr/server/vite-plugin.js.map +1 -1
- package/hmr/server/websocket-core-bridge.d.ts +51 -4
- package/hmr/server/websocket-core-bridge.js +62 -49
- package/hmr/server/websocket-core-bridge.js.map +1 -1
- package/hmr/server/websocket-device-transform.d.ts +3 -0
- package/hmr/server/websocket-device-transform.js +7 -0
- package/hmr/server/websocket-device-transform.js.map +1 -0
- package/hmr/server/websocket-hmr-pending.d.ts +2 -16
- package/hmr/server/websocket-hmr-pending.js +0 -22
- package/hmr/server/websocket-hmr-pending.js.map +1 -1
- package/hmr/server/websocket-hot-update.d.ts +80 -0
- package/hmr/server/websocket-hot-update.js +295 -0
- package/hmr/server/websocket-hot-update.js.map +1 -0
- package/hmr/server/websocket-import-map-route.d.ts +15 -0
- package/hmr/server/websocket-import-map-route.js +51 -0
- package/hmr/server/websocket-import-map-route.js.map +1 -0
- package/hmr/server/websocket-module-bindings.d.ts +15 -0
- package/hmr/server/websocket-module-bindings.js +38 -5
- package/hmr/server/websocket-module-bindings.js.map +1 -1
- package/hmr/server/websocket-module-specifiers.d.ts +66 -7
- package/hmr/server/websocket-module-specifiers.js +219 -49
- package/hmr/server/websocket-module-specifiers.js.map +1 -1
- package/hmr/server/websocket-ns-core.d.ts +34 -0
- package/hmr/server/websocket-ns-core.js +414 -0
- package/hmr/server/websocket-ns-core.js.map +1 -0
- package/hmr/server/websocket-ns-entry.d.ts +21 -0
- package/hmr/server/websocket-ns-entry.js +164 -0
- package/hmr/server/websocket-ns-entry.js.map +1 -0
- package/hmr/server/websocket-ns-m-paths.d.ts +19 -3
- package/hmr/server/websocket-ns-m-paths.js +98 -75
- package/hmr/server/websocket-ns-m-paths.js.map +1 -1
- package/hmr/server/websocket-ns-m-request.d.ts +13 -2
- package/hmr/server/websocket-ns-m-request.js +20 -11
- package/hmr/server/websocket-ns-m-request.js.map +1 -1
- package/hmr/server/websocket-ns-m.d.ts +52 -0
- package/hmr/server/websocket-ns-m.js +590 -0
- package/hmr/server/websocket-ns-m.js.map +1 -0
- package/hmr/server/websocket-served-module-helpers.d.ts +57 -4
- package/hmr/server/websocket-served-module-helpers.js +462 -141
- package/hmr/server/websocket-served-module-helpers.js.map +1 -1
- package/hmr/server/websocket-txn.js +6 -9
- package/hmr/server/websocket-txn.js.map +1 -1
- package/hmr/server/websocket-vendor-unifier.d.ts +0 -1
- package/hmr/server/websocket-vendor-unifier.js +4 -9
- package/hmr/server/websocket-vendor-unifier.js.map +1 -1
- package/hmr/server/websocket.d.ts +7 -40
- package/hmr/server/websocket.js +653 -6734
- package/hmr/server/websocket.js.map +1 -1
- package/hmr/shared/ns-globals.d.ts +106 -0
- package/hmr/shared/ns-globals.js +29 -0
- package/hmr/shared/ns-globals.js.map +1 -0
- package/hmr/shared/protocol.d.ts +157 -0
- package/hmr/shared/protocol.js +28 -0
- package/hmr/shared/protocol.js.map +1 -0
- package/hmr/shared/runtime/boot-complete.d.ts +14 -0
- package/hmr/shared/runtime/boot-complete.js +32 -0
- package/hmr/shared/runtime/boot-complete.js.map +1 -0
- package/hmr/shared/runtime/boot-placeholder-ui.d.ts +69 -0
- package/hmr/shared/runtime/boot-placeholder-ui.js +101 -0
- package/hmr/shared/runtime/boot-placeholder-ui.js.map +1 -0
- package/hmr/shared/runtime/boot-progress.d.ts +44 -0
- package/hmr/shared/runtime/boot-progress.js +134 -0
- package/hmr/shared/runtime/boot-progress.js.map +1 -0
- package/hmr/shared/runtime/boot-timeline.d.ts +1 -1
- package/hmr/shared/runtime/boot-timeline.js +8 -19
- package/hmr/shared/runtime/boot-timeline.js.map +1 -1
- package/hmr/shared/runtime/browser-runtime-contract.d.ts +43 -24
- package/hmr/shared/runtime/browser-runtime-contract.js +21 -9
- package/hmr/shared/runtime/browser-runtime-contract.js.map +1 -1
- package/hmr/shared/runtime/dev-overlay-ios.d.ts +87 -0
- package/hmr/shared/runtime/dev-overlay-ios.js +521 -0
- package/hmr/shared/runtime/dev-overlay-ios.js.map +1 -0
- package/hmr/shared/runtime/dev-overlay-shared.d.ts +58 -0
- package/hmr/shared/runtime/dev-overlay-shared.js +116 -0
- package/hmr/shared/runtime/dev-overlay-shared.js.map +1 -0
- package/hmr/shared/runtime/dev-overlay-snapshots.d.ts +31 -0
- package/hmr/shared/runtime/dev-overlay-snapshots.js +324 -0
- package/hmr/shared/runtime/dev-overlay-snapshots.js.map +1 -0
- package/hmr/shared/runtime/dev-overlay-tree.d.ts +59 -0
- package/hmr/shared/runtime/dev-overlay-tree.js +712 -0
- package/hmr/shared/runtime/dev-overlay-tree.js.map +1 -0
- package/hmr/shared/runtime/dev-overlay.d.ts +23 -69
- package/hmr/shared/runtime/dev-overlay.js +67 -1023
- package/hmr/shared/runtime/dev-overlay.js.map +1 -1
- package/hmr/shared/runtime/global-scope.d.ts +18 -0
- package/hmr/shared/runtime/global-scope.js +21 -0
- package/hmr/shared/runtime/global-scope.js.map +1 -0
- package/hmr/shared/runtime/hooks.js +2 -1
- package/hmr/shared/runtime/hooks.js.map +1 -1
- package/hmr/shared/runtime/launch-bridge.d.ts +9 -0
- package/hmr/shared/runtime/launch-bridge.js +98 -0
- package/hmr/shared/runtime/launch-bridge.js.map +1 -0
- package/hmr/shared/runtime/module-provenance.js +4 -6
- package/hmr/shared/runtime/module-provenance.js.map +1 -1
- package/hmr/shared/runtime/ns-runtime-test-double.d.ts +21 -0
- package/hmr/shared/runtime/ns-runtime-test-double.js +20 -0
- package/hmr/shared/runtime/ns-runtime-test-double.js.map +1 -0
- package/hmr/shared/runtime/overlay-flag.d.ts +9 -0
- package/hmr/shared/runtime/overlay-flag.js +34 -0
- package/hmr/shared/runtime/overlay-flag.js.map +1 -0
- package/hmr/shared/runtime/root-placeholder-view.d.ts +19 -0
- package/hmr/shared/runtime/root-placeholder-view.js +311 -0
- package/hmr/shared/runtime/root-placeholder-view.js.map +1 -0
- package/hmr/shared/runtime/root-placeholder.js +401 -206
- package/hmr/shared/runtime/root-placeholder.js.map +1 -1
- package/hmr/shared/runtime/session-bootstrap.js +203 -58
- package/hmr/shared/runtime/session-bootstrap.js.map +1 -1
- package/hmr/shared/runtime/vendor-bootstrap.js +3 -10
- package/hmr/shared/runtime/vendor-bootstrap.js.map +1 -1
- package/hmr/shared/runtime/vendor-resolve.d.ts +22 -0
- package/hmr/shared/runtime/vendor-resolve.js +45 -0
- package/hmr/shared/runtime/vendor-resolve.js.map +1 -0
- package/hmr/shared/vendor/manifest-collect.d.ts +4 -0
- package/hmr/shared/vendor/manifest-collect.js +909 -0
- package/hmr/shared/vendor/manifest-collect.js.map +1 -0
- package/hmr/shared/vendor/manifest-loader.d.ts +2 -1
- package/hmr/shared/vendor/manifest-loader.js +5 -3
- package/hmr/shared/vendor/manifest-loader.js.map +1 -1
- package/hmr/shared/vendor/manifest.d.ts +12 -7
- package/hmr/shared/vendor/manifest.js +180 -826
- package/hmr/shared/vendor/manifest.js.map +1 -1
- package/hmr/shared/vendor/registry.d.ts +2 -0
- package/hmr/shared/vendor/registry.js +14 -0
- package/hmr/shared/vendor/registry.js.map +1 -1
- package/hmr/shared/vendor/vendor-device-shim.d.ts +1 -0
- package/hmr/shared/vendor/vendor-device-shim.js +208 -0
- package/hmr/shared/vendor/vendor-device-shim.js.map +1 -0
- package/hmr/shared/vendor/vendor-esbuild-plugins.d.ts +107 -0
- package/hmr/shared/vendor/vendor-esbuild-plugins.js +540 -0
- package/hmr/shared/vendor/vendor-esbuild-plugins.js.map +1 -0
- package/index.d.ts +1 -0
- package/index.js +5 -0
- package/index.js.map +1 -1
- package/package.json +65 -13
- package/runtime/core-aliases-early.js +28 -57
- package/runtime/core-aliases-early.js.map +1 -1
- package/shims/react-jsx-runtime.d.ts +4 -0
- package/shims/react-jsx-runtime.js +61 -0
- package/shims/react-jsx-runtime.js.map +1 -0
- package/helpers/angular/angular-linker.d.ts +0 -13
- package/helpers/angular/angular-linker.js +0 -194
- package/helpers/angular/angular-linker.js.map +0 -1
- package/helpers/angular/inline-decorator-component-templates.js.map +0 -1
- package/helpers/angular/shared-linker.d.ts +0 -11
- package/helpers/angular/shared-linker.js +0 -75
- package/helpers/angular/shared-linker.js.map +0 -1
- package/helpers/angular/synthesize-decorator-ctor-parameters.js.map +0 -1
- package/helpers/angular/synthesize-injectable-factories.js.map +0 -1
- package/helpers/angular/util.js +0 -67
- package/helpers/angular/util.js.map +0 -1
- package/helpers/module-runner-patch.d.ts +0 -3
- package/helpers/module-runner-patch.js +0 -63
- package/helpers/module-runner-patch.js.map +0 -1
- package/helpers/prelink-angular.d.ts +0 -2
- package/helpers/prelink-angular.js +0 -117
- package/helpers/prelink-angular.js.map +0 -1
- package/hmr/server/websocket-angular-entry.js.map +0 -1
- package/hmr/server/websocket-angular-hot-update.js.map +0 -1
- package/hmr/server/websocket-ns-m-finalize.d.ts +0 -22
- package/hmr/server/websocket-ns-m-finalize.js +0 -88
- package/hmr/server/websocket-ns-m-finalize.js.map +0 -1
- package/hmr/server/websocket-runtime-compat.d.ts +0 -19
- package/hmr/server/websocket-runtime-compat.js +0 -287
- package/hmr/server/websocket-runtime-compat.js.map +0 -1
- package/hmr/server/websocket-vue-sfc.d.ts +0 -27
- package/hmr/server/websocket-vue-sfc.js +0 -1114
- package/hmr/server/websocket-vue-sfc.js.map +0 -1
- package/hmr/shared/runtime/http-only-boot.d.ts +0 -2
- package/hmr/shared/runtime/http-only-boot.js +0 -171
- package/hmr/shared/runtime/http-only-boot.js.map +0 -1
- package/hmr/vendor-bootstrap.d.ts +0 -3
- package/hmr/vendor-bootstrap.js +0 -32
- package/hmr/vendor-bootstrap.js.map +0 -1
- package/shims/react-reconciler-constants.d.ts +0 -14
- package/shims/react-reconciler-constants.js +0 -21
- package/shims/react-reconciler-constants.js.map +0 -1
- package/shims/react-reconciler.d.ts +0 -8
- package/shims/react-reconciler.js +0 -15
- package/shims/react-reconciler.js.map +0 -1
- package/transformers/NativeClass/index.d.ts +0 -2
- package/transformers/NativeClass/index.js +0 -222
- package/transformers/NativeClass/index.js.map +0 -1
- /package/{helpers/angular → hmr/frameworks/angular/build}/inline-decorator-component-templates.d.ts +0 -0
- /package/{helpers/angular → hmr/frameworks/angular/build}/synthesize-decorator-ctor-parameters.d.ts +0 -0
- /package/{helpers/angular → hmr/frameworks/angular/build}/synthesize-injectable-factories.d.ts +0 -0
- /package/hmr/{server → frameworks/angular/server}/websocket-angular-entry.d.ts +0 -0
|
@@ -0,0 +1,521 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* iOS UIWindow overlay backend. The live/connection/update overlay is
|
|
3
|
+
* promoted to its own UIWindow (above `UIWindowLevelAlert`) so the dev
|
|
4
|
+
* surface never gets obscured by modals, bottom sheets, or any other window
|
|
5
|
+
* presented by the host app. Falls back to null (→ in-tree backend) on
|
|
6
|
+
* Android, web, tests, or when scene/window construction fails.
|
|
7
|
+
*
|
|
8
|
+
* The layout math (`computeIosOverlayLayout`, `computeIosOverlayWindowLevel`)
|
|
9
|
+
* is pure and deterministic so the rules stay unit-testable without booting a
|
|
10
|
+
* simulator — see `dev-overlay.spec.ts`.
|
|
11
|
+
*/
|
|
12
|
+
import {} from './dev-overlay-snapshots.js';
|
|
13
|
+
import { formatStatusText, getHmrDevOverlayPosition, getOverlayGlobal } from './dev-overlay-shared.js';
|
|
14
|
+
/**
|
|
15
|
+
* Returns the UIWindow level we use for the live/connection overlay. We lift
|
|
16
|
+
* above `UIWindowLevelAlert` so system alerts (and any app-presented modal)
|
|
17
|
+
* stack underneath. When the platform does not expose `UIWindowLevelAlert`
|
|
18
|
+
* we fall back to the documented constant value (2000).
|
|
19
|
+
*/
|
|
20
|
+
export function computeIosOverlayWindowLevel(baseAlert) {
|
|
21
|
+
if (typeof baseAlert === 'number' && Number.isFinite(baseAlert)) {
|
|
22
|
+
return baseAlert + 1;
|
|
23
|
+
}
|
|
24
|
+
return 2000 + 1;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Layout math for the live overlay when it runs inside its own UIWindow.
|
|
28
|
+
* Pure, deterministic and independent of UIKit so we can verify the rules
|
|
29
|
+
* (max panel width, position-aware placement, safe-area clamping, sane
|
|
30
|
+
* defaults) from tests.
|
|
31
|
+
*
|
|
32
|
+
* `position` controls where the panel sits vertically:
|
|
33
|
+
* - 'top': hugs `safeInsets.top + toastVerticalInset` so the chip
|
|
34
|
+
* sits just below the notch / Dynamic Island.
|
|
35
|
+
* - 'bottom': hugs `viewHeight - safeInsets.bottom - panelHeight -
|
|
36
|
+
* toastVerticalInset` so the chip sits just above the
|
|
37
|
+
* home indicator / nav bar.
|
|
38
|
+
* - 'center': original modal placement (vertically centered, clamped
|
|
39
|
+
* so it never crosses the top safe-area inset).
|
|
40
|
+
*/
|
|
41
|
+
export function computeIosOverlayLayout(input) {
|
|
42
|
+
const viewWidth = Math.max(0, Number(input.viewWidth) || 0);
|
|
43
|
+
const viewHeight = Math.max(0, Number(input.viewHeight) || 0);
|
|
44
|
+
const safeInsets = {
|
|
45
|
+
top: Math.max(0, Number(input.safeInsets?.top ?? 0) || 0),
|
|
46
|
+
bottom: Math.max(0, Number(input.safeInsets?.bottom ?? 0) || 0),
|
|
47
|
+
left: Math.max(0, Number(input.safeInsets?.left ?? 0) || 0),
|
|
48
|
+
right: Math.max(0, Number(input.safeInsets?.right ?? 0) || 0),
|
|
49
|
+
};
|
|
50
|
+
const titleHeight = Math.max(0, Number(input.titleHeight) || 0);
|
|
51
|
+
const statusHeight = Math.max(0, Number(input.statusHeight) || 0);
|
|
52
|
+
const horizontalMargin = Math.max(0, Number(input.horizontalMargin ?? 24));
|
|
53
|
+
const maxPanelWidth = Math.max(0, Number(input.maxPanelWidth ?? 340));
|
|
54
|
+
const panelPadding = Math.max(0, Number(input.panelPadding ?? 16));
|
|
55
|
+
const interLabelSpacing = Math.max(0, Number(input.interLabelSpacing ?? 10));
|
|
56
|
+
const minTopInset = Math.max(0, Number(input.minTopInset ?? 20));
|
|
57
|
+
// Default to 'center' on the pure function so the existing
|
|
58
|
+
// snapshot/layout tests remain stable; the runtime call site
|
|
59
|
+
// (layoutIosOverlayRefs) reads the configured position from
|
|
60
|
+
// `getHmrDevOverlayPosition()` and forwards it explicitly.
|
|
61
|
+
const position = input.position ?? 'center';
|
|
62
|
+
// Distance between the panel and the safe-area edge in toast
|
|
63
|
+
// modes. 8pt mirrors the typical iOS notification chip inset and
|
|
64
|
+
// keeps the chip from hugging the notch / home indicator.
|
|
65
|
+
const toastVerticalInset = Math.max(0, Number(input.toastVerticalInset ?? 8));
|
|
66
|
+
const available = Math.max(0, viewWidth - 2 * horizontalMargin - safeInsets.left - safeInsets.right);
|
|
67
|
+
const panelWidth = Math.min(maxPanelWidth, available);
|
|
68
|
+
const innerWidth = Math.max(0, panelWidth - 2 * panelPadding);
|
|
69
|
+
const spacing = titleHeight > 0 && statusHeight > 0 ? interLabelSpacing : 0;
|
|
70
|
+
const panelHeight = panelPadding * 2 + titleHeight + spacing + statusHeight;
|
|
71
|
+
const panelX = Math.max(0, (viewWidth - panelWidth) / 2);
|
|
72
|
+
let panelY;
|
|
73
|
+
if (position === 'top') {
|
|
74
|
+
// Pin to the top safe-area inset (just below notch / Dynamic
|
|
75
|
+
// Island). Clamp non-negative for fully-NaN input.
|
|
76
|
+
panelY = Math.max(0, safeInsets.top + toastVerticalInset);
|
|
77
|
+
}
|
|
78
|
+
else if (position === 'bottom') {
|
|
79
|
+
// Pin to the bottom safe-area inset (just above home indicator
|
|
80
|
+
// / nav bar). If the panel can't fit between the safe-area
|
|
81
|
+
// insets we fall back to the top safe-area edge so the chip is
|
|
82
|
+
// always visible (rather than getting clipped off-screen).
|
|
83
|
+
const desired = viewHeight - safeInsets.bottom - panelHeight - toastVerticalInset;
|
|
84
|
+
panelY = Math.max(safeInsets.top + minTopInset, desired);
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
// Center vertically, but never cross the top safe-area inset
|
|
88
|
+
// (notch/Dynamic Island). Original modal placement.
|
|
89
|
+
const centered = (viewHeight - panelHeight) / 2;
|
|
90
|
+
panelY = Math.max(safeInsets.top + minTopInset, centered);
|
|
91
|
+
}
|
|
92
|
+
return {
|
|
93
|
+
backdrop: { x: 0, y: 0, width: viewWidth, height: viewHeight },
|
|
94
|
+
panel: { x: panelX, y: panelY, width: panelWidth, height: panelHeight },
|
|
95
|
+
title: { x: panelPadding, y: panelPadding, width: innerWidth, height: titleHeight },
|
|
96
|
+
status: {
|
|
97
|
+
x: panelPadding,
|
|
98
|
+
y: panelPadding + titleHeight + spacing,
|
|
99
|
+
width: innerWidth,
|
|
100
|
+
height: statusHeight,
|
|
101
|
+
},
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Returns the iOS UIKit symbols we rely on if we're running on an iOS runtime
|
|
106
|
+
* with the metadata bridge available. Returns null on Android, web, or in
|
|
107
|
+
* tests so callers can gracefully fall back to the in-tree overlay.
|
|
108
|
+
*/
|
|
109
|
+
export function getIosOverlayHost() {
|
|
110
|
+
const g = getOverlayGlobal();
|
|
111
|
+
if (typeof g.UIWindow === 'undefined' || typeof g.UIApplication === 'undefined' || typeof g.UIViewController === 'undefined' || typeof g.UIView === 'undefined' || typeof g.UILabel === 'undefined' || typeof g.UIColor === 'undefined' || typeof g.UIFont === 'undefined' || typeof g.UIScreen === 'undefined') {
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
return {
|
|
115
|
+
UIWindow: g.UIWindow,
|
|
116
|
+
UIViewController: g.UIViewController,
|
|
117
|
+
UIView: g.UIView,
|
|
118
|
+
UILabel: g.UILabel,
|
|
119
|
+
UIColor: g.UIColor,
|
|
120
|
+
UIFont: g.UIFont,
|
|
121
|
+
UIApplication: g.UIApplication,
|
|
122
|
+
UIScreen: g.UIScreen,
|
|
123
|
+
UIWindowLevelAlert: typeof g.UIWindowLevelAlert === 'number' ? g.UIWindowLevelAlert : undefined,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Walks UIApplication.sharedApplication windows and returns the first active
|
|
128
|
+
* UIWindowScene we can locate. On iOS 13+ every UIWindow is attached to a
|
|
129
|
+
* scene, and we must initialise our overlay window the same way or the OS
|
|
130
|
+
* will silently refuse to render it. Returns null when no scene is found
|
|
131
|
+
* (older iOS versions or non-UI environments).
|
|
132
|
+
*/
|
|
133
|
+
function findActiveWindowScene(host) {
|
|
134
|
+
try {
|
|
135
|
+
const app = host.UIApplication.sharedApplication;
|
|
136
|
+
const windows = app?.windows;
|
|
137
|
+
if (!windows || typeof windows.count !== 'number')
|
|
138
|
+
return null;
|
|
139
|
+
for (let i = 0; i < windows.count; i++) {
|
|
140
|
+
const w = windows.objectAtIndex(i);
|
|
141
|
+
const scene = w && w.windowScene;
|
|
142
|
+
if (scene)
|
|
143
|
+
return scene;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
catch { }
|
|
147
|
+
return null;
|
|
148
|
+
}
|
|
149
|
+
function buildIosOverlayRefs(state) {
|
|
150
|
+
const host = getIosOverlayHost();
|
|
151
|
+
if (!host)
|
|
152
|
+
return null;
|
|
153
|
+
// Without a scene we can't build a modern UIWindow that actually renders.
|
|
154
|
+
// Fall back to the in-tree overlay rather than show nothing.
|
|
155
|
+
const scene = findActiveWindowScene(host);
|
|
156
|
+
if (!scene) {
|
|
157
|
+
if (state.verbose) {
|
|
158
|
+
console.info('[ns-hmr-overlay] no active UIWindowScene; skipping iOS overlay promotion');
|
|
159
|
+
}
|
|
160
|
+
return null;
|
|
161
|
+
}
|
|
162
|
+
try {
|
|
163
|
+
const { UIWindow, UIViewController, UIView, UILabel, UIColor, UIFont } = host;
|
|
164
|
+
const window = UIWindow.alloc().initWithWindowScene(scene);
|
|
165
|
+
window.windowLevel = computeIosOverlayWindowLevel(host.UIWindowLevelAlert ?? null);
|
|
166
|
+
window.backgroundColor = UIColor.clearColor;
|
|
167
|
+
window.hidden = true;
|
|
168
|
+
const controller = UIViewController.new();
|
|
169
|
+
controller.view.backgroundColor = UIColor.clearColor;
|
|
170
|
+
window.rootViewController = controller;
|
|
171
|
+
// UIViewAutoresizing bit masks. We mirror the UIKit constants here to
|
|
172
|
+
// avoid depending on symbols the metadata bridge does not always
|
|
173
|
+
// expose as top-level globals.
|
|
174
|
+
const FLEXIBLE_LEFT_MARGIN = 1 << 0;
|
|
175
|
+
const FLEXIBLE_WIDTH = 1 << 1;
|
|
176
|
+
const FLEXIBLE_RIGHT_MARGIN = 1 << 2;
|
|
177
|
+
const FLEXIBLE_TOP_MARGIN = 1 << 3;
|
|
178
|
+
const FLEXIBLE_HEIGHT = 1 << 4;
|
|
179
|
+
const FLEXIBLE_BOTTOM_MARGIN = 1 << 5;
|
|
180
|
+
const backdrop = UIView.new();
|
|
181
|
+
backdrop.backgroundColor = UIColor.colorWithRedGreenBlueAlpha(0, 0, 0, 0.35);
|
|
182
|
+
backdrop.autoresizingMask = FLEXIBLE_WIDTH | FLEXIBLE_HEIGHT;
|
|
183
|
+
controller.view.addSubview(backdrop);
|
|
184
|
+
const panel = UIView.new();
|
|
185
|
+
panel.backgroundColor = UIColor.whiteColor;
|
|
186
|
+
panel.autoresizingMask = FLEXIBLE_LEFT_MARGIN | FLEXIBLE_RIGHT_MARGIN | FLEXIBLE_TOP_MARGIN | FLEXIBLE_BOTTOM_MARGIN;
|
|
187
|
+
try {
|
|
188
|
+
panel.layer.cornerRadius = 14;
|
|
189
|
+
panel.layer.masksToBounds = true;
|
|
190
|
+
}
|
|
191
|
+
catch { }
|
|
192
|
+
controller.view.addSubview(panel);
|
|
193
|
+
const titleLabel = UILabel.new();
|
|
194
|
+
titleLabel.numberOfLines = 0;
|
|
195
|
+
titleLabel.textAlignment = 1; // NSTextAlignmentCenter
|
|
196
|
+
titleLabel.font = UIFont.boldSystemFontOfSize(16);
|
|
197
|
+
titleLabel.textColor = UIColor.blackColor;
|
|
198
|
+
panel.addSubview(titleLabel);
|
|
199
|
+
const statusLabel = UILabel.new();
|
|
200
|
+
statusLabel.numberOfLines = 0;
|
|
201
|
+
statusLabel.textAlignment = 1;
|
|
202
|
+
statusLabel.font = UIFont.systemFontOfSize(13);
|
|
203
|
+
statusLabel.textColor = UIColor.darkGrayColor;
|
|
204
|
+
panel.addSubview(statusLabel);
|
|
205
|
+
// Subtle drop-shadow so the toast chip reads against light app
|
|
206
|
+
// content (white-on-white is invisible). The error / centered
|
|
207
|
+
// branches still get the dim backdrop, so the shadow is mostly
|
|
208
|
+
// a no-op for them — but it's a one-time setup.
|
|
209
|
+
try {
|
|
210
|
+
panel.layer.shadowColor = UIColor.blackColor.CGColor;
|
|
211
|
+
panel.layer.shadowOpacity = 0.18;
|
|
212
|
+
panel.layer.shadowRadius = 8;
|
|
213
|
+
panel.layer.shadowOffset = { width: 0, height: 2 };
|
|
214
|
+
panel.layer.masksToBounds = false;
|
|
215
|
+
}
|
|
216
|
+
catch { }
|
|
217
|
+
// `wasVisible` / `currentPosition` are mutated by
|
|
218
|
+
// applySnapshotToIosRefs when the snapshot triggers a slide-in
|
|
219
|
+
// or slide-out. They start in the "hidden" state so the very
|
|
220
|
+
// first visible snapshot animates in cleanly.
|
|
221
|
+
return {
|
|
222
|
+
window,
|
|
223
|
+
controller,
|
|
224
|
+
backdrop,
|
|
225
|
+
panel,
|
|
226
|
+
titleLabel,
|
|
227
|
+
statusLabel,
|
|
228
|
+
wasVisible: false,
|
|
229
|
+
currentPosition: getHmrDevOverlayPosition(),
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
catch (err) {
|
|
233
|
+
console.warn('[ns-hmr-overlay] iOS overlay construction failed:', err?.message || err);
|
|
234
|
+
return null;
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
export function ensureIosOverlayRefs(state) {
|
|
238
|
+
if (state.iosRefs)
|
|
239
|
+
return state.iosRefs;
|
|
240
|
+
if (state.iosBuildFailed)
|
|
241
|
+
return null;
|
|
242
|
+
const built = buildIosOverlayRefs(state);
|
|
243
|
+
if (built) {
|
|
244
|
+
state.iosRefs = built;
|
|
245
|
+
}
|
|
246
|
+
else {
|
|
247
|
+
// Remember failure so we don't hammer construction on every snapshot
|
|
248
|
+
// update — the in-tree path will take over for this session.
|
|
249
|
+
state.iosBuildFailed = true;
|
|
250
|
+
}
|
|
251
|
+
return state.iosRefs;
|
|
252
|
+
}
|
|
253
|
+
function layoutIosOverlayRefs(refs, position) {
|
|
254
|
+
try {
|
|
255
|
+
const bounds = refs.controller.view.bounds;
|
|
256
|
+
const viewWidth = Number(bounds?.size?.width) || 0;
|
|
257
|
+
const viewHeight = Number(bounds?.size?.height) || 0;
|
|
258
|
+
const raw = refs.controller.view.safeAreaInsets;
|
|
259
|
+
const safeInsets = raw
|
|
260
|
+
? {
|
|
261
|
+
top: Number(raw.top) || 0,
|
|
262
|
+
bottom: Number(raw.bottom) || 0,
|
|
263
|
+
left: Number(raw.left) || 0,
|
|
264
|
+
right: Number(raw.right) || 0,
|
|
265
|
+
}
|
|
266
|
+
: { top: 0, bottom: 0, left: 0, right: 0 };
|
|
267
|
+
// Ask UIKit what the labels want given the panel inner width. We use a
|
|
268
|
+
// generous height bound so nothing clips on long reconnect strings.
|
|
269
|
+
const panelPadding = 16;
|
|
270
|
+
const horizontalMargin = 24;
|
|
271
|
+
const maxPanelWidth = 340;
|
|
272
|
+
const innerWidth = Math.max(0, Math.min(maxPanelWidth, viewWidth - 2 * horizontalMargin - safeInsets.left - safeInsets.right) - 2 * panelPadding);
|
|
273
|
+
const titleFit = refs.titleLabel.sizeThatFits({ width: innerWidth, height: 10000 }) || { height: 0 };
|
|
274
|
+
const statusFit = refs.statusLabel.sizeThatFits({ width: innerWidth, height: 10000 }) || { height: 0 };
|
|
275
|
+
const layout = computeIosOverlayLayout({
|
|
276
|
+
viewWidth,
|
|
277
|
+
viewHeight,
|
|
278
|
+
safeInsets,
|
|
279
|
+
titleHeight: Number(titleFit.height) || 0,
|
|
280
|
+
statusHeight: Number(statusFit.height) || 0,
|
|
281
|
+
maxPanelWidth,
|
|
282
|
+
horizontalMargin,
|
|
283
|
+
panelPadding,
|
|
284
|
+
position,
|
|
285
|
+
});
|
|
286
|
+
const toCgRect = (rect) => ({
|
|
287
|
+
origin: { x: rect.x, y: rect.y },
|
|
288
|
+
size: { width: rect.width, height: rect.height },
|
|
289
|
+
});
|
|
290
|
+
refs.backdrop.frame = toCgRect(layout.backdrop);
|
|
291
|
+
refs.panel.frame = toCgRect(layout.panel);
|
|
292
|
+
refs.titleLabel.frame = toCgRect(layout.title);
|
|
293
|
+
refs.statusLabel.frame = toCgRect(layout.status);
|
|
294
|
+
return layout;
|
|
295
|
+
}
|
|
296
|
+
catch (err) {
|
|
297
|
+
console.warn('[ns-hmr-overlay] iOS overlay layout failed:', err?.message || err);
|
|
298
|
+
return null;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Slide-in animation for the iOS toast panel. Off-screen start frame
|
|
303
|
+
* lives just above (top) or below (bottom) the visible area; the panel
|
|
304
|
+
* snaps to its target frame with a spring so the motion feels physical
|
|
305
|
+
* without the heavy "settle" overshoot of a hard spring (damping 0.85
|
|
306
|
+
* lands quickly with a small overshoot).
|
|
307
|
+
*/
|
|
308
|
+
function animateIosPanelIn(refs, position, layout) {
|
|
309
|
+
const g = getOverlayGlobal();
|
|
310
|
+
const UIView = g?.UIView;
|
|
311
|
+
if (!UIView)
|
|
312
|
+
return;
|
|
313
|
+
try {
|
|
314
|
+
const targetFrame = {
|
|
315
|
+
origin: { x: layout.panel.x, y: layout.panel.y },
|
|
316
|
+
size: { width: layout.panel.width, height: layout.panel.height },
|
|
317
|
+
};
|
|
318
|
+
// Off-screen start: distance includes a small fudge so the
|
|
319
|
+
// shadow blur tail isn't visible at t=0.
|
|
320
|
+
const startY = position === 'bottom' ? layout.backdrop.height + 24 : -(layout.panel.height + 24);
|
|
321
|
+
refs.panel.frame = {
|
|
322
|
+
origin: { x: layout.panel.x, y: startY },
|
|
323
|
+
size: { width: layout.panel.width, height: layout.panel.height },
|
|
324
|
+
};
|
|
325
|
+
refs.panel.alpha = 0;
|
|
326
|
+
try {
|
|
327
|
+
if (typeof UIView.animateWithDurationDelayUsingSpringWithDampingInitialSpringVelocityOptionsAnimationsCompletion === 'function') {
|
|
328
|
+
UIView.animateWithDurationDelayUsingSpringWithDampingInitialSpringVelocityOptionsAnimationsCompletion(0.42, 0, 0.85, 0.7, 0, () => {
|
|
329
|
+
refs.panel.frame = targetFrame;
|
|
330
|
+
refs.panel.alpha = 1;
|
|
331
|
+
}, null);
|
|
332
|
+
}
|
|
333
|
+
else if (typeof UIView.animateWithDurationAnimations === 'function') {
|
|
334
|
+
UIView.animateWithDurationAnimations(0.32, () => {
|
|
335
|
+
refs.panel.frame = targetFrame;
|
|
336
|
+
refs.panel.alpha = 1;
|
|
337
|
+
});
|
|
338
|
+
}
|
|
339
|
+
else {
|
|
340
|
+
refs.panel.frame = targetFrame;
|
|
341
|
+
refs.panel.alpha = 1;
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
catch {
|
|
345
|
+
refs.panel.frame = targetFrame;
|
|
346
|
+
refs.panel.alpha = 1;
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
catch { }
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* Slide-out animation for the iOS toast panel. Mirrors animateIosPanelIn:
|
|
353
|
+
* the panel travels to the nearest off-screen edge while fading out so
|
|
354
|
+
* the dismissal still feels intentional even on fast HMR cycles.
|
|
355
|
+
*/
|
|
356
|
+
function animateIosPanelOut(refs, position, onComplete) {
|
|
357
|
+
const g = getOverlayGlobal();
|
|
358
|
+
const UIView = g?.UIView;
|
|
359
|
+
const currentFrame = refs.panel?.frame;
|
|
360
|
+
if (!UIView || !currentFrame) {
|
|
361
|
+
onComplete();
|
|
362
|
+
return;
|
|
363
|
+
}
|
|
364
|
+
try {
|
|
365
|
+
const bounds = refs.controller?.view?.bounds;
|
|
366
|
+
const viewHeight = Number(bounds?.size?.height) || 0;
|
|
367
|
+
const targetY = position === 'bottom' ? viewHeight + 24 : -(Number(currentFrame.size?.height) + 24);
|
|
368
|
+
const startFrame = currentFrame;
|
|
369
|
+
const targetFrame = {
|
|
370
|
+
origin: { x: Number(startFrame.origin?.x) || 0, y: targetY },
|
|
371
|
+
size: startFrame.size,
|
|
372
|
+
};
|
|
373
|
+
try {
|
|
374
|
+
if (typeof UIView.animateWithDurationDelayOptionsAnimationsCompletion === 'function') {
|
|
375
|
+
// UIViewAnimationOptionCurveEaseIn = 1 << 16 — accelerate
|
|
376
|
+
// out so the dismissal doesn't drag on screen.
|
|
377
|
+
UIView.animateWithDurationDelayOptionsAnimationsCompletion(0.22, 0, 1 << 16, () => {
|
|
378
|
+
refs.panel.frame = targetFrame;
|
|
379
|
+
refs.panel.alpha = 0;
|
|
380
|
+
}, () => onComplete());
|
|
381
|
+
}
|
|
382
|
+
else if (typeof UIView.animateWithDurationAnimationsCompletion === 'function') {
|
|
383
|
+
UIView.animateWithDurationAnimationsCompletion(0.22, () => {
|
|
384
|
+
refs.panel.frame = targetFrame;
|
|
385
|
+
refs.panel.alpha = 0;
|
|
386
|
+
}, () => onComplete());
|
|
387
|
+
}
|
|
388
|
+
else {
|
|
389
|
+
refs.panel.alpha = 0;
|
|
390
|
+
onComplete();
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
catch {
|
|
394
|
+
refs.panel.alpha = 0;
|
|
395
|
+
onComplete();
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
catch {
|
|
399
|
+
onComplete();
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
export function applySnapshotToIosRefs(refs, snapshot) {
|
|
403
|
+
if (!refs)
|
|
404
|
+
return false;
|
|
405
|
+
try {
|
|
406
|
+
// 'update' mode rides the same dedicated UIWindow as
|
|
407
|
+
// 'connection' so the HMR apply overlay always stacks above
|
|
408
|
+
// modals/sheets/system alerts. The window is constructed
|
|
409
|
+
// lazily (ensureIosOverlayRefs) and reused for the lifetime of
|
|
410
|
+
// the dev session.
|
|
411
|
+
const visible = snapshot.visible && (snapshot.mode === 'connection' || snapshot.mode === 'update');
|
|
412
|
+
const wasVisible = !!refs.wasVisible;
|
|
413
|
+
const position = getHmrDevOverlayPosition();
|
|
414
|
+
const previousPosition = refs.currentPosition;
|
|
415
|
+
const isToast = position !== 'center';
|
|
416
|
+
// Touches pass through the overlay window in toast mode so
|
|
417
|
+
// the user can keep tapping the app while the HMR chip is
|
|
418
|
+
// shown. In centered mode we keep the blocking
|
|
419
|
+
// behaviour (the dim backdrop is itself a hint to wait).
|
|
420
|
+
try {
|
|
421
|
+
refs.window.userInteractionEnabled = !isToast;
|
|
422
|
+
}
|
|
423
|
+
catch { }
|
|
424
|
+
if (!visible) {
|
|
425
|
+
// Animate out before hiding the window so the dismissal
|
|
426
|
+
// has a discoverable motion. Only animate when previously
|
|
427
|
+
// visible and in toast mode — centered modal hides instantly.
|
|
428
|
+
if (wasVisible && isToast) {
|
|
429
|
+
animateIosPanelOut(refs, previousPosition, () => {
|
|
430
|
+
try {
|
|
431
|
+
refs.window.hidden = true;
|
|
432
|
+
}
|
|
433
|
+
catch { }
|
|
434
|
+
});
|
|
435
|
+
}
|
|
436
|
+
else {
|
|
437
|
+
refs.window.hidden = true;
|
|
438
|
+
}
|
|
439
|
+
refs.wasVisible = false;
|
|
440
|
+
refs.currentPosition = position;
|
|
441
|
+
return true;
|
|
442
|
+
}
|
|
443
|
+
refs.window.hidden = false;
|
|
444
|
+
refs.titleLabel.text = snapshot.title || '';
|
|
445
|
+
refs.statusLabel.text = formatStatusText(snapshot);
|
|
446
|
+
const host = getIosOverlayHost();
|
|
447
|
+
if (host) {
|
|
448
|
+
const { UIColor } = host;
|
|
449
|
+
const isError = snapshot.tone === 'error';
|
|
450
|
+
const isSuccess = snapshot.tone === 'success';
|
|
451
|
+
try {
|
|
452
|
+
if (isError) {
|
|
453
|
+
// Red panel + dark red text (existing UX).
|
|
454
|
+
refs.panel.backgroundColor = UIColor.colorWithRedGreenBlueAlpha(1, 0.96, 0.96, 1);
|
|
455
|
+
refs.titleLabel.textColor = UIColor.colorWithRedGreenBlueAlpha(0.7, 0.1, 0.06, 1);
|
|
456
|
+
refs.statusLabel.textColor = UIColor.colorWithRedGreenBlueAlpha(0.7, 0.1, 0.06, 0.9);
|
|
457
|
+
}
|
|
458
|
+
else if (isSuccess) {
|
|
459
|
+
// Slightly more saturated green panel + dark-green
|
|
460
|
+
// text. The previous 0.94/0.99/0.95 background was
|
|
461
|
+
// nearly indistinguishable from white on most
|
|
462
|
+
// devices; this bump keeps long detail strings
|
|
463
|
+
// readable while making the apply event obviously
|
|
464
|
+
// "happening right now".
|
|
465
|
+
refs.panel.backgroundColor = UIColor.colorWithRedGreenBlueAlpha(0.9, 0.97, 0.91, 1);
|
|
466
|
+
refs.titleLabel.textColor = UIColor.colorWithRedGreenBlueAlpha(0.05, 0.43, 0.18, 1);
|
|
467
|
+
refs.statusLabel.textColor = UIColor.colorWithRedGreenBlueAlpha(0.05, 0.43, 0.18, 1);
|
|
468
|
+
}
|
|
469
|
+
else {
|
|
470
|
+
// Default (info / warn) — existing connection look.
|
|
471
|
+
refs.panel.backgroundColor = UIColor.whiteColor;
|
|
472
|
+
refs.titleLabel.textColor = UIColor.blackColor;
|
|
473
|
+
refs.statusLabel.textColor = UIColor.darkGrayColor;
|
|
474
|
+
}
|
|
475
|
+
// Backdrop dims only in centered mode; toast mode keeps
|
|
476
|
+
// the rest of the app fully visible/usable. Errors get
|
|
477
|
+
// a slightly stronger dim in centered mode because the
|
|
478
|
+
// user MUST notice them.
|
|
479
|
+
if (isToast) {
|
|
480
|
+
refs.backdrop.backgroundColor = UIColor.clearColor;
|
|
481
|
+
}
|
|
482
|
+
else if (isError) {
|
|
483
|
+
refs.backdrop.backgroundColor = UIColor.colorWithRedGreenBlueAlpha(0, 0, 0, 0.35);
|
|
484
|
+
}
|
|
485
|
+
else if (isSuccess) {
|
|
486
|
+
refs.backdrop.backgroundColor = UIColor.colorWithRedGreenBlueAlpha(0, 0.15, 0.05, 0.28);
|
|
487
|
+
}
|
|
488
|
+
else {
|
|
489
|
+
refs.backdrop.backgroundColor = UIColor.colorWithRedGreenBlueAlpha(0, 0, 0, 0.35);
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
catch { }
|
|
493
|
+
}
|
|
494
|
+
const layout = layoutIosOverlayRefs(refs, position);
|
|
495
|
+
// Slide-in animation only fires on the actual hidden→visible
|
|
496
|
+
// transition (or on a position swap — e.g. dev toggling top
|
|
497
|
+
// to bottom mid-cycle). Subsequent updates within the same
|
|
498
|
+
// visible cycle just refresh text/colours without re-animating.
|
|
499
|
+
const positionChanged = previousPosition !== position;
|
|
500
|
+
const justAppeared = !wasVisible || positionChanged;
|
|
501
|
+
if (justAppeared && isToast && layout) {
|
|
502
|
+
animateIosPanelIn(refs, position, layout);
|
|
503
|
+
}
|
|
504
|
+
else if (justAppeared && !isToast) {
|
|
505
|
+
// Centered modal: ensure alpha is reset to 1 in case a
|
|
506
|
+
// previous toast-mode dismissal left it at 0.
|
|
507
|
+
try {
|
|
508
|
+
refs.panel.alpha = 1;
|
|
509
|
+
}
|
|
510
|
+
catch { }
|
|
511
|
+
}
|
|
512
|
+
refs.wasVisible = true;
|
|
513
|
+
refs.currentPosition = position;
|
|
514
|
+
return true;
|
|
515
|
+
}
|
|
516
|
+
catch (err) {
|
|
517
|
+
console.warn('[ns-hmr-overlay] iOS overlay apply failed:', err?.message || err);
|
|
518
|
+
return false;
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
//# sourceMappingURL=dev-overlay-ios.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev-overlay-ios.js","sourceRoot":"","sources":["../../../../../../packages/vite/hmr/shared/runtime/dev-overlay-ios.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internals shared by the dev-overlay backends (boot placeholder, in-tree
|
|
3
|
+
* live overlay, iOS UIWindow overlay): the per-session runtime state held on
|
|
4
|
+
* `globalThis`, core-class resolution that respects the realm rule, and
|
|
5
|
+
* snapshot/text formatting. Not part of the public overlay API — import
|
|
6
|
+
* `dev-overlay.ts` for that.
|
|
7
|
+
*/
|
|
8
|
+
import { type HmrOverlayPosition, type HmrOverlaySnapshot } from './dev-overlay-snapshots.js';
|
|
9
|
+
export type BootOverlayRefs = {
|
|
10
|
+
page: any;
|
|
11
|
+
root: any;
|
|
12
|
+
titleLabel: any;
|
|
13
|
+
statusLabel: any;
|
|
14
|
+
activityIndicator?: any;
|
|
15
|
+
};
|
|
16
|
+
export type LiveOverlayRefs = {
|
|
17
|
+
page: any;
|
|
18
|
+
wrapper: any;
|
|
19
|
+
overlay: any;
|
|
20
|
+
titleLabel: any;
|
|
21
|
+
statusLabel: any;
|
|
22
|
+
wasVisible: boolean;
|
|
23
|
+
currentPosition: HmrOverlayPosition;
|
|
24
|
+
};
|
|
25
|
+
export type IosOverlayRefs = {
|
|
26
|
+
window: any;
|
|
27
|
+
controller: any;
|
|
28
|
+
backdrop: any;
|
|
29
|
+
panel: any;
|
|
30
|
+
titleLabel: any;
|
|
31
|
+
statusLabel: any;
|
|
32
|
+
wasVisible: boolean;
|
|
33
|
+
currentPosition: HmrOverlayPosition;
|
|
34
|
+
};
|
|
35
|
+
export type HmrOverlayRuntimeState = {
|
|
36
|
+
snapshot: HmrOverlaySnapshot;
|
|
37
|
+
bootRefs: BootOverlayRefs | null;
|
|
38
|
+
liveRefs: LiveOverlayRefs | null;
|
|
39
|
+
iosRefs: IosOverlayRefs | null;
|
|
40
|
+
iosBuildFailed: boolean;
|
|
41
|
+
verbose: boolean;
|
|
42
|
+
updateAutoHideTimer: ReturnType<typeof setTimeout> | null;
|
|
43
|
+
updateCycleStartedAt: number;
|
|
44
|
+
};
|
|
45
|
+
export declare function getOverlayGlobal(): any;
|
|
46
|
+
/**
|
|
47
|
+
* Resolve the configured live-overlay position.
|
|
48
|
+
*
|
|
49
|
+
* Reads `globalThis.__NS_HMR_OVERLAY_POSITION__` so a project can
|
|
50
|
+
* override the default at boot time (e.g. inside `app.ts` before the
|
|
51
|
+
* Vite session bootstraps). Falls back to 'top' which gives the
|
|
52
|
+
* toast-style chip with a slide-in animation and safe-area padding.
|
|
53
|
+
*/
|
|
54
|
+
export declare function getHmrDevOverlayPosition(): HmrOverlayPosition;
|
|
55
|
+
export declare function getRuntimeState(): HmrOverlayRuntimeState;
|
|
56
|
+
export declare function resolveCoreExport(name: string): any;
|
|
57
|
+
export declare function asColor(value: string): any;
|
|
58
|
+
export declare function formatStatusText(snapshot: HmrOverlaySnapshot): string;
|