@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
|
@@ -1,49 +1,336 @@
|
|
|
1
|
-
import
|
|
1
|
+
import ts from 'typescript';
|
|
2
|
+
import { isNativeESClassesEnabled, transformNativeClassSource } from './nativeclass-transform.js';
|
|
3
|
+
import { resolvePlatform } from './cli-flags.js';
|
|
4
|
+
/**
|
|
5
|
+
* Look for `NativeClass` either as a bare identifier or as a `NativeClass(...)` call expression
|
|
6
|
+
* inside a `__decorate` array element. Returns true if the element is a NativeClass marker.
|
|
7
|
+
*/
|
|
8
|
+
function isNativeClassDecoratorElement(el) {
|
|
9
|
+
if (ts.isIdentifier(el) && el.text === 'NativeClass')
|
|
10
|
+
return true;
|
|
11
|
+
if (ts.isCallExpression(el) && ts.isIdentifier(el.expression) && el.expression.text === 'NativeClass')
|
|
12
|
+
return true;
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Walk the AST and collect every `__decorate([..., NativeClass(), ...], X)` (or
|
|
17
|
+
* `__decorate*` variants) where the array contains a NativeClass marker.
|
|
18
|
+
*
|
|
19
|
+
* For each such call we record the target class name (so it can be downleveled
|
|
20
|
+
* later) and produce a textual edit that strips ONLY the `NativeClass` element.
|
|
21
|
+
* If `NativeClass` was the only element, the whole `__decorate(...)` call is
|
|
22
|
+
* replaced with its target identifier so the surrounding assignment becomes a
|
|
23
|
+
* harmless self-assign (`X = X`) and `NativeClass` no longer appears in the
|
|
24
|
+
* served output.
|
|
25
|
+
*
|
|
26
|
+
* Using AST instead of regex lets us tolerate any number of additional
|
|
27
|
+
* decorators in the array (e.g. `__metadata("design:paramtypes", [])`), which
|
|
28
|
+
* Angular's compiler always emits when a class has a constructor.
|
|
29
|
+
*/
|
|
30
|
+
function collectNativeClassDecorateEdits(code, sf) {
|
|
31
|
+
const edits = [];
|
|
32
|
+
const classNames = new Set();
|
|
33
|
+
const visit = (node) => {
|
|
34
|
+
if (ts.isCallExpression(node)) {
|
|
35
|
+
const callee = node.expression;
|
|
36
|
+
const calleeName = ts.isIdentifier(callee) ? callee.text : ts.isPropertyAccessExpression(callee) && ts.isIdentifier(callee.expression) && ts.isIdentifier(callee.name) ? `${callee.expression.text}.${callee.name.text}` : undefined;
|
|
37
|
+
if (calleeName && /^__decorate/.test(calleeName) && node.arguments.length >= 2) {
|
|
38
|
+
const firstArg = node.arguments[0];
|
|
39
|
+
const secondArg = node.arguments[1];
|
|
40
|
+
if (ts.isArrayLiteralExpression(firstArg) && ts.isIdentifier(secondArg)) {
|
|
41
|
+
const remaining = firstArg.elements.filter((el) => !isNativeClassDecoratorElement(el));
|
|
42
|
+
if (remaining.length !== firstArg.elements.length) {
|
|
43
|
+
classNames.add(secondArg.text);
|
|
44
|
+
const callStart = node.getStart(sf);
|
|
45
|
+
const callEnd = node.getEnd();
|
|
46
|
+
if (remaining.length === 0) {
|
|
47
|
+
// Replace `__decorate([NativeClass()], X)` with `X` so the surrounding
|
|
48
|
+
// assignment (`X = __decorate(...)`) becomes `X = X` — a no-op the runtime
|
|
49
|
+
// will skip without errors.
|
|
50
|
+
edits.push({ start: callStart, end: callEnd, text: secondArg.text });
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
const remainingText = remaining.map((el) => code.slice(el.getStart(sf), el.getEnd())).join(', ');
|
|
54
|
+
const followingArgs = node.arguments.slice(1);
|
|
55
|
+
const argsText = `[${remainingText}]` + (followingArgs.length ? ', ' + followingArgs.map((a) => code.slice(a.getStart(sf), a.getEnd())).join(', ') : '');
|
|
56
|
+
edits.push({ start: callStart, end: callEnd, text: `${calleeName}(${argsText})` });
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
ts.forEachChild(node, visit);
|
|
63
|
+
};
|
|
64
|
+
visit(sf);
|
|
65
|
+
return { edits, classNames };
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Strip `__extends` from any tslib named import that may already exist in the
|
|
69
|
+
* served file. The NativeScript iOS V8 runtime registers a NATIVE-aware
|
|
70
|
+
* `__extends` on `globalThis` (see ClassBuilder.mm `RegisterNativeTypeScriptExtendsFunction`)
|
|
71
|
+
* which performs ObjC class registration when the parent is a native wrapper
|
|
72
|
+
* (e.g. `NSObject`). Importing `__extends` from tslib shadows that global with
|
|
73
|
+
* tslib's plain implementation, which never registers the class as a native
|
|
74
|
+
* subclass — leading to `Cannot read properties of undefined (reading '__extended')`
|
|
75
|
+
* when `_super.call(this)` runs. We must let `__extends` fall through to the
|
|
76
|
+
* runtime global, so any pre-existing tslib `__extends` named import is removed
|
|
77
|
+
* from this file's `tslib` import.
|
|
78
|
+
*/
|
|
79
|
+
function stripExtendsImportFromTslib(code) {
|
|
80
|
+
if (!/\b__extends\b/.test(code))
|
|
81
|
+
return code;
|
|
82
|
+
let sf;
|
|
83
|
+
try {
|
|
84
|
+
sf = ts.createSourceFile('extends-import-check.js', code, ts.ScriptTarget.Latest, true, ts.ScriptKind.JS);
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
return code;
|
|
88
|
+
}
|
|
89
|
+
const edits = [];
|
|
90
|
+
for (const stmt of sf.statements) {
|
|
91
|
+
if (!ts.isImportDeclaration(stmt))
|
|
92
|
+
continue;
|
|
93
|
+
const spec = stmt.moduleSpecifier;
|
|
94
|
+
if (!ts.isStringLiteral(spec))
|
|
95
|
+
continue;
|
|
96
|
+
// Match any tslib variant ("tslib", "tslib/...", or absolute paths to tslib).
|
|
97
|
+
if (!/(?:^|\/)tslib(?:\/|$)|(?:^|[/\\])tslib[/\\]/.test(spec.text))
|
|
98
|
+
continue;
|
|
99
|
+
const clause = stmt.importClause;
|
|
100
|
+
if (!clause || !clause.namedBindings || !ts.isNamedImports(clause.namedBindings))
|
|
101
|
+
continue;
|
|
102
|
+
const named = clause.namedBindings;
|
|
103
|
+
const remaining = named.elements.filter((el) => (el.propertyName?.text ?? el.name.text) !== '__extends');
|
|
104
|
+
if (remaining.length === named.elements.length)
|
|
105
|
+
continue;
|
|
106
|
+
if (remaining.length === 0 && !clause.name) {
|
|
107
|
+
// The whole import would become empty — drop the entire statement.
|
|
108
|
+
edits.push({ start: stmt.getFullStart(), end: stmt.getEnd(), text: '' });
|
|
109
|
+
continue;
|
|
110
|
+
}
|
|
111
|
+
const remainingText = remaining.map((el) => code.slice(el.getStart(sf), el.getEnd())).join(', ');
|
|
112
|
+
edits.push({ start: named.getStart(sf), end: named.getEnd(), text: `{ ${remainingText} }` });
|
|
113
|
+
}
|
|
114
|
+
if (!edits.length)
|
|
115
|
+
return code;
|
|
116
|
+
let output = code;
|
|
117
|
+
for (const e of edits.sort((a, b) => b.start - a.start)) {
|
|
118
|
+
output = output.slice(0, e.start) + e.text + output.slice(e.end);
|
|
119
|
+
}
|
|
120
|
+
return output;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Post-phase cleanup for NativeClass decorators.
|
|
124
|
+
* Strips `NativeClass` from any `__decorate([...], X)` call (regardless of what
|
|
125
|
+
* other decorators / metadata appear in the array) and downlevels ES6 classes
|
|
126
|
+
* to ES5 so the NativeScript runtime can detect native class inheritance via
|
|
127
|
+
* `__extends`.
|
|
128
|
+
*
|
|
129
|
+
* The pre-phase plugin runs before Vite's TS pipeline and produces ES5 directly,
|
|
130
|
+
* but downstream plugins (notably the Angular plugin) re-compile from the
|
|
131
|
+
* original TypeScript source and overwrite the pre-phase output. This post-phase
|
|
132
|
+
* pass catches those survivors. It's the safety net, not the primary path.
|
|
133
|
+
*
|
|
134
|
+
* Exported separately for testability.
|
|
135
|
+
*/
|
|
136
|
+
export function postCleanupNativeClass(code, bareId, verbose = false) {
|
|
137
|
+
if (!code)
|
|
138
|
+
return null;
|
|
139
|
+
if (!code.includes('__decorate') || !code.includes('NativeClass'))
|
|
140
|
+
return null;
|
|
141
|
+
let sf;
|
|
142
|
+
try {
|
|
143
|
+
sf = ts.createSourceFile(bareId + '.js', code, ts.ScriptTarget.Latest, true, ts.ScriptKind.JS);
|
|
144
|
+
}
|
|
145
|
+
catch {
|
|
146
|
+
return null;
|
|
147
|
+
}
|
|
148
|
+
const { edits: decorateEdits, classNames: classNamesToDownlevel } = collectNativeClassDecorateEdits(code, sf);
|
|
149
|
+
if (!classNamesToDownlevel.size)
|
|
150
|
+
return null;
|
|
151
|
+
// Apply decorator-stripping edits first so the AST we re-parse for the downlevel pass is consistent.
|
|
152
|
+
let output = code;
|
|
153
|
+
for (const e of decorateEdits.sort((a, b) => b.start - a.start)) {
|
|
154
|
+
output = output.slice(0, e.start) + e.text + output.slice(e.end);
|
|
155
|
+
}
|
|
156
|
+
// Downlevel any ES6 class expression that extends a native base.
|
|
157
|
+
// Angular's re-compilation typically emits:
|
|
158
|
+
// var AppDelegate = class AppDelegate extends UIResponder { ... };
|
|
159
|
+
// or with _1 alias:
|
|
160
|
+
// var PDFViewDelegateImpl = PDFViewDelegateImpl_1 = class PDFViewDelegateImpl extends NSObject { ... };
|
|
161
|
+
// We rewrite each into ES5 with __extends so the NativeScript runtime can detect
|
|
162
|
+
// native class inheritance and register ObjC/Java classes.
|
|
163
|
+
let downleveledAtLeastOne = false;
|
|
164
|
+
for (const className of Array.from(classNamesToDownlevel)) {
|
|
165
|
+
try {
|
|
166
|
+
// Use TypeScript AST to find and extract the class expression reliably
|
|
167
|
+
const sf = ts.createSourceFile(bareId + '.js', output, ts.ScriptTarget.Latest, true, ts.ScriptKind.JS);
|
|
168
|
+
let classNode;
|
|
169
|
+
let baseName = '';
|
|
170
|
+
let varDeclStart = -1;
|
|
171
|
+
let varDeclEnd = -1;
|
|
172
|
+
let aliasName = ''; // e.g. PDFViewDelegateImpl_1
|
|
173
|
+
const findClass = (node) => {
|
|
174
|
+
if (classNode)
|
|
175
|
+
return;
|
|
176
|
+
// Match: var X = class X extends Y { ... }
|
|
177
|
+
// or: var X = X_1 = class X extends Y { ... }
|
|
178
|
+
if (ts.isVariableStatement(node)) {
|
|
179
|
+
for (const decl of node.declarationList.declarations) {
|
|
180
|
+
if (ts.isIdentifier(decl.name) && decl.name.text === className && decl.initializer) {
|
|
181
|
+
let classExpr = decl.initializer;
|
|
182
|
+
// Handle alias: X = X_1 = class X extends Y { ... }
|
|
183
|
+
if (ts.isBinaryExpression(classExpr) && classExpr.operatorToken.kind === ts.SyntaxKind.EqualsToken) {
|
|
184
|
+
if (ts.isIdentifier(classExpr.left)) {
|
|
185
|
+
aliasName = classExpr.left.text;
|
|
186
|
+
}
|
|
187
|
+
classExpr = classExpr.right;
|
|
188
|
+
}
|
|
189
|
+
if (ts.isClassExpression(classExpr) && classExpr.heritageClauses?.length) {
|
|
190
|
+
const extendsClause = classExpr.heritageClauses.find((h) => h.token === ts.SyntaxKind.ExtendsKeyword);
|
|
191
|
+
if (extendsClause?.types[0]) {
|
|
192
|
+
baseName = output.slice(extendsClause.types[0].expression.getStart(sf), extendsClause.types[0].expression.getEnd());
|
|
193
|
+
classNode = classExpr;
|
|
194
|
+
varDeclStart = node.getStart(sf);
|
|
195
|
+
varDeclEnd = node.getEnd();
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
ts.forEachChild(node, findClass);
|
|
202
|
+
};
|
|
203
|
+
findClass(sf);
|
|
204
|
+
if (!classNode || !baseName)
|
|
205
|
+
continue;
|
|
206
|
+
// Extract just the class as a declaration for ts.transpileModule
|
|
207
|
+
const classText = output.slice(classNode.getStart(sf), classNode.getEnd());
|
|
208
|
+
// Convert class expression to declaration for proper downlevel
|
|
209
|
+
const classAsDecl = classText.replace(/^class\b/, `class`);
|
|
210
|
+
const toDownlevel = `class ${className} extends ${baseName} ${classAsDecl.slice(classAsDecl.indexOf('{'))}`;
|
|
211
|
+
const downleveled = ts
|
|
212
|
+
.transpileModule(toDownlevel, {
|
|
213
|
+
compilerOptions: {
|
|
214
|
+
module: ts.ModuleKind.ESNext,
|
|
215
|
+
target: ts.ScriptTarget.ES5,
|
|
216
|
+
experimentalDecorators: true,
|
|
217
|
+
emitDecoratorMetadata: false,
|
|
218
|
+
noEmitHelpers: true,
|
|
219
|
+
useDefineForClassFields: false,
|
|
220
|
+
},
|
|
221
|
+
})
|
|
222
|
+
.outputText.replace(/enumerable:\s*false/g, 'enumerable: true')
|
|
223
|
+
.replace(/export \{\};?\s*$/m, '')
|
|
224
|
+
.trim();
|
|
225
|
+
// The downleveled output is a var statement: var ClassName = (function(_super) { ... })(Base);
|
|
226
|
+
// Build the replacement, preserving any alias assignment
|
|
227
|
+
let replacement = downleveled;
|
|
228
|
+
if (aliasName) {
|
|
229
|
+
// Original was: var X = X_1 = class X extends Y {...};
|
|
230
|
+
// Downlevel produces: var X = (function(_super){...})(Y);
|
|
231
|
+
// We need: var X = X_1 = (function(_super){...})(Y);
|
|
232
|
+
replacement = replacement.replace(`var ${className} =`, `var ${className} = ${aliasName} =`);
|
|
233
|
+
}
|
|
234
|
+
output = output.slice(0, varDeclStart) + replacement + output.slice(varDeclEnd);
|
|
235
|
+
downleveledAtLeastOne = true;
|
|
236
|
+
if (verbose) {
|
|
237
|
+
console.log(`[ns-nativeclass-post] Downleveled ES6 class "${className}" to ES5 with __extends in ${bareId}`);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
catch (e) {
|
|
241
|
+
if (verbose) {
|
|
242
|
+
console.warn(`[ns-nativeclass-post] Failed to downlevel class "${className}" in ${bareId}:`, e);
|
|
243
|
+
}
|
|
244
|
+
// If downleveling fails, the decorator is at least stripped
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
// If we downleveled at least one class, the output now references __extends.
|
|
248
|
+
// We MUST NOT import __extends from tslib here: the NativeScript iOS V8 runtime
|
|
249
|
+
// installs a native-aware `__extends` on `globalThis` that handles native class
|
|
250
|
+
// registration when the parent is a native wrapper (e.g. NSObject). Importing
|
|
251
|
+
// tslib's __extends would shadow that global with a plain implementation that
|
|
252
|
+
// never registers the class as a native subclass, leading to
|
|
253
|
+
// `Cannot read properties of undefined (reading '__extended')` when
|
|
254
|
+
// `_super.call(this)` runs. Let the bare `__extends(...)` reference fall
|
|
255
|
+
// through to the runtime global.
|
|
256
|
+
if (downleveledAtLeastOne) {
|
|
257
|
+
output = stripExtendsImportFromTslib(output);
|
|
258
|
+
}
|
|
259
|
+
if (output !== code) {
|
|
260
|
+
if (verbose) {
|
|
261
|
+
console.log(`[ns-nativeclass-post] Cleaned __decorate NativeClass from ${bareId}`);
|
|
262
|
+
}
|
|
263
|
+
return { code: output, map: null };
|
|
264
|
+
}
|
|
265
|
+
return null;
|
|
266
|
+
}
|
|
2
267
|
/**
|
|
3
268
|
* Wraps NativeClass TS transformer into a Vite plugin.
|
|
4
269
|
*/
|
|
5
270
|
export function createNativeClassTransformerPlugin() {
|
|
6
271
|
const verbose = !!process.env.NS_DEBUG_NATIVECLASS;
|
|
7
|
-
return
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
if (
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
272
|
+
return [
|
|
273
|
+
{
|
|
274
|
+
name: 'ns-nativeclass-transformer',
|
|
275
|
+
enforce: 'pre',
|
|
276
|
+
async transform(code, id) {
|
|
277
|
+
if (!code)
|
|
278
|
+
return null;
|
|
279
|
+
const bareId = id.split('?')[0];
|
|
280
|
+
const isTSFile = /\.(ts|tsx)$/.test(bareId);
|
|
281
|
+
const isJSFile = /\.(js|mjs|cjs)$/.test(bareId);
|
|
282
|
+
const isVueTSBlock = !isTSFile && /[?&]lang\.(ts|tsx)\b/.test(id);
|
|
283
|
+
if (!isTSFile && !isVueTSBlock && !isJSFile)
|
|
284
|
+
return null;
|
|
285
|
+
const hasDecoratorSyntax = code.includes('@NativeClass');
|
|
286
|
+
const hasNativeClassIdentifier = code.includes('NativeClass');
|
|
287
|
+
const hasDecorateCall = isJSFile && code.includes('__decorate');
|
|
288
|
+
// Most modules never contain NativeClass decorations.
|
|
289
|
+
// Skip the heavier TS-based helper unless the source has one of the patterns it can actually rewrite.
|
|
290
|
+
if (!hasDecoratorSyntax && !hasNativeClassIdentifier && !hasDecorateCall) {
|
|
291
|
+
return null;
|
|
292
|
+
}
|
|
293
|
+
if (verbose && (hasDecoratorSyntax || hasNativeClassIdentifier)) {
|
|
294
|
+
console.log(`[ns-nativeclass] Processing file with NativeClass: ${bareId}`);
|
|
295
|
+
}
|
|
296
|
+
const res = transformNativeClassSource(code, bareId);
|
|
297
|
+
if (verbose && (hasDecoratorSyntax || hasNativeClassIdentifier)) {
|
|
298
|
+
if (res) {
|
|
299
|
+
const stillHas = /\bNativeClass\b/.test(res.code);
|
|
300
|
+
if (stillHas) {
|
|
301
|
+
console.warn(`[ns-nativeclass] WARNING: NativeClass still present after transform in ${bareId}`);
|
|
302
|
+
}
|
|
303
|
+
else {
|
|
304
|
+
console.log(`[ns-nativeclass] Successfully transformed ${bareId}`);
|
|
305
|
+
}
|
|
36
306
|
}
|
|
37
307
|
else {
|
|
38
|
-
console.log(`[ns-nativeclass]
|
|
308
|
+
console.log(`[ns-nativeclass] Transform returned null for ${bareId} (may be skipped due to platform filter)`);
|
|
39
309
|
}
|
|
40
310
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
return res;
|
|
311
|
+
return res;
|
|
312
|
+
},
|
|
46
313
|
},
|
|
47
|
-
|
|
314
|
+
// Post-phase cleanup: the Angular plugin (normal phase) may re-compile TypeScript from its
|
|
315
|
+
// own compilation pipeline, re-introducing __decorate([NativeClass()], ...) after the pre-phase
|
|
316
|
+
// transformer already stripped @NativeClass. This post-phase pass catches those survivors.
|
|
317
|
+
// In addition to stripping the decorator, we must also downlevel any ES6 class that was
|
|
318
|
+
// decorated with NativeClass to ES5 (using __extends) so the NativeScript runtime can
|
|
319
|
+
// detect native class inheritance and register ObjC classes.
|
|
320
|
+
{
|
|
321
|
+
name: 'ns-nativeclass-post-cleanup',
|
|
322
|
+
enforce: 'post',
|
|
323
|
+
transform(code, id) {
|
|
324
|
+
// Native ES class mode (Apple targets only): the runtime handles ES classes and
|
|
325
|
+
// the NativeClass decorator directly, so no post-phase strip/downlevel either.
|
|
326
|
+
if (isNativeESClassesEnabled(resolvePlatform()))
|
|
327
|
+
return null;
|
|
328
|
+
const bareId = id.split('?')[0];
|
|
329
|
+
if (!/\.(ts|tsx|js|mjs)$/.test(bareId))
|
|
330
|
+
return null;
|
|
331
|
+
return postCleanupNativeClass(code, bareId, verbose);
|
|
332
|
+
},
|
|
333
|
+
},
|
|
334
|
+
];
|
|
48
335
|
}
|
|
49
336
|
//# sourceMappingURL=nativeclass-transformer-plugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nativeclass-transformer-plugin.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/nativeclass-transformer-plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAExE;;GAEG;AACH,MAAM,UAAU,kCAAkC;IACjD,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;IAEnD,OAAO;QACN,IAAI,EAAE,4BAA4B;QAClC,OAAO,EAAE,KAAK;QACd,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,EAAU;YACvC,IAAI,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAC;YACvB,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAChD,MAAM,YAAY,GAAG,CAAC,QAAQ,IAAI,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClE,IAAI,CAAC,QAAQ,IAAI,CAAC,YAAY,IAAI,CAAC,QAAQ;gBAAE,OAAO,IAAI,CAAC;YAEzD,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;YACzD,MAAM,wBAAwB,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YAC9D,MAAM,eAAe,GAAG,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;YAEhE,sDAAsD;YACtD,sGAAsG;YACtG,IAAI,CAAC,kBAAkB,IAAI,CAAC,wBAAwB,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC1E,OAAO,IAAI,CAAC;YACb,CAAC;YAED,IAAI,OAAO,IAAI,CAAC,kBAAkB,IAAI,wBAAwB,CAAC,EAAE,CAAC;gBACjE,OAAO,CAAC,GAAG,CAAC,sDAAsD,MAAM,EAAE,CAAC,CAAC;YAC7E,CAAC;YAED,MAAM,GAAG,GAAG,0BAA0B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAErD,IAAI,OAAO,IAAI,CAAC,kBAAkB,IAAI,wBAAwB,CAAC,EAAE,CAAC;gBACjE,IAAI,GAAG,EAAE,CAAC;oBACT,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAClD,IAAI,QAAQ,EAAE,CAAC;wBACd,OAAO,CAAC,IAAI,CAAC,0EAA0E,MAAM,EAAE,CAAC,CAAC;oBAClG,CAAC;yBAAM,CAAC;wBACP,OAAO,CAAC,GAAG,CAAC,6CAA6C,MAAM,EAAE,CAAC,CAAC;oBACpE,CAAC;gBACF,CAAC;qBAAM,CAAC;oBACP,OAAO,CAAC,GAAG,CAAC,gDAAgD,MAAM,0CAA0C,CAAC,CAAC;gBAC/G,CAAC;YACF,CAAC;YAED,OAAO,GAAG,CAAC;QACZ,CAAC;KACD,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"nativeclass-transformer-plugin.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/nativeclass-transformer-plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAClG,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD;;;GAGG;AACH,SAAS,6BAA6B,CAAC,EAAiB;IACvD,IAAI,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,KAAK,aAAa;QAAE,OAAO,IAAI,CAAC;IAClE,IAAI,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,KAAK,aAAa;QAAE,OAAO,IAAI,CAAC;IACnH,OAAO,KAAK,CAAC;AACd,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,+BAA+B,CAAC,IAAY,EAAE,EAAiB;IACvE,MAAM,KAAK,GAAwD,EAAE,CAAC;IACtE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IAErC,MAAM,KAAK,GAAG,CAAC,IAAa,EAAQ,EAAE;QACrC,IAAI,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;YAC/B,MAAM,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,0BAA0B,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;YACrO,IAAI,UAAU,IAAI,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBAChF,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACnC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACpC,IAAI,EAAE,CAAC,wBAAwB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;oBACzE,MAAM,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,6BAA6B,CAAC,EAAE,CAAC,CAAC,CAAC;oBACvF,IAAI,SAAS,CAAC,MAAM,KAAK,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;wBACnD,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;wBAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;wBACpC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;wBAC9B,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;4BAC5B,uEAAuE;4BACvE,2EAA2E;4BAC3E,4BAA4B;4BAC5B,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;wBACtE,CAAC;6BAAM,CAAC;4BACP,MAAM,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;4BACjG,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;4BAC9C,MAAM,QAAQ,GAAG,IAAI,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;4BACzJ,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,UAAU,IAAI,QAAQ,GAAG,EAAE,CAAC,CAAC;wBACpF,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;QACD,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC,CAAC;IACF,KAAK,CAAC,EAAE,CAAC,CAAC;IAEV,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AAC9B,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,2BAA2B,CAAC,IAAY;IAChD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAE7C,IAAI,EAAiB,CAAC;IACtB,IAAI,CAAC;QACJ,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,yBAAyB,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAC3G,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,KAAK,GAAwD,EAAE,CAAC;IAEtE,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC;YAAE,SAAS;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC;QAClC,IAAI,CAAC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC;YAAE,SAAS;QACxC,8EAA8E;QAC9E,IAAI,CAAC,6CAA6C,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QAC7E,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC;QACjC,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,aAAa,CAAC;YAAE,SAAS;QAC3F,MAAM,KAAK,GAAG,MAAM,CAAC,aAAa,CAAC;QACnC,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,WAAW,CAAC,CAAC;QACzG,IAAI,SAAS,CAAC,MAAM,KAAK,KAAK,CAAC,QAAQ,CAAC,MAAM;YAAE,SAAS;QACzD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC5C,mEAAmE;YACnE,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YACzE,SAAS;QACV,CAAC;QACD,MAAM,aAAa,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjG,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,aAAa,IAAI,EAAE,CAAC,CAAC;IAC9F,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAE/B,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAY,EAAE,MAAc,EAAE,OAAO,GAAG,KAAK;IACnF,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC;QAAE,OAAO,IAAI,CAAC;IAE/E,IAAI,EAAiB,CAAC;IACtB,IAAI,CAAC;QACJ,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAChG,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,qBAAqB,EAAE,GAAG,+BAA+B,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAE9G,IAAI,CAAC,qBAAqB,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAE7C,qGAAqG;IACrG,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,KAAK,MAAM,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QACjE,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAClE,CAAC;IAED,iEAAiE;IACjE,4CAA4C;IAC5C,qEAAqE;IACrE,oBAAoB;IACpB,0GAA0G;IAC1G,iFAAiF;IACjF,2DAA2D;IAC3D,IAAI,qBAAqB,GAAG,KAAK,CAAC;IAClC,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAC3D,IAAI,CAAC;YACJ,uEAAuE;YACvE,MAAM,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,MAAM,GAAG,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACvG,IAAI,SAA+D,CAAC;YACpE,IAAI,QAAQ,GAAG,EAAE,CAAC;YAClB,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC;YACtB,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC;YACpB,IAAI,SAAS,GAAG,EAAE,CAAC,CAAC,6BAA6B;YAEjD,MAAM,SAAS,GAAG,CAAC,IAAa,EAAE,EAAE;gBACnC,IAAI,SAAS;oBAAE,OAAO;gBACtB,2CAA2C;gBAC3C,8CAA8C;gBAC9C,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;oBAClC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;wBACtD,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;4BACpF,IAAI,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC;4BACjC,oDAAoD;4BACpD,IAAI,EAAE,CAAC,kBAAkB,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,aAAa,CAAC,IAAI,KAAK,EAAE,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;gCACpG,IAAI,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;oCACrC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;gCACjC,CAAC;gCACD,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC;4BAC7B,CAAC;4BACD,IAAI,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC;gCAC1E,MAAM,aAAa,GAAG,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;gCACtG,IAAI,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;oCAC7B,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;oCACpH,SAAS,GAAG,SAAS,CAAC;oCACtB,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;oCACjC,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;gCAC5B,CAAC;4BACF,CAAC;wBACF,CAAC;oBACF,CAAC;gBACF,CAAC;gBACD,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAClC,CAAC,CAAC;YACF,SAAS,CAAC,EAAE,CAAC,CAAC;YAEd,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ;gBAAE,SAAS;YAEtC,iEAAiE;YACjE,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;YAC3E,+DAA+D;YAC/D,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAC3D,MAAM,WAAW,GAAG,SAAS,SAAS,YAAY,QAAQ,IAAI,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAE5G,MAAM,WAAW,GAAG,EAAE;iBACpB,eAAe,CAAC,WAAW,EAAE;gBAC7B,eAAe,EAAE;oBAChB,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM;oBAC5B,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG;oBAC3B,sBAAsB,EAAE,IAAI;oBAC5B,qBAAqB,EAAE,KAAK;oBAC5B,aAAa,EAAE,IAAI;oBACnB,uBAAuB,EAAE,KAAK;iBAC9B;aACD,CAAC;iBACD,UAAU,CAAC,OAAO,CAAC,sBAAsB,EAAE,kBAAkB,CAAC;iBAC9D,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC;iBACjC,IAAI,EAAE,CAAC;YAET,+FAA+F;YAC/F,yDAAyD;YACzD,IAAI,WAAW,GAAG,WAAW,CAAC;YAC9B,IAAI,SAAS,EAAE,CAAC;gBACf,uDAAuD;gBACvD,0DAA0D;gBAC1D,qDAAqD;gBACrD,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,OAAO,SAAS,IAAI,EAAE,OAAO,SAAS,MAAM,SAAS,IAAI,CAAC,CAAC;YAC9F,CAAC;YAED,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,GAAG,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YAChF,qBAAqB,GAAG,IAAI,CAAC;YAE7B,IAAI,OAAO,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CAAC,gDAAgD,SAAS,8BAA8B,MAAM,EAAE,CAAC,CAAC;YAC9G,CAAC;QACF,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACZ,IAAI,OAAO,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,oDAAoD,SAAS,QAAQ,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;YACjG,CAAC;YACD,4DAA4D;QAC7D,CAAC;IACF,CAAC;IAED,6EAA6E;IAC7E,gFAAgF;IAChF,gFAAgF;IAChF,8EAA8E;IAC9E,8EAA8E;IAC9E,6DAA6D;IAC7D,oEAAoE;IACpE,yEAAyE;IACzE,iCAAiC;IACjC,IAAI,qBAAqB,EAAE,CAAC;QAC3B,MAAM,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACrB,IAAI,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,6DAA6D,MAAM,EAAE,CAAC,CAAC;QACpF,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IACpC,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kCAAkC;IACjD,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;IAEnD,OAAO;QACN;YACC,IAAI,EAAE,4BAA4B;YAClC,OAAO,EAAE,KAAK;YACd,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,EAAU;gBACvC,IAAI,CAAC,IAAI;oBAAE,OAAO,IAAI,CAAC;gBACvB,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChC,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC5C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAChD,MAAM,YAAY,GAAG,CAAC,QAAQ,IAAI,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAClE,IAAI,CAAC,QAAQ,IAAI,CAAC,YAAY,IAAI,CAAC,QAAQ;oBAAE,OAAO,IAAI,CAAC;gBAEzD,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;gBACzD,MAAM,wBAAwB,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;gBAC9D,MAAM,eAAe,GAAG,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;gBAEhE,sDAAsD;gBACtD,sGAAsG;gBACtG,IAAI,CAAC,kBAAkB,IAAI,CAAC,wBAAwB,IAAI,CAAC,eAAe,EAAE,CAAC;oBAC1E,OAAO,IAAI,CAAC;gBACb,CAAC;gBAED,IAAI,OAAO,IAAI,CAAC,kBAAkB,IAAI,wBAAwB,CAAC,EAAE,CAAC;oBACjE,OAAO,CAAC,GAAG,CAAC,sDAAsD,MAAM,EAAE,CAAC,CAAC;gBAC7E,CAAC;gBAED,MAAM,GAAG,GAAG,0BAA0B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;gBAErD,IAAI,OAAO,IAAI,CAAC,kBAAkB,IAAI,wBAAwB,CAAC,EAAE,CAAC;oBACjE,IAAI,GAAG,EAAE,CAAC;wBACT,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;wBAClD,IAAI,QAAQ,EAAE,CAAC;4BACd,OAAO,CAAC,IAAI,CAAC,0EAA0E,MAAM,EAAE,CAAC,CAAC;wBAClG,CAAC;6BAAM,CAAC;4BACP,OAAO,CAAC,GAAG,CAAC,6CAA6C,MAAM,EAAE,CAAC,CAAC;wBACpE,CAAC;oBACF,CAAC;yBAAM,CAAC;wBACP,OAAO,CAAC,GAAG,CAAC,gDAAgD,MAAM,0CAA0C,CAAC,CAAC;oBAC/G,CAAC;gBACF,CAAC;gBAED,OAAO,GAAG,CAAC;YACZ,CAAC;SACD;QACD,2FAA2F;QAC3F,gGAAgG;QAChG,2FAA2F;QAC3F,wFAAwF;QACxF,sFAAsF;QACtF,6DAA6D;QAC7D;YACC,IAAI,EAAE,6BAA6B;YACnC,OAAO,EAAE,MAAM;YACf,SAAS,CAAC,IAAY,EAAE,EAAU;gBACjC,gFAAgF;gBAChF,+EAA+E;gBAC/E,IAAI,wBAAwB,CAAC,eAAe,EAAE,CAAC;oBAAE,OAAO,IAAI,CAAC;gBAC7D,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC;oBAAE,OAAO,IAAI,CAAC;gBACpD,OAAO,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YACtD,CAAC;SACD;KACD,CAAC;AACH,CAAC"}
|
|
@@ -2,6 +2,7 @@ import path from 'path';
|
|
|
2
2
|
import fs from 'fs';
|
|
3
3
|
import { getProjectRootPath } from './project.js';
|
|
4
4
|
import { findPackageInNodeModules } from './module-resolution.js';
|
|
5
|
+
import { resolveMainFieldPlatformVariant } from './resolve-main-field-platform.js';
|
|
5
6
|
const projectRoot = getProjectRootPath();
|
|
6
7
|
// Cache for package resolution results
|
|
7
8
|
const packageCache = new Map();
|
|
@@ -53,66 +54,16 @@ export function nativescriptPackageResolver(platform) {
|
|
|
53
54
|
if (fs.existsSync(packageJsonPath)) {
|
|
54
55
|
try {
|
|
55
56
|
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
if (fs.existsSync(platformFile)) {
|
|
64
|
-
const result = {
|
|
65
|
-
id: platformFile,
|
|
66
|
-
resolvedBy: 'nativescript-package-resolver',
|
|
67
|
-
};
|
|
68
|
-
packageCache.set(packageName, result);
|
|
69
|
-
// console.log(
|
|
70
|
-
// `🔧 Package resolver: ${packageName} -> ${mainField}.${platform}.js (extensionless)`,
|
|
71
|
-
// );
|
|
72
|
-
return result;
|
|
73
|
-
}
|
|
74
|
-
// Fallback to .js
|
|
75
|
-
const jsFile = path.join(packagePath, `${mainField}.js`);
|
|
76
|
-
if (fs.existsSync(jsFile)) {
|
|
77
|
-
const result = {
|
|
78
|
-
id: jsFile,
|
|
79
|
-
resolvedBy: 'nativescript-package-resolver',
|
|
80
|
-
};
|
|
81
|
-
packageCache.set(packageName, result);
|
|
82
|
-
// console.log(
|
|
83
|
-
// `🔧 Package resolver: ${packageName} -> ${mainField}.js (extensionless)`,
|
|
84
|
-
// );
|
|
85
|
-
return result;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
// Case 2: Main field has extension but file doesn't exist - look for platform variants
|
|
89
|
-
else if (!fs.existsSync(mainFilePath)) {
|
|
90
|
-
// Extract base name and extension
|
|
91
|
-
const ext = path.extname(mainField);
|
|
92
|
-
const baseName = mainField.slice(0, -ext.length);
|
|
93
|
-
// Try platform-specific file first
|
|
94
|
-
const platformFile = path.join(packagePath, `${baseName}.${platform}${ext}`);
|
|
95
|
-
if (fs.existsSync(platformFile)) {
|
|
96
|
-
const result = {
|
|
97
|
-
id: platformFile,
|
|
98
|
-
resolvedBy: 'nativescript-package-resolver',
|
|
99
|
-
};
|
|
100
|
-
packageCache.set(packageName, result);
|
|
101
|
-
// console.log(
|
|
102
|
-
// `🔧 Package resolver: ${packageName} -> ${baseName}.${platform}${ext} (missing main)`,
|
|
103
|
-
// );
|
|
104
|
-
return result;
|
|
105
|
-
}
|
|
106
|
-
// Cache as null - no platform variant found
|
|
107
|
-
packageCache.set(packageName, null);
|
|
108
|
-
return null;
|
|
109
|
-
}
|
|
110
|
-
else {
|
|
111
|
-
// Main file exists - let normal resolution handle it
|
|
112
|
-
packageCache.set(packageName, null);
|
|
113
|
-
return null;
|
|
114
|
-
}
|
|
57
|
+
// Shared main-field platform-variant rules (Case 1/2). Returns a
|
|
58
|
+
// normalizeModuleId-canonical id, or null when no rewrite applies.
|
|
59
|
+
const resolved = resolveMainFieldPlatformVariant(packagePath, packageJson.main, platform);
|
|
60
|
+
if (resolved) {
|
|
61
|
+
const result = { id: resolved, resolvedBy: 'nativescript-package-resolver' };
|
|
62
|
+
packageCache.set(packageName, result);
|
|
63
|
+
return result;
|
|
115
64
|
}
|
|
65
|
+
packageCache.set(packageName, null);
|
|
66
|
+
return null;
|
|
116
67
|
}
|
|
117
68
|
catch (e) {
|
|
118
69
|
// Cache as null on error
|
|
@@ -131,9 +82,6 @@ export function nativescriptPackageResolver(platform) {
|
|
|
131
82
|
packageCache.set(packageName, null);
|
|
132
83
|
return null;
|
|
133
84
|
}
|
|
134
|
-
// Cache as null and return null
|
|
135
|
-
packageCache.set(packageName, null);
|
|
136
|
-
return null;
|
|
137
85
|
},
|
|
138
86
|
};
|
|
139
87
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nativescript-package-resolver.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/nativescript-package-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"nativescript-package-resolver.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/nativescript-package-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAC;AAEnF,MAAM,WAAW,GAAG,kBAAkB,EAAE,CAAC;AAEzC,uCAAuC;AACvC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;AAE/B,MAAM,UAAU,2BAA2B,CAAC,QAAgB;IAC3D,OAAO;QACN,IAAI,EAAE,+BAA+B;QACrC,OAAO,EAAE,KAAK,EAAE,6CAA6C;QAC7D,SAAS,CAAC,EAAE,EAAE,QAAQ;YACrB,0DAA0D;YAC1D,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClE,OAAO,IAAI,CAAC;YACb,CAAC;YAED,gCAAgC;YAChC,IAAI,WAAW,CAAC;YAChB,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,2DAA2D;gBAC3D,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC5B,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBACvB,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB;oBAC1D,iDAAiD;oBACjD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACtB,OAAO,IAAI,CAAC,CAAC,oDAAoD;oBAClE,CAAC;gBACF,CAAC;qBAAM,CAAC;oBACP,OAAO,IAAI,CAAC,CAAC,yBAAyB;gBACvC,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,8CAA8C;gBAC9C,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC5B,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACvB,iDAAiD;gBACjD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtB,OAAO,IAAI,CAAC,CAAC,6CAA6C;gBAC3D,CAAC;YACF,CAAC;YAED,oBAAoB;YACpB,IAAI,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;gBACnC,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACnD,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;oBAC3B,OAAO,IAAI,CAAC,CAAC,wDAAwD;gBACtE,CAAC;gBACD,OAAO,YAAY,CAAC;YACrB,CAAC;YAED,MAAM,WAAW,GAAG,wBAAwB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YAEvE,IAAI,WAAW,EAAE,CAAC;gBACjB,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;gBAC/D,IAAI,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;oBACpC,IAAI,CAAC;wBACJ,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;wBACzE,iEAAiE;wBACjE,mEAAmE;wBACnE,MAAM,QAAQ,GAAG,+BAA+B,CAAC,WAAW,EAAE,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;wBAC1F,IAAI,QAAQ,EAAE,CAAC;4BACd,MAAM,MAAM,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,+BAA+B,EAAE,CAAC;4BAC7E,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;4BACtC,OAAO,MAAM,CAAC;wBACf,CAAC;wBACD,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;wBACpC,OAAO,IAAI,CAAC;oBACb,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACZ,yBAAyB;wBACzB,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;wBACpC,OAAO,IAAI,CAAC;oBACb,CAAC;gBACF,CAAC;qBAAM,CAAC;oBACP,wBAAwB;oBACxB,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;oBACpC,OAAO,IAAI,CAAC;gBACb,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,wBAAwB;gBACxB,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;gBACpC,OAAO,IAAI,CAAC;YACb,CAAC;QACF,CAAC;KACD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonicalize a filesystem path so it can serve as a STABLE Rolldown module id
|
|
3
|
+
* that is identical regardless of the host operating system.
|
|
4
|
+
*
|
|
5
|
+
* Why this exists
|
|
6
|
+
* ---------------
|
|
7
|
+
* Rolldown keys its module graph on the raw `resolveId` string. It does NOT
|
|
8
|
+
* unify `C:\proj\node_modules\@nativescript\core\ui\index.js` with
|
|
9
|
+
* `C:/proj/node_modules/@nativescript/core/ui/index.js`, nor `c:/…` with
|
|
10
|
+
* `C:/…`. Any two ids that point at the same physical file but differ in
|
|
11
|
+
* separator style or drive-letter case become two distinct modules — so the
|
|
12
|
+
* file is evaluated twice.
|
|
13
|
+
*
|
|
14
|
+
* NativeScript ships several `enforce: 'pre'` resolver plugins
|
|
15
|
+
* (`NativeScriptPlugin`, `nativescriptPackageResolver`,
|
|
16
|
+
* `packagePlatformResolverPlugin`, the tsconfig-paths resolver). They all build
|
|
17
|
+
* ids with Node's `path.resolve`/`path.join`, which on Windows emit
|
|
18
|
+
* backslashes and inherit the drive-letter case of `process.cwd()`. Meanwhile
|
|
19
|
+
* Vite's alias replacement (`NS_CORE_ROOT`) and Vite's own resolver emit
|
|
20
|
+
* forward-slash ids whose drive case comes from `require.resolve()`/realpath.
|
|
21
|
+
*
|
|
22
|
+
* The result on Windows: `@nativescript/core`'s internal relative imports
|
|
23
|
+
* (resolved by our plugins → backslashes) and the same files reached via bare
|
|
24
|
+
* `@nativescript/core/*` specifiers (resolved by the alias → forward slashes)
|
|
25
|
+
* produce different ids, core is bundled twice, and the second
|
|
26
|
+
* `widthProperty.register(View)` crashes on a non-configurable property.
|
|
27
|
+
*
|
|
28
|
+
* macOS/Linux never hit this because POSIX paths from every code path are
|
|
29
|
+
* already byte-identical — which is exactly why this normalization is a no-op
|
|
30
|
+
* there.
|
|
31
|
+
*
|
|
32
|
+
* Canonical form
|
|
33
|
+
* --------------
|
|
34
|
+
* - forward slashes (the form Vite/Rolldown and our alias replacement use)
|
|
35
|
+
* - uppercase Windows drive letter, matching Node's `realpath()`/
|
|
36
|
+
* `require.resolve()` convention — the source that seeds `NS_CORE_ROOT`.
|
|
37
|
+
*
|
|
38
|
+
* Virtual ids (`\0…`, `virtual:…`), query suffixes (`?worker`), and bare
|
|
39
|
+
* specifiers are preserved as-is apart from separator/drive canonicalization,
|
|
40
|
+
* so it is safe to call on any string a `resolveId` hook might return.
|
|
41
|
+
*/
|
|
42
|
+
export declare function normalizeModuleId(id: string): string;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonicalize a filesystem path so it can serve as a STABLE Rolldown module id
|
|
3
|
+
* that is identical regardless of the host operating system.
|
|
4
|
+
*
|
|
5
|
+
* Why this exists
|
|
6
|
+
* ---------------
|
|
7
|
+
* Rolldown keys its module graph on the raw `resolveId` string. It does NOT
|
|
8
|
+
* unify `C:\proj\node_modules\@nativescript\core\ui\index.js` with
|
|
9
|
+
* `C:/proj/node_modules/@nativescript/core/ui/index.js`, nor `c:/…` with
|
|
10
|
+
* `C:/…`. Any two ids that point at the same physical file but differ in
|
|
11
|
+
* separator style or drive-letter case become two distinct modules — so the
|
|
12
|
+
* file is evaluated twice.
|
|
13
|
+
*
|
|
14
|
+
* NativeScript ships several `enforce: 'pre'` resolver plugins
|
|
15
|
+
* (`NativeScriptPlugin`, `nativescriptPackageResolver`,
|
|
16
|
+
* `packagePlatformResolverPlugin`, the tsconfig-paths resolver). They all build
|
|
17
|
+
* ids with Node's `path.resolve`/`path.join`, which on Windows emit
|
|
18
|
+
* backslashes and inherit the drive-letter case of `process.cwd()`. Meanwhile
|
|
19
|
+
* Vite's alias replacement (`NS_CORE_ROOT`) and Vite's own resolver emit
|
|
20
|
+
* forward-slash ids whose drive case comes from `require.resolve()`/realpath.
|
|
21
|
+
*
|
|
22
|
+
* The result on Windows: `@nativescript/core`'s internal relative imports
|
|
23
|
+
* (resolved by our plugins → backslashes) and the same files reached via bare
|
|
24
|
+
* `@nativescript/core/*` specifiers (resolved by the alias → forward slashes)
|
|
25
|
+
* produce different ids, core is bundled twice, and the second
|
|
26
|
+
* `widthProperty.register(View)` crashes on a non-configurable property.
|
|
27
|
+
*
|
|
28
|
+
* macOS/Linux never hit this because POSIX paths from every code path are
|
|
29
|
+
* already byte-identical — which is exactly why this normalization is a no-op
|
|
30
|
+
* there.
|
|
31
|
+
*
|
|
32
|
+
* Canonical form
|
|
33
|
+
* --------------
|
|
34
|
+
* - forward slashes (the form Vite/Rolldown and our alias replacement use)
|
|
35
|
+
* - uppercase Windows drive letter, matching Node's `realpath()`/
|
|
36
|
+
* `require.resolve()` convention — the source that seeds `NS_CORE_ROOT`.
|
|
37
|
+
*
|
|
38
|
+
* Virtual ids (`\0…`, `virtual:…`), query suffixes (`?worker`), and bare
|
|
39
|
+
* specifiers are preserved as-is apart from separator/drive canonicalization,
|
|
40
|
+
* so it is safe to call on any string a `resolveId` hook might return.
|
|
41
|
+
*/
|
|
42
|
+
export function normalizeModuleId(id) {
|
|
43
|
+
if (!id)
|
|
44
|
+
return id;
|
|
45
|
+
// Forward slashes everywhere. Rollup-style virtual prefixes ("\0") use a
|
|
46
|
+
// leading NUL, never a path separator, so this leaves them intact.
|
|
47
|
+
let normalized = id.replace(/\\/g, '/');
|
|
48
|
+
// Uppercase a leading Windows drive letter ("c:/…" → "C:/…"). Matches the
|
|
49
|
+
// case Node's realpath()/require.resolve() returns, which is what feeds
|
|
50
|
+
// NS_CORE_ROOT and therefore every alias-resolved core id.
|
|
51
|
+
if (normalized.length >= 2 && normalized[1] === ':') {
|
|
52
|
+
const drive = normalized.charCodeAt(0);
|
|
53
|
+
// a-z → A-Z
|
|
54
|
+
if (drive >= 97 && drive <= 122) {
|
|
55
|
+
normalized = normalized[0].toUpperCase() + normalized.slice(1);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return normalized;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=normalize-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-id.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/normalize-id.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAU;IAC3C,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,CAAC;IACnB,yEAAyE;IACzE,mEAAmE;IACnE,IAAI,UAAU,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACxC,0EAA0E;IAC1E,wEAAwE;IACxE,2DAA2D;IAC3D,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;QACrD,MAAM,KAAK,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACvC,YAAY;QACZ,IAAI,KAAK,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,EAAE,CAAC;YACjC,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAChE,CAAC;IACF,CAAC;IACD,OAAO,UAAU,CAAC;AACnB,CAAC"}
|