@nativescript/vite 8.0.0-alpha.4 → 8.0.0-alpha.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +51 -11
- package/bin/cli.cjs +8 -14
- package/configuration/angular.d.ts +34 -1
- package/configuration/angular.js +376 -165
- package/configuration/angular.js.map +1 -1
- package/configuration/base.js +256 -30
- package/configuration/base.js.map +1 -1
- package/configuration/javascript.js +12 -90
- package/configuration/javascript.js.map +1 -1
- package/configuration/solid.js +33 -4
- package/configuration/solid.js.map +1 -1
- package/configuration/typescript.js +10 -90
- 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-state.d.ts +8 -0
- package/helpers/app-css-state.js +8 -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/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 +692 -0
- package/helpers/dev-host.js.map +1 -0
- package/helpers/dynamic-import-plugin.js +1 -1
- package/helpers/dynamic-import-plugin.js.map +1 -1
- package/helpers/esbuild-platform-resolver.js +4 -1
- package/helpers/esbuild-platform-resolver.js.map +1 -1
- package/helpers/external-configs.d.ts +10 -12
- package/helpers/external-configs.js +54 -35
- package/helpers/external-configs.js.map +1 -1
- package/helpers/global-defines.d.ts +128 -0
- package/helpers/global-defines.js +174 -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/init.js +0 -18
- 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 +3 -1
- package/helpers/main-entry.js +444 -50
- package/helpers/main-entry.js.map +1 -1
- package/helpers/nativeclass-esbuild-plugin.d.ts +2 -1
- package/helpers/nativeclass-esbuild-plugin.js.map +1 -1
- package/helpers/nativeclass-transform.js +5 -6
- package/helpers/nativeclass-transform.js.map +1 -1
- package/helpers/nativeclass-transformer-plugin.d.ts +9 -2
- package/helpers/nativeclass-transformer-plugin.js +157 -14
- 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-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 +14 -0
- package/helpers/ts-config-paths.js +90 -9
- package/helpers/ts-config-paths.js.map +1 -1
- package/helpers/typescript-check.d.ts +2 -1
- 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.js +1 -2
- package/helpers/utils.js.map +1 -1
- package/helpers/workers.d.ts +20 -19
- package/helpers/workers.js +624 -4
- package/helpers/workers.js.map +1 -1
- package/hmr/client/css-handler.d.ts +2 -1
- package/hmr/client/css-handler.js +50 -26
- 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 +79 -0
- package/hmr/client/framework-client-strategy.js +19 -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 +60 -0
- package/hmr/client/hmr-pending-overlay.js.map +1 -0
- package/hmr/client/index.js +820 -212
- package/hmr/client/index.js.map +1 -1
- package/hmr/client/utils.d.ts +7 -1
- package/hmr/client/utils.js +207 -29
- package/hmr/client/utils.js.map +1 -1
- package/hmr/entry-runtime.d.ts +2 -1
- package/hmr/entry-runtime.js +256 -69
- 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 +109 -0
- package/hmr/frameworks/angular/build/angular-linker.js.map +1 -0
- package/hmr/frameworks/angular/build/inject-component-hmr-registration.d.ts +112 -0
- package/hmr/frameworks/angular/build/inject-component-hmr-registration.js +291 -0
- package/hmr/frameworks/angular/build/inject-component-hmr-registration.js.map +1 -0
- package/hmr/frameworks/angular/build/inject-hmr-vite-ignore.d.ts +75 -0
- package/hmr/frameworks/angular/build/inject-hmr-vite-ignore.js +221 -0
- package/hmr/frameworks/angular/build/inject-hmr-vite-ignore.js.map +1 -0
- package/{helpers/angular → hmr/frameworks/angular/build}/inline-decorator-component-templates.js +1 -170
- package/hmr/frameworks/angular/build/inline-decorator-component-templates.js.map +1 -0
- package/hmr/frameworks/angular/build/js-lexer.d.ts +4 -0
- package/{helpers/angular/synthesize-decorator-ctor-parameters.js → hmr/frameworks/angular/build/js-lexer.js} +22 -96
- package/hmr/frameworks/angular/build/js-lexer.js.map +1 -0
- package/hmr/frameworks/angular/build/shared-linker.d.ts +39 -0
- package/hmr/frameworks/angular/build/shared-linker.js +128 -0
- package/hmr/frameworks/angular/build/shared-linker.js.map +1 -0
- package/hmr/frameworks/angular/build/synthesize-decorator-ctor-parameters.js +88 -0
- package/hmr/frameworks/angular/build/synthesize-decorator-ctor-parameters.js.map +1 -0
- package/{helpers/angular → hmr/frameworks/angular/build}/synthesize-injectable-factories.js +1 -174
- package/hmr/frameworks/angular/build/synthesize-injectable-factories.js.map +1 -0
- package/{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/client/index.d.ts +1 -0
- package/hmr/frameworks/angular/client/index.js +803 -21
- package/hmr/frameworks/angular/client/index.js.map +1 -1
- package/hmr/frameworks/angular/client/strategy.d.ts +9 -0
- package/hmr/frameworks/angular/client/strategy.js +19 -0
- package/hmr/frameworks/angular/client/strategy.js.map +1 -0
- package/hmr/frameworks/angular/server/angular-root-component.d.ts +79 -0
- package/hmr/frameworks/angular/server/angular-root-component.js +149 -0
- package/hmr/frameworks/angular/server/angular-root-component.js.map +1 -0
- package/hmr/frameworks/angular/server/linker.js +1 -4
- package/hmr/frameworks/angular/server/linker.js.map +1 -1
- package/hmr/frameworks/angular/server/strategy.js +460 -12
- package/hmr/frameworks/angular/server/strategy.js.map +1 -1
- package/hmr/{server → frameworks/angular/server}/websocket-angular-entry.js +2 -2
- package/hmr/frameworks/angular/server/websocket-angular-entry.js.map +1 -0
- package/hmr/{server → frameworks/angular/server}/websocket-angular-hot-update.d.ts +17 -11
- package/hmr/frameworks/angular/server/websocket-angular-hot-update.js +336 -0
- package/hmr/frameworks/angular/server/websocket-angular-hot-update.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/server/strategy.js +291 -16
- package/hmr/frameworks/solid/server/strategy.js.map +1 -1
- package/hmr/frameworks/typescript/server/strategy.js +38 -14
- package/hmr/frameworks/typescript/server/strategy.js.map +1 -1
- package/hmr/frameworks/vue/client/dep-propagation.d.ts +36 -0
- package/hmr/frameworks/vue/client/dep-propagation.js +101 -0
- package/hmr/frameworks/vue/client/dep-propagation.js.map +1 -0
- package/hmr/frameworks/vue/client/index.d.ts +8 -0
- package/hmr/frameworks/vue/client/index.js +56 -243
- package/hmr/frameworks/vue/client/index.js.map +1 -1
- package/hmr/frameworks/vue/client/strategy.d.ts +33 -0
- package/hmr/frameworks/vue/client/strategy.js +157 -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 +142 -0
- package/hmr/frameworks/vue/client/vue-sfc-update-overlay.js.map +1 -0
- package/hmr/frameworks/vue/server/sfc-route-assemble.d.ts +7 -0
- package/hmr/frameworks/vue/server/sfc-route-assemble.js +747 -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 +459 -0
- package/hmr/frameworks/vue/server/sfc-route-serve.js.map +1 -0
- package/hmr/frameworks/vue/server/sfc-route-shared.d.ts +38 -0
- package/hmr/frameworks/vue/server/sfc-route-shared.js +48 -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 +278 -1
- 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 +77 -10
- 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/server/constants.js +20 -5
- package/hmr/server/constants.js.map +1 -1
- package/hmr/server/core-sanitize.d.ts +90 -7
- package/hmr/server/core-sanitize.js +211 -56
- package/hmr/server/core-sanitize.js.map +1 -1
- package/hmr/server/device-transform-helpers.d.ts +24 -0
- package/hmr/server/device-transform-helpers.js +369 -0
- package/hmr/server/device-transform-helpers.js.map +1 -0
- package/hmr/server/framework-strategy.d.ts +108 -11
- package/hmr/server/hmr-module-graph.d.ts +37 -0
- package/hmr/server/hmr-module-graph.js +214 -0
- package/hmr/server/hmr-module-graph.js.map +1 -0
- package/hmr/server/import-map.d.ts +11 -2
- package/hmr/server/import-map.js +95 -44
- package/hmr/server/import-map.js.map +1 -1
- package/hmr/server/index.js +7 -16
- package/hmr/server/index.js.map +1 -1
- package/hmr/server/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-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 +38 -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 +14 -0
- package/hmr/server/process-code-for-device.js +702 -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 +600 -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/server-origin.d.ts +2 -0
- package/hmr/server/server-origin.js +83 -0
- package/hmr/server/server-origin.js.map +1 -0
- package/hmr/server/shared-transform-request.js +13 -7
- package/hmr/server/shared-transform-request.js.map +1 -1
- 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.js +72 -42
- package/hmr/server/vite-plugin.js.map +1 -1
- package/hmr/server/websocket-core-bridge.d.ts +45 -6
- package/hmr/server/websocket-core-bridge.js +81 -77
- package/hmr/server/websocket-core-bridge.js.map +1 -1
- package/hmr/server/websocket-css-hot-update.d.ts +33 -0
- package/hmr/server/websocket-css-hot-update.js +65 -0
- package/hmr/server/websocket-css-hot-update.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 +15 -0
- package/hmr/server/websocket-graph-upsert.js +20 -0
- package/hmr/server/websocket-graph-upsert.js.map +1 -1
- package/hmr/server/websocket-hmr-pending.d.ts +37 -0
- package/hmr/server/websocket-hmr-pending.js +55 -0
- package/hmr/server/websocket-hmr-pending.js.map +1 -0
- package/hmr/server/websocket-hot-update.d.ts +77 -0
- package/hmr/server/websocket-hot-update.js +360 -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 +50 -0
- package/hmr/server/websocket-import-map-route.js.map +1 -0
- package/hmr/server/websocket-module-bindings.js +3 -3
- package/hmr/server/websocket-module-bindings.js.map +1 -1
- package/hmr/server/websocket-module-specifiers.d.ts +66 -2
- package/hmr/server/websocket-module-specifiers.js +203 -20
- package/hmr/server/websocket-module-specifiers.js.map +1 -1
- package/hmr/server/websocket-ns-core.d.ts +21 -0
- package/hmr/server/websocket-ns-core.js +311 -0
- package/hmr/server/websocket-ns-core.js.map +1 -0
- package/hmr/server/websocket-ns-entry.d.ts +21 -0
- package/hmr/server/websocket-ns-entry.js +164 -0
- package/hmr/server/websocket-ns-entry.js.map +1 -0
- package/hmr/server/websocket-ns-m-paths.d.ts +1 -1
- package/hmr/server/websocket-ns-m-paths.js +58 -13
- package/hmr/server/websocket-ns-m-paths.js.map +1 -1
- package/hmr/server/websocket-ns-m-request.d.ts +11 -1
- package/hmr/server/websocket-ns-m-request.js +18 -25
- package/hmr/server/websocket-ns-m-request.js.map +1 -1
- package/hmr/server/websocket-ns-m.d.ts +33 -0
- package/hmr/server/websocket-ns-m.js +752 -0
- package/hmr/server/websocket-ns-m.js.map +1 -0
- package/hmr/server/websocket-served-module-helpers.d.ts +82 -0
- package/hmr/server/websocket-served-module-helpers.js +879 -0
- package/hmr/server/websocket-served-module-helpers.js.map +1 -0
- package/hmr/server/websocket-txn.js +2 -8
- package/hmr/server/websocket-txn.js.map +1 -1
- package/hmr/server/websocket-vendor-unifier.d.ts +0 -1
- package/hmr/server/websocket-vendor-unifier.js +4 -9
- package/hmr/server/websocket-vendor-unifier.js.map +1 -1
- package/hmr/server/websocket.d.ts +8 -39
- package/hmr/server/websocket.js +514 -4030
- package/hmr/server/websocket.js.map +1 -1
- package/hmr/shared/ns-globals.d.ts +118 -0
- package/hmr/shared/ns-globals.js +29 -0
- package/hmr/shared/ns-globals.js.map +1 -0
- package/hmr/shared/protocol.d.ts +145 -0
- package/hmr/shared/protocol.js +28 -0
- package/hmr/shared/protocol.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 +133 -0
- package/hmr/shared/runtime/boot-progress.js.map +1 -0
- package/hmr/shared/runtime/boot-timeline.d.ts +18 -0
- package/hmr/shared/runtime/boot-timeline.js +42 -0
- package/hmr/shared/runtime/boot-timeline.js.map +1 -0
- package/hmr/shared/runtime/browser-runtime-contract.js.map +1 -1
- 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.d.ts +119 -26
- package/hmr/shared/runtime/dev-overlay.js +1153 -261
- package/hmr/shared/runtime/dev-overlay.js.map +1 -1
- package/hmr/shared/runtime/global-scope.d.ts +18 -0
- package/hmr/shared/runtime/global-scope.js +21 -0
- package/hmr/shared/runtime/global-scope.js.map +1 -0
- package/hmr/shared/runtime/hooks.js +2 -1
- package/hmr/shared/runtime/hooks.js.map +1 -1
- package/hmr/shared/runtime/http-only-boot.js +7 -6
- package/hmr/shared/runtime/http-only-boot.js.map +1 -1
- package/hmr/shared/runtime/module-provenance.js +4 -6
- package/hmr/shared/runtime/module-provenance.js.map +1 -1
- package/hmr/shared/runtime/root-placeholder-view.d.ts +19 -0
- package/hmr/shared/runtime/root-placeholder-view.js +311 -0
- package/hmr/shared/runtime/root-placeholder-view.js.map +1 -0
- package/hmr/shared/runtime/root-placeholder.js +371 -197
- package/hmr/shared/runtime/root-placeholder.js.map +1 -1
- package/hmr/shared/runtime/session-bootstrap.js +168 -4
- package/hmr/shared/runtime/session-bootstrap.js.map +1 -1
- package/hmr/shared/runtime/vendor-bootstrap.js +3 -10
- package/hmr/shared/runtime/vendor-bootstrap.js.map +1 -1
- package/hmr/shared/vendor/manifest-collect.d.ts +4 -0
- package/hmr/shared/vendor/manifest-collect.js +512 -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 +1 -7
- package/hmr/shared/vendor/manifest.js +102 -741
- package/hmr/shared/vendor/manifest.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 +16 -0
- package/hmr/shared/vendor/vendor-esbuild-plugins.js +203 -0
- package/hmr/shared/vendor/vendor-esbuild-plugins.js.map +1 -0
- package/hmr/vendor-bootstrap.d.ts +1 -3
- package/hmr/vendor-bootstrap.js +4 -6
- package/hmr/vendor-bootstrap.js.map +1 -1
- package/index.d.ts +1 -0
- package/index.js +5 -0
- package/index.js.map +1 -1
- package/package.json +55 -11
- package/runtime/core-aliases-early.js +25 -55
- package/runtime/core-aliases-early.js.map +1 -1
- package/helpers/angular/angular-linker.d.ts +0 -13
- package/helpers/angular/angular-linker.js +0 -194
- package/helpers/angular/angular-linker.js.map +0 -1
- package/helpers/angular/inline-decorator-component-templates.js.map +0 -1
- package/helpers/angular/shared-linker.d.ts +0 -11
- package/helpers/angular/shared-linker.js +0 -75
- package/helpers/angular/shared-linker.js.map +0 -1
- package/helpers/angular/synthesize-decorator-ctor-parameters.js.map +0 -1
- package/helpers/angular/synthesize-injectable-factories.js.map +0 -1
- package/helpers/angular/util.js +0 -67
- package/helpers/angular/util.js.map +0 -1
- package/helpers/prelink-angular.d.ts +0 -2
- package/helpers/prelink-angular.js +0 -117
- package/helpers/prelink-angular.js.map +0 -1
- package/hmr/server/websocket-angular-entry.js.map +0 -1
- package/hmr/server/websocket-angular-hot-update.js +0 -239
- package/hmr/server/websocket-angular-hot-update.js.map +0 -1
- package/hmr/server/websocket-ns-m-finalize.d.ts +0 -32
- package/hmr/server/websocket-ns-m-finalize.js +0 -73
- package/hmr/server/websocket-ns-m-finalize.js.map +0 -1
- package/hmr/server/websocket-runtime-compat.d.ts +0 -19
- package/hmr/server/websocket-runtime-compat.js +0 -286
- package/hmr/server/websocket-runtime-compat.js.map +0 -1
- package/hmr/server/websocket-vue-sfc.d.ts +0 -35
- package/hmr/server/websocket-vue-sfc.js +0 -1116
- package/hmr/server/websocket-vue-sfc.js.map +0 -1
- package/transformers/NativeClass/index.d.ts +0 -2
- package/transformers/NativeClass/index.js +0 -222
- package/transformers/NativeClass/index.js.map +0 -1
- /package/{helpers/angular → hmr/frameworks/angular/build}/inline-decorator-component-templates.d.ts +0 -0
- /package/{helpers/angular → hmr/frameworks/angular/build}/synthesize-decorator-ctor-parameters.d.ts +0 -0
- /package/{helpers/angular → hmr/frameworks/angular/build}/synthesize-injectable-factories.d.ts +0 -0
- /package/hmr/{server → frameworks/angular/server}/websocket-angular-entry.d.ts +0 -0
|
@@ -2,7 +2,23 @@ import path from 'path';
|
|
|
2
2
|
import { existsSync, readFileSync } from 'fs';
|
|
3
3
|
import { findPackageInNodeModules } from './module-resolution.js';
|
|
4
4
|
/**
|
|
5
|
-
* Builds PostCSS configuration with platform
|
|
5
|
+
* Builds PostCSS configuration with a platform-aware postcss-import fallback.
|
|
6
|
+
*
|
|
7
|
+
* Reality check under Vite 8: whenever the compiled CSS still contains
|
|
8
|
+
* `@import`, Vite UNSHIFTS its own bundled postcss-import ahead of every
|
|
9
|
+
* user plugin in this config — so by the time these plugins run, the import
|
|
10
|
+
* rules have already been inlined (or the build already failed on an
|
|
11
|
+
* unresolvable specifier). Platform-variant rewriting (`foo.css` →
|
|
12
|
+
* `foo.ios.css`) therefore happens BEFORE Vite sees the CSS:
|
|
13
|
+
* - module pipeline: the `ns-css-platform` plugin's transform hook
|
|
14
|
+
* - direct `preprocessCSS()` callers: `rewritePlatformCssImports()`
|
|
15
|
+
* (both in helpers/css-platform-plugin.ts)
|
|
16
|
+
* A previous `ns-postcss-platform-import-rewrite` plugin here duplicated that
|
|
17
|
+
* rewrite at the postcss layer; it was unreachable and has been removed.
|
|
18
|
+
*
|
|
19
|
+
* The postcss-import fallback below is retained as defense-in-depth for
|
|
20
|
+
* preprocessor outputs (sass passes `@import "*.css"` through untouched) in
|
|
21
|
+
* case an app's plugin order ever bypasses Vite's internal inliner.
|
|
6
22
|
*/
|
|
7
23
|
export function createPostCssConfig(opts) {
|
|
8
24
|
const { platform, projectRoot, themeCoreRoot, postcssImport } = opts;
|
|
@@ -10,44 +26,11 @@ export function createPostCssConfig(opts) {
|
|
|
10
26
|
return './postcss.config.js';
|
|
11
27
|
return {
|
|
12
28
|
plugins: [
|
|
13
|
-
{
|
|
14
|
-
postcssPlugin: 'ns-postcss-platform-import-rewrite',
|
|
15
|
-
Once(root) {
|
|
16
|
-
try {
|
|
17
|
-
const currentFile = root?.source?.input?.file;
|
|
18
|
-
if (!currentFile)
|
|
19
|
-
return;
|
|
20
|
-
const currentDir = path.dirname(currentFile);
|
|
21
|
-
root.walkAtRules('import', (rule) => {
|
|
22
|
-
const m = /^\s*(?:url\()?["]?([^"')]+)["]?\)?/.exec(rule.params || '');
|
|
23
|
-
if (!m)
|
|
24
|
-
return;
|
|
25
|
-
const spec = m[1];
|
|
26
|
-
if (!spec || !(spec.startsWith('.') || spec.startsWith('/')))
|
|
27
|
-
return;
|
|
28
|
-
if (!spec.endsWith('.css'))
|
|
29
|
-
return;
|
|
30
|
-
const abs = path.isAbsolute(spec) ? spec : path.resolve(currentDir, spec);
|
|
31
|
-
if (existsSync(abs))
|
|
32
|
-
return;
|
|
33
|
-
const ext = platform === 'android' ? '.android.css' : '.ios.css';
|
|
34
|
-
const alt = abs.replace(/\.css$/, ext);
|
|
35
|
-
if (existsSync(alt)) {
|
|
36
|
-
let rel = path.relative(currentDir, alt).replace(/\\/g, '/');
|
|
37
|
-
if (!rel.startsWith('.'))
|
|
38
|
-
rel = './' + rel;
|
|
39
|
-
rule.params = rule.params.replace(spec, rel);
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
catch { }
|
|
44
|
-
},
|
|
45
|
-
},
|
|
46
29
|
postcssImport({
|
|
47
30
|
resolve(id, basedir) {
|
|
48
31
|
if (id.startsWith('.') || id.startsWith('/')) {
|
|
49
32
|
const cleanBasedir = basedir ? basedir.split('?')[0] : basedir;
|
|
50
|
-
|
|
33
|
+
const abs = path.resolve(cleanBasedir || '', id);
|
|
51
34
|
if (!existsSync(abs) && /\.css$/.test(abs)) {
|
|
52
35
|
const platformExt = platform === 'android' ? '.android.css' : '.ios.css';
|
|
53
36
|
const alt = abs.replace(/\.css$/, platformExt);
|
|
@@ -60,8 +43,8 @@ export function createPostCssConfig(opts) {
|
|
|
60
43
|
const pkgRoot = themeCoreRoot || findPackageInNodeModules('nativescript-theme-core', projectRoot);
|
|
61
44
|
if (!pkgRoot)
|
|
62
45
|
return id;
|
|
63
|
-
|
|
64
|
-
|
|
46
|
+
const rel = id.substring('nativescript-theme-core/'.length);
|
|
47
|
+
const target = path.join(pkgRoot, rel);
|
|
65
48
|
if (/^css\/.+\.css$/.test(rel)) {
|
|
66
49
|
const platformExt = platform === 'android' ? '.android.css' : '.ios.css';
|
|
67
50
|
const base = target.replace(/\.css$/, '');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postcss-platform-config.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/postcss-platform-config.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AASlE
|
|
1
|
+
{"version":3,"file":"postcss-platform-config.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/postcss-platform-config.ts"],"names":[],"mappings":"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"}
|
package/helpers/project.d.ts
CHANGED
|
@@ -1,4 +1,39 @@
|
|
|
1
1
|
export declare function getProjectRootPath(): string;
|
|
2
|
+
/**
|
|
3
|
+
* Walk up from `start` looking for the nearest monorepo workspace root.
|
|
4
|
+
*
|
|
5
|
+
* Returns the absolute path of the workspace root, or `null` if none of
|
|
6
|
+
* the supported markers are found before reaching the filesystem root. The
|
|
7
|
+
* search returns the FIRST matching ancestor — so a deeply nested app dir
|
|
8
|
+
* inside an Nx monorepo that happens to also live inside a parent pnpm
|
|
9
|
+
* workspace returns the Nx root (closer to the app) rather than the outer
|
|
10
|
+
* pnpm one. This matches Vite's own `searchForWorkspaceRoot` behaviour.
|
|
11
|
+
*
|
|
12
|
+
* Recognized markers (see {@link MONOREPO_WORKSPACE_MARKERS}):
|
|
13
|
+
* - `pnpm-workspace.yaml` / `pnpm-workspace.yml`
|
|
14
|
+
* - `lerna.json`
|
|
15
|
+
* - `nx.json` (Nx)
|
|
16
|
+
* - `rush.json` (Rush)
|
|
17
|
+
* - `turbo.json` (Turborepo)
|
|
18
|
+
* - `deno.json` / `deno.jsonc` containing a `workspace` field
|
|
19
|
+
* - `package.json` containing a `workspaces` field (npm/yarn workspaces)
|
|
20
|
+
*/
|
|
21
|
+
export declare function findMonorepoWorkspaceRoot(start?: string): string | null;
|
|
22
|
+
/**
|
|
23
|
+
* Memoized variant of {@link findMonorepoWorkspaceRoot}.
|
|
24
|
+
*
|
|
25
|
+
* The dev server resolves hoisted `node_modules/<pkg>/...` candidates on
|
|
26
|
+
* every `/ns/m/` request, and each lookup walks the directory tree once
|
|
27
|
+
* doing `existsSync` calls. Since the workspace layout doesn't change at
|
|
28
|
+
* runtime, the result is safe to cache per `start` directory for the
|
|
29
|
+
* lifetime of the dev server process.
|
|
30
|
+
*/
|
|
31
|
+
export declare function getMonorepoWorkspaceRoot(start?: string): string | null;
|
|
32
|
+
/**
|
|
33
|
+
* Clear the {@link getMonorepoWorkspaceRoot} memoization cache. Intended
|
|
34
|
+
* for tests that mutate the filesystem inside a temp dir between calls.
|
|
35
|
+
*/
|
|
36
|
+
export declare function clearMonorepoWorkspaceRootCache(): void;
|
|
2
37
|
export declare const __dirname: string;
|
|
3
38
|
interface IPackageJson {
|
|
4
39
|
name?: string;
|
package/helpers/project.js
CHANGED
|
@@ -1,10 +1,128 @@
|
|
|
1
|
-
import { existsSync } from 'fs';
|
|
2
|
-
import { resolve } from 'path';
|
|
1
|
+
import { existsSync, readFileSync } from 'fs';
|
|
2
|
+
import { dirname, join, resolve } from 'path';
|
|
3
3
|
import { createRequire } from 'node:module';
|
|
4
4
|
const require = createRequire(import.meta.url);
|
|
5
5
|
export function getProjectRootPath() {
|
|
6
6
|
return process.cwd();
|
|
7
7
|
}
|
|
8
|
+
// Markers that indicate the directory is a monorepo workspace root. Vite's
|
|
9
|
+
// own `searchForWorkspaceRoot` only knows about pnpm/lerna/yarn|npm
|
|
10
|
+
// `workspaces` and Deno; this list extends it to cover popular JS/TS
|
|
11
|
+
// monorepo tools (Nx, Rush, Turborepo) and any future tool by simply adding
|
|
12
|
+
// a marker file name. The order doesn't matter — we return the first
|
|
13
|
+
// ancestor that has any one of them.
|
|
14
|
+
//
|
|
15
|
+
// Why this matters: when an app lives at `apps/<name>/` inside a monorepo,
|
|
16
|
+
// `process.cwd()` (and therefore Vite's `config.root`) is the app dir. The
|
|
17
|
+
// hoisted `node_modules/` is at the workspace root. If Vite's default
|
|
18
|
+
// `fs.allow` doesn't reach that high, every transform-time fs read of a
|
|
19
|
+
// hoisted package fails with `Failed to load url … Does the file exist?`
|
|
20
|
+
// even though the file is right there on disk. The fix is to widen
|
|
21
|
+
// `server.fs.allow` to the detected workspace root.
|
|
22
|
+
const MONOREPO_WORKSPACE_MARKERS = [
|
|
23
|
+
// Standard JS package-manager workspace files (pnpm/yarn-classic/lerna).
|
|
24
|
+
'pnpm-workspace.yaml',
|
|
25
|
+
'pnpm-workspace.yml',
|
|
26
|
+
'lerna.json',
|
|
27
|
+
// Build orchestrators that are monorepo-by-design.
|
|
28
|
+
'nx.json',
|
|
29
|
+
'rush.json',
|
|
30
|
+
'turbo.json',
|
|
31
|
+
// Deno workspaces.
|
|
32
|
+
'deno.json',
|
|
33
|
+
'deno.jsonc',
|
|
34
|
+
];
|
|
35
|
+
function packageJsonHasWorkspaces(dir) {
|
|
36
|
+
const pkgPath = join(dir, 'package.json');
|
|
37
|
+
if (!existsSync(pkgPath))
|
|
38
|
+
return false;
|
|
39
|
+
try {
|
|
40
|
+
const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
|
|
41
|
+
return !!(pkg && pkg.workspaces);
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
function denoConfigHasWorkspace(dir) {
|
|
48
|
+
for (const name of ['deno.json', 'deno.jsonc']) {
|
|
49
|
+
const p = join(dir, name);
|
|
50
|
+
if (!existsSync(p))
|
|
51
|
+
continue;
|
|
52
|
+
try {
|
|
53
|
+
const cfg = JSON.parse(readFileSync(p, 'utf-8'));
|
|
54
|
+
if (cfg && cfg.workspace)
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
catch { }
|
|
58
|
+
}
|
|
59
|
+
return false;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Walk up from `start` looking for the nearest monorepo workspace root.
|
|
63
|
+
*
|
|
64
|
+
* Returns the absolute path of the workspace root, or `null` if none of
|
|
65
|
+
* the supported markers are found before reaching the filesystem root. The
|
|
66
|
+
* search returns the FIRST matching ancestor — so a deeply nested app dir
|
|
67
|
+
* inside an Nx monorepo that happens to also live inside a parent pnpm
|
|
68
|
+
* workspace returns the Nx root (closer to the app) rather than the outer
|
|
69
|
+
* pnpm one. This matches Vite's own `searchForWorkspaceRoot` behaviour.
|
|
70
|
+
*
|
|
71
|
+
* Recognized markers (see {@link MONOREPO_WORKSPACE_MARKERS}):
|
|
72
|
+
* - `pnpm-workspace.yaml` / `pnpm-workspace.yml`
|
|
73
|
+
* - `lerna.json`
|
|
74
|
+
* - `nx.json` (Nx)
|
|
75
|
+
* - `rush.json` (Rush)
|
|
76
|
+
* - `turbo.json` (Turborepo)
|
|
77
|
+
* - `deno.json` / `deno.jsonc` containing a `workspace` field
|
|
78
|
+
* - `package.json` containing a `workspaces` field (npm/yarn workspaces)
|
|
79
|
+
*/
|
|
80
|
+
export function findMonorepoWorkspaceRoot(start = getProjectRootPath()) {
|
|
81
|
+
let current = resolve(start);
|
|
82
|
+
while (true) {
|
|
83
|
+
for (const marker of MONOREPO_WORKSPACE_MARKERS) {
|
|
84
|
+
if (marker.startsWith('deno.')) {
|
|
85
|
+
if (denoConfigHasWorkspace(current))
|
|
86
|
+
return current;
|
|
87
|
+
continue;
|
|
88
|
+
}
|
|
89
|
+
if (existsSync(join(current, marker)))
|
|
90
|
+
return current;
|
|
91
|
+
}
|
|
92
|
+
if (packageJsonHasWorkspaces(current))
|
|
93
|
+
return current;
|
|
94
|
+
const parent = dirname(current);
|
|
95
|
+
if (!parent || parent === current)
|
|
96
|
+
return null;
|
|
97
|
+
current = parent;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
const monorepoWorkspaceRootCache = new Map();
|
|
101
|
+
/**
|
|
102
|
+
* Memoized variant of {@link findMonorepoWorkspaceRoot}.
|
|
103
|
+
*
|
|
104
|
+
* The dev server resolves hoisted `node_modules/<pkg>/...` candidates on
|
|
105
|
+
* every `/ns/m/` request, and each lookup walks the directory tree once
|
|
106
|
+
* doing `existsSync` calls. Since the workspace layout doesn't change at
|
|
107
|
+
* runtime, the result is safe to cache per `start` directory for the
|
|
108
|
+
* lifetime of the dev server process.
|
|
109
|
+
*/
|
|
110
|
+
export function getMonorepoWorkspaceRoot(start = getProjectRootPath()) {
|
|
111
|
+
const key = resolve(start);
|
|
112
|
+
if (monorepoWorkspaceRootCache.has(key)) {
|
|
113
|
+
return monorepoWorkspaceRootCache.get(key) ?? null;
|
|
114
|
+
}
|
|
115
|
+
const result = findMonorepoWorkspaceRoot(key);
|
|
116
|
+
monorepoWorkspaceRootCache.set(key, result);
|
|
117
|
+
return result;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Clear the {@link getMonorepoWorkspaceRoot} memoization cache. Intended
|
|
121
|
+
* for tests that mutate the filesystem inside a temp dir between calls.
|
|
122
|
+
*/
|
|
123
|
+
export function clearMonorepoWorkspaceRootCache() {
|
|
124
|
+
monorepoWorkspaceRootCache.clear();
|
|
125
|
+
}
|
|
8
126
|
// Get current directory for ES modules (equivalent to __dirname)
|
|
9
127
|
export const __dirname = import.meta.dirname;
|
|
10
128
|
/**
|
package/helpers/project.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/project.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/project.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Given a resolved package directory and its `package.json` `main` field, return
|
|
3
|
+
* the platform-specific entry file to use (as a `normalizeModuleId`-canonical
|
|
4
|
+
* absolute id), or `null` when no platform rewrite applies and normal resolution
|
|
5
|
+
* should handle it.
|
|
6
|
+
*
|
|
7
|
+
* Shared by the two `enforce:'pre'` package resolvers (`nativescript-package-resolver`
|
|
8
|
+
* and `package-platform-aliases`) so the main-field platform-variant rules live
|
|
9
|
+
* in one place.
|
|
10
|
+
*
|
|
11
|
+
* Two cases (behavior preserved from the original inline implementations):
|
|
12
|
+
* 1. `main` is extensionless → prefer `<main>.<platform>.js`, else `<main>.js`.
|
|
13
|
+
* 2. `main` has an extension but the file is missing → try `<base>.<platform><ext>`.
|
|
14
|
+
*
|
|
15
|
+
* Note: when an extension-bearing `main` file DOES exist, this returns `null`
|
|
16
|
+
* (the generic file wins) even if a `<base>.<platform><ext>` sibling exists.
|
|
17
|
+
* That is the current, intentional-for-now behavior; revisiting it is tracked
|
|
18
|
+
* separately (it would change resolution for packages shipping both).
|
|
19
|
+
*/
|
|
20
|
+
export declare function resolveMainFieldPlatformVariant(packagePath: string, mainField: string | undefined | null, platform: string): string | null;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import fs from 'fs';
|
|
3
|
+
import { normalizeModuleId } from './normalize-id.js';
|
|
4
|
+
/**
|
|
5
|
+
* Given a resolved package directory and its `package.json` `main` field, return
|
|
6
|
+
* the platform-specific entry file to use (as a `normalizeModuleId`-canonical
|
|
7
|
+
* absolute id), or `null` when no platform rewrite applies and normal resolution
|
|
8
|
+
* should handle it.
|
|
9
|
+
*
|
|
10
|
+
* Shared by the two `enforce:'pre'` package resolvers (`nativescript-package-resolver`
|
|
11
|
+
* and `package-platform-aliases`) so the main-field platform-variant rules live
|
|
12
|
+
* in one place.
|
|
13
|
+
*
|
|
14
|
+
* Two cases (behavior preserved from the original inline implementations):
|
|
15
|
+
* 1. `main` is extensionless → prefer `<main>.<platform>.js`, else `<main>.js`.
|
|
16
|
+
* 2. `main` has an extension but the file is missing → try `<base>.<platform><ext>`.
|
|
17
|
+
*
|
|
18
|
+
* Note: when an extension-bearing `main` file DOES exist, this returns `null`
|
|
19
|
+
* (the generic file wins) even if a `<base>.<platform><ext>` sibling exists.
|
|
20
|
+
* That is the current, intentional-for-now behavior; revisiting it is tracked
|
|
21
|
+
* separately (it would change resolution for packages shipping both).
|
|
22
|
+
*/
|
|
23
|
+
export function resolveMainFieldPlatformVariant(packagePath, mainField, platform) {
|
|
24
|
+
if (!mainField)
|
|
25
|
+
return null;
|
|
26
|
+
const mainFilePath = path.join(packagePath, mainField);
|
|
27
|
+
// Case 1: extensionless main — add platform/.js extensions.
|
|
28
|
+
if (!mainField.includes('.')) {
|
|
29
|
+
const platformFile = path.join(packagePath, `${mainField}.${platform}.js`);
|
|
30
|
+
if (fs.existsSync(platformFile))
|
|
31
|
+
return normalizeModuleId(platformFile);
|
|
32
|
+
const jsFile = path.join(packagePath, `${mainField}.js`);
|
|
33
|
+
if (fs.existsSync(jsFile))
|
|
34
|
+
return normalizeModuleId(jsFile);
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
// Case 2: main has an extension but the file is missing — look for a platform variant.
|
|
38
|
+
if (!fs.existsSync(mainFilePath)) {
|
|
39
|
+
const ext = path.extname(mainField);
|
|
40
|
+
const baseName = mainField.slice(0, -ext.length);
|
|
41
|
+
const platformFile = path.join(packagePath, `${baseName}.${platform}${ext}`);
|
|
42
|
+
if (fs.existsSync(platformFile))
|
|
43
|
+
return normalizeModuleId(platformFile);
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
// Main file exists — let normal resolution handle it.
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=resolve-main-field-platform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-main-field-platform.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/resolve-main-field-platform.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,+BAA+B,CAAC,WAAmB,EAAE,SAAoC,EAAE,QAAgB;IAC1H,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAEvD,4DAA4D;IAC5D,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,SAAS,IAAI,QAAQ,KAAK,CAAC,CAAC;QAC3E,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC;YAAE,OAAO,iBAAiB,CAAC,YAAY,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,SAAS,KAAK,CAAC,CAAC;QACzD,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC5D,OAAO,IAAI,CAAC;IACb,CAAC;IAED,uFAAuF;IACvF,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,QAAQ,IAAI,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC;QAC7E,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC;YAAE,OAAO,iBAAiB,CAAC,YAAY,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC;IACb,CAAC;IAED,sDAAsD;IACtD,OAAO,IAAI,CAAC;AACb,CAAC"}
|
package/helpers/resolver.js
CHANGED
|
@@ -1,19 +1,34 @@
|
|
|
1
1
|
import path from 'path';
|
|
2
2
|
import { resolveNativeScriptPlatformFile } from './utils.js';
|
|
3
|
+
import { normalizeModuleId } from './normalize-id.js';
|
|
4
|
+
const normalizeImporterId = (importer) => {
|
|
5
|
+
const cleanImporter = importer.split('?', 1)[0];
|
|
6
|
+
if (!cleanImporter.startsWith('/@fs/')) {
|
|
7
|
+
return cleanImporter;
|
|
8
|
+
}
|
|
9
|
+
return /^\/\@fs\/[A-Za-z]:/.test(cleanImporter) ? cleanImporter.slice('/@fs/'.length) : cleanImporter.slice('/@fs'.length);
|
|
10
|
+
};
|
|
3
11
|
export default function NativeScriptPlugin(options) {
|
|
4
12
|
return {
|
|
5
13
|
name: 'vite:nativescript',
|
|
14
|
+
enforce: 'pre',
|
|
6
15
|
resolveId(source, importer) {
|
|
7
16
|
const platform = options.platform;
|
|
8
17
|
if (!platform || !importer || source.startsWith('.') === false) {
|
|
9
18
|
return null;
|
|
10
19
|
}
|
|
11
|
-
const resolved = path.resolve(path.dirname(importer), source);
|
|
20
|
+
const resolved = path.resolve(path.dirname(normalizeImporterId(importer)), source);
|
|
12
21
|
const extVariants = ['.ts', '.js'];
|
|
13
22
|
for (const ext of extVariants) {
|
|
14
23
|
const file = resolveNativeScriptPlatformFile(resolved + ext, platform);
|
|
15
24
|
if (file) {
|
|
16
|
-
|
|
25
|
+
// Canonicalize before handing the id to Rolldown. `path.resolve`
|
|
26
|
+
// emits backslashes on Windows; the @nativescript/core alias and
|
|
27
|
+
// Vite's own resolver emit forward slashes. Returning the raw
|
|
28
|
+
// backslash form here makes Rolldown treat the same core file as a
|
|
29
|
+
// second module, double-evaluating widthProperty.register. No-op on
|
|
30
|
+
// POSIX. See normalize-id.ts for the full rationale.
|
|
31
|
+
return normalizeModuleId(file);
|
|
17
32
|
}
|
|
18
33
|
}
|
|
19
34
|
return null;
|
package/helpers/resolver.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/resolver.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/resolver.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,mBAAmB,GAAG,CAAC,QAAgB,EAAU,EAAE;IACxD,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhD,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACxC,OAAO,aAAa,CAAC;IACtB,CAAC;IAED,OAAO,oBAAoB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC5H,CAAC,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,OAAqD;IAC/F,OAAO;QACN,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,KAAK;QAEd,SAAS,CAAC,MAAM,EAAE,QAAQ;YACzB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;YAClC,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,IAAI,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;gBAChE,OAAO,IAAI,CAAC;YACb,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YACnF,MAAM,WAAW,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAEnC,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;gBAC/B,MAAM,IAAI,GAAG,+BAA+B,CAAC,QAAQ,GAAG,GAAG,EAAE,QAAQ,CAAC,CAAC;gBACvE,IAAI,IAAI,EAAE,CAAC;oBACV,iEAAiE;oBACjE,iEAAiE;oBACjE,8DAA8D;oBAC9D,mEAAmE;oBACnE,oEAAoE;oBACpE,qDAAqD;oBACrD,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBAChC,CAAC;YACF,CAAC;YAED,OAAO,IAAI,CAAC;QACb,CAAC;QAED,SAAS,CAAC,IAAI,EAAE,EAAE;YACjB,IAAI,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACzB,+EAA+E;gBAC/E,OAAO;oBACN,IAAI;oBACJ,GAAG,EAAE,IAAI;iBACT,CAAC;YACH,CAAC;QACF,CAAC;KACD,CAAC;AACH,CAAC"}
|
|
@@ -99,7 +99,7 @@ export function createThemeCoreCssFallbackPlugin(themeCoreRoot, projectRoot, pla
|
|
|
99
99
|
if (idx === -1)
|
|
100
100
|
return null;
|
|
101
101
|
const rel = id.substring(idx + 'nativescript-theme-core/'.length);
|
|
102
|
-
|
|
102
|
+
const target = path.join(pkgRoot, rel);
|
|
103
103
|
try {
|
|
104
104
|
if (existsSync(target)) {
|
|
105
105
|
return readFileSync(target, 'utf-8');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme-core-plugins.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/theme-core-plugins.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"theme-core-plugins.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/theme-core-plugins.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,18 @@
|
|
|
1
1
|
import type { Plugin } from 'vite';
|
|
2
|
+
/**
|
|
3
|
+
* Absolute directory roots that the project's tsconfig `paths` aliases point at.
|
|
4
|
+
*
|
|
5
|
+
* Used to scope HMR to configured shared libraries in a monorepo: a file only
|
|
6
|
+
* triggers an update if it lives under the app source dir or one of these
|
|
7
|
+
* alias roots. When an alias targets a file (e.g. `@org/lib -> libs/lib/src/index.ts`)
|
|
8
|
+
* the file's directory is returned so sibling source files in that library are
|
|
9
|
+
* also in scope. Wildcard aliases (`@org/* -> libs/*`) contribute their resolved
|
|
10
|
+
* base directory (`libs`).
|
|
11
|
+
*/
|
|
12
|
+
export declare function getTsConfigAliasRoots(opts: {
|
|
13
|
+
paths?: Record<string, string[]>;
|
|
14
|
+
baseUrl?: string;
|
|
15
|
+
}): string[];
|
|
2
16
|
export declare function createTsConfigPathsResolver(opts: {
|
|
3
17
|
paths: Record<string, string[]>;
|
|
4
18
|
baseUrl: string;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import fs from 'fs';
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import { getProjectFilePath, getProjectRootPath } from './project.js';
|
|
4
|
+
import { normalizeModuleId } from './normalize-id.js';
|
|
4
5
|
let tsConfigPath;
|
|
5
6
|
const projectRoot = getProjectRootPath();
|
|
6
7
|
// Read TypeScript path mappings
|
|
@@ -29,7 +30,7 @@ function getTsConfigPaths(debugViteLogs = false) {
|
|
|
29
30
|
// Clean up JSONC
|
|
30
31
|
if (debugViteLogs)
|
|
31
32
|
console.log('📁 Cleaning JSONC for:', configPath);
|
|
32
|
-
|
|
33
|
+
const cleanContent = tsConfigContent
|
|
33
34
|
.replace(/\/\/.*$/gm, '')
|
|
34
35
|
.replace(/\/\*[\s\S]*?\*\//g, '')
|
|
35
36
|
.replace(/,(\s*[}\]])/g, '$1');
|
|
@@ -154,15 +155,14 @@ function resolveTsConfigPath(fullPath, platform, verbose, debugId) {
|
|
|
154
155
|
}
|
|
155
156
|
function createTsConfigResolvers(opts) {
|
|
156
157
|
const resolvers = [];
|
|
157
|
-
//
|
|
158
|
+
// Match TypeScript precedence: exact aliases before wildcard fallbacks.
|
|
158
159
|
const sortedPatterns = Object.entries(opts.paths).sort(([a], [b]) => {
|
|
159
|
-
// Wildcards (with *) come first
|
|
160
160
|
const aHasWildcard = a.includes('*');
|
|
161
161
|
const bHasWildcard = b.includes('*');
|
|
162
162
|
if (aHasWildcard && !bHasWildcard)
|
|
163
|
-
return -1;
|
|
164
|
-
if (!aHasWildcard && bHasWildcard)
|
|
165
163
|
return 1;
|
|
164
|
+
if (!aHasWildcard && bHasWildcard)
|
|
165
|
+
return -1;
|
|
166
166
|
// Within same type, longer patterns first (more specific)
|
|
167
167
|
return b.length - a.length;
|
|
168
168
|
});
|
|
@@ -170,12 +170,14 @@ function createTsConfigResolvers(opts) {
|
|
|
170
170
|
if (Array.isArray(destinations) && destinations.length > 0) {
|
|
171
171
|
if (pattern.includes('*')) {
|
|
172
172
|
const aliasKey = pattern.replace(/\/\*$/, '');
|
|
173
|
-
|
|
173
|
+
// Values passed through path.resolve() contain backslashes on Windows.
|
|
174
|
+
// Do not leave a literal wildcard in a filesystem lookup path.
|
|
175
|
+
const destination = destinations[0].replace(/[\\/]\*$/, '');
|
|
174
176
|
const resolvedDestination = path.isAbsolute(destination) ? destination : path.resolve(projectRoot, opts.baseUrl, destination);
|
|
175
177
|
resolvers.push({
|
|
176
178
|
type: 'wildcard',
|
|
177
179
|
pattern,
|
|
178
|
-
regex: new RegExp(`^${aliasKey.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}(
|
|
180
|
+
regex: new RegExp(`^${aliasKey.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')}/(.*)$`),
|
|
179
181
|
resolvedDestination,
|
|
180
182
|
});
|
|
181
183
|
}
|
|
@@ -194,11 +196,69 @@ function createTsConfigResolvers(opts) {
|
|
|
194
196
|
}
|
|
195
197
|
return resolvers;
|
|
196
198
|
}
|
|
199
|
+
/**
|
|
200
|
+
* Absolute directory roots that the project's tsconfig `paths` aliases point at.
|
|
201
|
+
*
|
|
202
|
+
* Used to scope HMR to configured shared libraries in a monorepo: a file only
|
|
203
|
+
* triggers an update if it lives under the app source dir or one of these
|
|
204
|
+
* alias roots. When an alias targets a file (e.g. `@org/lib -> libs/lib/src/index.ts`)
|
|
205
|
+
* the file's directory is returned so sibling source files in that library are
|
|
206
|
+
* also in scope. Wildcard aliases (`@org/* -> libs/*`) contribute their resolved
|
|
207
|
+
* base directory (`libs`).
|
|
208
|
+
*/
|
|
209
|
+
export function getTsConfigAliasRoots(opts) {
|
|
210
|
+
if (!opts?.paths)
|
|
211
|
+
return [];
|
|
212
|
+
const resolvers = createTsConfigResolvers({ paths: opts.paths, baseUrl: opts.baseUrl || '.', platform: '' });
|
|
213
|
+
const roots = [];
|
|
214
|
+
for (const resolver of resolvers) {
|
|
215
|
+
let dest = resolver.resolvedDestination;
|
|
216
|
+
if (!dest)
|
|
217
|
+
continue;
|
|
218
|
+
if (path.extname(dest)) {
|
|
219
|
+
dest = path.dirname(dest);
|
|
220
|
+
}
|
|
221
|
+
roots.push(dest);
|
|
222
|
+
}
|
|
223
|
+
return roots;
|
|
224
|
+
}
|
|
197
225
|
export function createTsConfigPathsResolver(opts) {
|
|
198
226
|
const resolvers = createTsConfigResolvers(opts);
|
|
199
227
|
if (!resolvers.length) {
|
|
200
228
|
return undefined;
|
|
201
229
|
}
|
|
230
|
+
// Per-resolver caches.
|
|
231
|
+
//
|
|
232
|
+
// Hot-path note: this plugin is `enforce: 'pre'`, so it's invoked for every
|
|
233
|
+
// `resolveId` call in the build — including thousands of relative imports
|
|
234
|
+
// (`./foo`), absolute paths, virtual modules (`\0…`), and bare node_modules
|
|
235
|
+
// specifiers (`rxjs`, `@angular/core`, …) that can never match a tsconfig
|
|
236
|
+
// `paths` entry. Memoizing both the no-match outcome and the per-`fullPath`
|
|
237
|
+
// filesystem walk turns repeated lookups from `O(N regexes + ~12 fs syscalls)`
|
|
238
|
+
// into a single `Set.has` / `Map.get`.
|
|
239
|
+
//
|
|
240
|
+
// Cache validity: `paths` / `baseUrl` are baked into the closure at plugin
|
|
241
|
+
// creation, so the regex set never changes for the lifetime of this resolver.
|
|
242
|
+
// The filesystem cache assumes overlapping platform/extension files (e.g.
|
|
243
|
+
// adding a new `foo.ios.ts` next to `foo.ts`) won't appear mid-watch; if that
|
|
244
|
+
// ever bites, invalidate via Vite's `watchChange` hook instead of widening
|
|
245
|
+
// these caches.
|
|
246
|
+
const noMatchCache = new Set();
|
|
247
|
+
const fsResolveCache = new Map();
|
|
248
|
+
const cachedResolveTsConfigPath = (fullPath, debugId) => {
|
|
249
|
+
const cached = fsResolveCache.get(fullPath);
|
|
250
|
+
if (cached !== undefined) {
|
|
251
|
+
return cached;
|
|
252
|
+
}
|
|
253
|
+
// Canonicalize the resolved id (forward slashes + uppercase Windows drive).
|
|
254
|
+
// path.join/string-concat inside resolveTsConfigPath emit backslashes on
|
|
255
|
+
// Windows; without this a tsconfig-aliased file would land in Rolldown's
|
|
256
|
+
// graph under a different id than the same file reached via Vite's
|
|
257
|
+
// forward-slash resolution. No-op on POSIX. See normalize-id.ts.
|
|
258
|
+
const resolved = normalizeModuleId(resolveTsConfigPath(fullPath, opts.platform, opts.verbose, debugId));
|
|
259
|
+
fsResolveCache.set(fullPath, resolved);
|
|
260
|
+
return resolved;
|
|
261
|
+
};
|
|
202
262
|
return {
|
|
203
263
|
name: 'ns-tsconfig-paths-resolver',
|
|
204
264
|
enforce: 'pre',
|
|
@@ -206,12 +266,32 @@ export function createTsConfigPathsResolver(opts) {
|
|
|
206
266
|
if (source === '~/package.json') {
|
|
207
267
|
return null;
|
|
208
268
|
}
|
|
269
|
+
// Early reject for specifier shapes that can never match a tsconfig
|
|
270
|
+
// `paths` entry. Skipping them here avoids walking every resolver
|
|
271
|
+
// regex on the hot path.
|
|
272
|
+
// 46 = '.' → relative imports (`./foo`, `../bar`)
|
|
273
|
+
// 47 = '/' → already-absolute paths (no alias would start with /)
|
|
274
|
+
// 0 = '\0' → Vite/Rolldown virtual modules
|
|
275
|
+
const firstChar = source.charCodeAt(0);
|
|
276
|
+
if (firstChar === 46 || firstChar === 47 || firstChar === 0) {
|
|
277
|
+
return null;
|
|
278
|
+
}
|
|
279
|
+
// URL-style specifiers (`http:`, `file:`, `data:`, `node:fs`, …) and
|
|
280
|
+
// Windows drive letters (`C:\…`). None of these can match a path
|
|
281
|
+
// alias, and `:` isn't a valid character in npm package names or
|
|
282
|
+
// tsconfig path patterns we'd ever want to alias.
|
|
283
|
+
if (source.includes(':')) {
|
|
284
|
+
return null;
|
|
285
|
+
}
|
|
286
|
+
if (noMatchCache.has(source)) {
|
|
287
|
+
return null;
|
|
288
|
+
}
|
|
209
289
|
for (const resolver of resolvers) {
|
|
210
290
|
if (resolver.type === 'exact') {
|
|
211
291
|
if (source !== resolver.pattern) {
|
|
212
292
|
continue;
|
|
213
293
|
}
|
|
214
|
-
return
|
|
294
|
+
return cachedResolveTsConfigPath(resolver.resolvedDestination, source);
|
|
215
295
|
}
|
|
216
296
|
const match = resolver.regex.exec(source);
|
|
217
297
|
if (!match) {
|
|
@@ -219,8 +299,9 @@ export function createTsConfigPathsResolver(opts) {
|
|
|
219
299
|
}
|
|
220
300
|
const subpath = match[1];
|
|
221
301
|
const fullPath = subpath ? path.join(resolver.resolvedDestination, subpath) : resolver.resolvedDestination;
|
|
222
|
-
return
|
|
302
|
+
return cachedResolveTsConfigPath(fullPath, source);
|
|
223
303
|
}
|
|
304
|
+
noMatchCache.add(source);
|
|
224
305
|
return null;
|
|
225
306
|
},
|
|
226
307
|
};
|