@nativescript/vite 8.0.0-alpha.5 → 8.0.0-alpha.50
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 +241 -51
- package/configuration/base.js.map +1 -1
- package/configuration/javascript.js +14 -93
- package/configuration/javascript.js.map +1 -1
- package/configuration/react.js +41 -73
- package/configuration/react.js.map +1 -1
- package/configuration/solid.js +51 -6
- package/configuration/solid.js.map +1 -1
- package/configuration/typescript.js +12 -93
- package/configuration/typescript.js.map +1 -1
- package/helpers/app-components.d.ts +2 -1
- package/helpers/app-components.js.map +1 -1
- package/helpers/app-css-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/cli-flags.d.ts +12 -0
- package/helpers/cli-flags.js +34 -0
- package/helpers/cli-flags.js.map +1 -1
- package/helpers/css-platform-plugin.d.ts +14 -0
- package/helpers/css-platform-plugin.js +43 -25
- package/helpers/css-platform-plugin.js.map +1 -1
- package/helpers/dev-host.d.ts +360 -0
- package/helpers/dev-host.js +694 -0
- package/helpers/dev-host.js.map +1 -0
- package/helpers/dynamic-import-plugin.js +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 +58 -35
- package/helpers/external-configs.js.map +1 -1
- package/helpers/global-defines.d.ts +142 -0
- package/helpers/global-defines.js +213 -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 +301 -53
- 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 +29 -7
- package/helpers/ns-core-url.js +69 -12
- package/helpers/ns-core-url.js.map +1 -1
- package/helpers/optimize-deps.d.ts +16 -0
- package/helpers/optimize-deps.js +17 -0
- package/helpers/optimize-deps.js.map +1 -0
- package/helpers/package-platform-aliases.js +34 -49
- package/helpers/package-platform-aliases.js.map +1 -1
- package/helpers/platform-types.d.ts +2 -0
- package/helpers/platform-types.js +2 -0
- package/helpers/platform-types.js.map +1 -0
- package/helpers/postcss-platform-config.d.ts +17 -1
- package/helpers/postcss-platform-config.js +20 -37
- package/helpers/postcss-platform-config.js.map +1 -1
- package/helpers/project.d.ts +35 -0
- package/helpers/project.js +120 -2
- package/helpers/project.js.map +1 -1
- package/helpers/resolve-main-field-platform.d.ts +20 -0
- package/helpers/resolve-main-field-platform.js +49 -0
- package/helpers/resolve-main-field-platform.js.map +1 -0
- package/helpers/resolver.js +17 -2
- package/helpers/resolver.js.map +1 -1
- package/helpers/theme-core-plugins.js +1 -1
- package/helpers/theme-core-plugins.js.map +1 -1
- package/helpers/ts-config-paths.d.ts +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 +2 -2
- 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/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 +891 -220
- 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 +859 -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/react/server/strategy.d.ts +2 -0
- package/hmr/frameworks/react/server/strategy.js +150 -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 +54 -0
- package/hmr/frameworks/solid/client/app-runtime.js +184 -0
- package/hmr/frameworks/solid/client/app-runtime.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 +86 -7
- package/hmr/server/core-sanitize.js +170 -45
- 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 +408 -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 +92 -45
- 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 +2 -4
- package/hmr/server/ns-core-cjs-shape.js +4 -6
- package/hmr/server/ns-core-cjs-shape.js.map +1 -1
- 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 +699 -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 +630 -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 +78 -42
- package/hmr/server/vite-plugin.js.map +1 -1
- package/hmr/server/websocket-core-bridge.d.ts +45 -4
- package/hmr/server/websocket-core-bridge.js +50 -48
- 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 +191 -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 +49 -3
- package/hmr/server/websocket-served-module-helpers.js +403 -87
- package/hmr/server/websocket-served-module-helpers.js.map +1 -1
- 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 +608 -6300
- 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 +1196 -262
- 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 +393 -200
- 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 +549 -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 +84 -819
- 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 +38 -0
- package/hmr/shared/vendor/vendor-esbuild-plugins.js +296 -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 +61 -11
- package/runtime/core-aliases-early.js +25 -55
- package/runtime/core-aliases-early.js.map +1 -1
- package/shims/react-jsx-runtime.d.ts +4 -0
- package/shims/react-jsx-runtime.js +37 -0
- package/shims/react-jsx-runtime.js.map +1 -0
- package/helpers/angular/angular-linker.d.ts +0 -13
- package/helpers/angular/angular-linker.js +0 -194
- package/helpers/angular/angular-linker.js.map +0 -1
- package/helpers/angular/inline-decorator-component-templates.js.map +0 -1
- package/helpers/angular/shared-linker.d.ts +0 -11
- package/helpers/angular/shared-linker.js +0 -75
- package/helpers/angular/shared-linker.js.map +0 -1
- package/helpers/angular/synthesize-decorator-ctor-parameters.js.map +0 -1
- package/helpers/angular/synthesize-injectable-factories.js.map +0 -1
- package/helpers/angular/util.js +0 -67
- package/helpers/angular/util.js.map +0 -1
- package/helpers/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 -22
- package/hmr/server/websocket-ns-m-finalize.js +0 -88
- package/hmr/server/websocket-ns-m-finalize.js.map +0 -1
- package/hmr/server/websocket-runtime-compat.d.ts +0 -19
- package/hmr/server/websocket-runtime-compat.js +0 -286
- package/hmr/server/websocket-runtime-compat.js.map +0 -1
- package/hmr/server/websocket-vue-sfc.d.ts +0 -27
- package/hmr/server/websocket-vue-sfc.js +0 -1117
- 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
package/helpers/ns-core-url.js
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Single canonical URL generator for `@nativescript/core` under HMR.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
4
|
+
* Every public-facing reference to `@nativescript/core[/sub]` resolves to
|
|
5
|
+
* exactly one URL string — byte-for-byte identical across every emitter
|
|
6
|
+
* (bundle entry, external-urls plugin, rewriter, import map, runtime
|
|
7
|
+
* require). The only valid shapes are:
|
|
8
|
+
*
|
|
9
|
+
* - `/ns/core` — package main
|
|
10
|
+
* - `/ns/core/<sub>` — subpath form
|
|
11
|
+
*
|
|
12
|
+
* with `<sub>` always run through `normalizeCoreSub` (extensionless, no
|
|
13
|
+
* `/index` tail, no platform suffix). There is no version segment, no
|
|
14
|
+
* `?p=` query form, no `.js` tail.
|
|
10
15
|
*
|
|
11
16
|
* This module is the ONE site that constructs those URLs. Every caller in
|
|
12
17
|
* the repo should use `buildCoreUrl()` (or `buildCoreUrlPath()` when origin
|
|
@@ -35,6 +40,29 @@ export function normalizeCoreSub(sub) {
|
|
|
35
40
|
let s = String(sub).split('?')[0].split('#')[0].trim();
|
|
36
41
|
s = s.replace(/^\/+/, '').replace(/\/+$/, '');
|
|
37
42
|
s = s.replace(/\.(?:mjs|cjs|js)$/, '');
|
|
43
|
+
// Strip a trailing platform suffix (`.ios` / `.android` / `.visionos`)
|
|
44
|
+
// so Vite-resolved platform-specific file paths canonicalize to the
|
|
45
|
+
// same form the runtime import map uses for the bare subpath.
|
|
46
|
+
//
|
|
47
|
+
// Why this matters: when the app source has
|
|
48
|
+
// `import { TextBase } from '@nativescript/core/ui/text-base'`, Vite's
|
|
49
|
+
// alias + extension resolver picks `ui/text-base/index.ios.js`. After
|
|
50
|
+
// `.js` is stripped above we have `ui/text-base/index.ios`. Vendor
|
|
51
|
+
// code, by contrast, takes the bare specifier path: the runtime
|
|
52
|
+
// import map's `@nativescript/core/` prefix maps it to
|
|
53
|
+
// `/ns/core/ui/text-base` directly (no `.ios`). The iOS HTTP ESM
|
|
54
|
+
// loader caches by URL string, so two spellings of the same file
|
|
55
|
+
// would produce two distinct V8 module records, re-evaluate
|
|
56
|
+
// `TextBase`, and create a realm split that leaves the
|
|
57
|
+
// `@nativescript-community` plugin's `setTextDecorationAndTransform`
|
|
58
|
+
// override visible to vendor code but invisible to the app.
|
|
59
|
+
//
|
|
60
|
+
// Stripping the suffix here normalises both shapes — `ui/text-base/`
|
|
61
|
+
// `index.ios` and `runtime/runtime.ios` — to the bare form. The
|
|
62
|
+
// trailing `/index` handler below then collapses
|
|
63
|
+
// `ui/text-base/index` → `ui/text-base`, and the final `index`
|
|
64
|
+
// guard collapses the package-main case to ''.
|
|
65
|
+
s = s.replace(/\.(?:ios|android|visionos)$/, '');
|
|
38
66
|
// Strip trailing `/index` so that `globals/index` → `globals`, matching
|
|
39
67
|
// the bare import form that consumers spell as `@nativescript/core/globals`.
|
|
40
68
|
// The main module case (`index` alone) is handled below.
|
|
@@ -81,14 +109,13 @@ export function buildCoreUrl(origin, sub) {
|
|
|
81
109
|
export function isCoreBridgeUrl(input) {
|
|
82
110
|
if (!input)
|
|
83
111
|
return false;
|
|
84
|
-
return /\/ns\/core(
|
|
112
|
+
return /\/ns\/core(?:\/|$)/.test(input);
|
|
85
113
|
}
|
|
86
114
|
/**
|
|
87
115
|
* Extract the canonical sub path from a /ns/core URL.
|
|
88
116
|
* 'http://localhost:5173/ns/core' → ''
|
|
89
117
|
* 'http://localhost:5173/ns/core/application' → 'application'
|
|
90
118
|
* '/ns/core/ui/core/view' → 'ui/core/view'
|
|
91
|
-
* '/ns/core?p=foo' → 'foo' (legacy form tolerated)
|
|
92
119
|
* 'http://example.com/other' → null
|
|
93
120
|
*/
|
|
94
121
|
export function extractCoreSub(input) {
|
|
@@ -97,14 +124,10 @@ export function extractCoreSub(input) {
|
|
|
97
124
|
try {
|
|
98
125
|
const u = new URL(input, 'http://placeholder.invalid');
|
|
99
126
|
const pathname = u.pathname;
|
|
100
|
-
const pRaw = u.searchParams.get('p');
|
|
101
|
-
if (pRaw)
|
|
102
|
-
return normalizeCoreSub(pRaw);
|
|
103
127
|
const afterCore = pathname.replace(/^.*\/ns\/core(?:\/|$)/, '');
|
|
104
128
|
return normalizeCoreSub(afterCore);
|
|
105
129
|
}
|
|
106
130
|
catch {
|
|
107
|
-
// Fall back to literal parsing if URL constructor fails
|
|
108
131
|
const m = input.match(/\/ns\/core(?:\/([^?#]*))?/);
|
|
109
132
|
if (!m)
|
|
110
133
|
return null;
|
|
@@ -139,6 +162,40 @@ export function specToCoreSub(spec) {
|
|
|
139
162
|
}
|
|
140
163
|
return null;
|
|
141
164
|
}
|
|
165
|
+
/**
|
|
166
|
+
* Convert an absolute path INSIDE a known @nativescript/core root directory
|
|
167
|
+
* into the canonical sub path. Complements {@link specToCoreSub}, which only
|
|
168
|
+
* recognizes bare specifiers and `node_modules` installs: in a monorepo where
|
|
169
|
+
* core is consumed from source (`<workspace>/packages/core` via a `file:`
|
|
170
|
+
* dependency), the resolve-alias step rewrites bare `@nativescript/core[/sub]`
|
|
171
|
+
* specifiers to absolute paths under that source root BEFORE the
|
|
172
|
+
* `ns-core-external-urls` build plugin sees them. Without this mapping those
|
|
173
|
+
* paths escape externalization and the entire core library is inlined into
|
|
174
|
+
* bundle.mjs — a dead second realm whose `Frame.topmost()` is undefined while
|
|
175
|
+
* the dev-server-served realm owns the live UI.
|
|
176
|
+
*
|
|
177
|
+
* corePathToSub('/ws/packages/core', '/ws/packages/core') → ''
|
|
178
|
+
* corePathToSub('/ws/packages/core/ui/frame', '/ws/packages/core') → 'ui/frame'
|
|
179
|
+
* corePathToSub('/ws/packages/core/ui/frame/index.ios.ts', same root) → 'ui/frame'
|
|
180
|
+
* corePathToSub('/elsewhere/file.ts', '/ws/packages/core') → null
|
|
181
|
+
*/
|
|
182
|
+
export function corePathToSub(spec, coreRoot) {
|
|
183
|
+
if (!spec || !coreRoot)
|
|
184
|
+
return null;
|
|
185
|
+
const cleaned = spec.split('?')[0].split('#')[0].replace(/\\/g, '/');
|
|
186
|
+
const root = String(coreRoot).replace(/\\/g, '/').replace(/\/+$/, '');
|
|
187
|
+
if (!root)
|
|
188
|
+
return null;
|
|
189
|
+
if (cleaned === root)
|
|
190
|
+
return '';
|
|
191
|
+
if (!cleaned.startsWith(root + '/'))
|
|
192
|
+
return null;
|
|
193
|
+
// Monorepo core is TypeScript source; strip TS extensions before the
|
|
194
|
+
// canonical normalizer (which handles .js/.mjs/.cjs, platform suffixes
|
|
195
|
+
// and trailing /index).
|
|
196
|
+
const rel = cleaned.slice(root.length + 1).replace(/\.(?:ts|tsx|mts|cts)$/, '');
|
|
197
|
+
return normalizeCoreSub(rel);
|
|
198
|
+
}
|
|
142
199
|
/**
|
|
143
200
|
* Produce the set of "runtime module id" strings we expose in
|
|
144
201
|
* `globalThis.__NS_CORE_MODULES__` for a given sub. Callers of the vendor
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ns-core-url.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/ns-core-url.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"ns-core-url.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/ns-core-url.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical list of packages that must NEVER be pre-bundled by Vite's
|
|
3
|
+
* dependency scanner.
|
|
4
|
+
*
|
|
5
|
+
* The most load-bearing entries are `module` / `node:module`: they are aliased
|
|
6
|
+
* to local polyfills/shims (see `helpers/css-tree.ts` and the `node:module`
|
|
7
|
+
* alias in `configuration/base.ts`). Vite's depscanner has no awareness of those
|
|
8
|
+
* aliases and, if allowed to pre-bundle them, the HMR `/ns/m/` pipeline can't map
|
|
9
|
+
* the pre-bundle URL back to a real package — dropping the
|
|
10
|
+
* `import { createRequire } from 'module'` line and crashing on device with
|
|
11
|
+
* `ReferenceError: createRequire is not defined` inside `css-tree`.
|
|
12
|
+
*
|
|
13
|
+
* Centralized here so base/angular configs share one source of truth instead of
|
|
14
|
+
* hand-maintaining divergent copies.
|
|
15
|
+
*/
|
|
16
|
+
export declare const NS_OPTIMIZE_DEPS_EXCLUDE: readonly ["@nativescript/core", "@valor/nativescript-websockets", "set-value", "react", "react-reconciler", "react-nativescript", "module", "node:module"];
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonical list of packages that must NEVER be pre-bundled by Vite's
|
|
3
|
+
* dependency scanner.
|
|
4
|
+
*
|
|
5
|
+
* The most load-bearing entries are `module` / `node:module`: they are aliased
|
|
6
|
+
* to local polyfills/shims (see `helpers/css-tree.ts` and the `node:module`
|
|
7
|
+
* alias in `configuration/base.ts`). Vite's depscanner has no awareness of those
|
|
8
|
+
* aliases and, if allowed to pre-bundle them, the HMR `/ns/m/` pipeline can't map
|
|
9
|
+
* the pre-bundle URL back to a real package — dropping the
|
|
10
|
+
* `import { createRequire } from 'module'` line and crashing on device with
|
|
11
|
+
* `ReferenceError: createRequire is not defined` inside `css-tree`.
|
|
12
|
+
*
|
|
13
|
+
* Centralized here so base/angular configs share one source of truth instead of
|
|
14
|
+
* hand-maintaining divergent copies.
|
|
15
|
+
*/
|
|
16
|
+
export const NS_OPTIMIZE_DEPS_EXCLUDE = ['@nativescript/core', '@valor/nativescript-websockets', 'set-value', 'react', 'react-reconciler', 'react-nativescript', 'module', 'node:module'];
|
|
17
|
+
//# sourceMappingURL=optimize-deps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"optimize-deps.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/optimize-deps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,oBAAoB,EAAE,gCAAgC,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,QAAQ,EAAE,aAAa,CAAU,CAAC"}
|
|
@@ -2,10 +2,19 @@ import path from 'path';
|
|
|
2
2
|
import fs from 'fs';
|
|
3
3
|
import { findPackageInNodeModules } from './module-resolution.js';
|
|
4
4
|
import { getProjectRootPath } from './project.js';
|
|
5
|
+
import { resolveMainFieldPlatformVariant } from './resolve-main-field-platform.js';
|
|
5
6
|
const projectRoot = getProjectRootPath();
|
|
6
7
|
export function packagePlatformResolverPlugin(opts) {
|
|
7
8
|
// packages used via core transient dependencies and other vite support
|
|
8
9
|
const commonSkips = ['source-map-js', 'html-entities', 'fast-xml-parser', '@valor/nativescript-websockets'];
|
|
10
|
+
// Memoize the resolved id (or null) per bare package name. This runs on the
|
|
11
|
+
// hot `enforce:'pre'` path for EVERY bare specifier; without a cache it does
|
|
12
|
+
// a full `findPackageInNodeModules` fs-walk + `package.json` read/parse on
|
|
13
|
+
// every resolve. The platform is fixed for this plugin instance (a fresh
|
|
14
|
+
// instance is created per worker build via the `worker.plugins` factory), so
|
|
15
|
+
// the package name is a sufficient key. Mirrors the cache in
|
|
16
|
+
// `nativescript-package-resolver.ts`.
|
|
17
|
+
const resolveCache = new Map();
|
|
9
18
|
return {
|
|
10
19
|
name: 'ns-package-platform-resolver',
|
|
11
20
|
enforce: 'pre',
|
|
@@ -24,58 +33,34 @@ export function packagePlatformResolverPlugin(opts) {
|
|
|
24
33
|
}
|
|
25
34
|
// Only handle packages that exist in node_modules (real npm packages)
|
|
26
35
|
const packageName = id;
|
|
27
|
-
|
|
28
|
-
|
|
36
|
+
if (resolveCache.has(packageName)) {
|
|
37
|
+
return resolveCache.get(packageName);
|
|
38
|
+
}
|
|
39
|
+
// Compute once, then memoize (incl. the null "no rewrite" result so a
|
|
40
|
+
// known package short-circuits on the next resolve).
|
|
41
|
+
const resolved = (() => {
|
|
42
|
+
const packagePath = findPackageInNodeModules(packageName, projectRoot);
|
|
43
|
+
if (!packagePath)
|
|
44
|
+
return null;
|
|
29
45
|
const packageJsonPath = path.join(packagePath, 'package.json');
|
|
30
|
-
if (fs.existsSync(packageJsonPath))
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
// Try platform-specific file first
|
|
39
|
-
const platformFile = path.join(packagePath, `${mainField}.${opts.platform}.js`);
|
|
40
|
-
if (fs.existsSync(platformFile)) {
|
|
41
|
-
if (opts.verbose) {
|
|
42
|
-
console.log(`✅ Alias resolver: ${packageName} -> ${mainField}.${opts.platform}.js (extensionless)`);
|
|
43
|
-
}
|
|
44
|
-
return platformFile;
|
|
45
|
-
}
|
|
46
|
-
// Fallback to .js
|
|
47
|
-
const jsFile = path.join(packagePath, `${mainField}.js`);
|
|
48
|
-
if (fs.existsSync(jsFile)) {
|
|
49
|
-
if (opts.verbose) {
|
|
50
|
-
console.log(`✅ Alias resolver: ${packageName} -> ${mainField}.js (extensionless)`);
|
|
51
|
-
}
|
|
52
|
-
return jsFile;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
// Case 2: Main field has extension but file doesn't exist - look for platform variants
|
|
56
|
-
else if (!fs.existsSync(mainFilePath)) {
|
|
57
|
-
// Extract base name and extension
|
|
58
|
-
const ext = path.extname(mainField);
|
|
59
|
-
const baseName = mainField.slice(0, -ext.length);
|
|
60
|
-
// Try platform-specific file first
|
|
61
|
-
const platformFile = path.join(packagePath, `${baseName}.${opts.platform}${ext}`);
|
|
62
|
-
if (fs.existsSync(platformFile)) {
|
|
63
|
-
if (opts.verbose) {
|
|
64
|
-
console.log(`✅ Alias resolver: ${packageName} -> ${baseName}.${opts.platform}${ext} (missing main)`);
|
|
65
|
-
}
|
|
66
|
-
return platformFile;
|
|
67
|
-
}
|
|
68
|
-
// If main file exists, let normal resolution handle it
|
|
69
|
-
// If it doesn't exist and no platform variant found, let it fail naturally
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
catch (e) {
|
|
74
|
-
// Ignore parse errors and fall through
|
|
46
|
+
if (!fs.existsSync(packageJsonPath))
|
|
47
|
+
return null;
|
|
48
|
+
try {
|
|
49
|
+
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
|
|
50
|
+
// Shared main-field platform-variant rules (Case 1/2).
|
|
51
|
+
const out = resolveMainFieldPlatformVariant(packagePath, packageJson.main, opts.platform);
|
|
52
|
+
if (out && opts.verbose) {
|
|
53
|
+
console.log(`✅ Alias resolver: ${packageName} -> ${out}`);
|
|
75
54
|
}
|
|
55
|
+
return out;
|
|
76
56
|
}
|
|
77
|
-
|
|
78
|
-
|
|
57
|
+
catch {
|
|
58
|
+
// Ignore parse errors and fall through.
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
})();
|
|
62
|
+
resolveCache.set(packageName, resolved);
|
|
63
|
+
return resolved;
|
|
79
64
|
},
|
|
80
65
|
};
|
|
81
66
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-platform-aliases.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/package-platform-aliases.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"package-platform-aliases.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/package-platform-aliases.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAC;AAEnF,MAAM,WAAW,GAAG,kBAAkB,EAAE,CAAC;AAEzC,MAAM,UAAU,6BAA6B,CAAC,IAAoG;IACjJ,uEAAuE;IACvE,MAAM,WAAW,GAAG,CAAC,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,gCAAgC,CAAC,CAAC;IAC5G,4EAA4E;IAC5E,6EAA6E;IAC7E,2EAA2E;IAC3E,yEAAyE;IACzE,6EAA6E;IAC7E,6DAA6D;IAC7D,sCAAsC;IACtC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAyB,CAAC;IACtD,OAAO;QACN,IAAI,EAAE,8BAA8B;QACpC,OAAO,EAAE,KAAK;QACd,SAAS,CAAC,EAAE;YACX,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC3C,OAAO,IAAI,CAAC;YACb,CAAC;YACD,yCAAyC;YACzC,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC;YACb,CAAC;YAED,uDAAuD;YACvD,yDAAyD;YACzD,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;gBACrD,OAAO,IAAI,CAAC;YACb,CAAC;YAED,sEAAsE;YACtE,MAAM,WAAW,GAAG,EAAE,CAAC;YACvB,IAAI,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;gBACnC,OAAO,YAAY,CAAC,GAAG,CAAC,WAAW,CAAE,CAAC;YACvC,CAAC;YACD,sEAAsE;YACtE,qDAAqD;YACrD,MAAM,QAAQ,GAAG,CAAC,GAAkB,EAAE;gBACrC,MAAM,WAAW,GAAG,wBAAwB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;gBACvE,IAAI,CAAC,WAAW;oBAAE,OAAO,IAAI,CAAC;gBAC9B,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;gBAC/D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC;oBAAE,OAAO,IAAI,CAAC;gBACjD,IAAI,CAAC;oBACJ,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;oBACzE,uDAAuD;oBACvD,MAAM,GAAG,GAAG,+BAA+B,CAAC,WAAW,EAAE,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAC1F,IAAI,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;wBACzB,OAAO,CAAC,GAAG,CAAC,qBAAqB,WAAW,OAAO,GAAG,EAAE,CAAC,CAAC;oBAC3D,CAAC;oBACD,OAAO,GAAG,CAAC;gBACZ,CAAC;gBAAC,MAAM,CAAC;oBACR,wCAAwC;oBACxC,OAAO,IAAI,CAAC;gBACb,CAAC;YACF,CAAC,CAAC,EAAE,CAAC;YAEL,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YACxC,OAAO,QAAQ,CAAC;QACjB,CAAC;KACD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platform-types.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/platform-types.ts"],"names":[],"mappings":""}
|
|
@@ -5,7 +5,23 @@ interface PostCssConfigOptions {
|
|
|
5
5
|
postcssImport: any;
|
|
6
6
|
}
|
|
7
7
|
/**
|
|
8
|
-
* Builds PostCSS configuration with platform
|
|
8
|
+
* Builds PostCSS configuration with a platform-aware postcss-import fallback.
|
|
9
|
+
*
|
|
10
|
+
* Reality check under Vite 8: whenever the compiled CSS still contains
|
|
11
|
+
* `@import`, Vite UNSHIFTS its own bundled postcss-import ahead of every
|
|
12
|
+
* user plugin in this config — so by the time these plugins run, the import
|
|
13
|
+
* rules have already been inlined (or the build already failed on an
|
|
14
|
+
* unresolvable specifier). Platform-variant rewriting (`foo.css` →
|
|
15
|
+
* `foo.ios.css`) therefore happens BEFORE Vite sees the CSS:
|
|
16
|
+
* - module pipeline: the `ns-css-platform` plugin's transform hook
|
|
17
|
+
* - direct `preprocessCSS()` callers: `rewritePlatformCssImports()`
|
|
18
|
+
* (both in helpers/css-platform-plugin.ts)
|
|
19
|
+
* A previous `ns-postcss-platform-import-rewrite` plugin here duplicated that
|
|
20
|
+
* rewrite at the postcss layer; it was unreachable and has been removed.
|
|
21
|
+
*
|
|
22
|
+
* The postcss-import fallback below is retained as defense-in-depth for
|
|
23
|
+
* preprocessor outputs (sass passes `@import "*.css"` through untouched) in
|
|
24
|
+
* case an app's plugin order ever bypasses Vite's internal inliner.
|
|
9
25
|
*/
|
|
10
26
|
export declare function createPostCssConfig(opts: PostCssConfigOptions): "./postcss.config.js" | {
|
|
11
27
|
plugins: any[];
|
|
@@ -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":"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;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAA0B;IAC7D,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;IACrE,IAAI,CAAC,aAAa;QAAE,OAAO,qBAAqB,CAAC;IACjD,OAAO;QACN,OAAO,EAAE;YACR,aAAa,CAAC;gBACb,OAAO,CAAC,EAAU,EAAE,OAAe;oBAClC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC9C,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;wBAC/D,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;wBACjD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;4BAC5C,MAAM,WAAW,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC;4BACzE,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;4BAC/C,IAAI,UAAU,CAAC,GAAG,CAAC;gCAAE,OAAO,GAAG,CAAC;wBACjC,CAAC;wBACD,OAAO,GAAG,CAAC;oBACZ,CAAC;oBACD,IAAI,EAAE,CAAC,UAAU,CAAC,0BAA0B,CAAC,EAAE,CAAC;wBAC/C,MAAM,OAAO,GAAG,aAAa,IAAI,wBAAwB,CAAC,yBAAyB,EAAE,WAAW,CAAC,CAAC;wBAClG,IAAI,CAAC,OAAO;4BAAE,OAAO,EAAE,CAAC;wBACxB,MAAM,GAAG,GAAG,EAAE,CAAC,SAAS,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;wBAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;wBACvC,IAAI,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;4BAChC,MAAM,WAAW,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC;4BACzE,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;4BAC1C,MAAM,GAAG,GAAG,IAAI,GAAG,WAAW,CAAC;4BAC/B,IAAI,UAAU,CAAC,GAAG,CAAC;gCAAE,OAAO,GAAG,CAAC;wBACjC,CAAC;wBACD,OAAO,MAAM,CAAC;oBACf,CAAC;oBACD,OAAO,EAAE,CAAC;gBACX,CAAC;gBACD,IAAI,CAAC,QAAgB;oBACpB,IAAI,CAAC;wBACJ,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;wBACrC,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;4BACvB,OAAO,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;wBACrC,CAAC;wBACD,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;4BAC1B,MAAM,WAAW,GAAG,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC;4BACzE,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;4BACjD,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gCACrB,OAAO,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;4BACnC,CAAC;wBACF,CAAC;oBACF,CAAC;oBAAC,MAAM,CAAC,CAAA,CAAC;oBACV,OAAO,SAAgB,CAAC;gBACzB,CAAC;aACD,CAAC;SACF;KACD,CAAC;AACH,CAAC"}
|
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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"}
|