@nativescript/vite 8.0.0-beta.0 → 8.0.0-rc.0
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 +73 -14
- package/bin/cli.cjs +8 -14
- package/configuration/angular.d.ts +35 -2
- package/configuration/angular.js +541 -216
- package/configuration/angular.js.map +1 -1
- package/configuration/base.js +227 -77
- package/configuration/base.js.map +1 -1
- package/configuration/javascript.js +17 -96
- package/configuration/javascript.js.map +1 -1
- package/configuration/react.js +41 -73
- package/configuration/react.js.map +1 -1
- package/configuration/solid.js +58 -6
- package/configuration/solid.js.map +1 -1
- package/configuration/typescript.js +15 -96
- 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/commonjs-plugins.d.ts +5 -2
- package/helpers/commonjs-plugins.js +126 -0
- package/helpers/commonjs-plugins.js.map +1 -1
- package/helpers/config-as-json.js +10 -0
- package/helpers/config-as-json.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.d.ts +2 -1
- package/helpers/dynamic-import-plugin.js +59 -53
- package/helpers/dynamic-import-plugin.js.map +1 -1
- package/helpers/esbuild-platform-resolver.js +9 -6
- package/helpers/esbuild-platform-resolver.js.map +1 -1
- package/helpers/external-configs.d.ts +10 -4
- package/helpers/external-configs.js +63 -15
- package/helpers/external-configs.js.map +1 -1
- package/helpers/flavor.d.ts +13 -0
- package/helpers/flavor.js +18 -1
- package/helpers/flavor.js.map +1 -1
- package/helpers/global-defines.d.ts +117 -0
- package/helpers/global-defines.js +209 -11
- 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/import-meta-path.d.ts +4 -0
- package/helpers/import-meta-path.js +5 -0
- package/helpers/import-meta-path.js.map +1 -0
- package/helpers/import-specifier.d.ts +1 -0
- package/helpers/import-specifier.js +18 -0
- package/helpers/import-specifier.js.map +1 -0
- package/helpers/init.js +6 -20
- package/helpers/init.js.map +1 -1
- package/helpers/logging.d.ts +1 -0
- package/helpers/logging.js +65 -4
- package/helpers/logging.js.map +1 -1
- package/helpers/main-entry.d.ts +8 -2
- package/helpers/main-entry.js +622 -120
- 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 +42 -131
- package/helpers/nativeclass-transform.js.map +1 -1
- package/helpers/nativeclass-transformer-plugin.d.ts +19 -1
- package/helpers/nativeclass-transformer-plugin.js +324 -37
- 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 +106 -0
- package/helpers/ns-core-url.js +225 -0
- package/helpers/ns-core-url.js.map +1 -0
- 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 +312 -13
- package/helpers/workers.js.map +1 -1
- package/hmr/client/css-handler.d.ts +2 -1
- package/hmr/client/css-handler.js +95 -23
- 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 +13 -0
- package/hmr/client/hmr-pending-overlay.js +41 -0
- package/hmr/client/hmr-pending-overlay.js.map +1 -0
- 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 +91 -1418
- 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 +100 -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 +14 -1
- package/hmr/client/utils.js +265 -54
- 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 +11 -0
- package/hmr/entry-runtime.js +566 -43
- 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/hmr/frameworks/angular/build/inline-decorator-component-templates.d.ts +3 -0
- package/hmr/frameworks/angular/build/inline-decorator-component-templates.js +231 -0
- 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/hmr/frameworks/angular/build/js-lexer.js +182 -0
- 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.d.ts +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/hmr/frameworks/angular/build/synthesize-injectable-factories.d.ts +3 -0
- package/hmr/frameworks/angular/build/synthesize-injectable-factories.js +241 -0
- 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 +2 -1
- package/hmr/frameworks/angular/client/index.js +637 -23
- 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 +37 -6
- 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 +697 -18
- package/hmr/frameworks/angular/server/strategy.js.map +1 -1
- package/hmr/frameworks/angular/server/websocket-angular-entry.d.ts +2 -0
- package/hmr/frameworks/angular/server/websocket-angular-entry.js +68 -0
- package/hmr/frameworks/angular/server/websocket-angular-entry.js.map +1 -0
- package/hmr/frameworks/angular/server/websocket-angular-hot-update.d.ts +94 -0
- package/hmr/frameworks/angular/server/websocket-angular-hot-update.js +485 -0
- 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 +48 -16
- 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 +131 -24
- 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.d.ts +1 -0
- package/hmr/server/constants.js +21 -4
- 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 +130 -4
- package/hmr/server/core-sanitize.js +393 -32
- 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 +99 -0
- package/hmr/server/import-map.js +294 -0
- package/hmr/server/import-map.js.map +1 -0
- package/hmr/server/index.d.ts +2 -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.d.ts +204 -0
- package/hmr/server/ns-core-cjs-shape.js +271 -0
- package/hmr/server/ns-core-cjs-shape.js.map +1 -0
- 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 +114 -0
- package/hmr/server/perf-instrumentation.js +197 -0
- package/hmr/server/perf-instrumentation.js.map +1 -0
- 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.d.ts +5 -0
- package/hmr/server/runtime-graph-filter.js +28 -0
- package/hmr/server/runtime-graph-filter.js.map +1 -0
- 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.d.ts +12 -0
- package/hmr/server/shared-transform-request.js +143 -0
- package/hmr/server/shared-transform-request.js.map +1 -0
- 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 +22 -1
- package/hmr/server/vite-plugin.js +655 -58
- package/hmr/server/vite-plugin.js.map +1 -1
- package/hmr/server/websocket-core-bridge.d.ts +68 -0
- package/hmr/server/websocket-core-bridge.js +370 -0
- package/hmr/server/websocket-core-bridge.js.map +1 -0
- 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-graph-upsert.d.ts +21 -0
- package/hmr/server/websocket-graph-upsert.js +33 -0
- package/hmr/server/websocket-graph-upsert.js.map +1 -0
- package/hmr/server/websocket-hmr-pending.d.ts +29 -0
- package/hmr/server/websocket-hmr-pending.js +33 -0
- package/hmr/server/websocket-hmr-pending.js.map +1 -0
- 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 +21 -0
- package/hmr/server/websocket-module-bindings.js +504 -0
- package/hmr/server/websocket-module-bindings.js.map +1 -0
- package/hmr/server/websocket-module-specifiers.d.ts +96 -0
- package/hmr/server/websocket-module-specifiers.js +819 -0
- package/hmr/server/websocket-module-specifiers.js.map +1 -0
- 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 +163 -0
- package/hmr/server/websocket-ns-entry.js.map +1 -0
- package/hmr/server/websocket-ns-m-paths.d.ts +19 -0
- package/hmr/server/websocket-ns-m-paths.js +115 -0
- package/hmr/server/websocket-ns-m-paths.js.map +1 -0
- package/hmr/server/websocket-ns-m-request.d.ts +46 -0
- package/hmr/server/websocket-ns-m-request.js +197 -0
- package/hmr/server/websocket-ns-m-request.js.map +1 -0
- 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 +89 -0
- package/hmr/server/websocket-served-module-helpers.js +935 -0
- package/hmr/server/websocket-served-module-helpers.js.map +1 -0
- package/hmr/server/websocket-txn.d.ts +6 -0
- package/hmr/server/websocket-txn.js +42 -0
- package/hmr/server/websocket-txn.js.map +1 -0
- package/hmr/server/websocket-vendor-unifier.d.ts +9 -0
- package/hmr/server/websocket-vendor-unifier.js +46 -0
- package/hmr/server/websocket-vendor-unifier.js.map +1 -0
- package/hmr/server/websocket.d.ts +7 -17
- package/hmr/server/websocket.js +723 -5376
- package/hmr/server/websocket.js.map +1 -1
- package/hmr/shared/ns-globals.d.ts +107 -0
- package/hmr/shared/ns-globals.js +29 -0
- package/hmr/shared/ns-globals.js.map +1 -0
- package/hmr/shared/package-classifier.d.ts +9 -0
- package/hmr/shared/package-classifier.js +58 -0
- package/hmr/shared/package-classifier.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 +17 -0
- package/hmr/shared/runtime/boot-timeline.js +40 -0
- package/hmr/shared/runtime/boot-timeline.js.map +1 -0
- package/hmr/shared/runtime/browser-runtime-contract.d.ts +97 -0
- package/hmr/shared/runtime/browser-runtime-contract.js +66 -0
- package/hmr/shared/runtime/browser-runtime-contract.js.map +1 -0
- 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 +39 -0
- package/hmr/shared/runtime/dev-overlay.js +292 -0
- package/hmr/shared/runtime/dev-overlay.js.map +1 -0
- 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.d.ts +1 -0
- package/hmr/shared/runtime/module-provenance.js +64 -0
- package/hmr/shared/runtime/module-provenance.js.map +1 -0
- 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/platform-polyfills.d.ts +26 -0
- package/hmr/shared/runtime/platform-polyfills.js +122 -0
- package/hmr/shared/runtime/platform-polyfills.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.d.ts +1 -0
- package/hmr/shared/runtime/root-placeholder.js +778 -83
- package/hmr/shared/runtime/root-placeholder.js.map +1 -1
- package/hmr/shared/runtime/session-bootstrap.d.ts +1 -0
- package/hmr/shared/runtime/session-bootstrap.js +350 -0
- package/hmr/shared/runtime/session-bootstrap.js.map +1 -0
- package/hmr/shared/runtime/vendor-bootstrap.js +54 -16
- 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/runtime/worker-tracking.d.ts +28 -0
- package/hmr/shared/runtime/worker-tracking.js +114 -0
- package/hmr/shared/runtime/worker-tracking.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 -0
- package/hmr/shared/vendor/manifest.js +341 -545
- package/hmr/shared/vendor/manifest.js.map +1 -1
- package/hmr/shared/vendor/registry.d.ts +2 -0
- package/hmr/shared/vendor/registry.js +118 -7
- 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 +76 -14
- package/runtime/core-aliases-early.js +103 -81
- 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/shims/solid-jsx-runtime.d.ts +7 -0
- package/shims/solid-jsx-runtime.js +17 -0
- package/shims/solid-jsx-runtime.js.map +1 -0
- package/helpers/angular/angular-linker.d.ts +0 -13
- package/helpers/angular/angular-linker.js +0 -189
- package/helpers/angular/angular-linker.js.map +0 -1
- package/helpers/angular/shared-linker.d.ts +0 -4
- package/helpers/angular/shared-linker.js +0 -39
- package/helpers/angular/shared-linker.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/shared/runtime/http-only-boot.d.ts +0 -1
- package/hmr/shared/runtime/http-only-boot.js +0 -124
- 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
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';
|
|
2
|
+
import { fileURLToPath } from 'node:url';
|
|
3
|
+
import { existsSync, readFileSync } from 'fs';
|
|
4
|
+
import * as path from 'path';
|
|
5
|
+
import babelCore from '@babel/core';
|
|
6
|
+
import { getPackageJson, getProjectFilePath } from '../../helpers/project.js';
|
|
7
|
+
import { REQUIRE_GUARD_SNIPPET } from './require-guard.js';
|
|
8
|
+
import { setDeviceModuleHeaders } from './route-helpers.js';
|
|
9
|
+
import { getServerOrigin } from './server-origin.js';
|
|
10
|
+
// Lazily loaded only for the source-tree fallback below (transform
|
|
11
|
+
// entry-runtime.ts on the fly when the built .js isn't present).
|
|
12
|
+
const pluginTransformTypescript = (() => {
|
|
13
|
+
const requireFromHere = createRequire(import.meta.url);
|
|
14
|
+
const loaded = requireFromHere('@babel/plugin-transform-typescript');
|
|
15
|
+
return loaded?.default || loaded;
|
|
16
|
+
})();
|
|
17
|
+
/**
|
|
18
|
+
* Registers the device bootstrap endpoints:
|
|
19
|
+
* - `GET /ns/entry-rt[?v=<ver>]` — serves the compiled entry runtime module
|
|
20
|
+
* (built `entry-runtime.js`, or a transformed `entry-runtime.ts` fallback), and
|
|
21
|
+
* - `GET /ns/entry[/<ver>]` — a script-safe wrapper that fetches the entry
|
|
22
|
+
* runtime and starts the app with `{ origin, main, ver }`.
|
|
23
|
+
*/
|
|
24
|
+
export function registerNsEntryRoutes(server, options) {
|
|
25
|
+
const verbose = options.verbose;
|
|
26
|
+
const APP_ROOT_DIR = options.appRootDir;
|
|
27
|
+
const DEFAULT_MAIN_ENTRY = options.defaultMainEntry;
|
|
28
|
+
const DEFAULT_MAIN_ENTRY_VIRTUAL = options.defaultMainEntryVirtual;
|
|
29
|
+
const getGraphVersion = options.getGraphVersion;
|
|
30
|
+
// The compiled entry runtime is static for a dev-server session (a package
|
|
31
|
+
// rebuild restarts the server), so read/transform it once and reuse — avoids a
|
|
32
|
+
// `readFileSync` (and, in a source-tree checkout, a synchronous Babel
|
|
33
|
+
// transform) on every device boot.
|
|
34
|
+
let cachedEntryRtContent = null;
|
|
35
|
+
// 2.6a) Serve compiled entry runtime module: GET /ns/entry-rt[?v=<ver>]
|
|
36
|
+
server.middlewares.use(async (req, res, next) => {
|
|
37
|
+
try {
|
|
38
|
+
const urlObj = new URL(req.url || '', 'http://localhost');
|
|
39
|
+
if (!(urlObj.pathname === '/ns/entry-rt'))
|
|
40
|
+
return next();
|
|
41
|
+
if (verbose) {
|
|
42
|
+
const ra = req.socket?.remoteAddress;
|
|
43
|
+
const rp = req.socket?.remotePort;
|
|
44
|
+
console.log('[hmr-http] GET /ns/entry-rt from', ra + (rp ? ':' + rp : ''));
|
|
45
|
+
}
|
|
46
|
+
setDeviceModuleHeaders(res);
|
|
47
|
+
let content = cachedEntryRtContent || '';
|
|
48
|
+
if (!content) {
|
|
49
|
+
try {
|
|
50
|
+
const _req = createRequire(import.meta.url);
|
|
51
|
+
const entryRtPath = _req.resolve('@nativescript/vite/hmr/entry-runtime.js');
|
|
52
|
+
content = readFileSync(entryRtPath, 'utf-8');
|
|
53
|
+
}
|
|
54
|
+
catch (e) {
|
|
55
|
+
// .js not found (source tree without build) — transform .ts on the fly
|
|
56
|
+
try {
|
|
57
|
+
// fileURLToPath (not `new URL(...).pathname`) so the `/C:/…`
|
|
58
|
+
// leading-slash on Windows file URLs doesn't break the lookup.
|
|
59
|
+
const tsPath = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '..', 'entry-runtime.ts');
|
|
60
|
+
if (existsSync(tsPath)) {
|
|
61
|
+
const tsSource = readFileSync(tsPath, 'utf-8');
|
|
62
|
+
const result = babelCore.transformSync(tsSource, {
|
|
63
|
+
filename: tsPath,
|
|
64
|
+
plugins: [[pluginTransformTypescript, { isTSX: false, allowDeclareFields: true }]],
|
|
65
|
+
sourceType: 'module',
|
|
66
|
+
});
|
|
67
|
+
if (result?.code) {
|
|
68
|
+
content = result.code;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
catch (e2) {
|
|
73
|
+
if (verbose)
|
|
74
|
+
console.warn('[hmr-http] entry-runtime.ts transform failed', e2);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
// Cache only successful content; never cache the not-found fallback stub.
|
|
78
|
+
if (content) {
|
|
79
|
+
cachedEntryRtContent = content;
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
content = 'export default async function start(){ console.error("[/ns/entry-rt] not found"); }\n';
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
if (verbose)
|
|
86
|
+
console.log('[hmr-http] /ns/entry-rt serving', content.length, 'bytes');
|
|
87
|
+
res.statusCode = 200;
|
|
88
|
+
res.end(content);
|
|
89
|
+
}
|
|
90
|
+
catch (e) {
|
|
91
|
+
console.warn('[hmr-http] /ns/entry-rt error', e);
|
|
92
|
+
next();
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
// 2.6b) HTTP-only app entry endpoint: GET /ns/entry[/<ver>]
|
|
96
|
+
// Thin wrapper that imports the compiled entry runtime and starts it with parameters.
|
|
97
|
+
server.middlewares.use(async (req, res, next) => {
|
|
98
|
+
try {
|
|
99
|
+
const urlObj = new URL(req.url || '', 'http://localhost');
|
|
100
|
+
if (!(urlObj.pathname === '/ns/entry' || /^\/ns\/entry\/[\d]+$/.test(urlObj.pathname)))
|
|
101
|
+
return next();
|
|
102
|
+
try {
|
|
103
|
+
if (verbose) {
|
|
104
|
+
const ra = req.socket?.remoteAddress;
|
|
105
|
+
const rp = req.socket?.remotePort;
|
|
106
|
+
console.log('[hmr-http] GET /ns/entry from', ra + (rp ? ':' + rp : ''));
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
catch { }
|
|
110
|
+
const verSeg = urlObj.pathname.replace(/^\/ns\/entry\/?/, '');
|
|
111
|
+
// A JavaScript MIME is required: the runtime refuses to evaluate a
|
|
112
|
+
// module response that carries none.
|
|
113
|
+
setDeviceModuleHeaders(res);
|
|
114
|
+
const ver = /^[0-9]+$/.test(verSeg) ? verSeg : String(getGraphVersion() || 0);
|
|
115
|
+
const origin = getServerOrigin(server) || `${urlObj.protocol}//${urlObj.host}`;
|
|
116
|
+
// Resolve app main entry to an absolute path-like key used by /ns/m
|
|
117
|
+
let mainEntry = '/';
|
|
118
|
+
try {
|
|
119
|
+
const pkg = getPackageJson();
|
|
120
|
+
const main = pkg?.main || DEFAULT_MAIN_ENTRY;
|
|
121
|
+
const abs = getProjectFilePath(main).replace(/\\/g, '/');
|
|
122
|
+
// Normalize to '/app/...'
|
|
123
|
+
const marker = `/${APP_ROOT_DIR}/`;
|
|
124
|
+
const idx = abs.indexOf(marker);
|
|
125
|
+
mainEntry = idx >= 0 ? abs.substring(idx) : DEFAULT_MAIN_ENTRY_VIRTUAL;
|
|
126
|
+
}
|
|
127
|
+
catch { }
|
|
128
|
+
// Build a tiny wrapper that imports the compiled entry runtime from the dev server
|
|
129
|
+
let code = REQUIRE_GUARD_SNIPPET +
|
|
130
|
+
`// [ns-entry][v${ver}] wrapper (script-safe) bytes will follow\n` +
|
|
131
|
+
`(async function(){\n` +
|
|
132
|
+
` let origin = ${JSON.stringify(origin)}; const main = ${JSON.stringify(mainEntry)}; const __ns_graph_ver = ${JSON.stringify(ver)};\n` +
|
|
133
|
+
` try { const __b = (globalThis && globalThis.__NS_ENTRY_BASE__) ? String(globalThis.__NS_ENTRY_BASE__) : ''; if (__b) { try { const __o = new URL(__b).origin; if (__o) origin = __o; } catch {} } } catch {}\n` +
|
|
134
|
+
` const __VERBOSE__ = (typeof __NS_ENV_VERBOSE__ !== 'undefined' && __NS_ENV_VERBOSE__) || (globalThis && globalThis.process && globalThis.process.env && globalThis.process.env.verbose) || (globalThis && globalThis.__NS_ENV_VERBOSE__) || ${JSON.stringify(!!verbose)};\n` +
|
|
135
|
+
` if (__VERBOSE__) console.info('[ns-entry][wrapper] start', { origin, main, ver: __ns_graph_ver });\n` +
|
|
136
|
+
` async function __ns_import_entry_rt(u){\n` +
|
|
137
|
+
` // Prefer fetch+eval script transformation to avoid module import limitations on device\n` +
|
|
138
|
+
` try { const r = await fetch(u); const t = await r.text(); if (__VERBOSE__) console.info('[ns-entry][wrapper] entry-rt fetched bytes', (t&&t.length)||0);\n` +
|
|
139
|
+
` // Transform 'export default function' or 'export default async function' into global assignment\n` +
|
|
140
|
+
` let s = t.replace(/export\\s+default\\s+async\\s+function\\s+([A-Za-z0-9_$]+)?/,'globalThis.__NS_START_ENTRY__=async function $1')\n` +
|
|
141
|
+
` .replace(/export\\s+default\\s+function\\s+([A-Za-z0-9_$]+)?/,'globalThis.__NS_START_ENTRY__=function $1');\n` +
|
|
142
|
+
` // Fallback: if function-form replacements didn't run, handle expression default export too\n` +
|
|
143
|
+
` if (String(s).indexOf('__NS_START_ENTRY__') === -1) { s = 'globalThis.__NS_START_ENTRY__=' + s.replace(/export\\s+default\\s*/,''); }\n` +
|
|
144
|
+
` try { (0,eval)(s); } catch (ee) { console.error('[ns-entry][wrapper] eval entry-rt failed', ee && (ee.message||ee)); throw ee; }\n` +
|
|
145
|
+
` const fn = globalThis.__NS_START_ENTRY__; if (!fn) { throw new Error('entry-rt missing __NS_START_ENTRY__'); }\n` +
|
|
146
|
+
` return { default: fn };\n` +
|
|
147
|
+
` } catch(e) { console.error('[ns-entry][wrapper] entry-rt fetch/eval failed', e && (e.message||e)); throw e; }\n` +
|
|
148
|
+
` }\n` +
|
|
149
|
+
` const __entryRtUrl = '/ns/entry-rt?v=' + String(__ns_graph_ver);\n` +
|
|
150
|
+
` let __mod; try { __mod = await __ns_import_entry_rt(__entryRtUrl); if (__VERBOSE__) console.info('[ns-entry][wrapper] entry-rt ready'); } catch (e) { console.error('[ns-entry][wrapper] failed to prepare entry-rt', e && (e.message||e)); throw e; }\n` +
|
|
151
|
+
` const startEntry = (__mod && (__mod.default || __mod));\n` +
|
|
152
|
+
` try { await startEntry({ origin, main, ver: __ns_graph_ver, verbose: !!__VERBOSE__ }); if (__VERBOSE__) console.info('[ns-entry][wrapper] startEntry() resolved'); } catch (e) { console.error('[ns-entry][wrapper] startEntry() failed', e && (e.message||e)); throw e; }\n` +
|
|
153
|
+
`})();\n`;
|
|
154
|
+
code = code + `\n//# sourceURL=${origin}/ns/entry`;
|
|
155
|
+
res.statusCode = 200;
|
|
156
|
+
res.end(code);
|
|
157
|
+
}
|
|
158
|
+
catch (e) {
|
|
159
|
+
next();
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=websocket-ns-entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket-ns-entry.js","sourceRoot":"","sources":["../../../../../packages/vite/hmr/server/websocket-ns-entry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare function canonicalizeNsMImportPath(p: string): string;
|
|
2
|
+
export interface InboundLegacyNsMSpec {
|
|
3
|
+
cleanedSpec: string;
|
|
4
|
+
bootTaggedRequest: boolean;
|
|
5
|
+
forcedVer: string | null;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Single seam for BOTH directions of legacy `/ns/m` tag handling:
|
|
9
|
+
*
|
|
10
|
+
* - `'inbound-request-spec'`: strip `__ns_boot__`/`__ns_hmr__` decorations
|
|
11
|
+
* from a raw request spec, reporting what was stripped.
|
|
12
|
+
* - `'outbound-served-code'`: collapse every emitted `/ns/m` URL in served
|
|
13
|
+
* code to its canonical stable form (requires `origin`).
|
|
14
|
+
*
|
|
15
|
+
* Current servers never EMIT tags; both directions exist purely to tolerate
|
|
16
|
+
* stale cached device code.
|
|
17
|
+
*/
|
|
18
|
+
export declare function collapseLegacyNsMTags(value: string, mode: 'inbound-request-spec'): InboundLegacyNsMSpec;
|
|
19
|
+
export declare function collapseLegacyNsMTags(value: string, mode: 'outbound-served-code', origin: string): string;
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
// Stable URL + explicit invalidation contract for `/ns/m/...` modules.
|
|
2
|
+
//
|
|
3
|
+
// Older versions emitted `/ns/m/__ns_hmr__/v<N>/<rel>` (and, for cold boot,
|
|
4
|
+
// `/ns/m/__ns_boot__/b1/<rel>`) URLs in served modules so that V8's HTTP
|
|
5
|
+
// module cache would see a fresh URL on each save and so that the server
|
|
6
|
+
// could detect boot-time requests. Both decorations are gone:
|
|
7
|
+
//
|
|
8
|
+
// - Freshness is driven by explicit eviction: the client calls
|
|
9
|
+
// ns:module `invalidateModules(urls)` with the server-computed eviction set,
|
|
10
|
+
// and the iOS runtime pairs that with an eviction-driven fetch nonce
|
|
11
|
+
// that defeats CFNetwork's HTTP cache. URLs stay STABLE across saves —
|
|
12
|
+
// module identity IS the canonical URL.
|
|
13
|
+
// - Boot-progress instrumentation is injected self-gating into every
|
|
14
|
+
// served /ns/m module (the snippet no-ops once
|
|
15
|
+
// `__NS_HMR_BOOT_COMPLETE__` flips), so no boot tag is needed.
|
|
16
|
+
//
|
|
17
|
+
// `canonicalizeNsMImportPath` collapses any tagged inbound URL shape
|
|
18
|
+
// (stale served code still cached on a device) back to the canonical
|
|
19
|
+
// stable form.
|
|
20
|
+
export function canonicalizeNsMImportPath(p) {
|
|
21
|
+
if (!p || !p.startsWith('/ns/m/')) {
|
|
22
|
+
return p;
|
|
23
|
+
}
|
|
24
|
+
// Collapse tagged boot+hmr, hmr-only, or boot-only prefixes back to the
|
|
25
|
+
// canonical `/ns/m/<rest>` form. Inputs we may still see from stale
|
|
26
|
+
// cached code include:
|
|
27
|
+
// * `/ns/m/__ns_boot__/b1/__ns_hmr__/v<N>/<rest>`
|
|
28
|
+
// * `/ns/m/__ns_hmr__/v<N>/<rest>` (any tag: `live`, `v<N>`, `n<N>`, …)
|
|
29
|
+
// * `/ns/m/__ns_boot__/b1/<rest>`
|
|
30
|
+
// * `/ns/m/<rest>` (canonical, passes through unchanged)
|
|
31
|
+
return p
|
|
32
|
+
.replace(/^\/ns\/m\/__ns_boot__\/b1\/__ns_hmr__\/[^/]+\//, '/ns/m/')
|
|
33
|
+
.replace(/^\/ns\/m\/__ns_hmr__\/[^/]+\//, '/ns/m/')
|
|
34
|
+
.replace(/^\/ns\/m\/__ns_boot__\/b1\//, '/ns/m/');
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Inbound half of the legacy-tag contract: a raw `/ns/m` request spec (the
|
|
38
|
+
* path AFTER the `/ns/m` route prefix) may still carry `__ns_boot__/<tag>/`
|
|
39
|
+
* and/or `__ns_hmr__/<tag>/` decorations from stale cached device code.
|
|
40
|
+
* Strips them (repeatedly — the two can nest in either order) and reports
|
|
41
|
+
* what was seen.
|
|
42
|
+
*/
|
|
43
|
+
function stripLegacyNsMRequestTags(spec) {
|
|
44
|
+
let cleanedSpec = spec || '';
|
|
45
|
+
let bootTaggedRequest = false;
|
|
46
|
+
let forcedVer = null;
|
|
47
|
+
try {
|
|
48
|
+
let changed = true;
|
|
49
|
+
while (changed) {
|
|
50
|
+
changed = false;
|
|
51
|
+
const bootMatch = cleanedSpec.match(/^\/?__ns_boot__\/[^\/]+(\/.*)?$/);
|
|
52
|
+
if (bootMatch) {
|
|
53
|
+
bootTaggedRequest = true;
|
|
54
|
+
cleanedSpec = bootMatch[1] || '/';
|
|
55
|
+
changed = true;
|
|
56
|
+
}
|
|
57
|
+
const hmrMatch = cleanedSpec.match(/^\/?__ns_hmr__\/([^\/]+)(\/.*)?$/);
|
|
58
|
+
if (hmrMatch) {
|
|
59
|
+
const tag = hmrMatch[1] || '';
|
|
60
|
+
if (tag) {
|
|
61
|
+
forcedVer = tag;
|
|
62
|
+
}
|
|
63
|
+
cleanedSpec = hmrMatch[2] || '/';
|
|
64
|
+
changed = true;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
catch { }
|
|
69
|
+
return { cleanedSpec, bootTaggedRequest, forcedVer };
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Outbound half of the legacy-tag contract: the `/ns/m` finalize step runs
|
|
73
|
+
* served code through this so every emitted `/ns/m/...` URL (in any import
|
|
74
|
+
* form) is the canonical stable shape from `canonicalizeNsMImportPath`, and
|
|
75
|
+
* `new URL(..., import.meta.url).href` forms are pinned to the absolute
|
|
76
|
+
* dev-server origin.
|
|
77
|
+
*/
|
|
78
|
+
function collapseLegacyNsMTagsInServedCode(code, origin) {
|
|
79
|
+
const rewritePath = (p) => canonicalizeNsMImportPath(p);
|
|
80
|
+
// 1) Static imports: import ... from "/ns/m/..."
|
|
81
|
+
code = code.replace(/(from\s*["'])(\/ns\/m\/[^"'?]+)(["'])/g, (_m, a, p, b) => `${a}${rewritePath(p)}${b}`);
|
|
82
|
+
// 2) Side-effect imports: import "/ns/m/..."
|
|
83
|
+
code = code.replace(/(import\s*(?!\()\s*["'])(\/ns\/m\/[^"'?]+)(["'])/g, (_m, a, p, b) => `${a}${rewritePath(p)}${b}`);
|
|
84
|
+
// 3) Dynamic imports: import("/ns/m/...")
|
|
85
|
+
code = code.replace(/(import\(\s*["'])(\/ns\/m\/[^"'?]+)(["']\s*\))/g, (_m, a, p, b) => `${a}${rewritePath(p)}${b}`);
|
|
86
|
+
// 4) new URL("/ns/m/...", import.meta.url)
|
|
87
|
+
code = code.replace(/(new\s+URL\(\s*["'])(\/ns\/m\/[^"'?]+)(["']\s*,\s*import\.meta\.url\s*\))/g, (_m, a, p, b) => `${a}${rewritePath(p)}${b}`);
|
|
88
|
+
// 5) __ns_import(new URL('/ns/m/...', import.meta.url).href)
|
|
89
|
+
code = code.replace(/(new\s+URL\(\s*["'])(\/ns\/m\/[^"'?]+)(["']\s*,\s*import\.meta\.url\s*\)\.href)/g, (_m, a, p, b) => `${a}${rewritePath(p)}${b}`);
|
|
90
|
+
// 6) Force absolute HTTP for new URL('/ns/m/...', import.meta.url).href → canonical stable URL.
|
|
91
|
+
try {
|
|
92
|
+
code = code.replace(/new\s+URL\(\s*["'](\/ns\/m\/[^"'?]+)(?:\?[^"']*)?["']\s*,\s*import\.meta\.url\s*\)\.href/g, (_m, p1) => `${JSON.stringify(`${origin}${rewritePath(p1)}`)}`);
|
|
93
|
+
}
|
|
94
|
+
catch { }
|
|
95
|
+
// 7) SFC URLs (Vue) — canonical, like everything else. Freshness
|
|
96
|
+
// is driven by the Vue client evicting the SFC artifact URL set.
|
|
97
|
+
try {
|
|
98
|
+
code = code.replace(/new\s+URL\(\s*["']\/ns\/sfc(\/[^"'?]+)(?:\?[^"']*)?["']\s*,\s*import\.meta\.url\s*\)\.href/g, (_m, p1) => `${JSON.stringify(`${origin}/ns/sfc${p1}`)}`);
|
|
99
|
+
}
|
|
100
|
+
catch { }
|
|
101
|
+
return code;
|
|
102
|
+
}
|
|
103
|
+
export function collapseLegacyNsMTags(value, mode, origin) {
|
|
104
|
+
switch (mode) {
|
|
105
|
+
case 'inbound-request-spec':
|
|
106
|
+
return stripLegacyNsMRequestTags(value);
|
|
107
|
+
case 'outbound-served-code':
|
|
108
|
+
return collapseLegacyNsMTagsInServedCode(value, origin ?? '');
|
|
109
|
+
default: {
|
|
110
|
+
const exhaustive = mode;
|
|
111
|
+
throw new Error(`Unhandled collapseLegacyNsMTags mode: ${exhaustive}`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=websocket-ns-m-paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket-ns-m-paths.js","sourceRoot":"","sources":["../../../../../packages/vite/hmr/server/websocket-ns-m-paths.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { TransformResult } from 'vite';
|
|
2
|
+
export interface NsMRequestContext {
|
|
3
|
+
requestUrl: string;
|
|
4
|
+
spec: string;
|
|
5
|
+
forcedVer: string | null;
|
|
6
|
+
bootTaggedRequest: boolean;
|
|
7
|
+
serverRoot: string;
|
|
8
|
+
/**
|
|
9
|
+
* Optional monorepo workspace root for the dev server. When the app
|
|
10
|
+
* lives under `apps/<name>/` inside a hoisted-`node_modules` workspace
|
|
11
|
+
* (Nx / Rush / Turborepo / pnpm / yarn workspaces / npm workspaces),
|
|
12
|
+
* `serverRoot` is the app dir but most packages live at the workspace
|
|
13
|
+
* root. Candidates that resolve there are routed through `/@fs/...`
|
|
14
|
+
* to bypass the package's `package.json#exports` gating which would
|
|
15
|
+
* otherwise refuse internal sub-paths like `css-tree/lib/syntax/...`.
|
|
16
|
+
*/
|
|
17
|
+
workspaceRoot?: string | null;
|
|
18
|
+
candidates: string[];
|
|
19
|
+
transformCandidates: string[];
|
|
20
|
+
}
|
|
21
|
+
export type NsMRequestContextResult = {
|
|
22
|
+
kind: 'next';
|
|
23
|
+
} | {
|
|
24
|
+
kind: 'response';
|
|
25
|
+
statusCode: number;
|
|
26
|
+
code: string;
|
|
27
|
+
} | {
|
|
28
|
+
kind: 'context';
|
|
29
|
+
value: NsMRequestContext;
|
|
30
|
+
};
|
|
31
|
+
export interface ResolveNsMTransformedModuleOptions {
|
|
32
|
+
context: NsMRequestContext;
|
|
33
|
+
transformRequest: (url: string, timeoutMs?: number) => Promise<TransformResult | null>;
|
|
34
|
+
resolveId: (id: string) => Promise<string | null>;
|
|
35
|
+
/** Matches `pluginContainer.load`'s LoadResult (which includes `void`). */
|
|
36
|
+
loadVirtualId: (id: string) => Promise<string | {
|
|
37
|
+
code?: string;
|
|
38
|
+
} | TransformResult | null | void>;
|
|
39
|
+
timeoutMs?: number;
|
|
40
|
+
}
|
|
41
|
+
export interface NsMResolvedTransform {
|
|
42
|
+
transformed: TransformResult | null;
|
|
43
|
+
resolvedCandidate: string | null;
|
|
44
|
+
}
|
|
45
|
+
export declare function createNsMRequestContext(requestUrl: string, serverRoot: string, appVirtualWithSlash: string, workspaceRoot?: string | null): NsMRequestContextResult;
|
|
46
|
+
export declare function resolveNsMTransformedModule(options: ResolveNsMTransformedModuleOptions): Promise<NsMResolvedTransform>;
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import * as path from 'path';
|
|
2
|
+
import { filterExistingNodeModulesTransformCandidates, getBlockedDeviceNodeModulesReason, resolveCandidateFilePath, tryReadRawExplicitJavaScriptModule } from './websocket-module-specifiers.js';
|
|
3
|
+
import { collapseLegacyNsMTags } from './websocket-ns-m-paths.js';
|
|
4
|
+
function normalizeAbsoluteFilesystemSpec(spec, serverRoot) {
|
|
5
|
+
const toPosix = (value) => value.replace(/\\/g, '/');
|
|
6
|
+
const rootPosix = toPosix(serverRoot);
|
|
7
|
+
const specPosix = toPosix(spec);
|
|
8
|
+
const isAbsoluteFilesystemPath = /^\//.test(specPosix) || /^[A-Za-z]:\//.test(spec);
|
|
9
|
+
if (!isAbsoluteFilesystemPath) {
|
|
10
|
+
return spec;
|
|
11
|
+
}
|
|
12
|
+
let relative = specPosix.startsWith(rootPosix) ? specPosix.slice(rootPosix.length) : path.posix.relative(rootPosix, specPosix);
|
|
13
|
+
if (relative.startsWith('..')) {
|
|
14
|
+
return spec;
|
|
15
|
+
}
|
|
16
|
+
if (!relative.startsWith('/')) {
|
|
17
|
+
relative = `/${relative}`;
|
|
18
|
+
}
|
|
19
|
+
return relative;
|
|
20
|
+
}
|
|
21
|
+
export function createNsMRequestContext(requestUrl, serverRoot, appVirtualWithSlash, workspaceRoot) {
|
|
22
|
+
try {
|
|
23
|
+
const urlObj = new URL(requestUrl || '', 'http://localhost');
|
|
24
|
+
if (!urlObj.pathname.startsWith('/ns/m')) {
|
|
25
|
+
return { kind: 'next' };
|
|
26
|
+
}
|
|
27
|
+
let spec = urlObj.searchParams.get('path') || '';
|
|
28
|
+
let forcedVer = urlObj.searchParams.get('v');
|
|
29
|
+
let bootTaggedRequest = false;
|
|
30
|
+
if (!spec) {
|
|
31
|
+
const base = '/ns/m';
|
|
32
|
+
const rest = urlObj.pathname.slice(base.length);
|
|
33
|
+
if (rest && rest !== '/') {
|
|
34
|
+
spec = rest;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
if (spec === '/__invalid_at__.mjs' || spec === '__invalid_at__.mjs') {
|
|
38
|
+
return {
|
|
39
|
+
kind: 'response',
|
|
40
|
+
statusCode: 200,
|
|
41
|
+
code: "// invalid '@' import stub\nexport {}\n",
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
if (!spec) {
|
|
45
|
+
return {
|
|
46
|
+
kind: 'response',
|
|
47
|
+
statusCode: 200,
|
|
48
|
+
code: 'export {}\n',
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
spec = spec.replace(/[?#].*$/, '');
|
|
52
|
+
const decorated = collapseLegacyNsMTags(spec, 'inbound-request-spec');
|
|
53
|
+
spec = decorated.cleanedSpec;
|
|
54
|
+
bootTaggedRequest = decorated.bootTaggedRequest;
|
|
55
|
+
forcedVer || (forcedVer = decorated.forcedVer);
|
|
56
|
+
spec = normalizeAbsoluteFilesystemSpec(spec, serverRoot);
|
|
57
|
+
if (spec.startsWith('@/')) {
|
|
58
|
+
spec = appVirtualWithSlash + spec.slice(2);
|
|
59
|
+
}
|
|
60
|
+
if (spec.startsWith('./')) {
|
|
61
|
+
spec = spec.slice(1);
|
|
62
|
+
}
|
|
63
|
+
const blockedNodeModulesReason = getBlockedDeviceNodeModulesReason(spec);
|
|
64
|
+
if (blockedNodeModulesReason) {
|
|
65
|
+
return {
|
|
66
|
+
kind: 'response',
|
|
67
|
+
statusCode: 404,
|
|
68
|
+
code: `// [ns:m] blocked device import\nthrow new Error(${JSON.stringify(`[ns/m] ${blockedNodeModulesReason}`)});\nexport {};\n`,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
if (!spec.startsWith('/')) {
|
|
72
|
+
spec = `/${spec}`;
|
|
73
|
+
}
|
|
74
|
+
const hasExt = /\.(ts|tsx|js|jsx|mjs|mts|cts|vue)$/i.test(spec);
|
|
75
|
+
const baseNoExt = hasExt ? spec.replace(/\.(ts|tsx|js|jsx|mjs|mts|cts)$/i, '') : spec;
|
|
76
|
+
const candidates = [...(hasExt ? [spec] : []), `${baseNoExt}.ts`, `${baseNoExt}.js`, `${baseNoExt}.tsx`, `${baseNoExt}.jsx`, `${baseNoExt}.mjs`, `${baseNoExt}.mts`, `${baseNoExt}.cts`, `${baseNoExt}.vue`, `${baseNoExt}/index.ts`, `${baseNoExt}/index.js`, `${baseNoExt}/index.tsx`, `${baseNoExt}/index.jsx`, `${baseNoExt}/index.mjs`];
|
|
77
|
+
const transformCandidates = filterExistingNodeModulesTransformCandidates(spec, candidates, serverRoot, workspaceRoot);
|
|
78
|
+
return {
|
|
79
|
+
kind: 'context',
|
|
80
|
+
value: {
|
|
81
|
+
requestUrl,
|
|
82
|
+
spec,
|
|
83
|
+
forcedVer,
|
|
84
|
+
bootTaggedRequest,
|
|
85
|
+
serverRoot,
|
|
86
|
+
workspaceRoot: workspaceRoot ?? null,
|
|
87
|
+
candidates,
|
|
88
|
+
transformCandidates,
|
|
89
|
+
},
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
return { kind: 'next' };
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
async function tryTransformRequest(transformRequest, url, timeoutMs) {
|
|
97
|
+
try {
|
|
98
|
+
return await transformRequest(url, timeoutMs);
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
function getLoadedCode(loadResult) {
|
|
105
|
+
if (!loadResult) {
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
if (typeof loadResult === 'string') {
|
|
109
|
+
return loadResult;
|
|
110
|
+
}
|
|
111
|
+
return typeof loadResult.code === 'string' ? loadResult.code : null;
|
|
112
|
+
}
|
|
113
|
+
export async function resolveNsMTransformedModule(options) {
|
|
114
|
+
const { context, transformRequest, resolveId, loadVirtualId, timeoutMs = 120000 } = options;
|
|
115
|
+
const { spec, serverRoot, workspaceRoot, transformCandidates } = context;
|
|
116
|
+
let transformed = null;
|
|
117
|
+
let resolvedCandidate = null;
|
|
118
|
+
if (spec.startsWith('/@id/')) {
|
|
119
|
+
transformed = await tryTransformRequest(transformRequest, spec, timeoutMs);
|
|
120
|
+
if (transformed?.code) {
|
|
121
|
+
return { transformed, resolvedCandidate };
|
|
122
|
+
}
|
|
123
|
+
try {
|
|
124
|
+
const rawId = spec.slice('/@id/'.length).replace(/__x00__/g, '\0');
|
|
125
|
+
const loadedCode = getLoadedCode(await loadVirtualId(rawId));
|
|
126
|
+
if (loadedCode) {
|
|
127
|
+
return {
|
|
128
|
+
transformed: { code: loadedCode },
|
|
129
|
+
resolvedCandidate: rawId,
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
catch { }
|
|
134
|
+
}
|
|
135
|
+
const rawExplicitModule = tryReadRawExplicitJavaScriptModule(spec, serverRoot);
|
|
136
|
+
if (rawExplicitModule) {
|
|
137
|
+
return {
|
|
138
|
+
transformed: { code: rawExplicitModule.code },
|
|
139
|
+
resolvedCandidate: rawExplicitModule.resolvedId,
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
for (const candidate of transformCandidates) {
|
|
143
|
+
transformed = await tryTransformRequest(transformRequest, candidate, timeoutMs);
|
|
144
|
+
if (transformed?.code) {
|
|
145
|
+
resolvedCandidate = candidate;
|
|
146
|
+
return { transformed, resolvedCandidate };
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
const resolvedId = await resolveId(spec);
|
|
150
|
+
if (resolvedId) {
|
|
151
|
+
transformed = await tryTransformRequest(transformRequest, resolvedId, timeoutMs);
|
|
152
|
+
if (transformed?.code) {
|
|
153
|
+
return { transformed, resolvedCandidate: resolvedId };
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
if (spec.includes('/node_modules/')) {
|
|
157
|
+
const nodeModulesIndex = spec.lastIndexOf('/node_modules/');
|
|
158
|
+
const bareSpecifier = spec.slice(nodeModulesIndex + '/node_modules/'.length);
|
|
159
|
+
if (bareSpecifier && !bareSpecifier.startsWith('.')) {
|
|
160
|
+
const resolvedBareId = await resolveId(bareSpecifier);
|
|
161
|
+
if (resolvedBareId) {
|
|
162
|
+
transformed = await tryTransformRequest(transformRequest, resolvedBareId, timeoutMs);
|
|
163
|
+
if (transformed?.code) {
|
|
164
|
+
return { transformed, resolvedCandidate: resolvedBareId };
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
const buildFsCandidate = (root) => {
|
|
170
|
+
const rootPosix = root.replace(/\\/g, '/').replace(/\/$/, '');
|
|
171
|
+
const absolutePosixPath = `${rootPosix}${spec.startsWith('/') ? '' : '/'}${spec}`;
|
|
172
|
+
return `/@fs${absolutePosixPath}`;
|
|
173
|
+
};
|
|
174
|
+
const fsRootsToTry = [serverRoot, ...(workspaceRoot && path.resolve(workspaceRoot) !== path.resolve(serverRoot) ? [workspaceRoot] : [])];
|
|
175
|
+
for (const root of fsRootsToTry) {
|
|
176
|
+
const fsId = buildFsCandidate(root);
|
|
177
|
+
if (resolveCandidateFilePath(fsId, serverRoot, workspaceRoot)) {
|
|
178
|
+
transformed = await tryTransformRequest(transformRequest, fsId, timeoutMs);
|
|
179
|
+
if (transformed?.code) {
|
|
180
|
+
return { transformed, resolvedCandidate: fsId };
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
for (const candidate of transformCandidates) {
|
|
185
|
+
const importHintCandidate = `${candidate}${candidate.includes('?') ? '&' : '?'}import`;
|
|
186
|
+
transformed = await tryTransformRequest(transformRequest, importHintCandidate, timeoutMs);
|
|
187
|
+
if (transformed?.code) {
|
|
188
|
+
resolvedCandidate = importHintCandidate;
|
|
189
|
+
return { transformed, resolvedCandidate };
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
return {
|
|
193
|
+
transformed: null,
|
|
194
|
+
resolvedCandidate,
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
//# sourceMappingURL=websocket-ns-m-request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket-ns-m-request.js","sourceRoot":"","sources":["../../../../../packages/vite/hmr/server/websocket-ns-m-request.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { TransformResult, ViteDevServer } from 'vite';
|
|
2
|
+
import { type DepsBundleService } from './deps-bundle.js';
|
|
3
|
+
import type { FrameworkServerStrategy } from './framework-strategy.js';
|
|
4
|
+
type SharedTransformRequestFn = (url: string, timeoutMs?: number) => Promise<TransformResult | null>;
|
|
5
|
+
type UpsertGraphModuleFn = (rawId: string, code: string, deps: string[], options?: {
|
|
6
|
+
bumpVersion?: boolean;
|
|
7
|
+
emitDeltaOnInsert?: boolean;
|
|
8
|
+
broadcastDelta?: boolean;
|
|
9
|
+
}) => void;
|
|
10
|
+
/**
|
|
11
|
+
* Plugin-closure dependencies the `/ns/m` device module server needs. The pure
|
|
12
|
+
* transform/codegen functions are imported directly from
|
|
13
|
+
* `websocket-device-transform.ts`; only genuine plugin state (graph version,
|
|
14
|
+
* strategy, shared transform runner, graph upsert) is injected here.
|
|
15
|
+
*/
|
|
16
|
+
export interface RegisterNsModuleServerRouteOptions {
|
|
17
|
+
verbose: boolean;
|
|
18
|
+
appVirtualWithSlash: string;
|
|
19
|
+
sfcFileMap: Map<string, string>;
|
|
20
|
+
depFileMap: Map<string, string>;
|
|
21
|
+
getGraphVersion(): number;
|
|
22
|
+
getStrategy(): FrameworkServerStrategy;
|
|
23
|
+
sharedTransformRequest: SharedTransformRequestFn;
|
|
24
|
+
ensureInitialGraphPopulationStarted(server: ViteDevServer): void;
|
|
25
|
+
upsertGraphModule: UpsertGraphModuleFn;
|
|
26
|
+
/**
|
|
27
|
+
* Injectable deps-bundle service (testability seam). When omitted, the
|
|
28
|
+
* shared process-wide service is used — null when `NS_DEPS_PER_MODULE=1`
|
|
29
|
+
* forces per-module node_modules serving.
|
|
30
|
+
*/
|
|
31
|
+
depsBundle?: DepsBundleService | null;
|
|
32
|
+
/**
|
|
33
|
+
* Live-broadcast gate for AnalogJS `/@ng/component` metadata fetches.
|
|
34
|
+
* When provided, only fetches whose `(c, t)` pair matches a recorded
|
|
35
|
+
* `angular:component-update` broadcast are delegated to Analog's
|
|
36
|
+
* middleware; everything else — most importantly the boot-time
|
|
37
|
+
* `<Class>_HmrLoad(Date.now())` fetch every compiled component issues on
|
|
38
|
+
* evaluation — is answered with the empty no-update stub. See the ledger
|
|
39
|
+
* in `websocket-angular-hot-update.ts` for the full failure mode this
|
|
40
|
+
* prevents (post-edit relaunch → boot-time `ɵɵreplaceMetadata` on the
|
|
41
|
+
* root component → white screen).
|
|
42
|
+
*/
|
|
43
|
+
isLiveAngularComponentUpdateFetch?(componentId: string, timestamp: number): boolean;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Registers the `/ns/m/*` device module server: the HTTP endpoint every
|
|
47
|
+
* NativeScript device uses to fetch app/source modules (and AnalogJS Angular
|
|
48
|
+
* `/@ng/component` live-reload requests) as device-ready ESM. This is the
|
|
49
|
+
* single hottest route in the HMR server.
|
|
50
|
+
*/
|
|
51
|
+
export declare function registerNsModuleServerRoute(server: ViteDevServer, options: RegisterNsModuleServerRouteOptions): void;
|
|
52
|
+
export {};
|