@nativescript/vite 0.0.1 → 0.0.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 (257) hide show
  1. package/LICENSE +19 -0
  2. package/README.md +44 -0
  3. package/{dist/configuration → configuration}/angular.d.ts +1 -1
  4. package/configuration/angular.js +480 -0
  5. package/configuration/angular.js.map +1 -0
  6. package/configuration/base.d.ts +5 -0
  7. package/configuration/base.js +494 -0
  8. package/configuration/base.js.map +1 -0
  9. package/configuration/javascript.d.ts +4 -0
  10. package/configuration/javascript.js +151 -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 +175 -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-linker.d.ts +13 -0
  25. package/helpers/angular-linker.js +181 -0
  26. package/helpers/angular-linker.js.map +1 -0
  27. package/helpers/cli-flags.d.ts +1 -0
  28. package/helpers/cli-flags.js +15 -0
  29. package/helpers/cli-flags.js.map +1 -0
  30. package/{dist/helpers → helpers}/commonjs-plugins.js +14 -13
  31. package/helpers/commonjs-plugins.js.map +1 -0
  32. package/{dist/helpers → helpers}/config-as-json.d.ts +1 -1
  33. package/{dist/helpers → helpers}/config-as-json.js +7 -6
  34. package/helpers/config-as-json.js.map +1 -0
  35. package/helpers/css-platform-plugin.d.ts +10 -0
  36. package/helpers/css-platform-plugin.js +76 -0
  37. package/helpers/css-platform-plugin.js.map +1 -0
  38. package/helpers/css-tree.js +22 -0
  39. package/helpers/css-tree.js.map +1 -0
  40. package/{dist/helpers → helpers}/dynamic-import-plugin.js +8 -7
  41. package/helpers/dynamic-import-plugin.js.map +1 -0
  42. package/helpers/esbuild-platform-resolver.d.ts +14 -0
  43. package/helpers/esbuild-platform-resolver.js +93 -0
  44. package/helpers/esbuild-platform-resolver.js.map +1 -0
  45. package/helpers/external-configs.d.ts +6 -0
  46. package/helpers/external-configs.js +34 -0
  47. package/helpers/external-configs.js.map +1 -0
  48. package/{dist/helpers → helpers}/flavor.d.ts +1 -0
  49. package/helpers/flavor.js +51 -0
  50. package/helpers/flavor.js.map +1 -0
  51. package/{dist/helpers → helpers}/global-defines.d.ts +11 -2
  52. package/helpers/global-defines.js +24 -0
  53. package/helpers/global-defines.js.map +1 -0
  54. package/helpers/logging.d.ts +13 -0
  55. package/helpers/logging.js +111 -0
  56. package/helpers/logging.js.map +1 -0
  57. package/helpers/main-entry.d.ts +10 -0
  58. package/helpers/main-entry.js +215 -0
  59. package/helpers/main-entry.js.map +1 -0
  60. package/{dist/helpers → helpers}/module-resolution.js +4 -3
  61. package/helpers/module-resolution.js.map +1 -0
  62. package/helpers/module-runner-patch.d.ts +3 -0
  63. package/helpers/module-runner-patch.js +63 -0
  64. package/helpers/module-runner-patch.js.map +1 -0
  65. package/helpers/nativeclass-transform.d.ts +7 -0
  66. package/helpers/nativeclass-transform.js +158 -0
  67. package/helpers/nativeclass-transform.js.map +1 -0
  68. package/helpers/nativeclass-transformer-plugin.d.ts +5 -0
  69. package/helpers/nativeclass-transformer-plugin.js +23 -0
  70. package/helpers/nativeclass-transformer-plugin.js.map +1 -0
  71. package/{dist/helpers → helpers}/nativescript-package-resolver.js +18 -17
  72. package/helpers/nativescript-package-resolver.js.map +1 -0
  73. package/helpers/ns-cli-plugins.d.ts +14 -0
  74. package/helpers/ns-cli-plugins.js +165 -0
  75. package/helpers/ns-cli-plugins.js.map +1 -0
  76. package/helpers/package-platform-aliases.d.ts +10 -0
  77. package/{dist/helpers → helpers}/package-platform-aliases.js +19 -23
  78. package/helpers/package-platform-aliases.js.map +1 -0
  79. package/helpers/postcss-platform-config.d.ts +13 -0
  80. package/helpers/postcss-platform-config.js +97 -0
  81. package/helpers/postcss-platform-config.js.map +1 -0
  82. package/helpers/prelink-angular.d.ts +2 -0
  83. package/helpers/prelink-angular.js +117 -0
  84. package/helpers/prelink-angular.js.map +1 -0
  85. package/helpers/preserve-imports.d.ts +2 -0
  86. package/helpers/preserve-imports.js +38 -0
  87. package/helpers/preserve-imports.js.map +1 -0
  88. package/{dist/helpers → helpers}/project.js +2 -4
  89. package/helpers/project.js.map +1 -0
  90. package/helpers/resolver.d.ts +4 -0
  91. package/{dist/helpers → helpers}/resolver.js +7 -6
  92. package/helpers/resolver.js.map +1 -0
  93. package/helpers/theme-core-plugins.d.ts +14 -0
  94. package/helpers/theme-core-plugins.js +121 -0
  95. package/helpers/theme-core-plugins.js.map +1 -0
  96. package/helpers/ts-config-paths.d.ts +10 -0
  97. package/{dist/helpers → helpers}/ts-config-paths.js +73 -72
  98. package/helpers/ts-config-paths.js.map +1 -0
  99. package/{dist/helpers → helpers}/utils.d.ts +6 -0
  100. package/{dist/helpers → helpers}/utils.js +28 -34
  101. package/helpers/utils.js.map +1 -0
  102. package/{dist/helpers → helpers}/workers.js +15 -16
  103. package/helpers/workers.js.map +1 -0
  104. package/hmr/client/css-handler.d.ts +4 -0
  105. package/hmr/client/css-handler.js +78 -0
  106. package/hmr/client/css-handler.js.map +1 -0
  107. package/hmr/client/index.d.ts +13 -0
  108. package/hmr/client/index.js +1550 -0
  109. package/hmr/client/index.js.map +1 -0
  110. package/hmr/client/utils.d.ts +38 -0
  111. package/hmr/client/utils.js +426 -0
  112. package/hmr/client/utils.js.map +1 -0
  113. package/hmr/entry-runtime.d.ts +8 -0
  114. package/hmr/entry-runtime.js +135 -0
  115. package/hmr/entry-runtime.js.map +1 -0
  116. package/hmr/frameworks/angular/server/strategy.d.ts +2 -0
  117. package/hmr/frameworks/angular/server/strategy.js +101 -0
  118. package/hmr/frameworks/angular/server/strategy.js.map +1 -0
  119. package/hmr/frameworks/vue/client/index.d.ts +22 -0
  120. package/hmr/frameworks/vue/client/index.js +1537 -0
  121. package/hmr/frameworks/vue/client/index.js.map +1 -0
  122. package/hmr/frameworks/vue/server/compiler.d.ts +11 -0
  123. package/hmr/frameworks/vue/server/compiler.js +26 -0
  124. package/hmr/frameworks/vue/server/compiler.js.map +1 -0
  125. package/hmr/frameworks/vue/server/sfc-transforms.d.ts +14 -0
  126. package/hmr/frameworks/vue/server/sfc-transforms.js +282 -0
  127. package/hmr/frameworks/vue/server/sfc-transforms.js.map +1 -0
  128. package/hmr/frameworks/vue/server/strategy.d.ts +2 -0
  129. package/hmr/frameworks/vue/server/strategy.js +273 -0
  130. package/hmr/frameworks/vue/server/strategy.js.map +1 -0
  131. package/hmr/helpers/ast-extract.d.ts +6 -0
  132. package/hmr/helpers/ast-extract.js +72 -0
  133. package/hmr/helpers/ast-extract.js.map +1 -0
  134. package/hmr/helpers/ast-normalizer.d.ts +7 -0
  135. package/hmr/helpers/ast-normalizer.js +772 -0
  136. package/hmr/helpers/ast-normalizer.js.map +1 -0
  137. package/hmr/helpers/babel.d.ts +3 -0
  138. package/hmr/helpers/babel.js +17 -0
  139. package/hmr/helpers/babel.js.map +1 -0
  140. package/hmr/helpers/sanitize.d.ts +6 -0
  141. package/hmr/helpers/sanitize.js +55 -0
  142. package/hmr/helpers/sanitize.js.map +1 -0
  143. package/hmr/helpers/vendor-rewrite.d.ts +1 -0
  144. package/hmr/helpers/vendor-rewrite.js +35 -0
  145. package/hmr/helpers/vendor-rewrite.js.map +1 -0
  146. package/hmr/server/compiler.d.ts +2 -0
  147. package/hmr/server/compiler.js +75 -0
  148. package/hmr/server/compiler.js.map +1 -0
  149. package/hmr/server/constants.d.ts +14 -0
  150. package/hmr/server/constants.js +23 -0
  151. package/hmr/server/constants.js.map +1 -0
  152. package/hmr/server/core-sanitize.d.ts +32 -0
  153. package/hmr/server/core-sanitize.js +134 -0
  154. package/hmr/server/core-sanitize.js.map +1 -0
  155. package/hmr/server/framework-strategy.d.ts +68 -0
  156. package/hmr/server/framework-strategy.js +2 -0
  157. package/hmr/server/framework-strategy.js.map +1 -0
  158. package/hmr/server/index.d.ts +5 -0
  159. package/hmr/server/index.js +19 -0
  160. package/hmr/server/index.js.map +1 -0
  161. package/hmr/server/vite-plugin.d.ts +5 -0
  162. package/hmr/server/vite-plugin.js +44 -0
  163. package/hmr/server/vite-plugin.js.map +1 -0
  164. package/hmr/server/websocket.d.ts +15 -0
  165. package/hmr/server/websocket.js +5528 -0
  166. package/hmr/server/websocket.js.map +1 -0
  167. package/hmr/shared/runtime/http-only-boot.d.ts +1 -0
  168. package/hmr/shared/runtime/http-only-boot.js +107 -0
  169. package/hmr/shared/runtime/http-only-boot.js.map +1 -0
  170. package/hmr/shared/runtime/root-placeholder.d.ts +1 -0
  171. package/hmr/shared/runtime/root-placeholder.js +142 -0
  172. package/hmr/shared/runtime/root-placeholder.js.map +1 -0
  173. package/hmr/shared/runtime/vendor-bootstrap.d.ts +1 -0
  174. package/hmr/shared/runtime/vendor-bootstrap.js +134 -0
  175. package/hmr/shared/runtime/vendor-bootstrap.js.map +1 -0
  176. package/hmr/shared/vendor/manifest-loader.d.ts +9 -0
  177. package/hmr/shared/vendor/manifest-loader.js +38 -0
  178. package/hmr/shared/vendor/manifest-loader.js.map +1 -0
  179. package/hmr/shared/vendor/manifest.d.ts +34 -0
  180. package/hmr/shared/vendor/manifest.js +787 -0
  181. package/hmr/shared/vendor/manifest.js.map +1 -0
  182. package/hmr/shared/vendor/registry.d.ts +9 -0
  183. package/hmr/shared/vendor/registry.js +62 -0
  184. package/hmr/shared/vendor/registry.js.map +1 -0
  185. package/hmr/vendor-bootstrap.d.ts +3 -0
  186. package/hmr/vendor-bootstrap.js +32 -0
  187. package/hmr/vendor-bootstrap.js.map +1 -0
  188. package/{dist/index.d.ts → index.d.ts} +2 -0
  189. package/{dist/index.js → index.js} +3 -0
  190. package/index.js.map +1 -0
  191. package/package.json +39 -30
  192. package/{dist/polyfills → polyfills}/mdn-data-at-rules.js +1 -0
  193. package/polyfills/mdn-data-at-rules.js.map +1 -0
  194. package/{dist/polyfills → polyfills}/mdn-data-properties.js +1 -0
  195. package/polyfills/mdn-data-properties.js.map +1 -0
  196. package/{dist/polyfills → polyfills}/mdn-data-syntaxes.js +1 -0
  197. package/polyfills/mdn-data-syntaxes.js.map +1 -0
  198. package/{dist/polyfills → polyfills}/module.js +1 -0
  199. package/polyfills/module.js.map +1 -0
  200. package/runtime/core-aliases-early.d.ts +1 -0
  201. package/runtime/core-aliases-early.js +334 -0
  202. package/runtime/core-aliases-early.js.map +1 -0
  203. package/shims/angular-animations-stub.d.ts +8 -0
  204. package/shims/angular-animations-stub.js +14 -0
  205. package/shims/angular-animations-stub.js.map +1 -0
  206. package/shims/node-module.d.ts +5 -0
  207. package/shims/node-module.js +13 -0
  208. package/shims/node-module.js.map +1 -0
  209. package/{dist/shims → shims}/react-reconciler-constants.js +2 -1
  210. package/shims/react-reconciler-constants.js.map +1 -0
  211. package/{dist/shims → shims}/react-reconciler.js +1 -0
  212. package/shims/react-reconciler.js.map +1 -0
  213. package/{dist/shims → shims}/set-value.js +5 -1
  214. package/shims/set-value.js.map +1 -0
  215. package/transformers/NativeClass/index.d.ts +2 -0
  216. package/transformers/NativeClass/index.js +222 -0
  217. package/transformers/NativeClass/index.js.map +1 -0
  218. package/dist/configuration/angular.js +0 -30
  219. package/dist/configuration/base.d.ts +0 -13
  220. package/dist/configuration/base.js +0 -228
  221. package/dist/configuration/old-without-merge-base.d.ts +0 -13
  222. package/dist/configuration/old-without-merge-base.js +0 -249
  223. package/dist/configuration/vue.js +0 -45
  224. package/dist/helpers/css-tree.js +0 -21
  225. package/dist/helpers/flavor.js +0 -40
  226. package/dist/helpers/global-defines.js +0 -18
  227. package/dist/helpers/main-entry.d.ts +0 -5
  228. package/dist/helpers/main-entry.js +0 -75
  229. package/dist/helpers/ns-cli-plugins.d.ts +0 -17
  230. package/dist/helpers/ns-cli-plugins.js +0 -128
  231. package/dist/helpers/package-platform-aliases.d.ts +0 -4
  232. package/dist/helpers/resolver.d.ts +0 -4
  233. package/dist/helpers/ts-config-paths.d.ts +0 -4
  234. package/dist/hmr/hmr-angular.d.ts +0 -1
  235. package/dist/hmr/hmr-angular.js +0 -34
  236. package/dist/hmr/hmr-bridge.d.ts +0 -18
  237. package/dist/hmr/hmr-bridge.js +0 -154
  238. package/dist/hmr/hmr-client.d.ts +0 -5
  239. package/dist/hmr/hmr-client.js +0 -93
  240. package/dist/hmr/hmr-server.d.ts +0 -20
  241. package/dist/hmr/hmr-server.js +0 -179
  242. package/dist/transformers/NativeClass/index.d.ts +0 -5
  243. package/dist/transformers/NativeClass/index.js +0 -46
  244. /package/{dist/helpers → helpers}/commonjs-plugins.d.ts +0 -0
  245. /package/{dist/helpers → helpers}/css-tree.d.ts +0 -0
  246. /package/{dist/helpers → helpers}/dynamic-import-plugin.d.ts +0 -0
  247. /package/{dist/helpers → helpers}/module-resolution.d.ts +0 -0
  248. /package/{dist/helpers → helpers}/nativescript-package-resolver.d.ts +0 -0
  249. /package/{dist/helpers → helpers}/project.d.ts +0 -0
  250. /package/{dist/helpers → helpers}/workers.d.ts +0 -0
  251. /package/{dist/polyfills → polyfills}/mdn-data-at-rules.d.ts +0 -0
  252. /package/{dist/polyfills → polyfills}/mdn-data-properties.d.ts +0 -0
  253. /package/{dist/polyfills → polyfills}/mdn-data-syntaxes.d.ts +0 -0
  254. /package/{dist/polyfills → polyfills}/module.d.ts +0 -0
  255. /package/{dist/shims → shims}/react-reconciler-constants.d.ts +0 -0
  256. /package/{dist/shims → shims}/react-reconciler.d.ts +0 -0
  257. /package/{dist/shims → shims}/set-value.d.ts +0 -0
@@ -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":"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"}
@@ -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 {};
@@ -0,0 +1,97 @@
1
+ import path from 'path';
2
+ import { existsSync, readFileSync } from 'fs';
3
+ import { findPackageInNodeModules } from './module-resolution.js';
4
+ /**
5
+ * Builds PostCSS configuration with platform import rewriting + postcss-import fallback.
6
+ */
7
+ export function createPostCssConfig(opts) {
8
+ const { platform, projectRoot, themeCoreRoot, postcssImport } = opts;
9
+ if (!postcssImport)
10
+ return './postcss.config.js';
11
+ return {
12
+ plugins: [
13
+ {
14
+ postcssPlugin: 'ns-postcss-platform-import-rewrite',
15
+ Once(root) {
16
+ try {
17
+ const currentFile = root?.source?.input?.file;
18
+ if (!currentFile)
19
+ return;
20
+ const currentDir = path.dirname(currentFile);
21
+ root.walkAtRules('import', (rule) => {
22
+ const m = /^\s*(?:url\()?["]?([^"')]+)["]?\)?/.exec(rule.params || '');
23
+ if (!m)
24
+ return;
25
+ const spec = m[1];
26
+ if (!spec || !(spec.startsWith('.') || spec.startsWith('/')))
27
+ return;
28
+ if (!spec.endsWith('.css'))
29
+ return;
30
+ const abs = path.isAbsolute(spec) ? spec : path.resolve(currentDir, spec);
31
+ if (existsSync(abs))
32
+ return;
33
+ const ext = platform === 'android' ? '.android.css' : '.ios.css';
34
+ const alt = abs.replace(/\.css$/, ext);
35
+ if (existsSync(alt)) {
36
+ let rel = path.relative(currentDir, alt).replace(/\\/g, '/');
37
+ if (!rel.startsWith('.'))
38
+ rel = './' + rel;
39
+ rule.params = rule.params.replace(spec, rel);
40
+ }
41
+ });
42
+ }
43
+ catch { }
44
+ },
45
+ },
46
+ postcssImport({
47
+ resolve(id, basedir) {
48
+ if (id.startsWith('.') || id.startsWith('/')) {
49
+ const cleanBasedir = basedir ? basedir.split('?')[0] : basedir;
50
+ let abs = path.resolve(cleanBasedir || '', id);
51
+ if (!existsSync(abs) && /\.css$/.test(abs)) {
52
+ const platformExt = platform === 'android' ? '.android.css' : '.ios.css';
53
+ const alt = abs.replace(/\.css$/, platformExt);
54
+ if (existsSync(alt))
55
+ return alt;
56
+ }
57
+ return abs;
58
+ }
59
+ if (id.startsWith('nativescript-theme-core/')) {
60
+ const pkgRoot = themeCoreRoot || findPackageInNodeModules('nativescript-theme-core', projectRoot);
61
+ if (!pkgRoot)
62
+ return id;
63
+ let rel = id.substring('nativescript-theme-core/'.length);
64
+ let target = path.join(pkgRoot, rel);
65
+ if (/^css\/.+\.css$/.test(rel)) {
66
+ const platformExt = platform === 'android' ? '.android.css' : '.ios.css';
67
+ const base = target.replace(/\.css$/, '');
68
+ const alt = base + platformExt;
69
+ if (existsSync(alt))
70
+ return alt;
71
+ }
72
+ return target;
73
+ }
74
+ return id;
75
+ },
76
+ load(filename) {
77
+ try {
78
+ const clean = filename.split('?')[0];
79
+ if (existsSync(clean)) {
80
+ return readFileSync(clean, 'utf-8');
81
+ }
82
+ if (/\.css$/.test(clean)) {
83
+ const platformExt = platform === 'android' ? '.android.css' : '.ios.css';
84
+ const alt = clean.replace(/\.css$/, platformExt);
85
+ if (existsSync(alt)) {
86
+ return readFileSync(alt, 'utf-8');
87
+ }
88
+ }
89
+ }
90
+ catch { }
91
+ return undefined;
92
+ },
93
+ }),
94
+ ],
95
+ };
96
+ }
97
+ //# sourceMappingURL=postcss-platform-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postcss-platform-config.js","sourceRoot":"","sources":["../../../../packages/vite/helpers/postcss-platform-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import type { Plugin } from 'vite';
2
+ export declare function createAngularPrelinkPlugin(projectRoot?: string): Plugin;
@@ -0,0 +1,117 @@
1
+ import path from 'node:path';
2
+ import { promises as fs } from 'node:fs';
3
+ import { createRequire } from 'node:module';
4
+ async function pathExists(p) {
5
+ try {
6
+ await fs.access(p);
7
+ return true;
8
+ }
9
+ catch {
10
+ return false;
11
+ }
12
+ }
13
+ async function ensureDir(p) {
14
+ await fs.mkdir(p, { recursive: true });
15
+ }
16
+ async function linkFile(babel, createLinker, src) {
17
+ const code = await fs.readFile(src, 'utf8');
18
+ if (!code)
19
+ return null;
20
+ // Quick check to skip non-partial files
21
+ if (code.indexOf('\u0275\u0275ngDeclare') === -1 && code.indexOf('ɵɵngDeclare') === -1 && code.indexOf('ngDeclare') === -1)
22
+ return null;
23
+ const plugin = createLinker({ sourceMapping: false });
24
+ const res = await babel.transformAsync(code, {
25
+ filename: src,
26
+ configFile: false,
27
+ babelrc: false,
28
+ sourceMaps: false,
29
+ compact: false,
30
+ plugins: [plugin],
31
+ });
32
+ return res?.code && res.code !== code ? res.code : null;
33
+ }
34
+ async function copyOrLinkInto(babel, createLinker, srcFile, cacheFile) {
35
+ const dir = path.dirname(cacheFile);
36
+ await ensureDir(dir);
37
+ const linked = await linkFile(babel, createLinker, srcFile);
38
+ if (linked) {
39
+ await fs.writeFile(cacheFile, linked, 'utf8');
40
+ }
41
+ else {
42
+ await fs.copyFile(srcFile, cacheFile);
43
+ }
44
+ }
45
+ async function prelinkPackage(req, pkgName, cacheRoot, debug) {
46
+ const pkgEntry = req.resolve(path.join(pkgName, 'package.json'));
47
+ const pkgDir = path.dirname(pkgEntry);
48
+ const fesmDir = path.join(pkgDir, 'fesm2022');
49
+ if (!(await pathExists(fesmDir)))
50
+ return;
51
+ // Lazy load linker deps from app
52
+ let babel = null;
53
+ let createLinker = null;
54
+ try {
55
+ const babelPath = req.resolve('@babel/core');
56
+ const linkerPath = req.resolve('@angular/compiler-cli/linker/babel');
57
+ babel = await import(babelPath);
58
+ const linkerMod = await import(linkerPath);
59
+ createLinker = linkerMod.createLinkerPlugin || linkerMod.createEs2015LinkerPlugin;
60
+ }
61
+ catch {
62
+ return; // Can't link without deps; skip quietly
63
+ }
64
+ const destDir = path.join(cacheRoot, pkgName, 'fesm2022');
65
+ await ensureDir(destDir);
66
+ const files = (await fs.readdir(fesmDir)).filter((f) => f.endsWith('.mjs'));
67
+ for (const file of files) {
68
+ const srcFile = path.join(fesmDir, file);
69
+ const cacheFile = path.join(destDir, file);
70
+ await copyOrLinkInto(babel, createLinker, srcFile, cacheFile);
71
+ if (debug) {
72
+ try {
73
+ console.log(`[ns-angular-prelink] cached`, `${pkgName}/fesm2022/${file}`);
74
+ }
75
+ catch { }
76
+ }
77
+ }
78
+ }
79
+ export function createAngularPrelinkPlugin(projectRoot) {
80
+ const req = createRequire(projectRoot ? projectRoot + '/package.json' : import.meta.url);
81
+ const cacheRoot = path.join(projectRoot || process.cwd(), 'node_modules', '.ns-linked');
82
+ const pkgs = ['@angular/core', '@angular/common', '@angular/forms', '@angular/platform-browser', '@angular/router', '@nativescript/angular'];
83
+ let done = false;
84
+ return {
85
+ name: 'ns-angular-prelink',
86
+ enforce: 'pre',
87
+ async config(_user, _env) {
88
+ const debug = process.env.VITE_DEBUG_LOGS === 'true' || process.env.VITE_DEBUG_LOGS === '1';
89
+ const disabled = process.env.NS_PRELINK === '0' || process.env.NS_PRELINK === 'false';
90
+ if (disabled)
91
+ return {};
92
+ // Prelink synchronously to ensure alias points to ready files.
93
+ for (const pkg of pkgs) {
94
+ await prelinkPackage(req, pkg, cacheRoot, !!debug);
95
+ }
96
+ done = true;
97
+ const alias = [
98
+ { find: /^@angular\//, replacement: path.join(cacheRoot, '@angular') + '/' },
99
+ { find: /^@nativescript\/angular(\/.*)?$/, replacement: (_, sub) => path.join(cacheRoot, '@nativescript', 'angular') + (sub || '') },
100
+ ];
101
+ return { resolve: { alias } };
102
+ },
103
+ async buildStart() {
104
+ if (done)
105
+ return;
106
+ const disabled = process.env.NS_PRELINK === '0' || process.env.NS_PRELINK === 'false';
107
+ if (disabled)
108
+ return;
109
+ // Fallback: in case config() path was skipped (edge), run once.
110
+ for (const pkg of pkgs) {
111
+ await prelinkPackage(req, pkg, cacheRoot, false);
112
+ }
113
+ done = true;
114
+ },
115
+ };
116
+ }
117
+ //# sourceMappingURL=prelink-angular.js.map