@nativescript/vite 8.0.0-alpha.3 → 8.0.0-alpha.31
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/configuration/angular.d.ts +34 -1
- package/configuration/angular.js +373 -163
- package/configuration/angular.js.map +1 -1
- package/configuration/base.js +184 -14
- package/configuration/base.js.map +1 -1
- package/configuration/javascript.js +5 -72
- package/configuration/javascript.js.map +1 -1
- package/configuration/solid.js +27 -1
- package/configuration/solid.js.map +1 -1
- package/configuration/typescript.js +5 -75
- 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/dev-host.d.ts +341 -0
- package/helpers/dev-host.js +617 -0
- package/helpers/dev-host.js.map +1 -0
- package/helpers/esbuild-platform-resolver.js +4 -1
- package/helpers/esbuild-platform-resolver.js.map +1 -1
- package/helpers/global-defines.d.ts +51 -0
- package/helpers/global-defines.js +77 -0
- 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 +63 -3
- package/helpers/logging.js.map +1 -1
- package/helpers/main-entry.d.ts +2 -1
- package/helpers/main-entry.js +430 -47
- 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.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 +8 -3
- 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 +88 -0
- package/helpers/ns-core-url.js +191 -0
- package/helpers/ns-core-url.js.map +1 -0
- package/helpers/package-platform-aliases.js +4 -3
- 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/project.d.ts +35 -0
- package/helpers/project.js +120 -2
- package/helpers/project.js.map +1 -1
- package/helpers/resolver.js +17 -2
- package/helpers/resolver.js.map +1 -1
- package/helpers/ts-config-paths.d.ts +14 -0
- package/helpers/ts-config-paths.js +89 -8
- 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/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 +1 -0
- package/hmr/client/css-handler.js +33 -20
- 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 +73 -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 +27 -0
- package/hmr/client/hmr-pending-overlay.js +50 -0
- package/hmr/client/hmr-pending-overlay.js.map +1 -0
- package/hmr/client/index.js +459 -164
- package/hmr/client/index.js.map +1 -1
- package/hmr/client/utils.d.ts +6 -1
- package/hmr/client/utils.js +184 -8
- package/hmr/client/utils.js.map +1 -1
- package/hmr/entry-runtime.d.ts +2 -1
- package/hmr/entry-runtime.js +252 -65
- 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 +778 -20
- 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 +448 -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 +360 -16
- package/hmr/frameworks/solid/server/strategy.js.map +1 -1
- package/hmr/frameworks/typescript/server/strategy.js +28 -14
- package/hmr/frameworks/typescript/server/strategy.js.map +1 -1
- package/hmr/frameworks/vue/client/index.js +30 -199
- package/hmr/frameworks/vue/client/index.js.map +1 -1
- package/hmr/frameworks/vue/client/strategy.d.ts +7 -0
- package/hmr/frameworks/vue/client/strategy.js +83 -0
- package/hmr/frameworks/vue/client/strategy.js.map +1 -0
- package/hmr/frameworks/vue/client/vue-sfc-update-overlay.d.ts +82 -0
- package/hmr/frameworks/vue/client/vue-sfc-update-overlay.js +133 -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 +706 -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 +457 -0
- package/hmr/frameworks/vue/server/sfc-route-serve.js.map +1 -0
- package/hmr/frameworks/vue/server/sfc-route-shared.d.ts +19 -0
- package/hmr/frameworks/vue/server/sfc-route-shared.js +14 -0
- package/hmr/frameworks/vue/server/sfc-route-shared.js.map +1 -0
- package/hmr/frameworks/vue/server/strategy.js +244 -0
- 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.js +52 -5
- 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 +13 -4
- 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 +327 -0
- package/hmr/server/device-transform-helpers.js.map +1 -0
- package/hmr/server/framework-strategy.d.ts +95 -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 +59 -40
- 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 +35 -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 +195 -0
- package/hmr/server/perf-instrumentation.js.map +1 -0
- package/hmr/server/process-code-for-device.d.ts +15 -0
- package/hmr/server/process-code-for-device.js +654 -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 +604 -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 +12 -0
- package/hmr/server/server-origin.js +66 -0
- package/hmr/server/server-origin.js.map +1 -0
- package/hmr/server/shared-transform-request.js +12 -5
- package/hmr/server/shared-transform-request.js.map +1 -1
- package/hmr/server/transform-cache-invalidation.d.ts +11 -0
- package/hmr/server/transform-cache-invalidation.js +84 -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 +60 -42
- package/hmr/server/vite-plugin.js.map +1 -1
- package/hmr/server/websocket-core-bridge.d.ts +41 -6
- package/hmr/server/websocket-core-bridge.js +72 -75
- 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 +330 -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 +46 -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 +202 -19
- 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 +306 -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 +150 -0
- package/hmr/server/websocket-ns-entry.js.map +1 -0
- package/hmr/server/websocket-ns-m-paths.d.ts +3 -0
- package/hmr/server/websocket-ns-m-paths.js +92 -0
- package/hmr/server/websocket-ns-m-paths.js.map +1 -0
- package/hmr/server/websocket-ns-m-request.d.ts +45 -0
- package/hmr/server/websocket-ns-m-request.js +196 -0
- package/hmr/server/websocket-ns-m-request.js.map +1 -0
- package/hmr/server/websocket-ns-m.d.ts +33 -0
- package/hmr/server/websocket-ns-m.js +748 -0
- package/hmr/server/websocket-ns-m.js.map +1 -0
- package/hmr/server/websocket-served-module-helpers.d.ts +39 -0
- package/hmr/server/websocket-served-module-helpers.js +654 -0
- package/hmr/server/websocket-served-module-helpers.js.map +1 -0
- package/hmr/server/websocket-txn.d.ts +6 -0
- package/hmr/server/websocket-txn.js +39 -0
- package/hmr/server/websocket-txn.js.map +1 -0
- package/hmr/server/websocket-vendor-unifier.d.ts +9 -0
- package/hmr/server/websocket-vendor-unifier.js +46 -0
- package/hmr/server/websocket-vendor-unifier.js.map +1 -0
- package/hmr/server/websocket.d.ts +8 -39
- package/hmr/server/websocket.js +602 -6049
- package/hmr/server/websocket.js.map +1 -1
- package/hmr/shared/ns-globals.d.ts +118 -0
- package/hmr/shared/ns-globals.js +27 -0
- package/hmr/shared/ns-globals.js.map +1 -0
- package/hmr/shared/protocol.d.ts +136 -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 +40 -0
- package/hmr/shared/runtime/boot-progress.js +128 -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 +52 -0
- package/hmr/shared/runtime/boot-timeline.js.map +1 -0
- package/hmr/shared/runtime/dev-overlay-snapshots.d.ts +31 -0
- package/hmr/shared/runtime/dev-overlay-snapshots.js +324 -0
- package/hmr/shared/runtime/dev-overlay-snapshots.js.map +1 -0
- package/hmr/shared/runtime/dev-overlay.d.ts +75 -26
- package/hmr/shared/runtime/dev-overlay.js +990 -260
- package/hmr/shared/runtime/dev-overlay.js.map +1 -1
- package/hmr/shared/runtime/module-provenance.js +1 -4
- 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 +310 -0
- package/hmr/shared/runtime/root-placeholder-view.js.map +1 -0
- package/hmr/shared/runtime/root-placeholder.js +352 -194
- package/hmr/shared/runtime/root-placeholder.js.map +1 -1
- package/hmr/shared/runtime/session-bootstrap.js +164 -1
- package/hmr/shared/runtime/session-bootstrap.js.map +1 -1
- package/hmr/shared/runtime/vendor-bootstrap.js +1 -9
- 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 +3 -2
- 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/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 +17 -41
- 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/{helpers/angular → hmr/frameworks/angular/build}/inline-decorator-component-templates.d.ts +0 -0
- /package/{helpers/angular → hmr/frameworks/angular/build}/synthesize-decorator-ctor-parameters.d.ts +0 -0
- /package/{helpers/angular → hmr/frameworks/angular/build}/synthesize-injectable-factories.d.ts +0 -0
- /package/hmr/{server → frameworks/angular/server}/websocket-angular-entry.d.ts +0 -0
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Re-inject `/* @vite-ignore *\/` into Angular's HMR initializer dynamic
|
|
3
|
+
* imports.
|
|
4
|
+
*
|
|
5
|
+
* # Why this exists
|
|
6
|
+
*
|
|
7
|
+
* Angular's compiler (`@angular/compiler`'s `compileHmrInitializer`) emits
|
|
8
|
+
* each `@Component`-decorated class's HMR loader as:
|
|
9
|
+
*
|
|
10
|
+
* ```js
|
|
11
|
+
* function FooComponent_HmrLoad(t) {
|
|
12
|
+
* import(\/* @vite-ignore *\/ i0.ɵɵgetReplaceMetadataURL(id, t, import.meta.url))
|
|
13
|
+
* .then((m) => m.default && i0.ɵɵreplaceMetadata(FooComponent, m.default, ...));
|
|
14
|
+
* }
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* The `\/* @vite-ignore *\/` annotation tells Vite "do not try to
|
|
18
|
+
* statically analyze this dynamic import" — the URL is computed at
|
|
19
|
+
* runtime by `ɵɵgetReplaceMetadataURL`, which produces something like
|
|
20
|
+
* `http://host/ns/m/<componentDir>/@ng/component?c=<id>&t=<ts>` to be
|
|
21
|
+
* resolved by Analog's `liveReloadPlugin` middleware on the dev server.
|
|
22
|
+
*
|
|
23
|
+
* Somewhere along the post-Angular transform chain — empirically the
|
|
24
|
+
* `compact: false` Babel pass driven by the Angular linker, but
|
|
25
|
+
* potentially other plugins as well — the leading-argument comment is
|
|
26
|
+
* being dropped. By the time the file lands on the device, the
|
|
27
|
+
* compiled emit reads:
|
|
28
|
+
*
|
|
29
|
+
* ```js
|
|
30
|
+
* import(i0.ɵɵgetReplaceMetadataURL(id, t, import.meta.url))
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* Vite's static analyzer logs:
|
|
34
|
+
*
|
|
35
|
+
* > The above dynamic import cannot be analyzed by Vite.
|
|
36
|
+
*
|
|
37
|
+
* and rewrites the call site to route through Vite's runtime resolver,
|
|
38
|
+
* which fails on the iOS runtime because the resolver expects a
|
|
39
|
+
* statically-known module specifier. The HMR loader IIFE runs at every
|
|
40
|
+
* component module evaluation (gated by `ngDevMode`), so the failure
|
|
41
|
+
* fires at boot for the FIRST `@Component` whose module is evaluated —
|
|
42
|
+
* typically a base/utility component like `ConfirmationDialogBaseComponent`
|
|
43
|
+
* — and aborts session startup with:
|
|
44
|
+
*
|
|
45
|
+
* > TypeError at Module.ɵɵgetReplaceMetadataURL
|
|
46
|
+
*
|
|
47
|
+
* Re-inserting the annotation downstream of every other transform makes
|
|
48
|
+
* us tolerant of upstream comment-loss without depending on the linker's
|
|
49
|
+
* comment behaviour. The fix is purely additive: if the comment is still
|
|
50
|
+
* present (Angular versions that emit it differently, or future
|
|
51
|
+
* compilers that wrap the URL in an alternate helper), `appendIfMissing`
|
|
52
|
+
* leaves the import untouched.
|
|
53
|
+
*
|
|
54
|
+
* # Idempotence
|
|
55
|
+
*
|
|
56
|
+
* The helper is safe to call repeatedly on the same source — once the
|
|
57
|
+
* annotation is present, subsequent calls become a no-op match by match.
|
|
58
|
+
* Vite's transform pipeline can replay cached transforms during a
|
|
59
|
+
* single dev session, so idempotence is required, not optional.
|
|
60
|
+
*
|
|
61
|
+
* # Surface area
|
|
62
|
+
*
|
|
63
|
+
* We only touch `import()` calls whose argument expression contains
|
|
64
|
+
* `ɵɵgetReplaceMetadataURL` (matching either the literal Unicode form
|
|
65
|
+
* or the escaped `\u0275\u0275getReplaceMetadataURL`). Every other
|
|
66
|
+
* dynamic import is left alone — an over-broad sweep would suppress
|
|
67
|
+
* Vite warnings on user dynamic imports that genuinely should be
|
|
68
|
+
* statically analyzed.
|
|
69
|
+
*/
|
|
70
|
+
import { findMatchingDelimiter } from './js-lexer.js';
|
|
71
|
+
const ANGULAR_HMR_IDENTIFIER = 'getReplaceMetadataURL';
|
|
72
|
+
const VITE_IGNORE_COMMENT = '/* @vite-ignore */';
|
|
73
|
+
/**
|
|
74
|
+
* Inject `/* @vite-ignore *\/` into every `import()` whose argument
|
|
75
|
+
* references Angular's `ɵɵgetReplaceMetadataURL`. Returns the original
|
|
76
|
+
* code unchanged when no qualifying imports are found.
|
|
77
|
+
*/
|
|
78
|
+
export function injectAngularHmrViteIgnore(code) {
|
|
79
|
+
if (!code)
|
|
80
|
+
return code;
|
|
81
|
+
// Cheap pre-check: bail out before walking the source if neither
|
|
82
|
+
// the unicode nor the escape form of the identifier is anywhere in
|
|
83
|
+
// the file. The vast majority of files aren't components, so this
|
|
84
|
+
// short-circuit is the hot path.
|
|
85
|
+
if (!code.includes(ANGULAR_HMR_IDENTIFIER))
|
|
86
|
+
return code;
|
|
87
|
+
let output = '';
|
|
88
|
+
let cursor = 0;
|
|
89
|
+
let changed = false;
|
|
90
|
+
while (cursor < code.length) {
|
|
91
|
+
const importIndex = findNextImportCall(code, cursor);
|
|
92
|
+
if (importIndex === -1) {
|
|
93
|
+
output += code.slice(cursor);
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
const openParenIndex = findOpenParenAfter(code, importIndex + 'import'.length);
|
|
97
|
+
if (openParenIndex === -1) {
|
|
98
|
+
output += code.slice(cursor, importIndex + 'import'.length);
|
|
99
|
+
cursor = importIndex + 'import'.length;
|
|
100
|
+
continue;
|
|
101
|
+
}
|
|
102
|
+
const closeParenIndex = findMatchingDelimiter(code, openParenIndex, '(', ')');
|
|
103
|
+
if (closeParenIndex === -1) {
|
|
104
|
+
output += code.slice(cursor, openParenIndex + 1);
|
|
105
|
+
cursor = openParenIndex + 1;
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
const argumentBody = code.slice(openParenIndex + 1, closeParenIndex);
|
|
109
|
+
if (!referencesReplaceMetadataUrl(argumentBody)) {
|
|
110
|
+
output += code.slice(cursor, closeParenIndex + 1);
|
|
111
|
+
cursor = closeParenIndex + 1;
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
if (alreadyAnnotated(argumentBody)) {
|
|
115
|
+
output += code.slice(cursor, closeParenIndex + 1);
|
|
116
|
+
cursor = closeParenIndex + 1;
|
|
117
|
+
continue;
|
|
118
|
+
}
|
|
119
|
+
// Insert the annotation immediately after `import(` so the
|
|
120
|
+
// original argument expression — including any leading
|
|
121
|
+
// whitespace the upstream emitter chose — keeps its byte
|
|
122
|
+
// layout. This preserves source-map line stability for the
|
|
123
|
+
// rest of the file: only column offsets after the injection
|
|
124
|
+
// shift, never line numbers.
|
|
125
|
+
output += code.slice(cursor, openParenIndex + 1);
|
|
126
|
+
output += ` ${VITE_IGNORE_COMMENT} `;
|
|
127
|
+
output += code.slice(openParenIndex + 1, closeParenIndex + 1);
|
|
128
|
+
cursor = closeParenIndex + 1;
|
|
129
|
+
changed = true;
|
|
130
|
+
}
|
|
131
|
+
return changed ? output : code;
|
|
132
|
+
}
|
|
133
|
+
function findNextImportCall(source, startIndex) {
|
|
134
|
+
let i = startIndex;
|
|
135
|
+
while (i < source.length) {
|
|
136
|
+
const next = source.indexOf('import', i);
|
|
137
|
+
if (next === -1)
|
|
138
|
+
return -1;
|
|
139
|
+
// Reject `import.meta` and `import ` keyword forms; only
|
|
140
|
+
// `import(` (with optional whitespace) is a dynamic import.
|
|
141
|
+
const tail = next + 'import'.length;
|
|
142
|
+
const before = source.charCodeAt(next - 1);
|
|
143
|
+
const isWordCharBefore = isIdentifierPart(before);
|
|
144
|
+
if (!isWordCharBefore) {
|
|
145
|
+
let scan = tail;
|
|
146
|
+
while (scan < source.length && isWhitespace(source.charCodeAt(scan)))
|
|
147
|
+
scan++;
|
|
148
|
+
if (source.charCodeAt(scan) === 0x28 /* '(' */) {
|
|
149
|
+
return next;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
i = tail;
|
|
153
|
+
}
|
|
154
|
+
return -1;
|
|
155
|
+
}
|
|
156
|
+
function findOpenParenAfter(source, index) {
|
|
157
|
+
let i = index;
|
|
158
|
+
while (i < source.length && isWhitespace(source.charCodeAt(i)))
|
|
159
|
+
i++;
|
|
160
|
+
if (source.charCodeAt(i) === 0x28 /* '(' */)
|
|
161
|
+
return i;
|
|
162
|
+
return -1;
|
|
163
|
+
}
|
|
164
|
+
function alreadyAnnotated(argumentBody) {
|
|
165
|
+
// Trim only the leading whitespace + comments — body may have many
|
|
166
|
+
// non-`@vite-ignore` block comments later that we don't want to
|
|
167
|
+
// confuse for an already-applied annotation.
|
|
168
|
+
let i = 0;
|
|
169
|
+
while (i < argumentBody.length) {
|
|
170
|
+
const c = argumentBody.charCodeAt(i);
|
|
171
|
+
if (isWhitespace(c)) {
|
|
172
|
+
i++;
|
|
173
|
+
continue;
|
|
174
|
+
}
|
|
175
|
+
if (c === 0x2f /* '/' */ && argumentBody.charCodeAt(i + 1) === 0x2a /* '*' */) {
|
|
176
|
+
const closeIndex = argumentBody.indexOf('*/', i + 2);
|
|
177
|
+
if (closeIndex === -1)
|
|
178
|
+
return false;
|
|
179
|
+
const commentBody = argumentBody.slice(i + 2, closeIndex);
|
|
180
|
+
if (commentBody.includes('@vite-ignore'))
|
|
181
|
+
return true;
|
|
182
|
+
i = closeIndex + 2;
|
|
183
|
+
continue;
|
|
184
|
+
}
|
|
185
|
+
// First non-whitespace, non-block-comment token — there's no
|
|
186
|
+
// annotation in the leading whitespace window.
|
|
187
|
+
return false;
|
|
188
|
+
}
|
|
189
|
+
return false;
|
|
190
|
+
}
|
|
191
|
+
function referencesReplaceMetadataUrl(argumentBody) {
|
|
192
|
+
if (!argumentBody)
|
|
193
|
+
return false;
|
|
194
|
+
if (argumentBody.includes(ANGULAR_HMR_IDENTIFIER))
|
|
195
|
+
return true;
|
|
196
|
+
// `\u0275\u0275getReplaceMetadataURL` — unicode-escaped form some
|
|
197
|
+
// transforms emit. The substring above already covers the suffix
|
|
198
|
+
// regardless of the prefix encoding, so this branch is mostly
|
|
199
|
+
// defensive — keep it explicit so future changes to the identifier
|
|
200
|
+
// (e.g. a `replaceMetadataURL` rename without `ɵɵ`) don't silently
|
|
201
|
+
// stop matching.
|
|
202
|
+
return /\\u0275\\u0275getReplaceMetadataURL/.test(argumentBody);
|
|
203
|
+
}
|
|
204
|
+
function isWhitespace(code) {
|
|
205
|
+
return code === 0x20 || code === 0x09 || code === 0x0a || code === 0x0d || code === 0x0b || code === 0x0c;
|
|
206
|
+
}
|
|
207
|
+
function isIdentifierPart(code) {
|
|
208
|
+
if (Number.isNaN(code))
|
|
209
|
+
return false;
|
|
210
|
+
if (code === 0x5f /* '_' */ || code === 0x24 /* '$' */)
|
|
211
|
+
return true;
|
|
212
|
+
if (code >= 0x30 && code <= 0x39)
|
|
213
|
+
return true;
|
|
214
|
+
if (code >= 0x41 && code <= 0x5a)
|
|
215
|
+
return true;
|
|
216
|
+
if (code >= 0x61 && code <= 0x7a)
|
|
217
|
+
return true;
|
|
218
|
+
return false;
|
|
219
|
+
}
|
|
220
|
+
// Comment-aware paren matcher lives in ./js-lexer.ts
|
|
221
|
+
//# sourceMappingURL=inject-hmr-vite-ignore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inject-hmr-vite-ignore.js","sourceRoot":"","sources":["../../../../../../../packages/vite/hmr/frameworks/angular/build/inject-hmr-vite-ignore.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoEG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEtD,MAAM,sBAAsB,GAAG,uBAAuB,CAAC;AACvD,MAAM,mBAAmB,GAAG,oBAAoB,CAAC;AAEjD;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,IAAY;IACtD,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,iEAAiE;IACjE,mEAAmE;IACnE,kEAAkE;IAClE,iCAAiC;IACjC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QAAE,OAAO,IAAI,CAAC;IAExD,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,OAAO,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7B,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACrD,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC7B,MAAM;QACP,CAAC;QAED,MAAM,cAAc,GAAG,kBAAkB,CAAC,IAAI,EAAE,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/E,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC5D,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC;YACvC,SAAS;QACV,CAAC;QAED,MAAM,eAAe,GAAG,qBAAqB,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9E,IAAI,eAAe,KAAK,CAAC,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC;YACjD,MAAM,GAAG,cAAc,GAAG,CAAC,CAAC;YAC5B,SAAS;QACV,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,EAAE,eAAe,CAAC,CAAC;QACrE,IAAI,CAAC,4BAA4B,CAAC,YAAY,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,eAAe,GAAG,CAAC,CAAC,CAAC;YAClD,MAAM,GAAG,eAAe,GAAG,CAAC,CAAC;YAC7B,SAAS;QACV,CAAC;QAED,IAAI,gBAAgB,CAAC,YAAY,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,eAAe,GAAG,CAAC,CAAC,CAAC;YAClD,MAAM,GAAG,eAAe,GAAG,CAAC,CAAC;YAC7B,SAAS;QACV,CAAC;QAED,2DAA2D;QAC3D,uDAAuD;QACvD,yDAAyD;QACzD,2DAA2D;QAC3D,4DAA4D;QAC5D,6BAA6B;QAC7B,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,cAAc,GAAG,CAAC,CAAC,CAAC;QACjD,MAAM,IAAI,IAAI,mBAAmB,GAAG,CAAC;QACrC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,EAAE,eAAe,GAAG,CAAC,CAAC,CAAC;QAC9D,MAAM,GAAG,eAAe,GAAG,CAAC,CAAC;QAC7B,OAAO,GAAG,IAAI,CAAC;IAChB,CAAC;IAED,OAAO,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;AAChC,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAc,EAAE,UAAkB;IAC7D,IAAI,CAAC,GAAG,UAAU,CAAC;IACnB,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACzC,IAAI,IAAI,KAAK,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC,CAAC;QAC3B,yDAAyD;QACzD,4DAA4D;QAC5D,MAAM,IAAI,GAAG,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC;QACpC,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;QAC3C,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACvB,IAAI,IAAI,GAAG,IAAI,CAAC;YAChB,OAAO,IAAI,GAAG,MAAM,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAAE,IAAI,EAAE,CAAC;YAC7E,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;gBAChD,OAAO,IAAI,CAAC;YACb,CAAC;QACF,CAAC;QACD,CAAC,GAAG,IAAI,CAAC;IACV,CAAC;IACD,OAAO,CAAC,CAAC,CAAC;AACX,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAc,EAAE,KAAa;IACxD,IAAI,CAAC,GAAG,KAAK,CAAC;IACd,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAAE,CAAC,EAAE,CAAC;IACpE,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS;QAAE,OAAO,CAAC,CAAC;IACtD,OAAO,CAAC,CAAC,CAAC;AACX,CAAC;AAED,SAAS,gBAAgB,CAAC,YAAoB;IAC7C,mEAAmE;IACnE,gEAAgE;IAChE,6CAA6C;IAC7C,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;QAChC,MAAM,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;YACrB,CAAC,EAAE,CAAC;YACJ,SAAS;QACV,CAAC;QACD,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,IAAI,YAAY,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;YAC/E,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACrD,IAAI,UAAU,KAAK,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;YACpC,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,CAAC;YAC1D,IAAI,WAAW,CAAC,QAAQ,CAAC,cAAc,CAAC;gBAAE,OAAO,IAAI,CAAC;YACtD,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC;YACnB,SAAS;QACV,CAAC;QACD,6DAA6D;QAC7D,+CAA+C;QAC/C,OAAO,KAAK,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,SAAS,4BAA4B,CAAC,YAAoB;IACzD,IAAI,CAAC,YAAY;QAAE,OAAO,KAAK,CAAC;IAChC,IAAI,YAAY,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/D,kEAAkE;IAClE,iEAAiE;IACjE,8DAA8D;IAC9D,mEAAmE;IACnE,mEAAmE;IACnE,iBAAiB;IACjB,OAAO,qCAAqC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACjE,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IACjC,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,CAAC;AAC3G,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAY;IACrC,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACrC,IAAI,IAAI,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,KAAK,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IACpE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAC9C,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAC9C,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAC9C,OAAO,KAAK,CAAC;AACd,CAAC;AAED,qDAAqD"}
|
package/{helpers/angular → hmr/frameworks/angular/build}/inline-decorator-component-templates.js
RENAMED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { existsSync, readFileSync } from 'node:fs';
|
|
2
2
|
import { dirname, resolve } from 'node:path';
|
|
3
|
+
import { findMatchingDelimiter, findStatementEnd, splitTopLevel, stripQuotes } from './js-lexer.js';
|
|
3
4
|
const DECORATE_ASSIGNMENT_RE = /(^|[^\w$.])([A-Za-z_$][\w$]*)\s*=\s*__decorate(?:\$\w+)?\s*\(/gm;
|
|
4
5
|
const REGION_RE = /\/\/#region\s+([^\n]+)/g;
|
|
5
6
|
const REGION_SOURCE_SUFFIX_RE = /\.(?:[cm]?[jt]sx?)(?=\/)/;
|
|
@@ -224,176 +225,6 @@ function extractCallArgs(source, callName) {
|
|
|
224
225
|
}
|
|
225
226
|
return source.slice(openParenIndex + 1, closeParenIndex);
|
|
226
227
|
}
|
|
227
|
-
function stripQuotes(value) {
|
|
228
|
-
if ((value.startsWith('"') && value.endsWith('"')) || (value.startsWith("'") && value.endsWith("'")) || (value.startsWith('`') && value.endsWith('`'))) {
|
|
229
|
-
return value.slice(1, -1);
|
|
230
|
-
}
|
|
231
|
-
return value;
|
|
232
|
-
}
|
|
233
|
-
function findStatementEnd(source, startIndex) {
|
|
234
|
-
let index = startIndex;
|
|
235
|
-
while (index < source.length && /\s/.test(source[index])) {
|
|
236
|
-
index++;
|
|
237
|
-
}
|
|
238
|
-
if (source[index] === ';') {
|
|
239
|
-
return index + 1;
|
|
240
|
-
}
|
|
241
|
-
return startIndex;
|
|
242
|
-
}
|
|
243
|
-
function findMatchingDelimiter(source, openIndex, openChar, closeChar) {
|
|
244
|
-
if (openIndex < 0 || source[openIndex] !== openChar) {
|
|
245
|
-
return -1;
|
|
246
|
-
}
|
|
247
|
-
let depth = 0;
|
|
248
|
-
let quote = null;
|
|
249
|
-
let escape = false;
|
|
250
|
-
let inLineComment = false;
|
|
251
|
-
let inBlockComment = false;
|
|
252
|
-
for (let index = openIndex; index < source.length; index++) {
|
|
253
|
-
const char = source[index];
|
|
254
|
-
const next = source[index + 1];
|
|
255
|
-
if (inLineComment) {
|
|
256
|
-
if (char === '\n') {
|
|
257
|
-
inLineComment = false;
|
|
258
|
-
}
|
|
259
|
-
continue;
|
|
260
|
-
}
|
|
261
|
-
if (inBlockComment) {
|
|
262
|
-
if (char === '*' && next === '/') {
|
|
263
|
-
inBlockComment = false;
|
|
264
|
-
index++;
|
|
265
|
-
}
|
|
266
|
-
continue;
|
|
267
|
-
}
|
|
268
|
-
if (quote) {
|
|
269
|
-
if (escape) {
|
|
270
|
-
escape = false;
|
|
271
|
-
continue;
|
|
272
|
-
}
|
|
273
|
-
if (char === '\\') {
|
|
274
|
-
escape = true;
|
|
275
|
-
continue;
|
|
276
|
-
}
|
|
277
|
-
if (char === quote) {
|
|
278
|
-
quote = null;
|
|
279
|
-
}
|
|
280
|
-
continue;
|
|
281
|
-
}
|
|
282
|
-
if (char === '/' && next === '/') {
|
|
283
|
-
inLineComment = true;
|
|
284
|
-
index++;
|
|
285
|
-
continue;
|
|
286
|
-
}
|
|
287
|
-
if (char === '/' && next === '*') {
|
|
288
|
-
inBlockComment = true;
|
|
289
|
-
index++;
|
|
290
|
-
continue;
|
|
291
|
-
}
|
|
292
|
-
if (char === '"' || char === "'" || char === '`') {
|
|
293
|
-
quote = char;
|
|
294
|
-
continue;
|
|
295
|
-
}
|
|
296
|
-
if (char === openChar) {
|
|
297
|
-
depth++;
|
|
298
|
-
}
|
|
299
|
-
else if (char === closeChar) {
|
|
300
|
-
depth--;
|
|
301
|
-
if (depth === 0) {
|
|
302
|
-
return index;
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
return -1;
|
|
307
|
-
}
|
|
308
|
-
function splitTopLevel(source) {
|
|
309
|
-
const parts = [];
|
|
310
|
-
let start = 0;
|
|
311
|
-
let parenDepth = 0;
|
|
312
|
-
let bracketDepth = 0;
|
|
313
|
-
let braceDepth = 0;
|
|
314
|
-
let quote = null;
|
|
315
|
-
let escape = false;
|
|
316
|
-
let inLineComment = false;
|
|
317
|
-
let inBlockComment = false;
|
|
318
|
-
for (let index = 0; index < source.length; index++) {
|
|
319
|
-
const char = source[index];
|
|
320
|
-
const next = source[index + 1];
|
|
321
|
-
if (inLineComment) {
|
|
322
|
-
if (char === '\n') {
|
|
323
|
-
inLineComment = false;
|
|
324
|
-
}
|
|
325
|
-
continue;
|
|
326
|
-
}
|
|
327
|
-
if (inBlockComment) {
|
|
328
|
-
if (char === '*' && next === '/') {
|
|
329
|
-
inBlockComment = false;
|
|
330
|
-
index++;
|
|
331
|
-
}
|
|
332
|
-
continue;
|
|
333
|
-
}
|
|
334
|
-
if (quote) {
|
|
335
|
-
if (escape) {
|
|
336
|
-
escape = false;
|
|
337
|
-
continue;
|
|
338
|
-
}
|
|
339
|
-
if (char === '\\') {
|
|
340
|
-
escape = true;
|
|
341
|
-
continue;
|
|
342
|
-
}
|
|
343
|
-
if (char === quote) {
|
|
344
|
-
quote = null;
|
|
345
|
-
}
|
|
346
|
-
continue;
|
|
347
|
-
}
|
|
348
|
-
if (char === '/' && next === '/') {
|
|
349
|
-
inLineComment = true;
|
|
350
|
-
index++;
|
|
351
|
-
continue;
|
|
352
|
-
}
|
|
353
|
-
if (char === '/' && next === '*') {
|
|
354
|
-
inBlockComment = true;
|
|
355
|
-
index++;
|
|
356
|
-
continue;
|
|
357
|
-
}
|
|
358
|
-
if (char === '"' || char === "'" || char === '`') {
|
|
359
|
-
quote = char;
|
|
360
|
-
continue;
|
|
361
|
-
}
|
|
362
|
-
if (char === '(') {
|
|
363
|
-
parenDepth++;
|
|
364
|
-
continue;
|
|
365
|
-
}
|
|
366
|
-
if (char === ')') {
|
|
367
|
-
parenDepth--;
|
|
368
|
-
continue;
|
|
369
|
-
}
|
|
370
|
-
if (char === '[') {
|
|
371
|
-
bracketDepth++;
|
|
372
|
-
continue;
|
|
373
|
-
}
|
|
374
|
-
if (char === ']') {
|
|
375
|
-
bracketDepth--;
|
|
376
|
-
continue;
|
|
377
|
-
}
|
|
378
|
-
if (char === '{') {
|
|
379
|
-
braceDepth++;
|
|
380
|
-
continue;
|
|
381
|
-
}
|
|
382
|
-
if (char === '}') {
|
|
383
|
-
braceDepth--;
|
|
384
|
-
continue;
|
|
385
|
-
}
|
|
386
|
-
if (char === ',' && parenDepth === 0 && bracketDepth === 0 && braceDepth === 0) {
|
|
387
|
-
parts.push(source.slice(start, index).trim());
|
|
388
|
-
start = index + 1;
|
|
389
|
-
}
|
|
390
|
-
}
|
|
391
|
-
const tail = source.slice(start).trim();
|
|
392
|
-
if (tail) {
|
|
393
|
-
parts.push(tail);
|
|
394
|
-
}
|
|
395
|
-
return parts;
|
|
396
|
-
}
|
|
397
228
|
function escapeRegex(value) {
|
|
398
229
|
return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
399
230
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inline-decorator-component-templates.js","sourceRoot":"","sources":["../../../../../../../packages/vite/hmr/frameworks/angular/build/inline-decorator-component-templates.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function findStatementEnd(source: string, startIndex: number): number;
|
|
2
|
+
export declare function stripQuotes(value: string): string;
|
|
3
|
+
export declare function findMatchingDelimiter(source: string, openIndex: number, openChar: string, closeChar: string): number;
|
|
4
|
+
export declare function splitTopLevel(source: string): string[];
|
|
@@ -1,95 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
let output = '';
|
|
6
|
-
for (const match of code.matchAll(DECORATE_ASSIGNMENT_RE)) {
|
|
7
|
-
const prefix = match[1] ?? '';
|
|
8
|
-
const className = match[2];
|
|
9
|
-
const assignmentStart = (match.index ?? 0) + prefix.length;
|
|
10
|
-
const equalsIndex = code.indexOf('=', assignmentStart + className.length);
|
|
11
|
-
const decorateIndex = code.indexOf('__decorate', equalsIndex);
|
|
12
|
-
const openParenIndex = code.indexOf('(', decorateIndex);
|
|
13
|
-
if (equalsIndex === -1 || decorateIndex === -1 || openParenIndex === -1 || hasCtorParameters(code, className)) {
|
|
14
|
-
continue;
|
|
15
|
-
}
|
|
16
|
-
const closeParenIndex = findMatchingDelimiter(code, openParenIndex, '(', ')');
|
|
17
|
-
if (closeParenIndex === -1) {
|
|
18
|
-
continue;
|
|
19
|
-
}
|
|
20
|
-
const statementEnd = findStatementEnd(code, closeParenIndex + 1);
|
|
21
|
-
const decorateCall = code.slice(decorateIndex, closeParenIndex + 1);
|
|
22
|
-
const decorators = splitDecoratorArray(decorateCall);
|
|
23
|
-
if (!decorators.some(isAngularClassDecorator)) {
|
|
24
|
-
continue;
|
|
25
|
-
}
|
|
26
|
-
const paramTypes = extractParamTypes(decorators);
|
|
27
|
-
if (!paramTypes?.length) {
|
|
28
|
-
continue;
|
|
29
|
-
}
|
|
30
|
-
output += code.slice(lastIndex, assignmentStart);
|
|
31
|
-
output += `${className}.ctorParameters = () => [${paramTypes.map((paramType) => `{ type: ${paramType} }`).join(', ')}];\n`;
|
|
32
|
-
output += code.slice(assignmentStart, statementEnd);
|
|
33
|
-
lastIndex = statementEnd;
|
|
34
|
-
changed = true;
|
|
35
|
-
}
|
|
36
|
-
if (!changed) {
|
|
37
|
-
return code;
|
|
38
|
-
}
|
|
39
|
-
output += code.slice(lastIndex);
|
|
40
|
-
return output;
|
|
41
|
-
}
|
|
42
|
-
function hasCtorParameters(code, className) {
|
|
43
|
-
return [`${className}.ctorParameters`, `Object.defineProperty(${className}, "ctorParameters"`, `Object.defineProperty(${className}, 'ctorParameters'`].some((marker) => code.includes(marker));
|
|
44
|
-
}
|
|
45
|
-
function splitDecoratorArray(decorateCall) {
|
|
46
|
-
const openParenIndex = decorateCall.indexOf('(');
|
|
47
|
-
const closeParenIndex = decorateCall.lastIndexOf(')');
|
|
48
|
-
if (openParenIndex === -1 || closeParenIndex === -1) {
|
|
49
|
-
return [];
|
|
50
|
-
}
|
|
51
|
-
const args = splitTopLevel(decorateCall.slice(openParenIndex + 1, closeParenIndex));
|
|
52
|
-
if (!args.length) {
|
|
53
|
-
return [];
|
|
54
|
-
}
|
|
55
|
-
const decoratorArray = args[0].trim();
|
|
56
|
-
if (!decoratorArray.startsWith('[') || !decoratorArray.endsWith(']')) {
|
|
57
|
-
return [];
|
|
58
|
-
}
|
|
59
|
-
return splitTopLevel(decoratorArray.slice(1, -1));
|
|
60
|
-
}
|
|
61
|
-
function extractParamTypes(decorators) {
|
|
62
|
-
for (const decorator of decorators) {
|
|
63
|
-
if (!decorator.includes('__decorateMetadata')) {
|
|
64
|
-
continue;
|
|
65
|
-
}
|
|
66
|
-
const openParenIndex = decorator.indexOf('(');
|
|
67
|
-
const closeParenIndex = findMatchingDelimiter(decorator, openParenIndex, '(', ')');
|
|
68
|
-
if (openParenIndex === -1 || closeParenIndex === -1) {
|
|
69
|
-
continue;
|
|
70
|
-
}
|
|
71
|
-
const args = splitTopLevel(decorator.slice(openParenIndex + 1, closeParenIndex));
|
|
72
|
-
if (args.length < 2 || stripQuotes(args[0].trim()) !== 'design:paramtypes') {
|
|
73
|
-
continue;
|
|
74
|
-
}
|
|
75
|
-
const paramArray = args[1].trim();
|
|
76
|
-
if (!paramArray.startsWith('[') || !paramArray.endsWith(']')) {
|
|
77
|
-
continue;
|
|
78
|
-
}
|
|
79
|
-
return splitTopLevel(paramArray.slice(1, -1));
|
|
80
|
-
}
|
|
81
|
-
return null;
|
|
82
|
-
}
|
|
83
|
-
function isAngularClassDecorator(decorator) {
|
|
84
|
-
return /(?:^|\W)(?:Injectable|Component|Directive|Pipe|NgModule)(?:\$\d+)?\s*\(/.test(decorator);
|
|
85
|
-
}
|
|
86
|
-
function stripQuotes(value) {
|
|
87
|
-
if ((value.startsWith('"') && value.endsWith('"')) || (value.startsWith("'") && value.endsWith("'"))) {
|
|
88
|
-
return value.slice(1, -1);
|
|
89
|
-
}
|
|
90
|
-
return value;
|
|
91
|
-
}
|
|
92
|
-
function findStatementEnd(source, startIndex) {
|
|
1
|
+
// Comment- and string-aware lexing helpers shared by the Angular source
|
|
2
|
+
// rewriters. They operate on raw source (not an AST) so they can run on the
|
|
3
|
+
// partially-transformed output the linker/decorator passes produce.
|
|
4
|
+
export function findStatementEnd(source, startIndex) {
|
|
93
5
|
let index = startIndex;
|
|
94
6
|
while (index < source.length && /\s/.test(source[index])) {
|
|
95
7
|
index++;
|
|
@@ -99,7 +11,16 @@ function findStatementEnd(source, startIndex) {
|
|
|
99
11
|
}
|
|
100
12
|
return startIndex;
|
|
101
13
|
}
|
|
102
|
-
function
|
|
14
|
+
export function stripQuotes(value) {
|
|
15
|
+
if ((value.startsWith('"') && value.endsWith('"')) || (value.startsWith("'") && value.endsWith("'")) || (value.startsWith('`') && value.endsWith('`'))) {
|
|
16
|
+
return value.slice(1, -1);
|
|
17
|
+
}
|
|
18
|
+
return value;
|
|
19
|
+
}
|
|
20
|
+
// Returns the index of the delimiter that closes the one at `openIndex`,
|
|
21
|
+
// skipping over strings, template literals, and comments. Returns -1 when the
|
|
22
|
+
// open char is missing or unbalanced.
|
|
23
|
+
export function findMatchingDelimiter(source, openIndex, openChar, closeChar) {
|
|
103
24
|
if (openIndex < 0 || source[openIndex] !== openChar) {
|
|
104
25
|
return -1;
|
|
105
26
|
}
|
|
@@ -164,7 +85,9 @@ function findMatchingDelimiter(source, openIndex, openChar, closeChar) {
|
|
|
164
85
|
}
|
|
165
86
|
return -1;
|
|
166
87
|
}
|
|
167
|
-
|
|
88
|
+
// Splits a comma-separated list at top level only, ignoring commas nested in
|
|
89
|
+
// parentheses, brackets, braces, strings, or comments.
|
|
90
|
+
export function splitTopLevel(source) {
|
|
168
91
|
const parts = [];
|
|
169
92
|
let start = 0;
|
|
170
93
|
let parenDepth = 0;
|
|
@@ -243,7 +166,10 @@ function splitTopLevel(source) {
|
|
|
243
166
|
continue;
|
|
244
167
|
}
|
|
245
168
|
if (char === ',' && parenDepth === 0 && bracketDepth === 0 && braceDepth === 0) {
|
|
246
|
-
|
|
169
|
+
const part = source.slice(start, index).trim();
|
|
170
|
+
if (part) {
|
|
171
|
+
parts.push(part);
|
|
172
|
+
}
|
|
247
173
|
start = index + 1;
|
|
248
174
|
}
|
|
249
175
|
}
|
|
@@ -253,4 +179,4 @@ function splitTopLevel(source) {
|
|
|
253
179
|
}
|
|
254
180
|
return parts;
|
|
255
181
|
}
|
|
256
|
-
//# sourceMappingURL=
|
|
182
|
+
//# sourceMappingURL=js-lexer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"js-lexer.js","sourceRoot":"","sources":["../../../../../../../packages/vite/hmr/frameworks/angular/build/js-lexer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
type BabelCore = typeof import('@babel/core');
|
|
2
|
+
type LinkerFactory = (options?: Record<string, unknown>) => any;
|
|
3
|
+
/**
|
|
4
|
+
* Resolve the Angular NodeJSFileSystem from the project or fallback locations.
|
|
5
|
+
* Angular 21+ requires a `fileSystem` option for the linker plugin — without it
|
|
6
|
+
* the Babel transform throws "Cannot read properties of undefined (reading 'resolve')".
|
|
7
|
+
*/
|
|
8
|
+
export declare function resolveAngularFileSystem(projectRoot?: string): Promise<any>;
|
|
9
|
+
/**
|
|
10
|
+
* Load `@babel/core` + the Angular linker factory (cached on success, retried
|
|
11
|
+
* until both resolve). Returns nulls when the toolchain isn't installed so
|
|
12
|
+
* callers can soft-skip.
|
|
13
|
+
*/
|
|
14
|
+
export declare function getAngularLinkerFactory(projectRoot?: string): Promise<{
|
|
15
|
+
babel: BabelCore | null;
|
|
16
|
+
createLinker: LinkerFactory | null;
|
|
17
|
+
}>;
|
|
18
|
+
/**
|
|
19
|
+
* Babel + a single shared linker plugin instance (cached). Most callers reuse
|
|
20
|
+
* this; chunk-level linkers that need fresh per-call state should instead use
|
|
21
|
+
* `runAngularLinker(code, { freshPlugin: true })`.
|
|
22
|
+
*/
|
|
23
|
+
export declare function ensureSharedAngularLinker(projectRoot?: string): Promise<{
|
|
24
|
+
babel: BabelCore | null;
|
|
25
|
+
linkerPlugin: any;
|
|
26
|
+
}>;
|
|
27
|
+
export interface RunAngularLinkerOptions {
|
|
28
|
+
filename: string;
|
|
29
|
+
projectRoot?: string;
|
|
30
|
+
/** Create a new plugin instance instead of reusing the shared one (chunk linkers avoid stale watch-mode state). */
|
|
31
|
+
freshPlugin?: boolean;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Run the Angular Babel linker over `code` (rewrites ɵɵngDeclare* partials to
|
|
35
|
+
* ɵɵdefine*). Returns the linked code, or null when the toolchain is
|
|
36
|
+
* unavailable or the code was left unchanged.
|
|
37
|
+
*/
|
|
38
|
+
export declare function runAngularLinker(code: string, opts: RunAngularLinkerOptions): Promise<string | null>;
|
|
39
|
+
export {};
|