@nativescript/vite 0.0.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (281) hide show
  1. package/LICENSE +19 -0
  2. package/README.md +81 -0
  3. package/{dist/configuration → configuration}/angular.d.ts +1 -1
  4. package/configuration/angular.js +371 -0
  5. package/configuration/angular.js.map +1 -0
  6. package/configuration/base.d.ts +5 -0
  7. package/configuration/base.js +491 -0
  8. package/configuration/base.js.map +1 -0
  9. package/configuration/javascript.d.ts +4 -0
  10. package/configuration/javascript.js +152 -0
  11. package/configuration/javascript.js.map +1 -0
  12. package/{dist/configuration → configuration}/react.d.ts +1 -1
  13. package/{dist/configuration → configuration}/react.js +18 -17
  14. package/configuration/react.js.map +1 -0
  15. package/{dist/configuration → configuration}/solid.d.ts +1 -1
  16. package/{dist/configuration → configuration}/solid.js +17 -16
  17. package/configuration/solid.js.map +1 -0
  18. package/configuration/typescript.d.ts +4 -0
  19. package/configuration/typescript.js +176 -0
  20. package/configuration/typescript.js.map +1 -0
  21. package/{dist/configuration → configuration}/vue.d.ts +1 -1
  22. package/configuration/vue.js +163 -0
  23. package/configuration/vue.js.map +1 -0
  24. package/helpers/angular/angular-linker.d.ts +13 -0
  25. package/helpers/angular/angular-linker.js +189 -0
  26. package/helpers/angular/angular-linker.js.map +1 -0
  27. package/helpers/angular/shared-linker.d.ts +4 -0
  28. package/helpers/angular/shared-linker.js +39 -0
  29. package/helpers/angular/shared-linker.js.map +1 -0
  30. package/helpers/angular/util.d.ts +1 -0
  31. package/helpers/angular/util.js +67 -0
  32. package/helpers/angular/util.js.map +1 -0
  33. package/helpers/cli-flags.d.ts +1 -0
  34. package/helpers/cli-flags.js +15 -0
  35. package/helpers/cli-flags.js.map +1 -0
  36. package/{dist/helpers → helpers}/commonjs-plugins.js +14 -13
  37. package/helpers/commonjs-plugins.js.map +1 -0
  38. package/{dist/helpers → helpers}/config-as-json.d.ts +1 -1
  39. package/{dist/helpers → helpers}/config-as-json.js +7 -6
  40. package/helpers/config-as-json.js.map +1 -0
  41. package/helpers/css-platform-plugin.d.ts +10 -0
  42. package/helpers/css-platform-plugin.js +76 -0
  43. package/helpers/css-platform-plugin.js.map +1 -0
  44. package/helpers/css-tree.js +22 -0
  45. package/helpers/css-tree.js.map +1 -0
  46. package/{dist/helpers → helpers}/dynamic-import-plugin.js +8 -7
  47. package/helpers/dynamic-import-plugin.js.map +1 -0
  48. package/helpers/esbuild-platform-resolver.d.ts +14 -0
  49. package/helpers/esbuild-platform-resolver.js +93 -0
  50. package/helpers/esbuild-platform-resolver.js.map +1 -0
  51. package/helpers/external-configs.d.ts +6 -0
  52. package/helpers/external-configs.js +34 -0
  53. package/helpers/external-configs.js.map +1 -0
  54. package/{dist/helpers → helpers}/flavor.d.ts +1 -0
  55. package/helpers/flavor.js +51 -0
  56. package/helpers/flavor.js.map +1 -0
  57. package/helpers/global-defines.d.ts +25 -0
  58. package/helpers/global-defines.js +29 -0
  59. package/helpers/global-defines.js.map +1 -0
  60. package/helpers/init.d.ts +1 -0
  61. package/helpers/init.js +119 -0
  62. package/helpers/init.js.map +1 -0
  63. package/helpers/logging.d.ts +13 -0
  64. package/helpers/logging.js +115 -0
  65. package/helpers/logging.js.map +1 -0
  66. package/helpers/main-entry.d.ts +10 -0
  67. package/helpers/main-entry.js +223 -0
  68. package/helpers/main-entry.js.map +1 -0
  69. package/{dist/helpers → helpers}/module-resolution.js +4 -3
  70. package/helpers/module-resolution.js.map +1 -0
  71. package/helpers/module-runner-patch.d.ts +3 -0
  72. package/helpers/module-runner-patch.js +63 -0
  73. package/helpers/module-runner-patch.js.map +1 -0
  74. package/helpers/nativeclass-transform.d.ts +7 -0
  75. package/helpers/nativeclass-transform.js +158 -0
  76. package/helpers/nativeclass-transform.js.map +1 -0
  77. package/helpers/nativeclass-transformer-plugin.d.ts +5 -0
  78. package/helpers/nativeclass-transformer-plugin.js +23 -0
  79. package/helpers/nativeclass-transformer-plugin.js.map +1 -0
  80. package/{dist/helpers → helpers}/nativescript-package-resolver.js +18 -17
  81. package/helpers/nativescript-package-resolver.js.map +1 -0
  82. package/helpers/ns-cli-plugins.d.ts +14 -0
  83. package/helpers/ns-cli-plugins.js +165 -0
  84. package/helpers/ns-cli-plugins.js.map +1 -0
  85. package/helpers/package-platform-aliases.d.ts +10 -0
  86. package/{dist/helpers → helpers}/package-platform-aliases.js +19 -23
  87. package/helpers/package-platform-aliases.js.map +1 -0
  88. package/helpers/postcss-platform-config.d.ts +13 -0
  89. package/helpers/postcss-platform-config.js +97 -0
  90. package/helpers/postcss-platform-config.js.map +1 -0
  91. package/helpers/prelink-angular.d.ts +2 -0
  92. package/helpers/prelink-angular.js +117 -0
  93. package/helpers/prelink-angular.js.map +1 -0
  94. package/helpers/preserve-imports.d.ts +2 -0
  95. package/helpers/preserve-imports.js +38 -0
  96. package/helpers/preserve-imports.js.map +1 -0
  97. package/{dist/helpers → helpers}/project.js +2 -4
  98. package/helpers/project.js.map +1 -0
  99. package/helpers/resolver.d.ts +4 -0
  100. package/{dist/helpers → helpers}/resolver.js +7 -6
  101. package/helpers/resolver.js.map +1 -0
  102. package/helpers/theme-core-plugins.d.ts +14 -0
  103. package/helpers/theme-core-plugins.js +121 -0
  104. package/helpers/theme-core-plugins.js.map +1 -0
  105. package/helpers/ts-config-paths.d.ts +10 -0
  106. package/{dist/helpers → helpers}/ts-config-paths.js +73 -72
  107. package/helpers/ts-config-paths.js.map +1 -0
  108. package/{dist/helpers → helpers}/utils.d.ts +10 -0
  109. package/helpers/utils.js +143 -0
  110. package/helpers/utils.js.map +1 -0
  111. package/{dist/helpers → helpers}/workers.js +15 -16
  112. package/helpers/workers.js.map +1 -0
  113. package/hmr/client/css-handler.d.ts +4 -0
  114. package/hmr/client/css-handler.js +78 -0
  115. package/hmr/client/css-handler.js.map +1 -0
  116. package/hmr/client/index.d.ts +13 -0
  117. package/hmr/client/index.js +1723 -0
  118. package/hmr/client/index.js.map +1 -0
  119. package/hmr/client/utils.d.ts +38 -0
  120. package/hmr/client/utils.js +426 -0
  121. package/hmr/client/utils.js.map +1 -0
  122. package/hmr/entry-runtime.d.ts +8 -0
  123. package/hmr/entry-runtime.js +135 -0
  124. package/hmr/entry-runtime.js.map +1 -0
  125. package/hmr/frameworks/angular/client/index.d.ts +8 -0
  126. package/hmr/frameworks/angular/client/index.js +59 -0
  127. package/hmr/frameworks/angular/client/index.js.map +1 -0
  128. package/hmr/frameworks/angular/server/linker.d.ts +1 -0
  129. package/hmr/frameworks/angular/server/linker.js +101 -0
  130. package/hmr/frameworks/angular/server/linker.js.map +1 -0
  131. package/hmr/frameworks/angular/server/strategy.d.ts +2 -0
  132. package/hmr/frameworks/angular/server/strategy.js +187 -0
  133. package/hmr/frameworks/angular/server/strategy.js.map +1 -0
  134. package/hmr/frameworks/solid/server/strategy.d.ts +2 -0
  135. package/hmr/frameworks/solid/server/strategy.js +56 -0
  136. package/hmr/frameworks/solid/server/strategy.js.map +1 -0
  137. package/hmr/frameworks/typescript/server/strategy.d.ts +2 -0
  138. package/hmr/frameworks/typescript/server/strategy.js +125 -0
  139. package/hmr/frameworks/typescript/server/strategy.js.map +1 -0
  140. package/hmr/frameworks/vue/client/index.d.ts +22 -0
  141. package/hmr/frameworks/vue/client/index.js +1541 -0
  142. package/hmr/frameworks/vue/client/index.js.map +1 -0
  143. package/hmr/frameworks/vue/server/compiler.d.ts +11 -0
  144. package/hmr/frameworks/vue/server/compiler.js +26 -0
  145. package/hmr/frameworks/vue/server/compiler.js.map +1 -0
  146. package/hmr/frameworks/vue/server/sfc-transforms.d.ts +14 -0
  147. package/hmr/frameworks/vue/server/sfc-transforms.js +282 -0
  148. package/hmr/frameworks/vue/server/sfc-transforms.js.map +1 -0
  149. package/hmr/frameworks/vue/server/strategy.d.ts +2 -0
  150. package/hmr/frameworks/vue/server/strategy.js +272 -0
  151. package/hmr/frameworks/vue/server/strategy.js.map +1 -0
  152. package/hmr/helpers/ast-extract.d.ts +6 -0
  153. package/hmr/helpers/ast-extract.js +72 -0
  154. package/hmr/helpers/ast-extract.js.map +1 -0
  155. package/hmr/helpers/ast-normalizer.d.ts +7 -0
  156. package/hmr/helpers/ast-normalizer.js +772 -0
  157. package/hmr/helpers/ast-normalizer.js.map +1 -0
  158. package/hmr/helpers/babel.d.ts +3 -0
  159. package/hmr/helpers/babel.js +17 -0
  160. package/hmr/helpers/babel.js.map +1 -0
  161. package/hmr/helpers/sanitize.d.ts +6 -0
  162. package/hmr/helpers/sanitize.js +55 -0
  163. package/hmr/helpers/sanitize.js.map +1 -0
  164. package/hmr/helpers/vendor-rewrite.d.ts +1 -0
  165. package/hmr/helpers/vendor-rewrite.js +35 -0
  166. package/hmr/helpers/vendor-rewrite.js.map +1 -0
  167. package/hmr/server/compiler.d.ts +2 -0
  168. package/hmr/server/compiler.js +75 -0
  169. package/hmr/server/compiler.js.map +1 -0
  170. package/hmr/server/constants.d.ts +14 -0
  171. package/hmr/server/constants.js +23 -0
  172. package/hmr/server/constants.js.map +1 -0
  173. package/hmr/server/core-sanitize.d.ts +32 -0
  174. package/hmr/server/core-sanitize.js +134 -0
  175. package/hmr/server/core-sanitize.js.map +1 -0
  176. package/hmr/server/framework-strategy.d.ts +68 -0
  177. package/hmr/server/framework-strategy.js +2 -0
  178. package/hmr/server/framework-strategy.js.map +1 -0
  179. package/hmr/server/index.d.ts +5 -0
  180. package/hmr/server/index.js +23 -0
  181. package/hmr/server/index.js.map +1 -0
  182. package/hmr/server/vite-plugin.d.ts +5 -0
  183. package/hmr/server/vite-plugin.js +44 -0
  184. package/hmr/server/vite-plugin.js.map +1 -0
  185. package/hmr/server/websocket.d.ts +21 -0
  186. package/hmr/server/websocket.js +5619 -0
  187. package/hmr/server/websocket.js.map +1 -0
  188. package/hmr/shared/runtime/http-only-boot.d.ts +1 -0
  189. package/hmr/shared/runtime/http-only-boot.js +107 -0
  190. package/hmr/shared/runtime/http-only-boot.js.map +1 -0
  191. package/hmr/shared/runtime/root-placeholder.d.ts +1 -0
  192. package/hmr/shared/runtime/root-placeholder.js +142 -0
  193. package/hmr/shared/runtime/root-placeholder.js.map +1 -0
  194. package/hmr/shared/runtime/vendor-bootstrap.d.ts +1 -0
  195. package/hmr/shared/runtime/vendor-bootstrap.js +134 -0
  196. package/hmr/shared/runtime/vendor-bootstrap.js.map +1 -0
  197. package/hmr/shared/vendor/manifest-loader.d.ts +9 -0
  198. package/hmr/shared/vendor/manifest-loader.js +38 -0
  199. package/hmr/shared/vendor/manifest-loader.js.map +1 -0
  200. package/hmr/shared/vendor/manifest.d.ts +35 -0
  201. package/hmr/shared/vendor/manifest.js +811 -0
  202. package/hmr/shared/vendor/manifest.js.map +1 -0
  203. package/hmr/shared/vendor/registry.d.ts +9 -0
  204. package/hmr/shared/vendor/registry.js +62 -0
  205. package/hmr/shared/vendor/registry.js.map +1 -0
  206. package/hmr/vendor-bootstrap.d.ts +3 -0
  207. package/hmr/vendor-bootstrap.js +32 -0
  208. package/hmr/vendor-bootstrap.js.map +1 -0
  209. package/{dist/index.d.ts → index.d.ts} +2 -0
  210. package/index.js +19 -0
  211. package/index.js.map +1 -0
  212. package/package.json +42 -30
  213. package/{dist/polyfills → polyfills}/mdn-data-at-rules.js +1 -0
  214. package/polyfills/mdn-data-at-rules.js.map +1 -0
  215. package/{dist/polyfills → polyfills}/mdn-data-properties.js +1 -0
  216. package/polyfills/mdn-data-properties.js.map +1 -0
  217. package/{dist/polyfills → polyfills}/mdn-data-syntaxes.js +1 -0
  218. package/polyfills/mdn-data-syntaxes.js.map +1 -0
  219. package/{dist/polyfills → polyfills}/module.js +1 -0
  220. package/polyfills/module.js.map +1 -0
  221. package/runtime/core-aliases-early.d.ts +1 -0
  222. package/runtime/core-aliases-early.js +334 -0
  223. package/runtime/core-aliases-early.js.map +1 -0
  224. package/shims/angular-animations-stub.d.ts +68 -0
  225. package/shims/angular-animations-stub.js +140 -0
  226. package/shims/angular-animations-stub.js.map +1 -0
  227. package/shims/node-module.d.ts +5 -0
  228. package/shims/node-module.js +13 -0
  229. package/shims/node-module.js.map +1 -0
  230. package/{dist/shims → shims}/react-reconciler-constants.js +2 -1
  231. package/shims/react-reconciler-constants.js.map +1 -0
  232. package/{dist/shims → shims}/react-reconciler.js +1 -0
  233. package/shims/react-reconciler.js.map +1 -0
  234. package/{dist/shims → shims}/set-value.js +5 -1
  235. package/shims/set-value.js.map +1 -0
  236. package/transformers/NativeClass/index.d.ts +2 -0
  237. package/transformers/NativeClass/index.js +222 -0
  238. package/transformers/NativeClass/index.js.map +1 -0
  239. package/dist/configuration/angular.js +0 -30
  240. package/dist/configuration/base.d.ts +0 -13
  241. package/dist/configuration/base.js +0 -228
  242. package/dist/configuration/old-without-merge-base.d.ts +0 -13
  243. package/dist/configuration/old-without-merge-base.js +0 -249
  244. package/dist/configuration/vue.js +0 -45
  245. package/dist/helpers/css-tree.js +0 -21
  246. package/dist/helpers/flavor.js +0 -40
  247. package/dist/helpers/global-defines.d.ts +0 -14
  248. package/dist/helpers/global-defines.js +0 -18
  249. package/dist/helpers/main-entry.d.ts +0 -5
  250. package/dist/helpers/main-entry.js +0 -75
  251. package/dist/helpers/ns-cli-plugins.d.ts +0 -17
  252. package/dist/helpers/ns-cli-plugins.js +0 -128
  253. package/dist/helpers/package-platform-aliases.d.ts +0 -4
  254. package/dist/helpers/resolver.d.ts +0 -4
  255. package/dist/helpers/ts-config-paths.d.ts +0 -4
  256. package/dist/helpers/utils.js +0 -94
  257. package/dist/hmr/hmr-angular.d.ts +0 -1
  258. package/dist/hmr/hmr-angular.js +0 -34
  259. package/dist/hmr/hmr-bridge.d.ts +0 -18
  260. package/dist/hmr/hmr-bridge.js +0 -154
  261. package/dist/hmr/hmr-client.d.ts +0 -5
  262. package/dist/hmr/hmr-client.js +0 -93
  263. package/dist/hmr/hmr-server.d.ts +0 -20
  264. package/dist/hmr/hmr-server.js +0 -179
  265. package/dist/index.js +0 -5
  266. package/dist/transformers/NativeClass/index.d.ts +0 -5
  267. package/dist/transformers/NativeClass/index.js +0 -46
  268. /package/{dist/helpers → helpers}/commonjs-plugins.d.ts +0 -0
  269. /package/{dist/helpers → helpers}/css-tree.d.ts +0 -0
  270. /package/{dist/helpers → helpers}/dynamic-import-plugin.d.ts +0 -0
  271. /package/{dist/helpers → helpers}/module-resolution.d.ts +0 -0
  272. /package/{dist/helpers → helpers}/nativescript-package-resolver.d.ts +0 -0
  273. /package/{dist/helpers → helpers}/project.d.ts +0 -0
  274. /package/{dist/helpers → helpers}/workers.d.ts +0 -0
  275. /package/{dist/polyfills → polyfills}/mdn-data-at-rules.d.ts +0 -0
  276. /package/{dist/polyfills → polyfills}/mdn-data-properties.d.ts +0 -0
  277. /package/{dist/polyfills → polyfills}/mdn-data-syntaxes.d.ts +0 -0
  278. /package/{dist/polyfills → polyfills}/module.d.ts +0 -0
  279. /package/{dist/shims → shims}/react-reconciler-constants.d.ts +0 -0
  280. /package/{dist/shims → shims}/react-reconciler.d.ts +0 -0
  281. /package/{dist/shims → shims}/set-value.d.ts +0 -0
@@ -0,0 +1,158 @@
1
+ import ts from 'typescript';
2
+ // We retain the advanced transformer for future enhancement but perform a safer
3
+ // localized textual + AST-assisted downlevel here to avoid edge corruption of
4
+ // computed property names (e.g. ['frame-in']).
5
+ // import nativeClassTransformer from '../transformers/NativeClass/index.js';
6
+ import { getCliFlags } from './cli-flags.js';
7
+ /**
8
+ * Apply the NativeClass transformer to a source string. Returns null if no change performed.
9
+ */
10
+ export function transformNativeClassSource(code, fileName) {
11
+ // Avoid transforming platform-specific sources for the non-target platform.
12
+ // Example: don't run Android-specific transforms on iOS builds and vice versa.
13
+ try {
14
+ const flags = getCliFlags();
15
+ const platform = flags.android ? 'android' : 'ios';
16
+ if (fileName.includes('.android.') && platform !== 'android')
17
+ return null;
18
+ if ((fileName.includes('.ios.') || fileName.includes('.visionos.')) && platform === 'android')
19
+ return null;
20
+ }
21
+ catch (e) {
22
+ // If cli flags cannot be read for any reason, fall back to original behavior.
23
+ }
24
+ // If this is JS and we see a __decorate* call that references NativeClass, strip it safely.
25
+ const isJS = /\.(js|mjs|cjs)$/.test(fileName);
26
+ if (isJS && /__decorate[a-zA-Z$]*\s*\(/.test(code) && /\bNativeClass\b/.test(code)) {
27
+ try {
28
+ const sfJS = ts.createSourceFile(fileName, code, ts.ScriptTarget.Latest, true, ts.ScriptKind.JS);
29
+ let mutated = false;
30
+ const transformer = (ctx) => {
31
+ const factory = ctx.factory ?? ts.factory;
32
+ const visit = (node) => {
33
+ if (ts.isCallExpression(node)) {
34
+ const callee = node.expression;
35
+ const calleeName = ts.isIdentifier(callee) ? callee.text : ts.isPropertyAccessExpression(callee) && ts.isIdentifier(callee.expression) ? `${callee.expression.text}.${callee.name.text}` : undefined;
36
+ if (calleeName && /^__decorate/.test(calleeName) && node.arguments.length >= 1) {
37
+ const firstArg = node.arguments[0];
38
+ if (ts.isArrayLiteralExpression(firstArg)) {
39
+ const kept = firstArg.elements.filter((el) => !(ts.isIdentifier(el) && el.text === 'NativeClass'));
40
+ if (kept.length !== firstArg.elements.length) {
41
+ mutated = true;
42
+ if (kept.length === 0 && node.arguments.length >= 2) {
43
+ return ts.visitNode(node.arguments[1], visit);
44
+ }
45
+ const newArr = factory.updateArrayLiteralExpression(firstArg, kept);
46
+ return factory.updateCallExpression(node, node.expression, node.typeArguments, [newArr, ...node.arguments.slice(1)]);
47
+ }
48
+ }
49
+ }
50
+ }
51
+ return ts.visitEachChild(node, visit, ctx);
52
+ };
53
+ return (node) => ts.visitNode(node, visit);
54
+ };
55
+ const res = ts.transform(sfJS, [transformer]);
56
+ const transformed = res.transformed[0];
57
+ if (!mutated) {
58
+ res.dispose();
59
+ return null;
60
+ }
61
+ const printer = ts.createPrinter({ newLine: ts.NewLineKind.LineFeed });
62
+ const output = printer.printFile(transformed);
63
+ res.dispose();
64
+ return { code: output, map: null };
65
+ }
66
+ catch {
67
+ // fall through to TS path if anything goes wrong
68
+ }
69
+ }
70
+ // Pre-strip textual @NativeClass decorator (and variants with args) immediately preceding a class,
71
+ // replacing just that occurrence with a stable marker. This ensures we never leave a runtime
72
+ // identifier behind if TypeScript skips or rearranges decorators in this compile phase.
73
+ // Matches stacked decorators and multi-line @NativeClass(...) args.
74
+ // Match @NativeClass (optionally with args, multi-line) not preceded by another decorator line capturing stacked sequences.
75
+ // We'll place the marker right before the class declaration start to simplify slicing.
76
+ const DECORATOR_BLOCK_RE = /(^|\n)((?:\s*@[\w$][^\n]*\n)*)\s*@NativeClass(?:\([\s\S]*?\))?\s*(?=\n(?:\s*@[\w$][^\n]*\n)*\s*(?:export\s+)?class\s)/g;
77
+ let working = code.replace(DECORATOR_BLOCK_RE, (full, prefix, stacked) => {
78
+ // Keep other decorators, inject marker after them.
79
+ return `${prefix || '\n'}${stacked || ''}/*__NativeClass__*/`;
80
+ });
81
+ // If neither original nor marker is present, skip transform early.
82
+ if (!working.includes('@NativeClass') && !working.includes('/*__NativeClass__*/'))
83
+ return null;
84
+ try {
85
+ const sf = ts.createSourceFile(fileName, working, ts.ScriptTarget.Latest, true, ts.ScriptKind.TS);
86
+ const edits = [];
87
+ // Collect all class declarations (top-level or nested) for potential transform
88
+ const collect = (node) => {
89
+ if (ts.isClassDeclaration(node)) {
90
+ const fullStart = node.getFullStart ? node.getFullStart() : node.pos;
91
+ const preamble = working.slice(fullStart, Math.min(node.getStart(sf) + 64, node.end));
92
+ if (/\/\*__NativeClass__\*\//.test(preamble)) {
93
+ const original = working.slice(fullStart, node.end);
94
+ const stripped = original.replace(/\/\*__NativeClass__\*\/\s*/g, '').replace(/^\s*@NativeClass(?:\([\s\S]*?\))?\s*$/gm, '');
95
+ const hadExport = /^\s*export\s+class\b/.test(stripped);
96
+ const down = ts
97
+ .transpileModule(stripped, {
98
+ compilerOptions: {
99
+ module: ts.ModuleKind.ESNext,
100
+ target: ts.ScriptTarget.ES5,
101
+ experimentalDecorators: true,
102
+ emitDecoratorMetadata: false,
103
+ noEmitHelpers: true,
104
+ useDefineForClassFields: false,
105
+ },
106
+ })
107
+ .outputText.replace(/Object\.defineProperty\(([^,]+),\s*(["'`][^"'`]+["'`]|[A-Za-z_$][A-Za-z0-9_$]*),\s*{([^}]*)}\)/g, (m, obj, key, body) => {
108
+ if (/enumerable:\s*false/.test(body)) {
109
+ body = body.replace(/enumerable:\s*false/, 'enumerable: true');
110
+ }
111
+ return `Object.defineProperty(${obj}, ${key}, {${body}})`;
112
+ });
113
+ let cleaned = down.replace(/export \{\};?\s*$/m, '');
114
+ if (hadExport) {
115
+ const name = node.name?.text;
116
+ if (name && !new RegExp(`export\s*{\s*${name}\s*}`, 'm').test(cleaned)) {
117
+ cleaned += `\nexport { ${name} };\n`;
118
+ }
119
+ }
120
+ edits.push({ start: fullStart, end: node.end, text: cleaned });
121
+ }
122
+ }
123
+ ts.forEachChild(node, collect);
124
+ };
125
+ collect(sf);
126
+ if (!edits.length)
127
+ return null;
128
+ // Apply edits sequentially
129
+ let output = working;
130
+ // Sort edits by start descending so indices remain valid
131
+ for (const e of edits.sort((a, b) => b.start - a.start)) {
132
+ output = output.slice(0, e.start) + e.text + output.slice(e.end);
133
+ }
134
+ // Remove any remaining markers
135
+ output = output.replace(/\/\*__NativeClass__\*\/\s*/g, '').replace(/@NativeClass(?:\([\s\S]*?\))?\s*/g, '');
136
+ // Deduplicate accidental duplicate re-export lines (e.g. `export { Foo };` appearing twice)
137
+ // This can happen if the transpiled snippet already emitted an export and we also appended one.
138
+ const seenExportLines = new Set();
139
+ output = output
140
+ .split(/\r?\n/)
141
+ .filter((line) => {
142
+ const trimmed = line.trim();
143
+ if (/^export\s*{\s*[A-Za-z_$][A-Za-z0-9_$]*\s*};?$/.test(trimmed)) {
144
+ if (seenExportLines.has(trimmed)) {
145
+ return false; // drop duplicate
146
+ }
147
+ seenExportLines.add(trimmed);
148
+ }
149
+ return true;
150
+ })
151
+ .join('\n');
152
+ return { code: output, map: null };
153
+ }
154
+ catch {
155
+ return null;
156
+ }
157
+ }
158
+ //# sourceMappingURL=nativeclass-transform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nativeclass-transform.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/nativeclass-transform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,gFAAgF;AAChF,8EAA8E;AAC9E,+CAA+C;AAC/C,6EAA6E;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,IAAY,EAAE,QAAgB;IACxE,4EAA4E;IAC5E,+EAA+E;IAC/E,IAAI,CAAC;QACJ,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAA+C,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;QAC/F,IAAI,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAC1E,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,QAAQ,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;IAC5G,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACZ,8EAA8E;IAC/E,CAAC;IAED,4FAA4F;IAC5F,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9C,IAAI,IAAI,IAAI,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACpF,IAAI,CAAC;YACJ,MAAM,IAAI,GAAG,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACjG,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,MAAM,WAAW,GAAyC,CAAC,GAAG,EAAE,EAAE;gBACjE,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,OAAO,CAAC;gBAC1C,MAAM,KAAK,GAAe,CAAC,IAAI,EAAE,EAAE;oBAClC,IAAI,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;wBAC/B,MAAM,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,0BAA0B,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;wBACrM,IAAI,UAAU,IAAI,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;4BAChF,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;4BACnC,IAAI,EAAE,CAAC,wBAAwB,CAAC,QAAQ,CAAC,EAAE,CAAC;gCAC3C,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC;gCACnG,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;oCAC9C,OAAO,GAAG,IAAI,CAAC;oCACf,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;wCACrD,OAAO,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,CAAkB,CAAC;oCAChE,CAAC;oCACD,MAAM,MAAM,GAAG,OAAO,CAAC,4BAA4B,CAAC,QAAQ,EAAE,IAAW,CAAC,CAAC;oCAC3E,OAAO,OAAO,CAAC,oBAAoB,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gCACtH,CAAC;4BACF,CAAC;wBACF,CAAC;oBACF,CAAC;oBACD,OAAO,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;gBAC5C,CAAC,CAAC;gBACF,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAkB,CAAC;YAC7D,CAAC,CAAC;YACF,MAAM,GAAG,GAAG,EAAE,CAAC,SAAS,CAAgB,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;YAC7D,MAAM,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;YACvC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACd,GAAG,CAAC,OAAO,EAAE,CAAC;gBACd,OAAO,IAAI,CAAC;YACb,CAAC;YACD,MAAM,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;YACvE,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAC9C,GAAG,CAAC,OAAO,EAAE,CAAC;YACd,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;QACpC,CAAC;QAAC,MAAM,CAAC;YACR,iDAAiD;QAClD,CAAC;IACF,CAAC;IAED,mGAAmG;IACnG,6FAA6F;IAC7F,wFAAwF;IACxF,oEAAoE;IACpE,4HAA4H;IAC5H,uFAAuF;IACvF,MAAM,kBAAkB,GAAG,wHAAwH,CAAC;IACpJ,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE;QACxE,mDAAmD;QACnD,OAAO,GAAG,MAAM,IAAI,IAAI,GAAG,OAAO,IAAI,EAAE,qBAAqB,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,mEAAmE;IACnE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/F,IAAI,CAAC;QACJ,MAAM,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QAClG,MAAM,KAAK,GAAmD,EAAE,CAAC;QACjE,+EAA+E;QAC/E,MAAM,OAAO,GAAG,CAAC,IAAa,EAAE,EAAE;YACjC,IAAI,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,MAAM,SAAS,GAAI,IAAY,CAAC,YAAY,CAAC,CAAC,CAAE,IAAY,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBACvF,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBACtF,IAAI,yBAAyB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC9C,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;oBACpD,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,yCAAyC,EAAE,EAAE,CAAC,CAAC;oBAC5H,MAAM,SAAS,GAAG,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACxD,MAAM,IAAI,GAAG,EAAE;yBACb,eAAe,CAAC,QAAQ,EAAE;wBAC1B,eAAe,EAAE;4BAChB,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM;4BAC5B,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG;4BAC3B,sBAAsB,EAAE,IAAI;4BAC5B,qBAAqB,EAAE,KAAK;4BAC5B,aAAa,EAAE,IAAI;4BACnB,uBAAuB,EAAE,KAAK;yBAC9B;qBACD,CAAC;yBACD,UAAU,CAAC,OAAO,CAAC,iGAAiG,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;wBAC5I,IAAI,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;4BACtC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,kBAAkB,CAAC,CAAC;wBAChE,CAAC;wBACD,OAAO,yBAAyB,GAAG,KAAK,GAAG,MAAM,IAAI,IAAI,CAAC;oBAC3D,CAAC,CAAC,CAAC;oBACJ,IAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;oBACrD,IAAI,SAAS,EAAE,CAAC;wBACf,MAAM,IAAI,GAAI,IAA4B,CAAC,IAAI,EAAE,IAAI,CAAC;wBACtD,IAAI,IAAI,IAAI,CAAC,IAAI,MAAM,CAAC,gBAAgB,IAAI,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;4BACxE,OAAO,IAAI,cAAc,IAAI,OAAO,CAAC;wBACtC,CAAC;oBACF,CAAC;oBACD,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;gBAChE,CAAC;YACF,CAAC;YACD,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAChC,CAAC,CAAC;QACF,OAAO,CAAC,EAAE,CAAC,CAAC;QACZ,IAAI,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAC/B,2BAA2B;QAC3B,IAAI,MAAM,GAAG,OAAO,CAAC;QACrB,yDAAyD;QACzD,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;YACzD,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAClE,CAAC;QACD,+BAA+B;QAC/B,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,6BAA6B,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,mCAAmC,EAAE,EAAE,CAAC,CAAC;QAE5G,4FAA4F;QAC5F,gGAAgG;QAChG,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;QAC1C,MAAM,GAAG,MAAM;aACb,KAAK,CAAC,OAAO,CAAC;aACd,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;YAChB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,+CAA+C,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnE,IAAI,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;oBAClC,OAAO,KAAK,CAAC,CAAC,iBAAiB;gBAChC,CAAC;gBACD,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC9B,CAAC;YACD,OAAO,IAAI,CAAC;QACb,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { Plugin } from 'vite';
2
+ /**
3
+ * Wraps NativeClass TS transformer into a Vite plugin.
4
+ */
5
+ export declare function createNativeClassTransformerPlugin(): Plugin;
@@ -0,0 +1,23 @@
1
+ import { transformNativeClassSource } from './nativeclass-transform.js';
2
+ /**
3
+ * Wraps NativeClass TS transformer into a Vite plugin.
4
+ */
5
+ export function createNativeClassTransformerPlugin() {
6
+ return {
7
+ name: 'ns-nativeclass-transformer',
8
+ enforce: 'pre',
9
+ async transform(code, id) {
10
+ if (!code)
11
+ return null;
12
+ const bareId = id.split('?')[0];
13
+ const isTSFile = /\.(ts|tsx)$/.test(bareId);
14
+ const isJSFile = /\.(js|mjs|cjs)$/.test(bareId);
15
+ const isVueTSBlock = !isTSFile && /[?&]lang\.(ts|tsx)\b/.test(id);
16
+ if (!isTSFile && !isVueTSBlock && !isJSFile)
17
+ return null;
18
+ const res = transformNativeClassSource(code, bareId);
19
+ return res; // may be null if no @NativeClass present
20
+ },
21
+ };
22
+ }
23
+ //# sourceMappingURL=nativeclass-transformer-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nativeclass-transformer-plugin.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/nativeclass-transformer-plugin.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAExE;;GAEG;AACH,MAAM,UAAU,kCAAkC;IACjD,OAAO;QACN,IAAI,EAAE,4BAA4B;QAClC,OAAO,EAAE,KAAK;QACd,KAAK,CAAC,SAAS,CAAC,IAAY,EAAE,EAAU;YACvC,IAAI,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAC;YACvB,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAChD,MAAM,YAAY,GAAG,CAAC,QAAQ,IAAI,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAClE,IAAI,CAAC,QAAQ,IAAI,CAAC,YAAY,IAAI,CAAC,QAAQ;gBAAE,OAAO,IAAI,CAAC;YACzD,MAAM,GAAG,GAAG,0BAA0B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YACrD,OAAO,GAAG,CAAC,CAAC,yCAAyC;QACtD,CAAC;KACD,CAAC;AACH,CAAC"}
@@ -1,26 +1,26 @@
1
- import path from "path";
2
- import fs from "fs";
3
- import { getProjectRootPath } from "./project.js";
4
- import { findPackageInNodeModules } from "./module-resolution.js";
1
+ import path from 'path';
2
+ import fs from 'fs';
3
+ import { getProjectRootPath } from './project.js';
4
+ import { findPackageInNodeModules } from './module-resolution.js';
5
5
  const projectRoot = getProjectRootPath();
6
6
  // Cache for package resolution results
7
7
  const packageCache = new Map();
8
8
  export function nativescriptPackageResolver(platform) {
9
9
  return {
10
- name: "nativescript-package-resolver",
11
- enforce: "pre", // Force this plugin to run before all others
10
+ name: 'nativescript-package-resolver',
11
+ enforce: 'pre', // Force this plugin to run before all others
12
12
  resolveId(id, importer) {
13
13
  // Only handle direct package imports (not relative paths)
14
- if (id.startsWith(".") || id.startsWith("/") || id.includes(":")) {
14
+ if (id.startsWith('.') || id.startsWith('/') || id.includes(':')) {
15
15
  return null;
16
16
  }
17
17
  // Extract package name properly
18
18
  let packageName;
19
- if (id.startsWith("@")) {
19
+ if (id.startsWith('@')) {
20
20
  // Scoped package: @scope/package or @scope/package/subpath
21
- const parts = id.split("/");
21
+ const parts = id.split('/');
22
22
  if (parts.length >= 2) {
23
- packageName = parts[0] + "/" + parts[1]; // @scope/package
23
+ packageName = parts[0] + '/' + parts[1]; // @scope/package
24
24
  // Only handle root package imports, not subpaths
25
25
  if (parts.length > 2) {
26
26
  return null; // This is a subpath import like @scope/package/file
@@ -32,7 +32,7 @@ export function nativescriptPackageResolver(platform) {
32
32
  }
33
33
  else {
34
34
  // Regular package: package or package/subpath
35
- const parts = id.split("/");
35
+ const parts = id.split('/');
36
36
  packageName = parts[0];
37
37
  // Only handle root package imports, not subpaths
38
38
  if (parts.length > 1) {
@@ -49,21 +49,21 @@ export function nativescriptPackageResolver(platform) {
49
49
  }
50
50
  const packagePath = findPackageInNodeModules(packageName, projectRoot);
51
51
  if (packagePath) {
52
- const packageJsonPath = path.join(packagePath, "package.json");
52
+ const packageJsonPath = path.join(packagePath, 'package.json');
53
53
  if (fs.existsSync(packageJsonPath)) {
54
54
  try {
55
- const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf8"));
55
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
56
56
  const mainField = packageJson.main;
57
57
  if (mainField) {
58
58
  const mainFilePath = path.join(packagePath, mainField);
59
59
  // Case 1: Main field has no extension - try to add extensions
60
- if (!mainField.includes(".")) {
60
+ if (!mainField.includes('.')) {
61
61
  // Try platform-specific file first
62
62
  const platformFile = path.join(packagePath, `${mainField}.${platform}.js`);
63
63
  if (fs.existsSync(platformFile)) {
64
64
  const result = {
65
65
  id: platformFile,
66
- resolvedBy: "nativescript-package-resolver",
66
+ resolvedBy: 'nativescript-package-resolver',
67
67
  };
68
68
  packageCache.set(packageName, result);
69
69
  // console.log(
@@ -76,7 +76,7 @@ export function nativescriptPackageResolver(platform) {
76
76
  if (fs.existsSync(jsFile)) {
77
77
  const result = {
78
78
  id: jsFile,
79
- resolvedBy: "nativescript-package-resolver",
79
+ resolvedBy: 'nativescript-package-resolver',
80
80
  };
81
81
  packageCache.set(packageName, result);
82
82
  // console.log(
@@ -95,7 +95,7 @@ export function nativescriptPackageResolver(platform) {
95
95
  if (fs.existsSync(platformFile)) {
96
96
  const result = {
97
97
  id: platformFile,
98
- resolvedBy: "nativescript-package-resolver",
98
+ resolvedBy: 'nativescript-package-resolver',
99
99
  };
100
100
  packageCache.set(packageName, result);
101
101
  // console.log(
@@ -137,3 +137,4 @@ export function nativescriptPackageResolver(platform) {
137
137
  },
138
138
  };
139
139
  }
140
+ //# sourceMappingURL=nativescript-package-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nativescript-package-resolver.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/nativescript-package-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,MAAM,WAAW,GAAG,kBAAkB,EAAE,CAAC;AAEzC,uCAAuC;AACvC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;AAE/B,MAAM,UAAU,2BAA2B,CAAC,QAAgB;IAC3D,OAAO;QACN,IAAI,EAAE,+BAA+B;QACrC,OAAO,EAAE,KAAK,EAAE,6CAA6C;QAC7D,SAAS,CAAC,EAAE,EAAE,QAAQ;YACrB,0DAA0D;YAC1D,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClE,OAAO,IAAI,CAAC;YACb,CAAC;YAED,gCAAgC;YAChC,IAAI,WAAW,CAAC;YAChB,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,2DAA2D;gBAC3D,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC5B,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;oBACvB,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB;oBAC1D,iDAAiD;oBACjD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACtB,OAAO,IAAI,CAAC,CAAC,oDAAoD;oBAClE,CAAC;gBACF,CAAC;qBAAM,CAAC;oBACP,OAAO,IAAI,CAAC,CAAC,yBAAyB;gBACvC,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,8CAA8C;gBAC9C,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC5B,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACvB,iDAAiD;gBACjD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtB,OAAO,IAAI,CAAC,CAAC,6CAA6C;gBAC3D,CAAC;YACF,CAAC;YAED,oBAAoB;YACpB,IAAI,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;gBACnC,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACnD,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;oBAC3B,OAAO,IAAI,CAAC,CAAC,wDAAwD;gBACtE,CAAC;gBACD,OAAO,YAAY,CAAC;YACrB,CAAC;YAED,MAAM,WAAW,GAAG,wBAAwB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;YAEvE,IAAI,WAAW,EAAE,CAAC;gBACjB,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;gBAC/D,IAAI,EAAE,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;oBACpC,IAAI,CAAC;wBACJ,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;wBACzE,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC;wBAEnC,IAAI,SAAS,EAAE,CAAC;4BACf,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;4BAEvD,8DAA8D;4BAC9D,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gCAC9B,mCAAmC;gCACnC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,SAAS,IAAI,QAAQ,KAAK,CAAC,CAAC;gCAC3E,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;oCACjC,MAAM,MAAM,GAAG;wCACd,EAAE,EAAE,YAAY;wCAChB,UAAU,EAAE,+BAA+B;qCAC3C,CAAC;oCACF,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;oCAEtC,iBAAiB;oCACjB,4FAA4F;oCAC5F,OAAO;oCACP,OAAO,MAAM,CAAC;gCACf,CAAC;gCAED,kBAAkB;gCAClB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,SAAS,KAAK,CAAC,CAAC;gCACzD,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;oCAC3B,MAAM,MAAM,GAAG;wCACd,EAAE,EAAE,MAAM;wCACV,UAAU,EAAE,+BAA+B;qCAC3C,CAAC;oCACF,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;oCAEtC,eAAe;oCACf,8EAA8E;oCAC9E,KAAK;oCACL,OAAO,MAAM,CAAC;gCACf,CAAC;4BACF,CAAC;4BACD,uFAAuF;iCAClF,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gCACvC,kCAAkC;gCAClC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gCACpC,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gCAEjD,mCAAmC;gCACnC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,QAAQ,IAAI,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC;gCAC7E,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;oCACjC,MAAM,MAAM,GAAG;wCACd,EAAE,EAAE,YAAY;wCAChB,UAAU,EAAE,+BAA+B;qCAC3C,CAAC;oCACF,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;oCAEtC,iBAAiB;oCACjB,6FAA6F;oCAC7F,OAAO;oCACP,OAAO,MAAM,CAAC;gCACf,CAAC;gCAED,4CAA4C;gCAC5C,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;gCACpC,OAAO,IAAI,CAAC;4BACb,CAAC;iCAAM,CAAC;gCACP,qDAAqD;gCACrD,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;gCACpC,OAAO,IAAI,CAAC;4BACb,CAAC;wBACF,CAAC;oBACF,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACZ,yBAAyB;wBACzB,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;wBACpC,OAAO,IAAI,CAAC;oBACb,CAAC;gBACF,CAAC;qBAAM,CAAC;oBACP,wBAAwB;oBACxB,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;oBACpC,OAAO,IAAI,CAAC;gBACb,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,wBAAwB;gBACxB,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;gBACpC,OAAO,IAAI,CAAC;YACb,CAAC;YAED,gCAAgC;YAChC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YACpC,OAAO,IAAI,CAAC;QACb,CAAC;KACD,CAAC;AACH,CAAC"}
@@ -0,0 +1,14 @@
1
+ export declare function cliPlugin(opts: {
2
+ distOutputFolder: string;
3
+ isDevMode: boolean;
4
+ verbose: boolean;
5
+ hmrActive: boolean;
6
+ }): {
7
+ name: string;
8
+ apply: string;
9
+ enforce: "post";
10
+ configResolved(config: any): void;
11
+ generateBundle(options: any, bundle: any): void;
12
+ writeBundle(options: any, bundle: any): void;
13
+ closeBundle(): void;
14
+ };
@@ -0,0 +1,165 @@
1
+ import path from 'path';
2
+ import { readdirSync, statSync, existsSync, mkdirSync } from 'fs';
3
+ let isInitialBuild = true;
4
+ // NativeScript CLI integration for live reloads, non-HMR rebuilds
5
+ export function cliPlugin(opts) {
6
+ // Capture emitted files directly from Rollup hooks to avoid relying on FS state
7
+ const lastBundleFiles = new Set();
8
+ let lastOutDir;
9
+ // This plugin should not trigger NativeScript CLI rebuild/refresh cycles when HMR is active
10
+ return {
11
+ name: 'nativescript-cli-integration',
12
+ apply: 'build',
13
+ // Ensure we run after other plugins (like vite-plugin-static-copy)
14
+ enforce: 'post',
15
+ // Resolve build outDir so we can read final outputs after all plugins finish
16
+ configResolved(config) {
17
+ // Under HMR, when not initial build; skip - HMR client handles everything
18
+ if (opts.hmrActive && !isInitialBuild)
19
+ return;
20
+ },
21
+ // Use Rollup hook to record emitted file names (relative to output dir)
22
+ generateBundle(options, bundle) {
23
+ // Under HMR, still capture files on initial build
24
+ if (opts.hmrActive && !isInitialBuild)
25
+ return;
26
+ try {
27
+ const keys = Object.keys(bundle);
28
+ for (const k of keys)
29
+ lastBundleFiles.add(k);
30
+ // Remember outDir/file from Rollup options if provided
31
+ lastOutDir = options.dir || (options.file && path.dirname(options.file)) || undefined;
32
+ if (opts.verbose) {
33
+ console.log(`[cliPlugin] generateBundle: files=${keys.length}, dir=${lastOutDir ?? '(unknown)'}`);
34
+ if (keys.length) {
35
+ console.log('[cliPlugin] bundle keys:', keys);
36
+ }
37
+ }
38
+ }
39
+ catch {
40
+ // noop
41
+ }
42
+ },
43
+ // called only when writing to disk
44
+ writeBundle(options, bundle) {
45
+ // Under HMR, still capture files on initial build
46
+ if (opts.hmrActive && !isInitialBuild)
47
+ return;
48
+ try {
49
+ const keys = Object.keys(bundle);
50
+ for (const k of keys)
51
+ lastBundleFiles.add(k);
52
+ lastOutDir = options.dir || (options.file && path.dirname(options.file)) || lastOutDir;
53
+ if (opts.verbose) {
54
+ console.log(`[cliPlugin] writeBundle: files=${keys.length}, dir=${lastOutDir ?? '(unknown)'}`);
55
+ }
56
+ }
57
+ catch {
58
+ // noop
59
+ }
60
+ },
61
+ // Defer CLI notification until after all plugins (including static copy) are done.
62
+ closeBundle() {
63
+ if (opts.hmrActive && !isInitialBuild) {
64
+ // Reset trackers to avoid leaking state between builds even if no-op
65
+ lastBundleFiles.clear();
66
+ lastOutDir = undefined;
67
+ return;
68
+ }
69
+ if (!opts.isDevMode)
70
+ return;
71
+ const buildType = isInitialBuild ? 'initial' : 'incremental';
72
+ if (opts.verbose) {
73
+ console.log(`NativeScript: ${buildType} build completed.`);
74
+ }
75
+ // Determine outDir and ensure it exists in dev for a clean start
76
+ const distDir = lastOutDir || opts.distOutputFolder;
77
+ if (!existsSync(distDir)) {
78
+ try {
79
+ mkdirSync(distDir, { recursive: true });
80
+ }
81
+ catch {
82
+ // ignore; listing will just return []
83
+ }
84
+ }
85
+ // Prefer Rollup-reported bundle files; fall back to FS scan
86
+ const emittedFiles = lastBundleFiles.size ? Array.from(lastBundleFiles) : listFilesFlat(distDir);
87
+ if (opts.verbose) {
88
+ console.log(`[cliPlugin] closeBundle: distDir=${distDir}, captured=${lastBundleFiles.size}, fsScan=${emittedFiles.length}`);
89
+ }
90
+ if (opts.verbose) {
91
+ console.log(`Emitted ${emittedFiles.length} files in ${buildType} build.`);
92
+ }
93
+ if (process.send) {
94
+ const sendMessage = (files) => {
95
+ const message = {
96
+ emittedFiles: files,
97
+ chunkFiles: files.filter((f) => f.includes('chunk') || f.includes('vendor')),
98
+ hash: Date.now().toString(),
99
+ isHMR: false,
100
+ buildType,
101
+ timestamp: Date.now(),
102
+ };
103
+ if (opts.verbose) {
104
+ console.log(`Sending ${buildType} build notification to CLI.`);
105
+ }
106
+ process.send(message);
107
+ };
108
+ if (emittedFiles.length === 0) {
109
+ // Allow a short delay for any late FS writes by other post plugins
110
+ setTimeout(() => {
111
+ const rescanned = listFilesFlat(distDir);
112
+ if (opts.verbose) {
113
+ console.log(`[cliPlugin] delayed rescan found ${rescanned.length} files in ${distDir}`);
114
+ }
115
+ sendMessage(rescanned);
116
+ }, 50);
117
+ }
118
+ else {
119
+ sendMessage(emittedFiles);
120
+ }
121
+ }
122
+ if (isInitialBuild) {
123
+ isInitialBuild = false;
124
+ if (opts.verbose) {
125
+ console.log('Initial build complete - subsequent changes will trigger fast rebuilds');
126
+ }
127
+ }
128
+ lastBundleFiles.clear();
129
+ lastOutDir = undefined;
130
+ },
131
+ };
132
+ }
133
+ // Recursively list files under a directory and return relative paths
134
+ function listFilesFlat(rootDir) {
135
+ const results = [];
136
+ function walk(dir, relBase = '') {
137
+ let entries = [];
138
+ try {
139
+ entries = readdirSync(dir);
140
+ }
141
+ catch {
142
+ return;
143
+ }
144
+ for (const name of entries) {
145
+ const abs = path.join(dir, name);
146
+ const rel = path.join(relBase, name);
147
+ let s;
148
+ try {
149
+ s = statSync(abs);
150
+ }
151
+ catch {
152
+ continue;
153
+ }
154
+ if (s.isDirectory()) {
155
+ walk(abs, rel);
156
+ }
157
+ else if (s.isFile()) {
158
+ results.push(rel);
159
+ }
160
+ }
161
+ }
162
+ walk(rootDir);
163
+ return results;
164
+ }
165
+ //# sourceMappingURL=ns-cli-plugins.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ns-cli-plugins.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/ns-cli-plugins.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ export declare function packagePlatformAliases(opts: {
2
+ tsConfig: {
3
+ paths?: Record<string, string[]>;
4
+ } | null;
5
+ verbose?: boolean;
6
+ platform: string;
7
+ }): {
8
+ find: RegExp;
9
+ replacement: (id: any) => any;
10
+ };
@@ -1,53 +1,48 @@
1
- import path from "path";
2
- import fs from "fs";
3
- import { findPackageInNodeModules } from "./module-resolution.js";
4
- import { getProjectRootPath } from "./project.js";
1
+ import path from 'path';
2
+ import fs from 'fs';
3
+ import { findPackageInNodeModules } from './module-resolution.js';
4
+ import { getProjectRootPath } from './project.js';
5
5
  const projectRoot = getProjectRootPath();
6
- export function packagePlatformAliases(tsConfigData, platform, skipCommonjsPackages, debugViteLogs) {
6
+ export function packagePlatformAliases(opts) {
7
7
  // packages used via core transient dependencies and other vite support
8
- const commonSkips = [
9
- "source-map-js",
10
- "html-entities",
11
- "fast-xml-parser",
12
- "@valor/nativescript-websockets",
13
- ];
8
+ const commonSkips = ['source-map-js', 'html-entities', 'fast-xml-parser', '@valor/nativescript-websockets'];
14
9
  return {
15
10
  find: /^(@[^/]+\/[^@/]+|[^@/]+)$/,
16
11
  replacement: (id) => {
17
12
  // Skip packages that have custom plugins
18
- if (commonSkips.includes(id) || skipCommonjsPackages?.includes(id)) {
13
+ if (commonSkips.includes(id)) {
19
14
  return id; // Let the plugins handle these
20
15
  }
21
16
  // Skip if this ID is already handled by tsconfig paths
22
17
  // Check if this matches any of our tsconfig path aliases
23
- if (tsConfigData.paths && tsConfigData.paths[id]) {
18
+ if (opts.tsConfig?.paths && opts.tsConfig.paths[id]) {
24
19
  return id; // Let tsconfig aliases handle this
25
20
  }
26
21
  // Only handle packages that exist in node_modules (real npm packages)
27
22
  const packageName = id;
28
23
  const packagePath = findPackageInNodeModules(packageName, projectRoot);
29
24
  if (packagePath) {
30
- const packageJsonPath = path.join(packagePath, "package.json");
25
+ const packageJsonPath = path.join(packagePath, 'package.json');
31
26
  if (fs.existsSync(packageJsonPath)) {
32
27
  try {
33
- const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf8"));
28
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
34
29
  const mainField = packageJson.main;
35
30
  if (mainField) {
36
31
  const mainFilePath = path.join(packagePath, mainField);
37
32
  // Case 1: Main field has no extension - try to add extensions
38
- if (!mainField.includes(".")) {
33
+ if (!mainField.includes('.')) {
39
34
  // Try platform-specific file first
40
- const platformFile = path.join(packagePath, `${mainField}.${platform}.js`);
35
+ const platformFile = path.join(packagePath, `${mainField}.${opts.platform}.js`);
41
36
  if (fs.existsSync(platformFile)) {
42
- if (debugViteLogs) {
43
- console.log(`✅ Alias resolver: ${packageName} -> ${mainField}.${platform}.js (extensionless)`);
37
+ if (opts.verbose) {
38
+ console.log(`✅ Alias resolver: ${packageName} -> ${mainField}.${opts.platform}.js (extensionless)`);
44
39
  }
45
40
  return platformFile;
46
41
  }
47
42
  // Fallback to .js
48
43
  const jsFile = path.join(packagePath, `${mainField}.js`);
49
44
  if (fs.existsSync(jsFile)) {
50
- if (debugViteLogs) {
45
+ if (opts.verbose) {
51
46
  console.log(`✅ Alias resolver: ${packageName} -> ${mainField}.js (extensionless)`);
52
47
  }
53
48
  return jsFile;
@@ -59,10 +54,10 @@ export function packagePlatformAliases(tsConfigData, platform, skipCommonjsPacka
59
54
  const ext = path.extname(mainField);
60
55
  const baseName = mainField.slice(0, -ext.length);
61
56
  // Try platform-specific file first
62
- const platformFile = path.join(packagePath, `${baseName}.${platform}${ext}`);
57
+ const platformFile = path.join(packagePath, `${baseName}.${opts.platform}${ext}`);
63
58
  if (fs.existsSync(platformFile)) {
64
- if (debugViteLogs) {
65
- console.log(`✅ Alias resolver: ${packageName} -> ${baseName}.${platform}${ext} (missing main)`);
59
+ if (opts.verbose) {
60
+ console.log(`✅ Alias resolver: ${packageName} -> ${baseName}.${opts.platform}${ext} (missing main)`);
66
61
  }
67
62
  return platformFile;
68
63
  }
@@ -81,3 +76,4 @@ export function packagePlatformAliases(tsConfigData, platform, skipCommonjsPacka
81
76
  },
82
77
  };
83
78
  }
79
+ //# sourceMappingURL=package-platform-aliases.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-platform-aliases.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/package-platform-aliases.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ interface PostCssConfigOptions {
2
+ platform: string;
3
+ projectRoot: string;
4
+ themeCoreRoot: string | undefined;
5
+ postcssImport: any;
6
+ }
7
+ /**
8
+ * Builds PostCSS configuration with platform import rewriting + postcss-import fallback.
9
+ */
10
+ export declare function createPostCssConfig(opts: PostCssConfigOptions): "./postcss.config.js" | {
11
+ plugins: any[];
12
+ };
13
+ export {};