@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.
- package/LICENSE +19 -0
- package/README.md +81 -0
- package/{dist/configuration → configuration}/angular.d.ts +1 -1
- package/configuration/angular.js +371 -0
- package/configuration/angular.js.map +1 -0
- package/configuration/base.d.ts +5 -0
- package/configuration/base.js +491 -0
- package/configuration/base.js.map +1 -0
- package/configuration/javascript.d.ts +4 -0
- package/configuration/javascript.js +152 -0
- package/configuration/javascript.js.map +1 -0
- package/{dist/configuration → configuration}/react.d.ts +1 -1
- package/{dist/configuration → configuration}/react.js +18 -17
- package/configuration/react.js.map +1 -0
- package/{dist/configuration → configuration}/solid.d.ts +1 -1
- package/{dist/configuration → configuration}/solid.js +17 -16
- package/configuration/solid.js.map +1 -0
- package/configuration/typescript.d.ts +4 -0
- package/configuration/typescript.js +176 -0
- package/configuration/typescript.js.map +1 -0
- package/{dist/configuration → configuration}/vue.d.ts +1 -1
- package/configuration/vue.js +163 -0
- package/configuration/vue.js.map +1 -0
- package/helpers/angular/angular-linker.d.ts +13 -0
- package/helpers/angular/angular-linker.js +189 -0
- package/helpers/angular/angular-linker.js.map +1 -0
- package/helpers/angular/shared-linker.d.ts +4 -0
- package/helpers/angular/shared-linker.js +39 -0
- package/helpers/angular/shared-linker.js.map +1 -0
- package/helpers/angular/util.d.ts +1 -0
- package/helpers/angular/util.js +67 -0
- package/helpers/angular/util.js.map +1 -0
- package/helpers/cli-flags.d.ts +1 -0
- package/helpers/cli-flags.js +15 -0
- package/helpers/cli-flags.js.map +1 -0
- package/{dist/helpers → helpers}/commonjs-plugins.js +14 -13
- package/helpers/commonjs-plugins.js.map +1 -0
- package/{dist/helpers → helpers}/config-as-json.d.ts +1 -1
- package/{dist/helpers → helpers}/config-as-json.js +7 -6
- package/helpers/config-as-json.js.map +1 -0
- package/helpers/css-platform-plugin.d.ts +10 -0
- package/helpers/css-platform-plugin.js +76 -0
- package/helpers/css-platform-plugin.js.map +1 -0
- package/helpers/css-tree.js +22 -0
- package/helpers/css-tree.js.map +1 -0
- package/{dist/helpers → helpers}/dynamic-import-plugin.js +8 -7
- package/helpers/dynamic-import-plugin.js.map +1 -0
- package/helpers/esbuild-platform-resolver.d.ts +14 -0
- package/helpers/esbuild-platform-resolver.js +93 -0
- package/helpers/esbuild-platform-resolver.js.map +1 -0
- package/helpers/external-configs.d.ts +6 -0
- package/helpers/external-configs.js +34 -0
- package/helpers/external-configs.js.map +1 -0
- package/{dist/helpers → helpers}/flavor.d.ts +1 -0
- package/helpers/flavor.js +51 -0
- package/helpers/flavor.js.map +1 -0
- package/helpers/global-defines.d.ts +25 -0
- package/helpers/global-defines.js +29 -0
- package/helpers/global-defines.js.map +1 -0
- package/helpers/init.d.ts +1 -0
- package/helpers/init.js +119 -0
- package/helpers/init.js.map +1 -0
- package/helpers/logging.d.ts +13 -0
- package/helpers/logging.js +115 -0
- package/helpers/logging.js.map +1 -0
- package/helpers/main-entry.d.ts +10 -0
- package/helpers/main-entry.js +223 -0
- package/helpers/main-entry.js.map +1 -0
- package/{dist/helpers → helpers}/module-resolution.js +4 -3
- package/helpers/module-resolution.js.map +1 -0
- package/helpers/module-runner-patch.d.ts +3 -0
- package/helpers/module-runner-patch.js +63 -0
- package/helpers/module-runner-patch.js.map +1 -0
- package/helpers/nativeclass-transform.d.ts +7 -0
- package/helpers/nativeclass-transform.js +158 -0
- package/helpers/nativeclass-transform.js.map +1 -0
- package/helpers/nativeclass-transformer-plugin.d.ts +5 -0
- package/helpers/nativeclass-transformer-plugin.js +23 -0
- package/helpers/nativeclass-transformer-plugin.js.map +1 -0
- package/{dist/helpers → helpers}/nativescript-package-resolver.js +18 -17
- package/helpers/nativescript-package-resolver.js.map +1 -0
- package/helpers/ns-cli-plugins.d.ts +14 -0
- package/helpers/ns-cli-plugins.js +165 -0
- package/helpers/ns-cli-plugins.js.map +1 -0
- package/helpers/package-platform-aliases.d.ts +10 -0
- package/{dist/helpers → helpers}/package-platform-aliases.js +19 -23
- package/helpers/package-platform-aliases.js.map +1 -0
- package/helpers/postcss-platform-config.d.ts +13 -0
- package/helpers/postcss-platform-config.js +97 -0
- package/helpers/postcss-platform-config.js.map +1 -0
- package/helpers/prelink-angular.d.ts +2 -0
- package/helpers/prelink-angular.js +117 -0
- package/helpers/prelink-angular.js.map +1 -0
- package/helpers/preserve-imports.d.ts +2 -0
- package/helpers/preserve-imports.js +38 -0
- package/helpers/preserve-imports.js.map +1 -0
- package/{dist/helpers → helpers}/project.js +2 -4
- package/helpers/project.js.map +1 -0
- package/helpers/resolver.d.ts +4 -0
- package/{dist/helpers → helpers}/resolver.js +7 -6
- package/helpers/resolver.js.map +1 -0
- package/helpers/theme-core-plugins.d.ts +14 -0
- package/helpers/theme-core-plugins.js +121 -0
- package/helpers/theme-core-plugins.js.map +1 -0
- package/helpers/ts-config-paths.d.ts +10 -0
- package/{dist/helpers → helpers}/ts-config-paths.js +73 -72
- package/helpers/ts-config-paths.js.map +1 -0
- package/{dist/helpers → helpers}/utils.d.ts +10 -0
- package/helpers/utils.js +143 -0
- package/helpers/utils.js.map +1 -0
- package/{dist/helpers → helpers}/workers.js +15 -16
- package/helpers/workers.js.map +1 -0
- package/hmr/client/css-handler.d.ts +4 -0
- package/hmr/client/css-handler.js +78 -0
- package/hmr/client/css-handler.js.map +1 -0
- package/hmr/client/index.d.ts +13 -0
- package/hmr/client/index.js +1723 -0
- package/hmr/client/index.js.map +1 -0
- package/hmr/client/utils.d.ts +38 -0
- package/hmr/client/utils.js +426 -0
- package/hmr/client/utils.js.map +1 -0
- package/hmr/entry-runtime.d.ts +8 -0
- package/hmr/entry-runtime.js +135 -0
- package/hmr/entry-runtime.js.map +1 -0
- package/hmr/frameworks/angular/client/index.d.ts +8 -0
- package/hmr/frameworks/angular/client/index.js +59 -0
- package/hmr/frameworks/angular/client/index.js.map +1 -0
- package/hmr/frameworks/angular/server/linker.d.ts +1 -0
- package/hmr/frameworks/angular/server/linker.js +101 -0
- package/hmr/frameworks/angular/server/linker.js.map +1 -0
- package/hmr/frameworks/angular/server/strategy.d.ts +2 -0
- package/hmr/frameworks/angular/server/strategy.js +187 -0
- package/hmr/frameworks/angular/server/strategy.js.map +1 -0
- package/hmr/frameworks/solid/server/strategy.d.ts +2 -0
- package/hmr/frameworks/solid/server/strategy.js +56 -0
- package/hmr/frameworks/solid/server/strategy.js.map +1 -0
- package/hmr/frameworks/typescript/server/strategy.d.ts +2 -0
- package/hmr/frameworks/typescript/server/strategy.js +125 -0
- package/hmr/frameworks/typescript/server/strategy.js.map +1 -0
- package/hmr/frameworks/vue/client/index.d.ts +22 -0
- package/hmr/frameworks/vue/client/index.js +1541 -0
- package/hmr/frameworks/vue/client/index.js.map +1 -0
- package/hmr/frameworks/vue/server/compiler.d.ts +11 -0
- package/hmr/frameworks/vue/server/compiler.js +26 -0
- package/hmr/frameworks/vue/server/compiler.js.map +1 -0
- package/hmr/frameworks/vue/server/sfc-transforms.d.ts +14 -0
- package/hmr/frameworks/vue/server/sfc-transforms.js +282 -0
- package/hmr/frameworks/vue/server/sfc-transforms.js.map +1 -0
- package/hmr/frameworks/vue/server/strategy.d.ts +2 -0
- package/hmr/frameworks/vue/server/strategy.js +272 -0
- package/hmr/frameworks/vue/server/strategy.js.map +1 -0
- package/hmr/helpers/ast-extract.d.ts +6 -0
- package/hmr/helpers/ast-extract.js +72 -0
- package/hmr/helpers/ast-extract.js.map +1 -0
- package/hmr/helpers/ast-normalizer.d.ts +7 -0
- package/hmr/helpers/ast-normalizer.js +772 -0
- package/hmr/helpers/ast-normalizer.js.map +1 -0
- package/hmr/helpers/babel.d.ts +3 -0
- package/hmr/helpers/babel.js +17 -0
- package/hmr/helpers/babel.js.map +1 -0
- package/hmr/helpers/sanitize.d.ts +6 -0
- package/hmr/helpers/sanitize.js +55 -0
- package/hmr/helpers/sanitize.js.map +1 -0
- package/hmr/helpers/vendor-rewrite.d.ts +1 -0
- package/hmr/helpers/vendor-rewrite.js +35 -0
- package/hmr/helpers/vendor-rewrite.js.map +1 -0
- package/hmr/server/compiler.d.ts +2 -0
- package/hmr/server/compiler.js +75 -0
- package/hmr/server/compiler.js.map +1 -0
- package/hmr/server/constants.d.ts +14 -0
- package/hmr/server/constants.js +23 -0
- package/hmr/server/constants.js.map +1 -0
- package/hmr/server/core-sanitize.d.ts +32 -0
- package/hmr/server/core-sanitize.js +134 -0
- package/hmr/server/core-sanitize.js.map +1 -0
- package/hmr/server/framework-strategy.d.ts +68 -0
- package/hmr/server/framework-strategy.js +2 -0
- package/hmr/server/framework-strategy.js.map +1 -0
- package/hmr/server/index.d.ts +5 -0
- package/hmr/server/index.js +23 -0
- package/hmr/server/index.js.map +1 -0
- package/hmr/server/vite-plugin.d.ts +5 -0
- package/hmr/server/vite-plugin.js +44 -0
- package/hmr/server/vite-plugin.js.map +1 -0
- package/hmr/server/websocket.d.ts +21 -0
- package/hmr/server/websocket.js +5619 -0
- package/hmr/server/websocket.js.map +1 -0
- package/hmr/shared/runtime/http-only-boot.d.ts +1 -0
- package/hmr/shared/runtime/http-only-boot.js +107 -0
- package/hmr/shared/runtime/http-only-boot.js.map +1 -0
- package/hmr/shared/runtime/root-placeholder.d.ts +1 -0
- package/hmr/shared/runtime/root-placeholder.js +142 -0
- package/hmr/shared/runtime/root-placeholder.js.map +1 -0
- package/hmr/shared/runtime/vendor-bootstrap.d.ts +1 -0
- package/hmr/shared/runtime/vendor-bootstrap.js +134 -0
- package/hmr/shared/runtime/vendor-bootstrap.js.map +1 -0
- package/hmr/shared/vendor/manifest-loader.d.ts +9 -0
- package/hmr/shared/vendor/manifest-loader.js +38 -0
- package/hmr/shared/vendor/manifest-loader.js.map +1 -0
- package/hmr/shared/vendor/manifest.d.ts +35 -0
- package/hmr/shared/vendor/manifest.js +811 -0
- package/hmr/shared/vendor/manifest.js.map +1 -0
- package/hmr/shared/vendor/registry.d.ts +9 -0
- package/hmr/shared/vendor/registry.js +62 -0
- package/hmr/shared/vendor/registry.js.map +1 -0
- package/hmr/vendor-bootstrap.d.ts +3 -0
- package/hmr/vendor-bootstrap.js +32 -0
- package/hmr/vendor-bootstrap.js.map +1 -0
- package/{dist/index.d.ts → index.d.ts} +2 -0
- package/index.js +19 -0
- package/index.js.map +1 -0
- package/package.json +42 -30
- package/{dist/polyfills → polyfills}/mdn-data-at-rules.js +1 -0
- package/polyfills/mdn-data-at-rules.js.map +1 -0
- package/{dist/polyfills → polyfills}/mdn-data-properties.js +1 -0
- package/polyfills/mdn-data-properties.js.map +1 -0
- package/{dist/polyfills → polyfills}/mdn-data-syntaxes.js +1 -0
- package/polyfills/mdn-data-syntaxes.js.map +1 -0
- package/{dist/polyfills → polyfills}/module.js +1 -0
- package/polyfills/module.js.map +1 -0
- package/runtime/core-aliases-early.d.ts +1 -0
- package/runtime/core-aliases-early.js +334 -0
- package/runtime/core-aliases-early.js.map +1 -0
- package/shims/angular-animations-stub.d.ts +68 -0
- package/shims/angular-animations-stub.js +140 -0
- package/shims/angular-animations-stub.js.map +1 -0
- package/shims/node-module.d.ts +5 -0
- package/shims/node-module.js +13 -0
- package/shims/node-module.js.map +1 -0
- package/{dist/shims → shims}/react-reconciler-constants.js +2 -1
- package/shims/react-reconciler-constants.js.map +1 -0
- package/{dist/shims → shims}/react-reconciler.js +1 -0
- package/shims/react-reconciler.js.map +1 -0
- package/{dist/shims → shims}/set-value.js +5 -1
- package/shims/set-value.js.map +1 -0
- package/transformers/NativeClass/index.d.ts +2 -0
- package/transformers/NativeClass/index.js +222 -0
- package/transformers/NativeClass/index.js.map +1 -0
- package/dist/configuration/angular.js +0 -30
- package/dist/configuration/base.d.ts +0 -13
- package/dist/configuration/base.js +0 -228
- package/dist/configuration/old-without-merge-base.d.ts +0 -13
- package/dist/configuration/old-without-merge-base.js +0 -249
- package/dist/configuration/vue.js +0 -45
- package/dist/helpers/css-tree.js +0 -21
- package/dist/helpers/flavor.js +0 -40
- package/dist/helpers/global-defines.d.ts +0 -14
- package/dist/helpers/global-defines.js +0 -18
- package/dist/helpers/main-entry.d.ts +0 -5
- package/dist/helpers/main-entry.js +0 -75
- package/dist/helpers/ns-cli-plugins.d.ts +0 -17
- package/dist/helpers/ns-cli-plugins.js +0 -128
- package/dist/helpers/package-platform-aliases.d.ts +0 -4
- package/dist/helpers/resolver.d.ts +0 -4
- package/dist/helpers/ts-config-paths.d.ts +0 -4
- package/dist/helpers/utils.js +0 -94
- package/dist/hmr/hmr-angular.d.ts +0 -1
- package/dist/hmr/hmr-angular.js +0 -34
- package/dist/hmr/hmr-bridge.d.ts +0 -18
- package/dist/hmr/hmr-bridge.js +0 -154
- package/dist/hmr/hmr-client.d.ts +0 -5
- package/dist/hmr/hmr-client.js +0 -93
- package/dist/hmr/hmr-server.d.ts +0 -20
- package/dist/hmr/hmr-server.js +0 -179
- package/dist/index.js +0 -5
- package/dist/transformers/NativeClass/index.d.ts +0 -5
- package/dist/transformers/NativeClass/index.js +0 -46
- /package/{dist/helpers → helpers}/commonjs-plugins.d.ts +0 -0
- /package/{dist/helpers → helpers}/css-tree.d.ts +0 -0
- /package/{dist/helpers → helpers}/dynamic-import-plugin.d.ts +0 -0
- /package/{dist/helpers → helpers}/module-resolution.d.ts +0 -0
- /package/{dist/helpers → helpers}/nativescript-package-resolver.d.ts +0 -0
- /package/{dist/helpers → helpers}/project.d.ts +0 -0
- /package/{dist/helpers → helpers}/workers.d.ts +0 -0
- /package/{dist/polyfills → polyfills}/mdn-data-at-rules.d.ts +0 -0
- /package/{dist/polyfills → polyfills}/mdn-data-properties.d.ts +0 -0
- /package/{dist/polyfills → polyfills}/mdn-data-syntaxes.d.ts +0 -0
- /package/{dist/polyfills → polyfills}/module.d.ts +0 -0
- /package/{dist/shims → shims}/react-reconciler-constants.d.ts +0 -0
- /package/{dist/shims → shims}/react-reconciler.d.ts +0 -0
- /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":"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"}
|
|
@@ -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
|
|
2
|
-
import fs from
|
|
3
|
-
import { getProjectRootPath } from
|
|
4
|
-
import { findPackageInNodeModules } from
|
|
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:
|
|
11
|
-
enforce:
|
|
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(
|
|
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] +
|
|
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,
|
|
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,
|
|
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:
|
|
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:
|
|
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:
|
|
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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"}
|
|
@@ -1,53 +1,48 @@
|
|
|
1
|
-
import path from
|
|
2
|
-
import fs from
|
|
3
|
-
import { findPackageInNodeModules } from
|
|
4
|
-
import { getProjectRootPath } from
|
|
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(
|
|
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)
|
|
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 (
|
|
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,
|
|
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,
|
|
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 (
|
|
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 (
|
|
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 (
|
|
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":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,WAAW,GAAG,kBAAkB,EAAE,CAAC;AAEzC,MAAM,UAAU,sBAAsB,CAAC,IAAoG;IAC1I,uEAAuE;IACvE,MAAM,WAAW,GAAG,CAAC,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,gCAAgC,CAAC,CAAC;IAC5G,OAAO;QACN,IAAI,EAAE,2BAA2B;QACjC,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE;YACnB,yCAAyC;YACzC,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC9B,OAAO,EAAE,CAAC,CAAC,+BAA+B;YAC3C,CAAC;YAED,uDAAuD;YACvD,yDAAyD;YACzD,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;gBACrD,OAAO,EAAE,CAAC,CAAC,mCAAmC;YAC/C,CAAC;YAED,sEAAsE;YACtE,MAAM,WAAW,GAAG,EAAE,CAAC;YACvB,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,IAAI,CAAC,QAAQ,KAAK,CAAC,CAAC;gCAChF,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;oCACjC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;wCAClB,OAAO,CAAC,GAAG,CAAC,qBAAqB,WAAW,OAAO,SAAS,IAAI,IAAI,CAAC,QAAQ,qBAAqB,CAAC,CAAC;oCACrG,CAAC;oCACD,OAAO,YAAY,CAAC;gCACrB,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,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;wCAClB,OAAO,CAAC,GAAG,CAAC,qBAAqB,WAAW,OAAO,SAAS,qBAAqB,CAAC,CAAC;oCACpF,CAAC;oCACD,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,IAAI,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC;gCAClF,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;oCACjC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;wCAClB,OAAO,CAAC,GAAG,CAAC,qBAAqB,WAAW,OAAO,QAAQ,IAAI,IAAI,CAAC,QAAQ,GAAG,GAAG,iBAAiB,CAAC,CAAC;oCACtG,CAAC;oCACD,OAAO,YAAY,CAAC;gCACrB,CAAC;gCAED,uDAAuD;gCACvD,2EAA2E;4BAC5E,CAAC;wBACF,CAAC;oBACF,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACZ,uCAAuC;oBACxC,CAAC;gBACF,CAAC;YACF,CAAC;YAED,0CAA0C;YAC1C,OAAO,EAAE,CAAC;QACX,CAAC;KACD,CAAC;AACH,CAAC"}
|
|
@@ -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 {};
|