@nativescript/vite 8.0.0-alpha.2 → 8.0.0-alpha.20

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.
Files changed (209) hide show
  1. package/configuration/angular.d.ts +34 -1
  2. package/configuration/angular.js +380 -34
  3. package/configuration/angular.js.map +1 -1
  4. package/configuration/base.js +171 -7
  5. package/configuration/base.js.map +1 -1
  6. package/configuration/solid.js +27 -1
  7. package/configuration/solid.js.map +1 -1
  8. package/configuration/typescript.js +1 -1
  9. package/configuration/typescript.js.map +1 -1
  10. package/helpers/angular/angular-linker.js +3 -12
  11. package/helpers/angular/angular-linker.js.map +1 -1
  12. package/helpers/angular/inject-component-hmr-registration.d.ts +112 -0
  13. package/helpers/angular/inject-component-hmr-registration.js +359 -0
  14. package/helpers/angular/inject-component-hmr-registration.js.map +1 -0
  15. package/helpers/angular/inject-hmr-vite-ignore.d.ts +75 -0
  16. package/helpers/angular/inject-hmr-vite-ignore.js +288 -0
  17. package/helpers/angular/inject-hmr-vite-ignore.js.map +1 -0
  18. package/helpers/angular/util.d.ts +1 -0
  19. package/helpers/angular/util.js +88 -0
  20. package/helpers/angular/util.js.map +1 -1
  21. package/helpers/commonjs-plugins.d.ts +5 -2
  22. package/helpers/commonjs-plugins.js +126 -0
  23. package/helpers/commonjs-plugins.js.map +1 -1
  24. package/helpers/config-as-json.js +10 -0
  25. package/helpers/config-as-json.js.map +1 -1
  26. package/helpers/dev-host.d.ts +274 -0
  27. package/helpers/dev-host.js +491 -0
  28. package/helpers/dev-host.js.map +1 -0
  29. package/helpers/global-defines.d.ts +51 -0
  30. package/helpers/global-defines.js +77 -0
  31. package/helpers/global-defines.js.map +1 -1
  32. package/helpers/logging.d.ts +1 -0
  33. package/helpers/logging.js +63 -3
  34. package/helpers/logging.js.map +1 -1
  35. package/helpers/main-entry.d.ts +3 -1
  36. package/helpers/main-entry.js +450 -125
  37. package/helpers/main-entry.js.map +1 -1
  38. package/helpers/nativeclass-transformer-plugin.d.ts +9 -2
  39. package/helpers/nativeclass-transformer-plugin.js +157 -14
  40. package/helpers/nativeclass-transformer-plugin.js.map +1 -1
  41. package/helpers/ns-core-url.d.ts +88 -0
  42. package/helpers/ns-core-url.js +191 -0
  43. package/helpers/ns-core-url.js.map +1 -0
  44. package/helpers/prelink-angular.js +1 -4
  45. package/helpers/prelink-angular.js.map +1 -1
  46. package/helpers/project.d.ts +35 -0
  47. package/helpers/project.js +120 -2
  48. package/helpers/project.js.map +1 -1
  49. package/helpers/resolver.js +9 -1
  50. package/helpers/resolver.js.map +1 -1
  51. package/helpers/solid-jsx-deps.d.ts +15 -0
  52. package/helpers/solid-jsx-deps.js +178 -0
  53. package/helpers/solid-jsx-deps.js.map +1 -0
  54. package/helpers/ts-config-paths.js +50 -2
  55. package/helpers/ts-config-paths.js.map +1 -1
  56. package/helpers/workers.d.ts +20 -19
  57. package/helpers/workers.js +620 -3
  58. package/helpers/workers.js.map +1 -1
  59. package/hmr/client/css-handler.d.ts +1 -0
  60. package/hmr/client/css-handler.js +34 -5
  61. package/hmr/client/css-handler.js.map +1 -1
  62. package/hmr/client/css-update-overlay.d.ts +18 -0
  63. package/hmr/client/css-update-overlay.js +27 -0
  64. package/hmr/client/css-update-overlay.js.map +1 -0
  65. package/hmr/client/hmr-pending-overlay.d.ts +27 -0
  66. package/hmr/client/hmr-pending-overlay.js +50 -0
  67. package/hmr/client/hmr-pending-overlay.js.map +1 -0
  68. package/hmr/client/index.js +483 -33
  69. package/hmr/client/index.js.map +1 -1
  70. package/hmr/client/utils.d.ts +5 -0
  71. package/hmr/client/utils.js +283 -12
  72. package/hmr/client/utils.js.map +1 -1
  73. package/hmr/client/vue-sfc-update-overlay.d.ts +82 -0
  74. package/hmr/client/vue-sfc-update-overlay.js +133 -0
  75. package/hmr/client/vue-sfc-update-overlay.js.map +1 -0
  76. package/hmr/entry-runtime.d.ts +2 -1
  77. package/hmr/entry-runtime.js +253 -66
  78. package/hmr/entry-runtime.js.map +1 -1
  79. package/hmr/frameworks/angular/client/index.d.ts +3 -1
  80. package/hmr/frameworks/angular/client/index.js +802 -10
  81. package/hmr/frameworks/angular/client/index.js.map +1 -1
  82. package/hmr/frameworks/angular/server/linker.js +1 -4
  83. package/hmr/frameworks/angular/server/linker.js.map +1 -1
  84. package/hmr/frameworks/angular/server/strategy.js +30 -6
  85. package/hmr/frameworks/angular/server/strategy.js.map +1 -1
  86. package/hmr/frameworks/typescript/server/strategy.js +8 -2
  87. package/hmr/frameworks/typescript/server/strategy.js.map +1 -1
  88. package/hmr/frameworks/vue/client/index.js +18 -42
  89. package/hmr/frameworks/vue/client/index.js.map +1 -1
  90. package/hmr/helpers/ast-normalizer.js +52 -5
  91. package/hmr/helpers/ast-normalizer.js.map +1 -1
  92. package/hmr/helpers/cjs-named-exports.d.ts +23 -0
  93. package/hmr/helpers/cjs-named-exports.js +152 -0
  94. package/hmr/helpers/cjs-named-exports.js.map +1 -0
  95. package/hmr/helpers/package-exports.d.ts +16 -0
  96. package/hmr/helpers/package-exports.js +396 -0
  97. package/hmr/helpers/package-exports.js.map +1 -0
  98. package/hmr/server/constants.js +13 -4
  99. package/hmr/server/constants.js.map +1 -1
  100. package/hmr/server/core-sanitize.d.ts +93 -8
  101. package/hmr/server/core-sanitize.js +222 -49
  102. package/hmr/server/core-sanitize.js.map +1 -1
  103. package/hmr/server/import-map.js +80 -22
  104. package/hmr/server/import-map.js.map +1 -1
  105. package/hmr/server/index.d.ts +2 -1
  106. package/hmr/server/index.js.map +1 -1
  107. package/hmr/server/ns-core-cjs-shape.d.ts +204 -0
  108. package/hmr/server/ns-core-cjs-shape.js +271 -0
  109. package/hmr/server/ns-core-cjs-shape.js.map +1 -0
  110. package/hmr/server/ns-rt-bridge.d.ts +51 -0
  111. package/hmr/server/ns-rt-bridge.js +131 -0
  112. package/hmr/server/ns-rt-bridge.js.map +1 -0
  113. package/hmr/server/perf-instrumentation.d.ts +114 -0
  114. package/hmr/server/perf-instrumentation.js +195 -0
  115. package/hmr/server/perf-instrumentation.js.map +1 -0
  116. package/hmr/server/runtime-graph-filter.d.ts +5 -0
  117. package/hmr/server/runtime-graph-filter.js +21 -0
  118. package/hmr/server/runtime-graph-filter.js.map +1 -0
  119. package/hmr/server/shared-transform-request.d.ts +12 -0
  120. package/hmr/server/shared-transform-request.js +144 -0
  121. package/hmr/server/shared-transform-request.js.map +1 -0
  122. package/hmr/server/vite-plugin.d.ts +21 -1
  123. package/hmr/server/vite-plugin.js +497 -58
  124. package/hmr/server/vite-plugin.js.map +1 -1
  125. package/hmr/server/websocket-angular-entry.d.ts +2 -0
  126. package/hmr/server/websocket-angular-entry.js +68 -0
  127. package/hmr/server/websocket-angular-entry.js.map +1 -0
  128. package/hmr/server/websocket-angular-hot-update.d.ts +78 -0
  129. package/hmr/server/websocket-angular-hot-update.js +413 -0
  130. package/hmr/server/websocket-angular-hot-update.js.map +1 -0
  131. package/hmr/server/websocket-core-bridge.d.ts +58 -0
  132. package/hmr/server/websocket-core-bridge.js +368 -0
  133. package/hmr/server/websocket-core-bridge.js.map +1 -0
  134. package/hmr/server/websocket-css-hot-update.d.ts +33 -0
  135. package/hmr/server/websocket-css-hot-update.js +65 -0
  136. package/hmr/server/websocket-css-hot-update.js.map +1 -0
  137. package/hmr/server/websocket-graph-upsert.d.ts +21 -0
  138. package/hmr/server/websocket-graph-upsert.js +33 -0
  139. package/hmr/server/websocket-graph-upsert.js.map +1 -0
  140. package/hmr/server/websocket-hmr-pending.d.ts +43 -0
  141. package/hmr/server/websocket-hmr-pending.js +55 -0
  142. package/hmr/server/websocket-hmr-pending.js.map +1 -0
  143. package/hmr/server/websocket-module-bindings.d.ts +6 -0
  144. package/hmr/server/websocket-module-bindings.js +471 -0
  145. package/hmr/server/websocket-module-bindings.js.map +1 -0
  146. package/hmr/server/websocket-module-specifiers.d.ts +101 -0
  147. package/hmr/server/websocket-module-specifiers.js +820 -0
  148. package/hmr/server/websocket-module-specifiers.js.map +1 -0
  149. package/hmr/server/websocket-ns-m-finalize.d.ts +22 -0
  150. package/hmr/server/websocket-ns-m-finalize.js +88 -0
  151. package/hmr/server/websocket-ns-m-finalize.js.map +1 -0
  152. package/hmr/server/websocket-ns-m-paths.d.ts +3 -0
  153. package/hmr/server/websocket-ns-m-paths.js +92 -0
  154. package/hmr/server/websocket-ns-m-paths.js.map +1 -0
  155. package/hmr/server/websocket-ns-m-request.d.ts +45 -0
  156. package/hmr/server/websocket-ns-m-request.js +196 -0
  157. package/hmr/server/websocket-ns-m-request.js.map +1 -0
  158. package/hmr/server/websocket-served-module-helpers.d.ts +36 -0
  159. package/hmr/server/websocket-served-module-helpers.js +644 -0
  160. package/hmr/server/websocket-served-module-helpers.js.map +1 -0
  161. package/hmr/server/websocket-txn.d.ts +6 -0
  162. package/hmr/server/websocket-txn.js +45 -0
  163. package/hmr/server/websocket-txn.js.map +1 -0
  164. package/hmr/server/websocket-vendor-unifier.d.ts +10 -0
  165. package/hmr/server/websocket-vendor-unifier.js +51 -0
  166. package/hmr/server/websocket-vendor-unifier.js.map +1 -0
  167. package/hmr/server/websocket-vue-sfc.d.ts +26 -0
  168. package/hmr/server/websocket-vue-sfc.js +1053 -0
  169. package/hmr/server/websocket-vue-sfc.js.map +1 -0
  170. package/hmr/server/websocket.d.ts +58 -75
  171. package/hmr/server/websocket.js +2230 -1802
  172. package/hmr/server/websocket.js.map +1 -1
  173. package/hmr/shared/package-classifier.d.ts +9 -0
  174. package/hmr/shared/package-classifier.js +58 -0
  175. package/hmr/shared/package-classifier.js.map +1 -0
  176. package/hmr/shared/runtime/boot-placeholder-ui.d.ts +69 -0
  177. package/hmr/shared/runtime/boot-placeholder-ui.js +101 -0
  178. package/hmr/shared/runtime/boot-placeholder-ui.js.map +1 -0
  179. package/hmr/shared/runtime/boot-progress.d.ts +40 -0
  180. package/hmr/shared/runtime/boot-progress.js +128 -0
  181. package/hmr/shared/runtime/boot-progress.js.map +1 -0
  182. package/hmr/shared/runtime/boot-timeline.d.ts +18 -0
  183. package/hmr/shared/runtime/boot-timeline.js +52 -0
  184. package/hmr/shared/runtime/boot-timeline.js.map +1 -0
  185. package/hmr/shared/runtime/browser-runtime-contract.d.ts +64 -0
  186. package/hmr/shared/runtime/browser-runtime-contract.js +54 -0
  187. package/hmr/shared/runtime/browser-runtime-contract.js.map +1 -0
  188. package/hmr/shared/runtime/dev-overlay.d.ts +78 -3
  189. package/hmr/shared/runtime/dev-overlay.js +1094 -26
  190. package/hmr/shared/runtime/dev-overlay.js.map +1 -1
  191. package/hmr/shared/runtime/module-provenance.js +1 -4
  192. package/hmr/shared/runtime/module-provenance.js.map +1 -1
  193. package/hmr/shared/runtime/root-placeholder.d.ts +1 -0
  194. package/hmr/shared/runtime/root-placeholder.js +1019 -151
  195. package/hmr/shared/runtime/root-placeholder.js.map +1 -1
  196. package/hmr/shared/runtime/session-bootstrap.d.ts +1 -0
  197. package/hmr/shared/runtime/session-bootstrap.js +309 -0
  198. package/hmr/shared/runtime/session-bootstrap.js.map +1 -0
  199. package/hmr/shared/runtime/vendor-bootstrap.js +1 -9
  200. package/hmr/shared/runtime/vendor-bootstrap.js.map +1 -1
  201. package/hmr/shared/vendor/manifest.d.ts +32 -0
  202. package/hmr/shared/vendor/manifest.js +411 -46
  203. package/hmr/shared/vendor/manifest.js.map +1 -1
  204. package/index.d.ts +1 -0
  205. package/index.js +5 -0
  206. package/index.js.map +1 -1
  207. package/package.json +9 -1
  208. package/runtime/core-aliases-early.js +94 -67
  209. package/runtime/core-aliases-early.js.map +1 -1
@@ -8,8 +8,8 @@
8
8
  * "@nativescript/core/index.js";
9
9
  * This trips the sanitizer's local-core-path detector and breaks HTTP ESM loading.
10
10
  *
11
- * This helper safely maps those literals to:
12
- * import "/ns/core?p=index.js";
11
+ * This helper safely maps those literals to the canonical path form:
12
+ * import "/ns/core/<sub>"; // subpath form, no version, no ?p=
13
13
  * or, without subpath:
14
14
  * import "/ns/core";
15
15
  */
@@ -19,17 +19,96 @@ export declare function normalizeStrayCoreStringLiterals(code: string): string;
19
19
  * following side-effect import of the core bridge.
20
20
  *
21
21
  * Example:
22
- * import { A, B } from\nimport "/ns/core?p=index.js";
22
+ * import { A, B } from\nimport "/ns/core/index";
23
23
  * becomes
24
- * import { A, B } from "/ns/core?p=index.js";
24
+ * import { A, B } from "/ns/core/index";
25
25
  */
26
26
  export declare function fixDanglingCoreFrom(code: string): string;
27
+ /**
28
+ * Run the full "rescue any stray @nativescript/core references" pass over the
29
+ * code in one call. This is the canonical entry point for NS-M served modules
30
+ * (and any other consumer that wants the safety net). The three sub-passes
31
+ * cover progressively rarer pipeline accidents:
32
+ *
33
+ * 1. `normalizeStrayCoreStringLiterals` — turns naked `"@nativescript/core/foo";`
34
+ * string literals (produced by some upstream transforms that bare-stringify
35
+ * side-effect imports) back into proper `import "/ns/core/foo";`.
36
+ * 2. `fixDanglingCoreFrom` — merges multi-line accidents where a `from`
37
+ * clause got separated from its specifier across newlines.
38
+ * 3. `normalizeAnyCoreSpecToBridge` — final regex sweep that catches any
39
+ * remaining `from "...@nativescript/core[/sub]..."` references that escaped
40
+ * both the AST normalizer and the import rewriter.
41
+ *
42
+ * The three sub-passes used to be open-coded at three different call sites in
43
+ * `websocket.ts`/`websocket-ns-m-finalize.ts`. Centralising here ensures every
44
+ * NS-M emitter applies the SAME safety net in the SAME order — drift between
45
+ * those sites is the kind of thing that re-introduces the realm-split bug.
46
+ *
47
+ * Returns the (possibly) rewritten code; never throws.
48
+ */
49
+ export declare function sanitizeStrayCoreReferences(code: string): string;
27
50
  /**
28
51
  * Fallback: normalize ANY import spec that references '@nativescript/core' (including
29
52
  * absolute/relative or resolved forms like '/node_modules/@nativescript/core/index.js?v=...')
30
53
  * into the unified '/ns/core' bridge before fast-fail assertions.
31
54
  */
32
55
  export declare function normalizeAnyCoreSpecToBridge(code: string): string;
56
+ /**
57
+ * Description of the URL the bridge is currently serving, used to resolve
58
+ * relative import specifiers (`./x`, `../x`) into absolute `/ns/core/<sub>`
59
+ * URLs.
60
+ *
61
+ * Why this exists: Vite's `vite:import-analysis` pass usually rewrites every
62
+ * relative specifier to an absolute (`/@fs/...` or `/node_modules/...`) ID
63
+ * before code reaches us, but for files under `node_modules` some transform
64
+ * paths leave relatives untouched. When the device fetches such a module at
65
+ * `http://host/ns/core/utils/layout-helper` (no trailing slash, no `/index`)
66
+ * V8/iOS apply RFC 3986 URL resolution and treat `layout-helper` as the
67
+ * *file*, so `./layout-helper-common` becomes
68
+ * `http://host/ns/core/utils/layout-helper-common` — a sibling that does not
69
+ * exist (the real file lives at `…/layout-helper/layout-helper-common`).
70
+ *
71
+ * Passing a `RelativeBase` lets `rewriteSpec` resolve these specifiers
72
+ * server-side and emit canonical absolute `/ns/core/<resolved>` URLs, so the
73
+ * device never has to guess. When omitted, `rewriteSpec` falls back to the
74
+ * pre-existing behaviour of leaving relatives alone.
75
+ */
76
+ export type RelativeBase = {
77
+ /**
78
+ * Sub-path of the served module, without the leading `/ns/core/`. May be
79
+ * the empty string for the package main (`/ns/core` itself).
80
+ */
81
+ sub: string;
82
+ /**
83
+ * `true` when the served file is a directory-index (e.g.
84
+ * `…/utils/layout-helper/index.android.ts`); in that case `sub` already
85
+ * names the *directory*, and `./x` resolves to `<sub>/x`.
86
+ *
87
+ * `false` for plain file modules (e.g. `…/utils/native-helper.ts`); the
88
+ * resolution base is the parent directory of `sub`, so `./x` resolves to
89
+ * `<sub-parent>/x`.
90
+ */
91
+ isDirectoryIndex: boolean;
92
+ };
93
+ /**
94
+ * Detect whether a resolved module path is a directory-index file. Matches
95
+ * `index.<platform?>.<ext>` shapes used across @nativescript/core (e.g.
96
+ * `index.js`, `index.android.ts`, `index.ios.mjs`).
97
+ */
98
+ export declare function isDirectoryIndexFilename(modulePath: string): boolean;
99
+ /**
100
+ * Resolve a relative specifier (`./x`, `../x`) into a canonical
101
+ * @nativescript/core sub-path, given the base described by `relBase`.
102
+ *
103
+ * `…/index.<platform>.<ext>` files mean `sub` IS the directory (so `./x` →
104
+ * `<sub>/x`); plain files mean the resolution base is `sub`'s parent.
105
+ *
106
+ * Returned sub-path is sanitised by `buildCoreUrlPath`'s convention: trailing
107
+ * `.(m)?(j|t)s` extensions are stripped so callers can directly emit
108
+ * `/ns/core/<resolved>` without producing a non-canonical URL that the
109
+ * bridge would 301-redirect later.
110
+ */
111
+ export declare function resolveRelativeCoreSub(spec: string, relBase: RelativeBase): string | null;
33
112
  /**
34
113
  * Minimal specifier rewriter for deep subpath core modules.
35
114
  *
@@ -43,14 +122,20 @@ export declare function normalizeAnyCoreSpecToBridge(code: string): string;
43
122
  * This replaces the heavy 5-pass pipeline (processCodeForDevice →
44
123
  * rewriteImports → deduplicateLinkerImports → CJS wrapping → etc.)
45
124
  * for deep subpath core modules where Vite already produces correct ESM.
125
+ *
126
+ * When `relBase` is supplied, relative specifiers (`./x`, `../x`) are
127
+ * resolved server-side into canonical `/ns/core/<resolved>` URLs so the
128
+ * device never has to guess where a directory-index file's siblings live.
129
+ * See `RelativeBase` and `rewriteSpec` for the full rationale.
46
130
  */
47
- export declare function rewriteSpecifiersForDevice(code: string, origin: string, ver: number): string;
131
+ export declare function rewriteSpecifiersForDevice(code: string, origin: string, ver: number, relBase?: RelativeBase): string;
48
132
  /**
49
133
  * Determine whether a `/ns/core` bridge URL points to a real subpath module.
50
134
  *
51
- * Any `/ns/core?p=...` module now serves real ESM content with real named
52
- * exports via Vite's transform pipeline, including shallow paths like
53
- * `/ns/core?p=index.js` and `/ns/core?p=utils`.
135
+ * Any `/ns/core/<sub>` module now serves real ESM content with real named
136
+ * exports via Vite's transform pipeline, except for package-main aliases like
137
+ * `/ns/core/index`, which should be treated like the main `/ns/core`
138
+ * bridge and destructured from its default export.
54
139
  * The main proxy bridge (`/ns/core`) still only exports a default Proxy and
55
140
  * requires named imports to be destructured from it.
56
141
  *
@@ -1,3 +1,4 @@
1
+ import { buildCoreUrlPath } from '../../helpers/ns-core-url.js';
1
2
  /**
2
3
  * Rewrites stray string-literal side-effect lines that reference @nativescript/core
3
4
  * into proper ESM import statements targeting the unified /ns/core bridge.
@@ -8,8 +9,8 @@
8
9
  * "@nativescript/core/index.js";
9
10
  * This trips the sanitizer's local-core-path detector and breaks HTTP ESM loading.
10
11
  *
11
- * This helper safely maps those literals to:
12
- * import "/ns/core?p=index.js";
12
+ * This helper safely maps those literals to the canonical path form:
13
+ * import "/ns/core/<sub>"; // subpath form, no version, no ?p=
13
14
  * or, without subpath:
14
15
  * import "/ns/core";
15
16
  */
@@ -18,26 +19,21 @@ export function normalizeStrayCoreStringLiterals(code) {
18
19
  return code;
19
20
  try {
20
21
  let out = code;
22
+ const toCoreBridgeUrl = (sub) => buildCoreUrlPath(sub);
21
23
  // Normalize any concatenated imports on the same line to start on a new line
22
24
  // e.g. `...;import x from` -> `...;\nimport x from`
23
25
  out = out.replace(/;\s*import\s+/g, ';\nimport ');
24
26
  // Case 1: inline literal followed by another import on SAME line
25
27
  // Example: "@nativescript/core/index.js";import { x } from "...";
26
28
  out = out.replace(/(["']@nativescript\/core([^"']*)["'];)(\s*import\s+)/g, (_m, _lit, sub, after) => {
27
- const qp = String(sub || '')
28
- .trim()
29
- .replace(/^\//, '');
30
- const url = qp ? `/ns/core?p=${qp}` : '/ns/core';
29
+ const url = toCoreBridgeUrl(sub);
31
30
  return `import "${url}";${after}`;
32
31
  });
33
32
  // Case 2: standalone literal on its own line (not a JSON key) — must be end-of-line
34
33
  // Guard with EOL so we don't rewrite JSON keys like "@nativescript/core": "alpha"
35
34
  const reLine = /(^|\n)([\t ]*)["']@nativescript\/core([^"']*)["']\s*;?\s*(?=$|\n)/g;
36
35
  out = out.replace(reLine, (_full, prefix, indent, sub) => {
37
- const qp = String(sub || '')
38
- .trim()
39
- .replace(/^\//, '');
40
- const url = qp ? `/ns/core?p=${qp}` : '/ns/core';
36
+ const url = toCoreBridgeUrl(sub);
41
37
  return `${prefix}${indent}import "${url}";`;
42
38
  });
43
39
  return out;
@@ -51,19 +47,18 @@ export function normalizeStrayCoreStringLiterals(code) {
51
47
  * following side-effect import of the core bridge.
52
48
  *
53
49
  * Example:
54
- * import { A, B } from\nimport "/ns/core?p=index.js";
50
+ * import { A, B } from\nimport "/ns/core/index";
55
51
  * becomes
56
- * import { A, B } from "/ns/core?p=index.js";
52
+ * import { A, B } from "/ns/core/index";
57
53
  */
58
54
  export function fixDanglingCoreFrom(code) {
59
55
  if (!code || typeof code !== 'string')
60
56
  return code;
61
57
  try {
62
- // Also normalize any concatenated imports before processing
63
58
  code = code.replace(/;\s*import\s+/g, ';\nimport ');
64
59
  // Multi-line form: import { ...\n ...\n} from\nimport "<core-url>";[tail]
65
60
  // Merge into: import { ... } from "<core-url>";\n[tail]
66
- code = code.replace(/(^|\n|;)\s*import\s*\{([\s\S]*?)\}\s*from\s*\n\s*import\s+["']((?:https?:\/\/[^"']+)?\/ns\/core(?:\/\d+)?(?:\?p=[^"']+)?)["'];?(.*)/g, (_m, pre, named, url, tail) => {
61
+ code = code.replace(/(^|\n|;)\s*import\s*\{([\s\S]*?)\}\s*from\s*\n\s*import\s+["']((?:https?:\/\/[^"']+)?\/ns\/core(?:\/[^"']*)?)["'];?(.*)/g, (_m, pre, named, url, tail) => {
67
62
  const prefix = pre ? (String(pre).endsWith(';') ? String(pre) + '\n' : String(pre)) : '';
68
63
  const tailNorm = (tail || '').replace(/^\s*;?\s*/, '').trim();
69
64
  return prefix + `import {${named}} from "${url}";` + (tailNorm ? `\n${tailNorm}` : '');
@@ -75,19 +70,16 @@ export function fixDanglingCoreFrom(code) {
75
70
  const m = /^\s*import\s*\{[^}]+\}\s*from\s*$/.exec(ln);
76
71
  if (m && i + 1 < lines.length) {
77
72
  const next = lines[i + 1];
78
- // Support when the next line starts with the core import followed by another ';import ...'
79
- // Capture the core import URL and any trailing content after it (another import concatenated)
80
- const m2 = /^\s*import\s+["']((?:https?:\/\/[^"']+)?\/ns\/core(?:\/\d+)?(?:\?p=[^"']+)?)["'];?(.*)$/.exec(next);
73
+ const m2 = /^\s*import\s+["']((?:https?:\/\/[^"']+)?\/ns\/core(?:\/[^"']*)?)["'];?(.*)$/.exec(next);
81
74
  if (m2) {
82
75
  const url = m2[1];
83
76
  const tail = m2[2] || '';
84
77
  out.push(ln + ' ' + `"${url}";`);
85
- // If there is a tail like ';import { ... } from "..."', normalize it onto a new line
86
78
  const tailNorm = tail.replace(/^\s*;?\s*/, '');
87
79
  if (tailNorm.trim().length > 0) {
88
80
  out.push(tailNorm);
89
81
  }
90
- i++; // consume the next line
82
+ i++;
91
83
  continue;
92
84
  }
93
85
  }
@@ -99,6 +91,46 @@ export function fixDanglingCoreFrom(code) {
99
91
  return code;
100
92
  }
101
93
  }
94
+ /**
95
+ * Run the full "rescue any stray @nativescript/core references" pass over the
96
+ * code in one call. This is the canonical entry point for NS-M served modules
97
+ * (and any other consumer that wants the safety net). The three sub-passes
98
+ * cover progressively rarer pipeline accidents:
99
+ *
100
+ * 1. `normalizeStrayCoreStringLiterals` — turns naked `"@nativescript/core/foo";`
101
+ * string literals (produced by some upstream transforms that bare-stringify
102
+ * side-effect imports) back into proper `import "/ns/core/foo";`.
103
+ * 2. `fixDanglingCoreFrom` — merges multi-line accidents where a `from`
104
+ * clause got separated from its specifier across newlines.
105
+ * 3. `normalizeAnyCoreSpecToBridge` — final regex sweep that catches any
106
+ * remaining `from "...@nativescript/core[/sub]..."` references that escaped
107
+ * both the AST normalizer and the import rewriter.
108
+ *
109
+ * The three sub-passes used to be open-coded at three different call sites in
110
+ * `websocket.ts`/`websocket-ns-m-finalize.ts`. Centralising here ensures every
111
+ * NS-M emitter applies the SAME safety net in the SAME order — drift between
112
+ * those sites is the kind of thing that re-introduces the realm-split bug.
113
+ *
114
+ * Returns the (possibly) rewritten code; never throws.
115
+ */
116
+ export function sanitizeStrayCoreReferences(code) {
117
+ if (!code || typeof code !== 'string')
118
+ return code;
119
+ let out = code;
120
+ try {
121
+ out = normalizeStrayCoreStringLiterals(out);
122
+ }
123
+ catch { }
124
+ try {
125
+ out = fixDanglingCoreFrom(out);
126
+ }
127
+ catch { }
128
+ try {
129
+ out = normalizeAnyCoreSpecToBridge(out);
130
+ }
131
+ catch { }
132
+ return out;
133
+ }
102
134
  /**
103
135
  * Fallback: normalize ANY import spec that references '@nativescript/core' (including
104
136
  * absolute/relative or resolved forms like '/node_modules/@nativescript/core/index.js?v=...')
@@ -109,56 +141,169 @@ export function normalizeAnyCoreSpecToBridge(code) {
109
141
  return code;
110
142
  try {
111
143
  let out = code;
112
- const toQp = (sub) => {
113
- const s = String(sub || '')
114
- .split('?')[0]
115
- .trim()
116
- .replace(/^\//, '');
117
- return s ? `?p=${s}` : '';
118
- };
144
+ const toCoreBridgeUrl = (sub) => buildCoreUrlPath(sub);
119
145
  // Static: import ... from "...@nativescript/core[/sub]..."
120
- out = out.replace(/from\s+["'][^"']*@nativescript[\/_-]core([^"']*)["']/g, (_m, sub) => `from "/ns/core${toQp(sub)}"`);
146
+ out = out.replace(/from\s+["'][^"']*@nativescript[\/_-]core([^"']*)["']/g, (_m, sub) => `from "${toCoreBridgeUrl(sub)}"`);
121
147
  // Side-effect: import "...@nativescript/core[/sub]..."
122
- out = out.replace(/(^|\n)\s*import\s+["'][^"']*@nativescript[\/_-]core([^"']*)["'];?/gm, (full, pfx, sub) => `${pfx}import "/ns/core${toQp(sub)}";`);
148
+ out = out.replace(/(^|\n)\s*import\s+["'][^"']*@nativescript[\/_-]core([^"']*)["'];?/gm, (full, pfx, sub) => `${pfx}import "${toCoreBridgeUrl(sub)}";`);
123
149
  // Dynamic: import("...@nativescript/core[/sub]...")
124
- out = out.replace(/import\(\s*["'][^"']*@nativescript[\/_-]core([^"']*)["']\s*\)/g, (_m, sub) => `import("/ns/core${toQp(sub)}")`);
125
- // Repair glitch where a previous pass split/merged lines into: "from import '/ns/core...'"
126
- // Normalize to a valid specifier: "from '/ns/core...'"
127
- out = out.replace(/from\s+import\s+["']((?:https?:\/\/[^"']+)?\/ns\/core(?:\/[0-9]+)?(?:\?p=[^"']+)?)['"]/g, (_m, url) => `from "${url}"`);
150
+ out = out.replace(/import\(\s*["'][^"']*@nativescript[\/_-]core([^"']*)["']\s*\)/g, (_m, sub) => `import("${toCoreBridgeUrl(sub)}")`);
151
+ // Repair glitch where a previous pass split/merged lines into:
152
+ // "from import '/ns/core...'". Normalize to a valid specifier:
153
+ // "from '/ns/core...'".
154
+ out = out.replace(/from\s+import\s+["']((?:https?:\/\/[^"']+)?\/ns\/core(?:\/[^"']*)?)['"]/g, (_m, url) => `from "${url}"`);
128
155
  return out;
129
156
  }
130
157
  catch {
131
158
  return code;
132
159
  }
133
160
  }
161
+ /**
162
+ * Detect whether a resolved module path is a directory-index file. Matches
163
+ * `index.<platform?>.<ext>` shapes used across @nativescript/core (e.g.
164
+ * `index.js`, `index.android.ts`, `index.ios.mjs`).
165
+ */
166
+ export function isDirectoryIndexFilename(modulePath) {
167
+ if (!modulePath || typeof modulePath !== 'string')
168
+ return false;
169
+ const cleaned = modulePath.split(/[?#]/)[0];
170
+ const base = cleaned.replace(/\\/g, '/').split('/').pop() || '';
171
+ return /^index(?:\.(?:android|ios|visionos))?\.(?:m?[jt]s)$/i.test(base);
172
+ }
173
+ /**
174
+ * Resolve a relative specifier (`./x`, `../x`) into a canonical
175
+ * @nativescript/core sub-path, given the base described by `relBase`.
176
+ *
177
+ * `…/index.<platform>.<ext>` files mean `sub` IS the directory (so `./x` →
178
+ * `<sub>/x`); plain files mean the resolution base is `sub`'s parent.
179
+ *
180
+ * Returned sub-path is sanitised by `buildCoreUrlPath`'s convention: trailing
181
+ * `.(m)?(j|t)s` extensions are stripped so callers can directly emit
182
+ * `/ns/core/<resolved>` without producing a non-canonical URL that the
183
+ * bridge would 301-redirect later.
184
+ */
185
+ export function resolveRelativeCoreSub(spec, relBase) {
186
+ if (!spec || (!spec.startsWith('./') && !spec.startsWith('../')))
187
+ return null;
188
+ const cleanSpec = spec.split(/[?#]/)[0];
189
+ const stripExt = (s) => s.replace(/\.(?:m?[jt]s)$/i, '');
190
+ const splitSeg = (s) => s.split('/').filter((p) => p.length > 0);
191
+ const baseSub = String(relBase?.sub || '').replace(/^\/+|\/+$/g, '');
192
+ const dirParts = relBase?.isDirectoryIndex ? splitSeg(baseSub) : splitSeg(baseSub).slice(0, -1);
193
+ const relParts = cleanSpec.split('/');
194
+ for (const part of relParts) {
195
+ if (part === '' || part === '.')
196
+ continue;
197
+ if (part === '..') {
198
+ if (dirParts.length === 0)
199
+ return null;
200
+ dirParts.pop();
201
+ continue;
202
+ }
203
+ dirParts.push(part);
204
+ }
205
+ const joined = dirParts.join('/');
206
+ return stripExt(joined);
207
+ }
134
208
  /**
135
209
  * Rewrite a single import/export specifier for device consumption.
136
210
  *
137
211
  * Converts Vite-resolved root-relative paths to URLs the device can fetch:
138
- * /node_modules/@nativescript/core/x/y → /ns/core/{ver}?p=x/y
212
+ * /node_modules/@nativescript/core/x/y → /ns/core/x/y (canonical)
139
213
  * /node_modules/other-pkg/x.js → {origin}/ns/m/node_modules/other-pkg/x.js
140
214
  * /src/app/foo.ts → {origin}/ns/m/src/app/foo.ts
141
215
  * already /ns/... or http://... → unchanged
216
+ *
217
+ * When `relBase` is supplied AND `spec` is a relative path (`./x` or `../x`),
218
+ * the relative specifier is resolved to an absolute `/ns/core/<resolved>`
219
+ * URL using `resolveRelativeCoreSub`. Without `relBase`, relatives are
220
+ * returned unchanged (legacy behaviour for non-core call sites).
142
221
  */
143
- function rewriteSpec(spec, origin, ver) {
222
+ function rewriteSpec(spec, origin, ver, relBase) {
223
+ void ver;
144
224
  // Strip Vite cache-busting query params for bridge URLs
145
225
  const cleanSpec = spec.split('?')[0];
146
- // @nativescript/core anywhere in the path → core bridge
226
+ // @nativescript/core anywhere in the path → core bridge.
227
+ // Delegated to the ONE canonical URL generator to guarantee that
228
+ // every emitter — this function, the ns-core-external-urls plugin,
229
+ // main-entry's coreSpec, and the runtime import map — produces
230
+ // byte-identical URLs for the same logical module. Mixed forms
231
+ // (query `?p=`, versioned, `.js` suffix) would otherwise produce
232
+ // distinct iOS HTTP ESM cache entries for the same file,
233
+ // re-evaluating register() side effects and crashing on "Cannot
234
+ // redefine property".
147
235
  const coreIdx = cleanSpec.indexOf('@nativescript/core');
148
236
  if (coreIdx !== -1) {
149
237
  const after = cleanSpec.substring(coreIdx + '@nativescript/core'.length);
150
- const sub = after.replace(/^\//, '').trim();
151
- return sub ? `/ns/core/${ver}?p=${sub}` : `/ns/core/${ver}`;
238
+ return buildCoreUrlPath(after);
239
+ }
240
+ // Already-canonicalised bridge URLs deserve a second look — a
241
+ // `/ns/core/<sub>` URL with a stale platform suffix (`.ios`),
242
+ // trailing `/index`, or `.js` extension would survive this pass
243
+ // but be 301-redirected by the bridge handler at runtime, costing
244
+ // an extra round-trip and risking double-evaluation if iOS caches
245
+ // both spellings. Run any `/ns/core/...` (or full-origin variant)
246
+ // back through `buildCoreUrlPath` so the rewriter is the
247
+ // single point that produces canonical core URLs for the device.
248
+ const coreBridgePathOnly = cleanSpec.match(/^\/ns\/core(?:\/[^?#]*)?$/);
249
+ if (coreBridgePathOnly) {
250
+ const sub = cleanSpec.replace(/^\/ns\/core\/?/, '');
251
+ return buildCoreUrlPath(sub);
252
+ }
253
+ const coreBridgeWithOrigin = cleanSpec.match(/^https?:\/\/[^/]+\/ns\/core(?:\/[^?#]*)?$/);
254
+ if (coreBridgeWithOrigin) {
255
+ const sub = cleanSpec.replace(/^https?:\/\/[^/]+\/ns\/core\/?/, '');
256
+ const canonicalPath = buildCoreUrlPath(sub);
257
+ const originPrefix = cleanSpec.replace(/\/ns\/core(?:\/.*)?$/, '');
258
+ return `${originPrefix}${canonicalPath}`;
152
259
  }
153
260
  // Already a bridge, vendor, or HTTP URL → leave unchanged
154
261
  if (spec.startsWith('/ns/') || spec.startsWith('http://') || spec.startsWith('https://') || spec.startsWith('ns-vendor://')) {
155
262
  return spec;
156
263
  }
264
+ // Relative specifiers (`./x`, `../x`).
265
+ //
266
+ // Vite's import-analysis usually rewrites these to absolute IDs, but
267
+ // for files under `node_modules` it sometimes leaves them in place.
268
+ // When that happens AND the served URL has no trailing slash AND is
269
+ // itself a directory-index file (e.g. `…/layout-helper/index.android.ts`
270
+ // served at `/ns/core/utils/layout-helper`), V8's URL resolver treats
271
+ // `layout-helper` as the file and points `./layout-helper-common` at the
272
+ // non-existent sibling `/ns/core/utils/layout-helper-common`. Vite then
273
+ // 500s with "Failed to load url … Does the file exist?" and the
274
+ // dependent module never finishes evaluating.
275
+ //
276
+ // When `relBase` is supplied we resolve the specifier server-side and
277
+ // emit a canonical absolute `/ns/core/<resolved>` URL so the device
278
+ // cannot guess wrong. Falling back to the unchanged relative path
279
+ // preserves legacy behaviour for callers that don't (yet) thread
280
+ // `relBase` through.
281
+ if (spec.startsWith('./') || spec.startsWith('../')) {
282
+ if (relBase) {
283
+ const resolvedSub = resolveRelativeCoreSub(spec, relBase);
284
+ if (resolvedSub !== null) {
285
+ return buildCoreUrlPath(resolvedSub);
286
+ }
287
+ }
288
+ return spec;
289
+ }
157
290
  // Root-relative paths → HTTP URL through /ns/m/ handler
158
291
  if (spec.startsWith('/')) {
159
292
  return `${origin}/ns/m${spec}`;
160
293
  }
161
- return spec;
294
+ // Bare package specifier (e.g. `source-map-js/lib/source-map-generator.js`)
295
+ // → HTTP URL through /ns/m/node_modules/ handler. Under HMR bundle-build,
296
+ // @nativescript/core subpath modules served by this bridge (e.g.
297
+ // /ns/core?p=inspector_modules) may reference other npm packages with bare
298
+ // specifiers in their transformed output — specifically, the CommonJS
299
+ // compat transformer for source-map-js rewrites `require('./lib/source-
300
+ // map-generator')` into `import from 'source-map-js/lib/source-map-
301
+ // generator.js'`, a bare specifier that iOS's ESM loader cannot resolve at
302
+ // module-instantiation time (the runtime import map isn't installed yet).
303
+ // Converting to /ns/m/node_modules/<spec> makes iOS fetch the package over
304
+ // HTTP, which Vite serves through the same pipeline that already handles
305
+ // every other node_modules subpath import in the app.
306
+ return `${origin}/ns/m/node_modules/${spec}`;
162
307
  }
163
308
  /**
164
309
  * Minimal specifier rewriter for deep subpath core modules.
@@ -173,8 +318,13 @@ function rewriteSpec(spec, origin, ver) {
173
318
  * This replaces the heavy 5-pass pipeline (processCodeForDevice →
174
319
  * rewriteImports → deduplicateLinkerImports → CJS wrapping → etc.)
175
320
  * for deep subpath core modules where Vite already produces correct ESM.
321
+ *
322
+ * When `relBase` is supplied, relative specifiers (`./x`, `../x`) are
323
+ * resolved server-side into canonical `/ns/core/<resolved>` URLs so the
324
+ * device never has to guess where a directory-index file's siblings live.
325
+ * See `RelativeBase` and `rewriteSpec` for the full rationale.
176
326
  */
177
- export function rewriteSpecifiersForDevice(code, origin, ver) {
327
+ export function rewriteSpecifiersForDevice(code, origin, ver, relBase) {
178
328
  if (!code)
179
329
  return code;
180
330
  let result = code;
@@ -184,29 +334,44 @@ export function rewriteSpecifiersForDevice(code, origin, ver) {
184
334
  // import * as X from "spec"
185
335
  // export { X } from "spec"
186
336
  // export * from "spec"
187
- result = result.replace(/(from\s*)(["'])([^"']+)\2/g, (_m, pre, q, spec) => {
188
- return `${pre}${q}${rewriteSpec(spec, origin, ver)}${q}`;
337
+ //
338
+ // The lookbehind guard below ensures we only match `from` at the start of
339
+ // its ESM-keyword context, not `from` appearing INSIDE a string literal
340
+ // (e.g. `if (time === 'from') { … }` in @nativescript/core's
341
+ // css-animation-parser). Without this guard the regex spans from the
342
+ // `from` inside the string to the NEXT quote elsewhere in the file,
343
+ // corrupting both tokens.
344
+ result = result.replace(/(?<![a-zA-Z0-9_$'"`])(from\s+)(["'])([^"']+)\2/g, (_m, pre, q, spec) => {
345
+ return `${pre}${q}${rewriteSpec(spec, origin, ver, relBase)}${q}`;
189
346
  });
190
347
  // Pattern 2: import("specifier") — dynamic imports
191
348
  result = result.replace(/(import\s*\(\s*)(["'])([^"']+)\2(\s*\))/g, (_m, pre, q, spec, post) => {
192
- return `${pre}${q}${rewriteSpec(spec, origin, ver)}${q}${post}`;
349
+ return `${pre}${q}${rewriteSpec(spec, origin, ver, relBase)}${q}${post}`;
193
350
  });
194
351
  // Pattern 3: import "specifier" — side-effect imports (no from clause)
195
- // Anchored after line start, newline, or semicolon to avoid false matches
196
- result = result.replace(/([;\n]\s*import\s+)(["'])([^"']+)\2/g, (_m, pre, q, spec) => {
352
+ // Anchored after start-of-string, newline, or semicolon to avoid false matches.
353
+ // The `^` alternative is critical: when a transformed module's body begins
354
+ // with a side-effect import (no preceding `;` or `\n`), the legacy
355
+ // `[;\n]`-only anchor missed it and the URL leaked to the device unmodified.
356
+ // Concrete failure mode: `/ns/core/inspector_modules` whose first body line
357
+ // `import '/@fs/.../@nativescript/core/globals/index.js';` was served raw,
358
+ // producing a `__DEV__ is not defined` ReferenceError in `platform-check.js`
359
+ // because `/@fs/` URLs bypass the `/ns/core` bridge's define-injection.
360
+ result = result.replace(/(^|[;\n])(\s*import\s+)(["'])([^"']+)\3/g, (_m, lead, pre, q, spec) => {
197
361
  // Skip if it looks like an identifier rather than a path
198
362
  if (!/[/.@]/.test(spec))
199
363
  return _m;
200
- return `${pre}${q}${rewriteSpec(spec, origin, ver)}${q}`;
364
+ return `${lead}${pre}${q}${rewriteSpec(spec, origin, ver, relBase)}${q}`;
201
365
  });
202
366
  return result;
203
367
  }
204
368
  /**
205
369
  * Determine whether a `/ns/core` bridge URL points to a real subpath module.
206
370
  *
207
- * Any `/ns/core?p=...` module now serves real ESM content with real named
208
- * exports via Vite's transform pipeline, including shallow paths like
209
- * `/ns/core?p=index.js` and `/ns/core?p=utils`.
371
+ * Any `/ns/core/<sub>` module now serves real ESM content with real named
372
+ * exports via Vite's transform pipeline, except for package-main aliases like
373
+ * `/ns/core/index`, which should be treated like the main `/ns/core`
374
+ * bridge and destructured from its default export.
210
375
  * The main proxy bridge (`/ns/core`) still only exports a default Proxy and
211
376
  * requires named imports to be destructured from it.
212
377
  *
@@ -215,7 +380,15 @@ export function rewriteSpecifiersForDevice(code, origin, ver) {
215
380
  * natively without conversion.
216
381
  */
217
382
  export function isDeepCoreSubpath(url) {
218
- return /\?p=([^&'"#]+)/.test(url);
383
+ if (!url || typeof url !== 'string')
384
+ return false;
385
+ const path = url.match(/\/ns\/core\/([^?#]+)/);
386
+ if (!path)
387
+ return false;
388
+ const sub = String(path[1] || '').replace(/^\/+|\/+$/g, '');
389
+ if (!sub || sub === 'index' || sub === 'index.js')
390
+ return false;
391
+ return true;
219
392
  }
220
393
  /**
221
394
  * Synthesize a `default` export for an ESM module that only has named/star
@@ -1 +1 @@
1
- {"version":3,"file":"core-sanitize.js","sourceRoot":"","sources":["../../../../../packages/vite/hmr/server/core-sanitize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core-sanitize.js","sourceRoot":"","sources":["../../../../../packages/vite/hmr/server/core-sanitize.ts"],"names":[],"mappings":"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"}