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

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 (96) hide show
  1. package/configuration/angular.d.ts +1 -1
  2. package/configuration/angular.js +286 -119
  3. package/configuration/angular.js.map +1 -1
  4. package/configuration/base.js +40 -35
  5. package/configuration/base.js.map +1 -1
  6. package/configuration/javascript.js +3 -3
  7. package/configuration/javascript.js.map +1 -1
  8. package/configuration/solid.js +7 -0
  9. package/configuration/solid.js.map +1 -1
  10. package/configuration/typescript.js +3 -3
  11. package/configuration/typescript.js.map +1 -1
  12. package/helpers/angular/angular-linker.js +39 -34
  13. package/helpers/angular/angular-linker.js.map +1 -1
  14. package/helpers/angular/inline-decorator-component-templates.d.ts +3 -0
  15. package/helpers/angular/inline-decorator-component-templates.js +400 -0
  16. package/helpers/angular/inline-decorator-component-templates.js.map +1 -0
  17. package/helpers/angular/shared-linker.d.ts +7 -0
  18. package/helpers/angular/shared-linker.js +37 -1
  19. package/helpers/angular/shared-linker.js.map +1 -1
  20. package/helpers/angular/synthesize-decorator-ctor-parameters.d.ts +1 -0
  21. package/helpers/angular/synthesize-decorator-ctor-parameters.js +256 -0
  22. package/helpers/angular/synthesize-decorator-ctor-parameters.js.map +1 -0
  23. package/helpers/angular/synthesize-injectable-factories.d.ts +3 -0
  24. package/helpers/angular/synthesize-injectable-factories.js +414 -0
  25. package/helpers/angular/synthesize-injectable-factories.js.map +1 -0
  26. package/helpers/esbuild-platform-resolver.js +5 -5
  27. package/helpers/esbuild-platform-resolver.js.map +1 -1
  28. package/helpers/external-configs.d.ts +9 -1
  29. package/helpers/external-configs.js +31 -6
  30. package/helpers/external-configs.js.map +1 -1
  31. package/helpers/import-meta-path.d.ts +4 -0
  32. package/helpers/import-meta-path.js +5 -0
  33. package/helpers/import-meta-path.js.map +1 -0
  34. package/helpers/import-specifier.d.ts +1 -0
  35. package/helpers/import-specifier.js +18 -0
  36. package/helpers/import-specifier.js.map +1 -0
  37. package/helpers/main-entry.d.ts +4 -2
  38. package/helpers/main-entry.js +86 -10
  39. package/helpers/main-entry.js.map +1 -1
  40. package/helpers/nativeclass-transform.js +8 -127
  41. package/helpers/nativeclass-transform.js.map +1 -1
  42. package/helpers/nativeclass-transformer-plugin.d.ts +12 -1
  43. package/helpers/nativeclass-transformer-plugin.js +175 -31
  44. package/helpers/nativeclass-transformer-plugin.js.map +1 -1
  45. package/helpers/preserve-imports.js +2 -17
  46. package/helpers/preserve-imports.js.map +1 -1
  47. package/hmr/client/css-handler.js +60 -20
  48. package/hmr/client/css-handler.js.map +1 -1
  49. package/hmr/client/index.js +453 -5
  50. package/hmr/client/index.js.map +1 -1
  51. package/hmr/entry-runtime.d.ts +10 -0
  52. package/hmr/entry-runtime.js +263 -21
  53. package/hmr/entry-runtime.js.map +1 -1
  54. package/hmr/frameworks/angular/client/index.js +22 -18
  55. package/hmr/frameworks/angular/client/index.js.map +1 -1
  56. package/hmr/frameworks/angular/server/linker.js +36 -2
  57. package/hmr/frameworks/angular/server/linker.js.map +1 -1
  58. package/hmr/helpers/ast-normalizer.js +22 -10
  59. package/hmr/helpers/ast-normalizer.js.map +1 -1
  60. package/hmr/server/constants.d.ts +1 -0
  61. package/hmr/server/constants.js +2 -0
  62. package/hmr/server/constants.js.map +1 -1
  63. package/hmr/server/core-sanitize.d.ts +42 -0
  64. package/hmr/server/core-sanitize.js +189 -0
  65. package/hmr/server/core-sanitize.js.map +1 -1
  66. package/hmr/server/import-map.d.ts +65 -0
  67. package/hmr/server/import-map.js +213 -0
  68. package/hmr/server/import-map.js.map +1 -0
  69. package/hmr/server/websocket.d.ts +79 -3
  70. package/hmr/server/websocket.js +1888 -233
  71. package/hmr/server/websocket.js.map +1 -1
  72. package/hmr/shared/runtime/dev-overlay.d.ts +38 -0
  73. package/hmr/shared/runtime/dev-overlay.js +664 -0
  74. package/hmr/shared/runtime/dev-overlay.js.map +1 -0
  75. package/hmr/shared/runtime/http-only-boot.d.ts +1 -0
  76. package/hmr/shared/runtime/http-only-boot.js +53 -6
  77. package/hmr/shared/runtime/http-only-boot.js.map +1 -1
  78. package/hmr/shared/runtime/module-provenance.d.ts +1 -0
  79. package/hmr/shared/runtime/module-provenance.js +66 -0
  80. package/hmr/shared/runtime/module-provenance.js.map +1 -0
  81. package/hmr/shared/runtime/platform-polyfills.d.ts +26 -0
  82. package/hmr/shared/runtime/platform-polyfills.js +122 -0
  83. package/hmr/shared/runtime/platform-polyfills.js.map +1 -0
  84. package/hmr/shared/runtime/root-placeholder.js +175 -53
  85. package/hmr/shared/runtime/root-placeholder.js.map +1 -1
  86. package/hmr/shared/runtime/vendor-bootstrap.js +51 -6
  87. package/hmr/shared/runtime/vendor-bootstrap.js.map +1 -1
  88. package/hmr/shared/vendor/manifest.d.ts +5 -0
  89. package/hmr/shared/vendor/manifest.js +339 -13
  90. package/hmr/shared/vendor/manifest.js.map +1 -1
  91. package/hmr/shared/vendor/registry.js +104 -7
  92. package/hmr/shared/vendor/registry.js.map +1 -1
  93. package/package.json +6 -2
  94. package/shims/solid-jsx-runtime.d.ts +7 -0
  95. package/shims/solid-jsx-runtime.js +17 -0
  96. package/shims/solid-jsx-runtime.js.map +1 -0
@@ -4,50 +4,6 @@ import ts from 'typescript';
4
4
  // computed property names (e.g. ['frame-in']).
5
5
  // import nativeClassTransformer from '../transformers/NativeClass/index.js';
6
6
  import { getCliFlags } from './cli-flags.js';
7
- function forceEnumerableDescriptors(code, fileName) {
8
- const sourceFile = ts.createSourceFile(`${fileName}.nativeclass.js`, code, ts.ScriptTarget.ES5, true, ts.ScriptKind.JS);
9
- let mutated = false;
10
- const transformDefineProperty = (ctx) => {
11
- const factory = ctx.factory ?? ts.factory;
12
- const visit = (node) => {
13
- if (ts.isCallExpression(node) && ts.isPropertyAccessExpression(node.expression)) {
14
- const callee = node.expression;
15
- const isObjectDefineProperty = ts.isIdentifier(callee.expression) && callee.expression.text === 'Object' && callee.name.text === 'defineProperty';
16
- if (isObjectDefineProperty && node.arguments.length >= 3 && ts.isObjectLiteralExpression(node.arguments[2])) {
17
- const descriptor = node.arguments[2];
18
- const nextProperties = descriptor.properties.map((property) => {
19
- if (!ts.isPropertyAssignment(property)) {
20
- return property;
21
- }
22
- const name = property.name;
23
- const isEnumerableProperty = (ts.isIdentifier(name) && name.text === 'enumerable') || (ts.isStringLiteral(name) && name.text === 'enumerable');
24
- if (!isEnumerableProperty || property.initializer.kind !== ts.SyntaxKind.FalseKeyword) {
25
- return property;
26
- }
27
- mutated = true;
28
- return factory.updatePropertyAssignment(property, property.name, factory.createTrue());
29
- });
30
- if (mutated) {
31
- const nextDescriptor = factory.updateObjectLiteralExpression(descriptor, nextProperties);
32
- return factory.updateCallExpression(node, node.expression, node.typeArguments, [node.arguments[0], node.arguments[1], nextDescriptor, ...node.arguments.slice(3)]);
33
- }
34
- }
35
- }
36
- return ts.visitEachChild(node, visit, ctx);
37
- };
38
- return (node) => ts.visitNode(node, visit);
39
- };
40
- const result = ts.transform(sourceFile, [transformDefineProperty]);
41
- const transformed = result.transformed[0];
42
- if (!mutated) {
43
- result.dispose();
44
- return code;
45
- }
46
- const printer = ts.createPrinter({ newLine: ts.NewLineKind.LineFeed });
47
- const output = printer.printFile(transformed);
48
- result.dispose();
49
- return output;
50
- }
51
7
  /**
52
8
  * Apply the NativeClass transformer to a source string. Returns null if no change performed.
53
9
  */
@@ -122,15 +78,6 @@ export function transformNativeClassSource(code, fileName) {
122
78
  // Keep other decorators, inject marker after them.
123
79
  return `${prefix || '\n'}${stacked || ''}/*__NativeClass__*/`;
124
80
  });
125
- // Also handle cases where @NativeClass() is on its own line with parentheses
126
- // Pattern: @NativeClass() followed by other decorators or class
127
- if (!working.includes('/*__NativeClass__*/') && code.includes('@NativeClass')) {
128
- // Simpler replacement: just replace @NativeClass() or @NativeClass with marker
129
- working = code.replace(/@NativeClass\s*\(\s*\)\s*\n/g, '/*__NativeClass__*/\n');
130
- if (!working.includes('/*__NativeClass__*/')) {
131
- working = code.replace(/@NativeClass\s*\n/g, '/*__NativeClass__*/\n');
132
- }
133
- }
134
81
  // If neither original nor marker is present, skip transform early.
135
82
  if (!working.includes('@NativeClass') && !working.includes('/*__NativeClass__*/'))
136
83
  return null;
@@ -146,8 +93,8 @@ export function transformNativeClassSource(code, fileName) {
146
93
  const original = working.slice(fullStart, node.end);
147
94
  const stripped = original.replace(/\/\*__NativeClass__\*\/\s*/g, '').replace(/^\s*@NativeClass(?:\([\s\S]*?\))?\s*$/gm, '');
148
95
  const hadExport = /^\s*export\s+class\b/.test(stripped);
149
- const className = node.name?.text;
150
- const down = ts.transpileModule(stripped, {
96
+ const down = ts
97
+ .transpileModule(stripped, {
151
98
  compilerOptions: {
152
99
  module: ts.ModuleKind.ESNext,
153
100
  target: ts.ScriptTarget.ES5,
@@ -156,74 +103,15 @@ export function transformNativeClassSource(code, fileName) {
156
103
  noEmitHelpers: true,
157
104
  useDefineForClassFields: false,
158
105
  },
159
- }).outputText;
160
- const normalizedDown = forceEnumerableDescriptors(down, fileName);
161
- let cleaned = normalizedDown.replace(/export \{\};?\s*$/m, '');
162
- // Debug: log the transpileModule output
163
- const debugNativeClass = process.env.NS_DEBUG_NATIVECLASS;
164
- if (debugNativeClass) {
165
- console.log('[NativeClass] fileName:', fileName);
166
- console.log('[NativeClass] className:', className);
167
- console.log('[NativeClass] stripped input (first 300 chars):', stripped.slice(0, 300));
168
- console.log('[NativeClass] transpileModule output (first 300 chars):', cleaned.slice(0, 300));
169
- }
170
- // SBG (Static Binding Generator) expects the __decorate call to be INSIDE the IIFE.
171
- // TypeScript's transpileModule already puts it inside correctly.
172
- // The pattern should be:
173
- // var ClassName = (function(_super) {
174
- // __extends(ClassName, _super);
175
- // function ClassName() { ... }
176
- // // prototype methods...
177
- // ClassName = __decorate([...], ClassName); <-- INSIDE the IIFE
178
- // return ClassName;
179
- // })(BaseClass);
180
- // We do NOT move it outside - the IIFE pattern with __decorate inside is correct.
181
- // Fix: If the transpiled output is just an IIFE expression (not assigned),
182
- // we need to assign it to a variable so the class is properly registered.
183
- // This happens when TypeScript transpiles a class declaration without assignment context.
184
- if (className) {
185
- // Check if the output is a bare IIFE without assignment
186
- // The transpiled output can look like:
187
- // (/** @class */ (function(_super){...})(Base));
188
- // or: (function(_super){...})(Base);
189
- // We need to assign it to a variable: var ClassName = ...
190
- const trimmed = cleaned.trim();
191
- // Pattern: starts with ( and contains IIFE extending a class
192
- // Look for pattern that indicates an unassigned class expression
193
- const startsWithParen = trimmed.startsWith('(');
194
- const hasExtends = /__extends\s*\(/.test(trimmed) || /function\s*\(\s*_super\s*\)/.test(trimmed);
195
- const notAssigned = !/^\s*var\s+\w+\s*=/.test(trimmed) && !/^\s*let\s+\w+\s*=/.test(trimmed) && !/^\s*const\s+\w+\s*=/.test(trimmed);
196
- if (startsWithParen && hasExtends && notAssigned) {
197
- // The output is a bare class expression, wrap it in assignment
198
- // Simply prepend `var ClassName = ` and remove the trailing semicolon if present
199
- // to avoid `var X = (...);` becoming `var X = (...);` (keep it clean)
200
- let unwrapped = trimmed;
201
- // Remove trailing semicolon for cleaner output, we'll add it back
202
- if (unwrapped.endsWith(';')) {
203
- unwrapped = unwrapped.slice(0, -1).trimEnd();
204
- }
205
- // If wrapped in outer parens that are just for grouping, we can keep them
206
- // The result will be: var CustomActivity = (/** @class */ (function...));
207
- cleaned = `var ${className} = ${unwrapped};`;
208
- }
209
- }
106
+ })
107
+ .outputText.replace(/enumerable:\s*false/g, 'enumerable: true');
108
+ let cleaned = down.replace(/export \{\};?\s*$/m, '');
210
109
  if (hadExport) {
211
- if (className && !new RegExp(`export\\s*{\\s*${className}\\s*}`, 'm').test(cleaned)) {
212
- cleaned += `\nexport { ${className} };\n`;
110
+ const name = node.name?.text;
111
+ if (name && !new RegExp(`export\s*{\s*${name}\s*}`, 'm').test(cleaned)) {
112
+ cleaned += `\nexport { ${name} };\n`;
213
113
  }
214
114
  }
215
- else if (className) {
216
- // For non-exported @NativeClass classes (like custom activities),
217
- // we need to ensure they're not tree-shaken by Rollup.
218
- // Register on global to create an unoptimizable side effect.
219
- // Use a pattern that prevents inlining by Rollup.
220
- cleaned += `\n;(function(c) { global.__nativeClasses = global.__nativeClasses || {}; global.__nativeClasses["${className}"] = c; })(${className});\n`;
221
- }
222
- // Ensure the transpiled output starts with a newline to properly separate
223
- // from any preceding code (like import statements)
224
- if (!cleaned.startsWith('\n')) {
225
- cleaned = '\n' + cleaned;
226
- }
227
115
  edits.push({ start: fullStart, end: node.end, text: cleaned });
228
116
  }
229
117
  }
@@ -256,13 +144,6 @@ export function transformNativeClassSource(code, fileName) {
256
144
  return true;
257
145
  })
258
146
  .join('\n');
259
- // Debug: Final output
260
- if (process.env.NS_DEBUG_NATIVECLASS === '1') {
261
- console.log('[NativeClass] ===== FINAL OUTPUT =====');
262
- console.log('[NativeClass] File:', fileName);
263
- console.log('[NativeClass] Output:\n', output);
264
- console.log('[NativeClass] ===== END FINAL OUTPUT =====');
265
- }
266
147
  return { code: output, map: null };
267
148
  }
268
149
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"nativeclass-transform.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/nativeclass-transform.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nativeclass-transform.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/nativeclass-transform.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,16 @@
1
1
  import type { Plugin } from 'vite';
2
+ /**
3
+ * Post-phase cleanup for NativeClass decorators.
4
+ * Strips __decorate([NativeClass()], X) and downlevels ES6 classes to ES5
5
+ * so the NativeScript runtime can detect native class inheritance via __extends.
6
+ *
7
+ * Exported separately for testability.
8
+ */
9
+ export declare function postCleanupNativeClass(code: string, bareId: string, verbose?: boolean): {
10
+ code: string;
11
+ map: null;
12
+ } | null;
2
13
  /**
3
14
  * Wraps NativeClass TS transformer into a Vite plugin.
4
15
  */
5
- export declare function createNativeClassTransformerPlugin(): Plugin;
16
+ export declare function createNativeClassTransformerPlugin(): Plugin[];
@@ -1,44 +1,188 @@
1
+ import ts from 'typescript';
1
2
  import { transformNativeClassSource } from './nativeclass-transform.js';
3
+ /**
4
+ * Post-phase cleanup for NativeClass decorators.
5
+ * Strips __decorate([NativeClass()], X) and downlevels ES6 classes to ES5
6
+ * so the NativeScript runtime can detect native class inheritance via __extends.
7
+ *
8
+ * Exported separately for testability.
9
+ */
10
+ export function postCleanupNativeClass(code, bareId, verbose = false) {
11
+ if (!code)
12
+ return null;
13
+ if (!code.includes('__decorate') || !code.includes('NativeClass'))
14
+ return null;
15
+ // Collect class names that have NativeClass in their __decorate call
16
+ const decorateRe = /(\w+)\s*=\s*(?:\w+\s*=\s*)?__decorate\(\s*\[\s*NativeClass\(\)\s*\]\s*,\s*(\w+)\s*\)/g;
17
+ const classNamesToDownlevel = new Set();
18
+ let m;
19
+ while ((m = decorateRe.exec(code)) !== null) {
20
+ classNamesToDownlevel.add(m[2]);
21
+ }
22
+ if (!classNamesToDownlevel.size)
23
+ return null;
24
+ // Strip NativeClass from __decorate arrays: __decorate([NativeClass()], X) → X
25
+ let output = code.replace(decorateRe, '$1 = $2');
26
+ // Now downlevel any ES6 class expression that extends a native base.
27
+ // Angular's re-compilation may have emitted:
28
+ // var AppDelegate = class AppDelegate extends UIResponder { ... };
29
+ // or with _1 alias:
30
+ // var PDFViewDelegateImpl = PDFViewDelegateImpl_1 = class PDFViewDelegateImpl extends NSObject { ... };
31
+ // We need to find these and downlevel them to ES5 with __extends so the
32
+ // NativeScript runtime can detect native class inheritance.
33
+ for (const className of Array.from(classNamesToDownlevel)) {
34
+ try {
35
+ // Use TypeScript AST to find and extract the class expression reliably
36
+ const sf = ts.createSourceFile(bareId + '.js', output, ts.ScriptTarget.Latest, true, ts.ScriptKind.JS);
37
+ let classNode;
38
+ let baseName = '';
39
+ let varDeclStart = -1;
40
+ let varDeclEnd = -1;
41
+ let aliasName = ''; // e.g. PDFViewDelegateImpl_1
42
+ const findClass = (node) => {
43
+ if (classNode)
44
+ return;
45
+ // Match: var X = class X extends Y { ... }
46
+ // or: var X = X_1 = class X extends Y { ... }
47
+ if (ts.isVariableStatement(node)) {
48
+ for (const decl of node.declarationList.declarations) {
49
+ if (ts.isIdentifier(decl.name) && decl.name.text === className && decl.initializer) {
50
+ let classExpr = decl.initializer;
51
+ // Handle alias: X = X_1 = class X extends Y { ... }
52
+ if (ts.isBinaryExpression(classExpr) && classExpr.operatorToken.kind === ts.SyntaxKind.EqualsToken) {
53
+ if (ts.isIdentifier(classExpr.left)) {
54
+ aliasName = classExpr.left.text;
55
+ }
56
+ classExpr = classExpr.right;
57
+ }
58
+ if (ts.isClassExpression(classExpr) && classExpr.heritageClauses?.length) {
59
+ const extendsClause = classExpr.heritageClauses.find((h) => h.token === ts.SyntaxKind.ExtendsKeyword);
60
+ if (extendsClause?.types[0]) {
61
+ baseName = output.slice(extendsClause.types[0].expression.getStart(sf), extendsClause.types[0].expression.getEnd());
62
+ classNode = classExpr;
63
+ varDeclStart = node.getStart(sf);
64
+ varDeclEnd = node.getEnd();
65
+ }
66
+ }
67
+ }
68
+ }
69
+ }
70
+ ts.forEachChild(node, findClass);
71
+ };
72
+ findClass(sf);
73
+ if (!classNode || !baseName)
74
+ continue;
75
+ // Extract just the class as a declaration for ts.transpileModule
76
+ const classText = output.slice(classNode.getStart(sf), classNode.getEnd());
77
+ // Convert class expression to declaration for proper downlevel
78
+ const classAsDecl = classText.replace(/^class\b/, `class`);
79
+ const toDownlevel = `class ${className} extends ${baseName} ${classAsDecl.slice(classAsDecl.indexOf('{'))}`;
80
+ const downleveled = ts
81
+ .transpileModule(toDownlevel, {
82
+ compilerOptions: {
83
+ module: ts.ModuleKind.ESNext,
84
+ target: ts.ScriptTarget.ES5,
85
+ experimentalDecorators: true,
86
+ emitDecoratorMetadata: false,
87
+ noEmitHelpers: true,
88
+ useDefineForClassFields: false,
89
+ },
90
+ })
91
+ .outputText.replace(/enumerable:\s*false/g, 'enumerable: true')
92
+ .replace(/export \{\};?\s*$/m, '')
93
+ .trim();
94
+ // The downleveled output is a var statement: var ClassName = (function(_super) { ... })(Base);
95
+ // Build the replacement, preserving any alias assignment
96
+ let replacement = downleveled;
97
+ if (aliasName) {
98
+ // Original was: var X = X_1 = class X extends Y {...};
99
+ // Downlevel produces: var X = (function(_super){...})(Y);
100
+ // We need: var X = X_1 = (function(_super){...})(Y);
101
+ replacement = replacement.replace(`var ${className} =`, `var ${className} = ${aliasName} =`);
102
+ }
103
+ output = output.slice(0, varDeclStart) + replacement + output.slice(varDeclEnd);
104
+ if (verbose) {
105
+ console.log(`[ns-nativeclass-post] Downleveled ES6 class "${className}" to ES5 with __extends in ${bareId}`);
106
+ }
107
+ }
108
+ catch (e) {
109
+ if (verbose) {
110
+ console.warn(`[ns-nativeclass-post] Failed to downlevel class "${className}" in ${bareId}:`, e);
111
+ }
112
+ // If downleveling fails, the decorator is at least stripped
113
+ }
114
+ }
115
+ if (output !== code) {
116
+ if (verbose) {
117
+ console.log(`[ns-nativeclass-post] Cleaned __decorate NativeClass from ${bareId}`);
118
+ }
119
+ return { code: output, map: null };
120
+ }
121
+ return null;
122
+ }
2
123
  /**
3
124
  * Wraps NativeClass TS transformer into a Vite plugin.
4
125
  */
5
126
  export function createNativeClassTransformerPlugin() {
6
127
  const verbose = !!process.env.NS_DEBUG_NATIVECLASS;
7
- return {
8
- name: 'ns-nativeclass-transformer',
9
- enforce: 'pre',
10
- async transform(code, id) {
11
- if (!code)
12
- return null;
13
- const bareId = id.split('?')[0];
14
- const isTSFile = /\.(ts|tsx)$/.test(bareId);
15
- const isJSFile = /\.(js|mjs|cjs)$/.test(bareId);
16
- const isVueTSBlock = !isTSFile && /[?&]lang\.(ts|tsx)\b/.test(id);
17
- if (!isTSFile && !isVueTSBlock && !isJSFile)
18
- return null;
19
- // Check if this file has @NativeClass BEFORE transforming (for debug)
20
- const hasNativeClass = code.includes('@NativeClass') || code.includes('NativeClass');
21
- if (verbose && hasNativeClass) {
22
- console.log(`[ns-nativeclass] Processing file with NativeClass: ${bareId}`);
23
- }
24
- const res = transformNativeClassSource(code, bareId);
25
- // Verify the transform removed NativeClass
26
- if (verbose && hasNativeClass) {
27
- if (res) {
28
- const stillHas = /\bNativeClass\b/.test(res.code);
29
- if (stillHas) {
30
- console.warn(`[ns-nativeclass] WARNING: NativeClass still present after transform in ${bareId}`);
128
+ return [
129
+ {
130
+ name: 'ns-nativeclass-transformer',
131
+ enforce: 'pre',
132
+ async transform(code, id) {
133
+ if (!code)
134
+ return null;
135
+ const bareId = id.split('?')[0];
136
+ const isTSFile = /\.(ts|tsx)$/.test(bareId);
137
+ const isJSFile = /\.(js|mjs|cjs)$/.test(bareId);
138
+ const isVueTSBlock = !isTSFile && /[?&]lang\.(ts|tsx)\b/.test(id);
139
+ if (!isTSFile && !isVueTSBlock && !isJSFile)
140
+ return null;
141
+ const hasDecoratorSyntax = code.includes('@NativeClass');
142
+ const hasNativeClassIdentifier = code.includes('NativeClass');
143
+ const hasDecorateCall = isJSFile && code.includes('__decorate');
144
+ // Most modules never contain NativeClass decorations.
145
+ // Skip the heavier TS-based helper unless the source has one of the patterns it can actually rewrite.
146
+ if (!hasDecoratorSyntax && !hasNativeClassIdentifier && !hasDecorateCall) {
147
+ return null;
148
+ }
149
+ if (verbose && (hasDecoratorSyntax || hasNativeClassIdentifier)) {
150
+ console.log(`[ns-nativeclass] Processing file with NativeClass: ${bareId}`);
151
+ }
152
+ const res = transformNativeClassSource(code, bareId);
153
+ if (verbose && (hasDecoratorSyntax || hasNativeClassIdentifier)) {
154
+ if (res) {
155
+ const stillHas = /\bNativeClass\b/.test(res.code);
156
+ if (stillHas) {
157
+ console.warn(`[ns-nativeclass] WARNING: NativeClass still present after transform in ${bareId}`);
158
+ }
159
+ else {
160
+ console.log(`[ns-nativeclass] Successfully transformed ${bareId}`);
161
+ }
31
162
  }
32
163
  else {
33
- console.log(`[ns-nativeclass] Successfully transformed ${bareId}`);
164
+ console.log(`[ns-nativeclass] Transform returned null for ${bareId} (may be skipped due to platform filter)`);
34
165
  }
35
166
  }
36
- else {
37
- console.log(`[ns-nativeclass] Transform returned null for ${bareId} (may be skipped due to platform filter)`);
38
- }
39
- }
40
- return res; // may be null if no @NativeClass present
167
+ return res;
168
+ },
169
+ },
170
+ // Post-phase cleanup: the Angular plugin (normal phase) may re-compile TypeScript from its
171
+ // own compilation pipeline, re-introducing __decorate([NativeClass()], ...) after the pre-phase
172
+ // transformer already stripped @NativeClass. This post-phase pass catches those survivors.
173
+ // In addition to stripping the decorator, we must also downlevel any ES6 class that was
174
+ // decorated with NativeClass to ES5 (using __extends) so the NativeScript runtime can
175
+ // detect native class inheritance and register ObjC classes.
176
+ {
177
+ name: 'ns-nativeclass-post-cleanup',
178
+ enforce: 'post',
179
+ transform(code, id) {
180
+ const bareId = id.split('?')[0];
181
+ if (!/\.(ts|tsx|js|mjs)$/.test(bareId))
182
+ return null;
183
+ return postCleanupNativeClass(code, bareId, verbose);
184
+ },
41
185
  },
42
- };
186
+ ];
43
187
  }
44
188
  //# sourceMappingURL=nativeclass-transformer-plugin.js.map
@@ -1 +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,MAAM,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;IAEnD,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;YAEzD,sEAAsE;YACtE,MAAM,cAAc,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YACrF,IAAI,OAAO,IAAI,cAAc,EAAE,CAAC;gBAC/B,OAAO,CAAC,GAAG,CAAC,sDAAsD,MAAM,EAAE,CAAC,CAAC;YAC7E,CAAC;YAED,MAAM,GAAG,GAAG,0BAA0B,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAErD,2CAA2C;YAC3C,IAAI,OAAO,IAAI,cAAc,EAAE,CAAC;gBAC/B,IAAI,GAAG,EAAE,CAAC;oBACT,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBAClD,IAAI,QAAQ,EAAE,CAAC;wBACd,OAAO,CAAC,IAAI,CAAC,0EAA0E,MAAM,EAAE,CAAC,CAAC;oBAClG,CAAC;yBAAM,CAAC;wBACP,OAAO,CAAC,GAAG,CAAC,6CAA6C,MAAM,EAAE,CAAC,CAAC;oBACpE,CAAC;gBACF,CAAC;qBAAM,CAAC;oBACP,OAAO,CAAC,GAAG,CAAC,gDAAgD,MAAM,0CAA0C,CAAC,CAAC;gBAC/G,CAAC;YACF,CAAC;YAED,OAAO,GAAG,CAAC,CAAC,yCAAyC;QACtD,CAAC;KACD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"nativeclass-transformer-plugin.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/nativeclass-transformer-plugin.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,6 @@
1
1
  // Canonicalizes `?ns-keep` imports to their base id and marks them as side-effectful
2
2
  // so Rollup won't tree-shake them, while avoiding duplicate module instances.
3
3
  export function preserveImportsPlugin() {
4
- // Track canonical ids that were referenced with ?ns-keep
5
- const keepCanonicalIds = new Set();
6
4
  return {
7
5
  name: 'ns-preserve-imports',
8
6
  // run early so downstream plugins see canonicalized ids consistently
@@ -14,24 +12,11 @@ export function preserveImportsPlugin() {
14
12
  const resolved = await this.resolve(base, importer, { ...options, skipSelf: true });
15
13
  if (resolved?.id) {
16
14
  const canonical = resolved.id.split('?')[0];
17
- keepCanonicalIds.add(canonical);
18
15
  // Return resolved without the query so all imports share one module instance
19
16
  return { id: canonical, external: resolved.external, moduleSideEffects: true };
20
17
  }
21
- // Fallback to base when resolver didn't handle it (rare)
22
- keepCanonicalIds.add(base);
23
- return { id: base };
24
- },
25
- transform(code, id) {
26
- const canonical = id.split('?')[0];
27
- if (keepCanonicalIds.has(canonical) || id.includes('?ns-keep')) {
28
- return {
29
- code,
30
- map: null,
31
- moduleSideEffects: true,
32
- };
33
- }
34
- return null;
18
+ // Fallback to the query-less id when resolver didn't handle it.
19
+ return { id: base, moduleSideEffects: true };
35
20
  },
36
21
  };
37
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"preserve-imports.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/preserve-imports.ts"],"names":[],"mappings":"AAEA,qFAAqF;AACrF,8EAA8E;AAC9E,MAAM,UAAU,qBAAqB;IACpC,yDAAyD;IACzD,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;IAE3C,OAAO;QACN,IAAI,EAAE,qBAAqB;QAC3B,qEAAqE;QACrE,OAAO,EAAE,KAAK;QAEd,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO;YACxC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC9D,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YACpF,IAAI,QAAQ,EAAE,EAAE,EAAE,CAAC;gBAClB,MAAM,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5C,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAChC,6EAA6E;gBAC7E,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;YAChF,CAAC;YACD,yDAAyD;YACzD,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC3B,OAAO,EAAE,EAAE,EAAE,IAAI,EAAS,CAAC;QAC5B,CAAC;QAED,SAAS,CAAC,IAAI,EAAE,EAAE;YACjB,MAAM,SAAS,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBAChE,OAAO;oBACN,IAAI;oBACJ,GAAG,EAAE,IAAI;oBACT,iBAAiB,EAAE,IAAI;iBACvB,CAAC;YACH,CAAC;YACD,OAAO,IAAI,CAAC;QACb,CAAC;KACD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"preserve-imports.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/preserve-imports.ts"],"names":[],"mappings":"AAEA,qFAAqF;AACrF,8EAA8E;AAC9E,MAAM,UAAU,qBAAqB;IACpC,OAAO;QACN,IAAI,EAAE,qBAAqB;QAC3B,qEAAqE;QACrE,OAAO,EAAE,KAAK;QAEd,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO;YACxC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;YAC9D,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YACpF,IAAI,QAAQ,EAAE,EAAE,EAAE,CAAC;gBAClB,MAAM,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC5C,6EAA6E;gBAC7E,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;YAChF,CAAC;YACD,gEAAgE;YAChE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAS,CAAC;QACrD,CAAC;KACD,CAAC;AACH,CAAC"}
@@ -1,22 +1,63 @@
1
- import { Application, Frame } from '@nativescript/core';
2
1
  const VERBOSE = !!globalThis.__NS_ENV_VERBOSE__;
3
- // CSS helper function
2
+ function getPreferredCssApplier() {
3
+ try {
4
+ const applier = globalThis.__NS_HMR_APPLY_CSS__;
5
+ if (typeof applier === 'function') {
6
+ return applier;
7
+ }
8
+ }
9
+ catch { }
10
+ return null;
11
+ }
12
+ function getCore(name) {
13
+ try {
14
+ const g = globalThis;
15
+ const reg = g.__nsVendorRegistry;
16
+ if (reg && reg.has('@nativescript/core')) {
17
+ const ns = reg.get('@nativescript/core');
18
+ return ns?.[name] || (ns?.default ?? ns)?.[name];
19
+ }
20
+ const req = g.__nsVendorRequire || g.__nsRequire || g.require;
21
+ if (typeof req === 'function') {
22
+ const ns = req('@nativescript/core');
23
+ return ns?.[name] || (ns?.default ?? ns)?.[name];
24
+ }
25
+ }
26
+ catch { }
27
+ return globalThis[name];
28
+ }
29
+ // CSS helper: apply CSS and refresh the current page so new styles render
4
30
  export function applyCssText(cssText) {
5
31
  if (typeof cssText !== 'string' || !cssText.length)
6
32
  return;
7
33
  try {
8
- if (Application.addCss) {
9
- Application.addCss(cssText);
34
+ const applyInHttpCoreRealm = getPreferredCssApplier();
35
+ if (applyInHttpCoreRealm) {
36
+ applyInHttpCoreRealm(cssText, true);
10
37
  if (VERBOSE)
11
- console.info('[ns-hmr] Applied app CSS');
38
+ console.info('[ns-hmr] CSS applied through HTTP core realm');
39
+ return;
12
40
  }
13
- else {
14
- const topFrame = Frame.topmost?.();
15
- const curPage = topFrame?.currentPage;
16
- curPage.addCss(cssText);
17
- if (VERBOSE)
18
- console.info('[ns-hmr] Applied page CSS');
41
+ const Application = getCore('Application');
42
+ if (Application && Application.addCss) {
43
+ Application.addCss(cssText);
44
+ console.info('[ns-hmr] CSS applied, refreshing view');
45
+ }
46
+ // Trigger a view refresh so the new styles are rendered.
47
+ // NativeScript caches computed styles — addCss alone won't repaint.
48
+ try {
49
+ const rootView = Application?.getRootView?.();
50
+ if (rootView && typeof rootView._onCssStateChange === 'function') {
51
+ rootView._onCssStateChange();
52
+ }
53
+ else if (rootView) {
54
+ // Force a style recalculation by toggling the root's class
55
+ const cls = rootView.className || '';
56
+ rootView.className = cls + ' ';
57
+ rootView.className = cls;
58
+ }
19
59
  }
60
+ catch { }
20
61
  }
21
62
  catch (e) {
22
63
  console.warn('[ns-hmr] CSS apply failed:', e?.message || String(e));
@@ -30,7 +71,6 @@ export async function fetchText(url) {
30
71
  const res = await g.fetch(url);
31
72
  return await res.text();
32
73
  }
33
- // Fallback to NativeScript Http if available
34
74
  const Http = g.Http;
35
75
  if (Http && Http.getString) {
36
76
  return await Http.getString(url);
@@ -46,17 +86,17 @@ export async function fetchText(url) {
46
86
  }
47
87
  // Handle CSS updates from Vite
48
88
  export async function handleCssUpdates(cssUpdates, httpOrigin) {
89
+ if (VERBOSE)
90
+ console.info('[ns-hmr] handleCssUpdates called, updates:', cssUpdates?.length, 'origin:', httpOrigin);
49
91
  for (const update of cssUpdates) {
50
92
  try {
51
- const path = update.path || update.acceptedPath || '';
52
- if (!path || !httpOrigin)
93
+ const cssPath = update.path || update.acceptedPath || '';
94
+ if (!cssPath || !httpOrigin)
53
95
  continue;
54
- // Compose URL like the Vite client (ensure raw content and cache-bust)
55
- const hasQuery = path.includes('?');
56
- const tParam = `t=${encodeURIComponent(String(update.timestamp || Date.now()))}`;
57
- const directParam = hasQuery ? '&direct=1' : '?direct=1';
58
- const tSuffix = (hasQuery ? '&' : '?') + tParam;
59
- const url = httpOrigin + path + directParam + tSuffix;
96
+ // Build URL: origin + path + ?direct=1&t=<timestamp>
97
+ const timestamp = update.timestamp || Date.now();
98
+ const sep = cssPath.includes('?') ? '&' : '?';
99
+ const url = `${httpOrigin}${cssPath}${sep}direct=1&t=${timestamp}`;
60
100
  if (VERBOSE)
61
101
  console.info('[ns-hmr] Fetching CSS:', url);
62
102
  const cssText = await fetchText(url);