@vc-shell/migrate 2.0.0-alpha.16 → 2.0.0-alpha.18
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/CHANGELOG.md +21 -0
- package/dist/cli.js +3 -0
- package/dist/cli.js.map +1 -1
- package/dist/runner.d.ts +2 -0
- package/dist/runner.js +232 -18
- package/dist/runner.js.map +1 -1
- package/dist/transforms/banner-variants.js +1 -1
- package/dist/transforms/banner-variants.js.map +1 -1
- package/dist/transforms/blade-props-simplification.js +44 -32
- package/dist/transforms/blade-props-simplification.js.map +1 -1
- package/dist/transforms/define-app-module.js +99 -27
- package/dist/transforms/define-app-module.js.map +1 -1
- package/dist/transforms/define-options-to-blade.d.ts +4 -0
- package/dist/transforms/define-options-to-blade.js +36 -0
- package/dist/transforms/define-options-to-blade.js.map +1 -0
- package/dist/transforms/icon-container-prop.js +1 -4
- package/dist/transforms/icon-container-prop.js.map +1 -1
- package/dist/transforms/manual-migration-audit.d.ts +4 -0
- package/dist/transforms/manual-migration-audit.js +39 -0
- package/dist/transforms/manual-migration-audit.js.map +1 -0
- package/dist/transforms/menu-group-config.js.map +1 -1
- package/dist/transforms/registry.js +24 -2
- package/dist/transforms/registry.js.map +1 -1
- package/dist/transforms/scss-safe-use.js.map +1 -1
- package/dist/transforms/shims-to-globals.js +1 -5
- package/dist/transforms/shims-to-globals.js.map +1 -1
- package/dist/transforms/types.d.ts +9 -0
- package/dist/transforms/use-blade-migration.js.map +1 -1
- package/dist/transforms/use-data-table-sort.d.ts +4 -0
- package/dist/transforms/use-data-table-sort.js +138 -0
- package/dist/transforms/use-data-table-sort.js.map +1 -0
- package/dist/transforms/widgets-migration.js.map +1 -1
- package/dist/utils/import-dedup.d.ts +13 -0
- package/dist/utils/import-dedup.js +184 -0
- package/dist/utils/import-dedup.js.map +1 -0
- package/dist/utils/template-transform.js.map +1 -1
- package/dist/utils/test-helpers.js.map +1 -1
- package/dist/utils/vue-sfc-wrapper.js +10 -7
- package/dist/utils/vue-sfc-wrapper.js.map +1 -1
- package/dist/version-detector.js +1 -3
- package/dist/version-detector.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { wrapForSFC } from "../utils/vue-sfc-wrapper.js";
|
|
2
|
+
/**
|
|
3
|
+
* Replaces manual sortField/sortOrder/sortExpression boilerplate with useDataTableSort().
|
|
4
|
+
*
|
|
5
|
+
* Before:
|
|
6
|
+
* const sortField = ref("createdDate");
|
|
7
|
+
* const sortOrder = ref<1 | -1 | 0>(-1);
|
|
8
|
+
* const sortExpression = computed(() => { ... });
|
|
9
|
+
*
|
|
10
|
+
* After:
|
|
11
|
+
* const { sortField, sortOrder, sortExpression } = useDataTableSort({
|
|
12
|
+
* initialField: "createdDate",
|
|
13
|
+
* initialDirection: "DESC",
|
|
14
|
+
* });
|
|
15
|
+
*/
|
|
16
|
+
function orderToDirection(order) {
|
|
17
|
+
if (order === 1)
|
|
18
|
+
return "ASC";
|
|
19
|
+
if (order === -1)
|
|
20
|
+
return "DESC";
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
function coreTransform(fileInfo, api, _options) {
|
|
24
|
+
const j = api.jscodeshift;
|
|
25
|
+
const root = j(fileInfo.source);
|
|
26
|
+
// Find `const sortField = ref(...)` — must be a ref() call
|
|
27
|
+
const sortFieldDecl = root.find(j.VariableDeclarator, {
|
|
28
|
+
id: { type: "Identifier", name: "sortField" },
|
|
29
|
+
init: { type: "CallExpression", callee: { name: "ref" } },
|
|
30
|
+
});
|
|
31
|
+
if (sortFieldDecl.size() === 0)
|
|
32
|
+
return null;
|
|
33
|
+
// Find `const sortOrder = ref(...)` — must be a ref() call
|
|
34
|
+
const sortOrderDecl = root.find(j.VariableDeclarator, {
|
|
35
|
+
id: { type: "Identifier", name: "sortOrder" },
|
|
36
|
+
init: { type: "CallExpression", callee: { name: "ref" } },
|
|
37
|
+
});
|
|
38
|
+
if (sortOrderDecl.size() === 0)
|
|
39
|
+
return null;
|
|
40
|
+
// Find `const sortExpression = computed(...)` — must be a computed() call
|
|
41
|
+
const sortExprDecl = root.find(j.VariableDeclarator, {
|
|
42
|
+
id: { type: "Identifier", name: "sortExpression" },
|
|
43
|
+
init: { type: "CallExpression", callee: { name: "computed" } },
|
|
44
|
+
});
|
|
45
|
+
if (sortExprDecl.size() === 0)
|
|
46
|
+
return null;
|
|
47
|
+
// Extract initial field value from sortField ref("...")
|
|
48
|
+
let initialField;
|
|
49
|
+
const sortFieldInit = sortFieldDecl.get().node.init;
|
|
50
|
+
if (sortFieldInit?.type === "CallExpression" && sortFieldInit.arguments.length > 0) {
|
|
51
|
+
const arg = sortFieldInit.arguments[0];
|
|
52
|
+
if (arg.type === "StringLiteral" || (arg.type === "Literal" && typeof arg.value === "string")) {
|
|
53
|
+
initialField = arg.value;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
// Extract initial order value from sortOrder ref(...)
|
|
57
|
+
let initialDirection;
|
|
58
|
+
const sortOrderInit = sortOrderDecl.get().node.init;
|
|
59
|
+
if (sortOrderInit?.type === "CallExpression" && sortOrderInit.arguments.length > 0) {
|
|
60
|
+
const arg = sortOrderInit.arguments[0];
|
|
61
|
+
if (arg.type === "NumericLiteral" || (arg.type === "Literal" && typeof arg.value === "number")) {
|
|
62
|
+
initialDirection = orderToDirection(arg.value);
|
|
63
|
+
}
|
|
64
|
+
// Handle UnaryExpression for -1
|
|
65
|
+
if (arg.type === "UnaryExpression" && arg.operator === "-") {
|
|
66
|
+
const argArg = arg.argument;
|
|
67
|
+
if ((argArg.type === "NumericLiteral" || (argArg.type === "Literal" && typeof argArg.value === "number")) &&
|
|
68
|
+
argArg.value === 1) {
|
|
69
|
+
initialDirection = "DESC";
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
// Build useDataTableSort options object
|
|
74
|
+
const optionProperties = [];
|
|
75
|
+
if (initialField) {
|
|
76
|
+
optionProperties.push(j.objectProperty(j.identifier("initialField"), j.stringLiteral(initialField)));
|
|
77
|
+
}
|
|
78
|
+
if (initialDirection) {
|
|
79
|
+
optionProperties.push(j.objectProperty(j.identifier("initialDirection"), j.stringLiteral(initialDirection)));
|
|
80
|
+
}
|
|
81
|
+
// Build: const { sortField, sortOrder, sortExpression } = useDataTableSort({ ... })
|
|
82
|
+
const destructured = j.variableDeclaration("const", [
|
|
83
|
+
j.variableDeclarator(j.objectPattern([
|
|
84
|
+
j.objectProperty.from({ key: j.identifier("sortField"), value: j.identifier("sortField"), shorthand: true }),
|
|
85
|
+
j.objectProperty.from({ key: j.identifier("sortOrder"), value: j.identifier("sortOrder"), shorthand: true }),
|
|
86
|
+
j.objectProperty.from({
|
|
87
|
+
key: j.identifier("sortExpression"),
|
|
88
|
+
value: j.identifier("sortExpression"),
|
|
89
|
+
shorthand: true,
|
|
90
|
+
}),
|
|
91
|
+
]), j.callExpression(j.identifier("useDataTableSort"), optionProperties.length > 0 ? [j.objectExpression(optionProperties)] : [])),
|
|
92
|
+
]);
|
|
93
|
+
// Replace sortField declaration's parent VariableDeclaration with the new destructured call
|
|
94
|
+
const sortFieldParent = sortFieldDecl.closest(j.VariableDeclaration);
|
|
95
|
+
sortFieldParent.replaceWith(destructured);
|
|
96
|
+
// Remove sortOrder and sortExpression declarations
|
|
97
|
+
sortOrderDecl.closest(j.VariableDeclaration).remove();
|
|
98
|
+
sortExprDecl.closest(j.VariableDeclaration).remove();
|
|
99
|
+
// Add useDataTableSort to @vc-shell/framework import
|
|
100
|
+
const frameworkImports = root.find(j.ImportDeclaration, {
|
|
101
|
+
source: { value: "@vc-shell/framework" },
|
|
102
|
+
});
|
|
103
|
+
if (frameworkImports.size() > 0) {
|
|
104
|
+
const importDecl = frameworkImports.get();
|
|
105
|
+
const specifiers = importDecl.node.specifiers || [];
|
|
106
|
+
const alreadyImported = specifiers.some((s) => s.type === "ImportSpecifier" && s.imported?.name === "useDataTableSort");
|
|
107
|
+
if (!alreadyImported) {
|
|
108
|
+
specifiers.push(j.importSpecifier(j.identifier("useDataTableSort")));
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
// Create new import
|
|
113
|
+
const newImport = j.importDeclaration([j.importSpecifier(j.identifier("useDataTableSort"))], j.stringLiteral("@vc-shell/framework"));
|
|
114
|
+
const body = root.find(j.Program).get("body");
|
|
115
|
+
body.unshift(newImport);
|
|
116
|
+
}
|
|
117
|
+
// Clean up unused ref/computed from vue import
|
|
118
|
+
const vueImports = root.find(j.ImportDeclaration, {
|
|
119
|
+
source: { value: "vue" },
|
|
120
|
+
});
|
|
121
|
+
if (vueImports.size() > 0) {
|
|
122
|
+
for (const name of ["ref", "computed"]) {
|
|
123
|
+
// Check if name is still used anywhere besides the import
|
|
124
|
+
const usages = root.find(j.Identifier, { name }).filter((path) => {
|
|
125
|
+
// Skip import specifiers
|
|
126
|
+
return path.parent.node.type !== "ImportSpecifier";
|
|
127
|
+
});
|
|
128
|
+
if (usages.size() === 0) {
|
|
129
|
+
// Remove from vue import
|
|
130
|
+
vueImports.find(j.ImportSpecifier, { imported: { name } }).remove();
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return root.toSource();
|
|
135
|
+
}
|
|
136
|
+
export default wrapForSFC(coreTransform);
|
|
137
|
+
export const parser = "tsx";
|
|
138
|
+
//# sourceMappingURL=use-data-table-sort.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-data-table-sort.js","sourceRoot":"","sources":["../../src/transforms/use-data-table-sort.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widgets-migration.js","sourceRoot":"","sources":["../../src/transforms/widgets-migration.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAGzD,MAAM,UAAU,GAA2B;IACzC,UAAU,EAAE,iBAAiB;CAC9B,CAAC;AAEF,SAAS,aAAa,CAAC,QAAkB,EAAE,GAAQ,EAAE,QAAiB;IACpE,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC;IAC1B,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEhC,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,EAAE;QACtD,MAAM,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE;KACzC,CAAC,CAAC;IACH,IAAI,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE/C,MAAM,OAAO,GAAwC,EAAE,CAAC;IACxD,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC,CAAC,CAAC;IACH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACxD,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,0EAA0E;IAC1E,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"widgets-migration.js","sourceRoot":"","sources":["../../src/transforms/widgets-migration.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAGzD,MAAM,UAAU,GAA2B;IACzC,UAAU,EAAE,iBAAiB;CAC9B,CAAC;AAEF,SAAS,aAAa,CAAC,QAAkB,EAAE,GAAQ,EAAE,QAAiB;IACpE,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,CAAC;IAC1B,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEhC,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,iBAAiB,EAAE;QACtD,MAAM,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE;KACzC,CAAC,CAAC;IACH,IAAI,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE/C,MAAM,OAAO,GAAwC,EAAE,CAAC;IACxD,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC,CAAC,CAAC;IACH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACxD,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,0EAA0E;IAC1E,MAAM,WAAW,GACf,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC;QAC9D,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACnE,IAAI,WAAW,EAAE,CAAC;QAChB,GAAG,CAAC,MAAM,CACR,GAAG,QAAQ,CAAC,IAAI,0CAA0C;YACxD,8DAA8D,CACjE,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;AACzB,CAAC;AAED,eAAe,UAAU,CAAC,aAAa,CAAc,CAAC;AACtD,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { JSCodeshift } from "jscodeshift";
|
|
2
|
+
/**
|
|
3
|
+
* Remove duplicate import specifiers within each ImportDeclaration,
|
|
4
|
+
* and merge specifiers from duplicate ImportDeclarations with the same source.
|
|
5
|
+
*
|
|
6
|
+
* Must receive the same jscodeshift instance (with parser) that the transform used.
|
|
7
|
+
*
|
|
8
|
+
* Strategy:
|
|
9
|
+
* - Phase 1: Pure text/regex deduplication (handles AST-unparseable duplicates).
|
|
10
|
+
* - Phase 2: AST pass via jscodeshift for any remaining cross-declaration merges
|
|
11
|
+
* and to normalise output formatting when changes were made.
|
|
12
|
+
*/
|
|
13
|
+
export declare function deduplicateImportSpecifiers(source: string, j: JSCodeshift): string;
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
/** Regex that matches a full import statement (possibly spanning multiple lines via line continuation). */
|
|
2
|
+
const IMPORT_LINE_RE = /^(\s*import\s+(?:[^'"]*?\s+from\s+)?['"][^'"]+['"]\s*;?\s*)$/;
|
|
3
|
+
/** Extracts the source module string from an import statement line. */
|
|
4
|
+
function extractSource(importLine) {
|
|
5
|
+
const m = importLine.match(/from\s+['"]([^'"]+)['"]/);
|
|
6
|
+
return m ? m[1] : null;
|
|
7
|
+
}
|
|
8
|
+
/** Extracts named specifiers from `{ foo, bar as baz }` portion. Returns null if no named block. */
|
|
9
|
+
function extractNamedBlock(importLine) {
|
|
10
|
+
const m = importLine.match(/^(import\s+(?:[^{]*?)?)\{([^}]*)\}([\s\S]*)$/);
|
|
11
|
+
if (!m)
|
|
12
|
+
return null;
|
|
13
|
+
return { before: m[1], inner: m[2], after: m[3] };
|
|
14
|
+
}
|
|
15
|
+
/** Parses named specifiers string into array of trimmed specifier strings. */
|
|
16
|
+
function parseSpecifiers(inner) {
|
|
17
|
+
return inner
|
|
18
|
+
.split(",")
|
|
19
|
+
.map((s) => s.trim())
|
|
20
|
+
.filter(Boolean);
|
|
21
|
+
}
|
|
22
|
+
/** Returns the local binding name for a specifier like "foo" or "foo as bar". */
|
|
23
|
+
function localName(spec) {
|
|
24
|
+
const asMatch = spec.match(/\bas\s+(\w+)$/);
|
|
25
|
+
return asMatch ? asMatch[1] : spec.trim();
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Pure text/regex based deduplication of import specifiers.
|
|
29
|
+
*
|
|
30
|
+
* Handles two cases:
|
|
31
|
+
* 1. Duplicate specifiers within a single import declaration.
|
|
32
|
+
* 2. Multiple import declarations from the same source module — merges them
|
|
33
|
+
* into the first declaration and removes subsequent ones.
|
|
34
|
+
*
|
|
35
|
+
* Imports from different sources are left completely independent (even if they
|
|
36
|
+
* bind the same local name, which is a real semantic conflict — not our problem).
|
|
37
|
+
*
|
|
38
|
+
* Returns the original source string unchanged if no modifications are needed.
|
|
39
|
+
*/
|
|
40
|
+
function textDedup(source) {
|
|
41
|
+
const lines = source.split("\n");
|
|
42
|
+
const bySource = new Map();
|
|
43
|
+
const deletedLines = new Set();
|
|
44
|
+
const replacements = new Map(); // line index → replacement text
|
|
45
|
+
for (let i = 0; i < lines.length; i++) {
|
|
46
|
+
const line = lines[i];
|
|
47
|
+
if (!/^\s*import\s/.test(line))
|
|
48
|
+
continue;
|
|
49
|
+
const src = extractSource(line);
|
|
50
|
+
if (src === null)
|
|
51
|
+
continue; // side-effect import or malformed
|
|
52
|
+
const named = extractNamedBlock(line);
|
|
53
|
+
if (!bySource.has(src)) {
|
|
54
|
+
// First occurrence
|
|
55
|
+
const record = {
|
|
56
|
+
lineIndex: i,
|
|
57
|
+
specifiers: named ? parseSpecifiers(named.inner) : [],
|
|
58
|
+
originalLine: line,
|
|
59
|
+
before: named?.before ?? "",
|
|
60
|
+
after: named?.after ?? "",
|
|
61
|
+
hasNamedBlock: named !== null,
|
|
62
|
+
};
|
|
63
|
+
// Deduplicate within the first occurrence itself
|
|
64
|
+
if (named) {
|
|
65
|
+
const seen = new Set();
|
|
66
|
+
const deduped = [];
|
|
67
|
+
for (const spec of record.specifiers) {
|
|
68
|
+
const name = localName(spec);
|
|
69
|
+
if (!seen.has(name)) {
|
|
70
|
+
seen.add(name);
|
|
71
|
+
deduped.push(spec);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
if (deduped.length !== record.specifiers.length) {
|
|
75
|
+
record.specifiers = deduped;
|
|
76
|
+
replacements.set(i, `${record.before}{ ${deduped.join(", ")} }${record.after}`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
bySource.set(src, record);
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
// Duplicate source — merge into existing record
|
|
83
|
+
const record = bySource.get(src);
|
|
84
|
+
const existingNames = new Set(record.specifiers.map(localName));
|
|
85
|
+
if (named) {
|
|
86
|
+
const incoming = parseSpecifiers(named.inner);
|
|
87
|
+
let added = false;
|
|
88
|
+
for (const spec of incoming) {
|
|
89
|
+
const name = localName(spec);
|
|
90
|
+
if (!existingNames.has(name)) {
|
|
91
|
+
existingNames.add(name);
|
|
92
|
+
record.specifiers.push(spec);
|
|
93
|
+
added = true;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
if (added || incoming.length > 0) {
|
|
97
|
+
// Rebuild the first occurrence line with merged specifiers
|
|
98
|
+
replacements.set(record.lineIndex, `${record.before}{ ${record.specifiers.join(", ")} }${record.after}`);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
// Delete this duplicate declaration line
|
|
102
|
+
deletedLines.add(i);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
if (replacements.size === 0 && deletedLines.size === 0) {
|
|
106
|
+
return { result: source, modified: false };
|
|
107
|
+
}
|
|
108
|
+
const resultLines = [];
|
|
109
|
+
for (let i = 0; i < lines.length; i++) {
|
|
110
|
+
if (deletedLines.has(i))
|
|
111
|
+
continue;
|
|
112
|
+
if (replacements.has(i)) {
|
|
113
|
+
resultLines.push(replacements.get(i));
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
resultLines.push(lines[i]);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return { result: resultLines.join("\n"), modified: true };
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Remove duplicate import specifiers within each ImportDeclaration,
|
|
123
|
+
* and merge specifiers from duplicate ImportDeclarations with the same source.
|
|
124
|
+
*
|
|
125
|
+
* Must receive the same jscodeshift instance (with parser) that the transform used.
|
|
126
|
+
*
|
|
127
|
+
* Strategy:
|
|
128
|
+
* - Phase 1: Pure text/regex deduplication (handles AST-unparseable duplicates).
|
|
129
|
+
* - Phase 2: AST pass via jscodeshift for any remaining cross-declaration merges
|
|
130
|
+
* and to normalise output formatting when changes were made.
|
|
131
|
+
*/
|
|
132
|
+
export function deduplicateImportSpecifiers(source, j) {
|
|
133
|
+
// Phase 1: text-level dedup (handles syntax-invalid inputs that parsers reject)
|
|
134
|
+
const { result: textResult, modified: textModified } = textDedup(source);
|
|
135
|
+
if (!textModified) {
|
|
136
|
+
// Source was already clean — return as-is (preserves exact formatting)
|
|
137
|
+
return source;
|
|
138
|
+
}
|
|
139
|
+
// Phase 2: AST pass to merge any remaining same-source declarations and
|
|
140
|
+
// deduplicate after merge (in case Phase 1 missed anything across non-adjacent lines)
|
|
141
|
+
try {
|
|
142
|
+
const root = j(textResult);
|
|
143
|
+
let astModified = false;
|
|
144
|
+
const bySource = new Map();
|
|
145
|
+
root.find(j.ImportDeclaration).forEach((path) => {
|
|
146
|
+
const src = path.node.source.value;
|
|
147
|
+
if (!bySource.has(src))
|
|
148
|
+
bySource.set(src, []);
|
|
149
|
+
bySource.get(src).push(path);
|
|
150
|
+
});
|
|
151
|
+
for (const [, paths] of bySource) {
|
|
152
|
+
if (paths.length <= 1)
|
|
153
|
+
continue;
|
|
154
|
+
const target = paths[0];
|
|
155
|
+
for (let i = 1; i < paths.length; i++) {
|
|
156
|
+
const specs = paths[i].node.specifiers ?? [];
|
|
157
|
+
target.node.specifiers = [...(target.node.specifiers ?? []), ...specs];
|
|
158
|
+
j(paths[i]).remove();
|
|
159
|
+
astModified = true;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
root.find(j.ImportDeclaration).forEach((path) => {
|
|
163
|
+
const seen = new Set();
|
|
164
|
+
const original = path.node.specifiers?.length ?? 0;
|
|
165
|
+
path.node.specifiers = path.node.specifiers?.filter((spec) => {
|
|
166
|
+
if (spec.type !== "ImportSpecifier")
|
|
167
|
+
return true;
|
|
168
|
+
const name = spec.imported.type === "Identifier" ? spec.imported.name : "";
|
|
169
|
+
if (seen.has(name))
|
|
170
|
+
return false;
|
|
171
|
+
seen.add(name);
|
|
172
|
+
return true;
|
|
173
|
+
});
|
|
174
|
+
if ((path.node.specifiers?.length ?? 0) < original)
|
|
175
|
+
astModified = true;
|
|
176
|
+
});
|
|
177
|
+
return astModified ? root.toSource() : textResult;
|
|
178
|
+
}
|
|
179
|
+
catch {
|
|
180
|
+
// If AST parse still fails for any reason, return the text-deduplicated result
|
|
181
|
+
return textResult;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=import-dedup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import-dedup.js","sourceRoot":"","sources":["../../src/utils/import-dedup.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"template-transform.js","sourceRoot":"","sources":["../../src/utils/template-transform.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,MAAM,UAAU,uBAAuB,
|
|
1
|
+
{"version":3,"file":"template-transform.js","sourceRoot":"","sources":["../../src/utils/template-transform.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAgB,EAAE,OAAe,EAAE,iBAA2B;IACpG,4CAA4C;IAC5C,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,KAAK,OAAO,uBAAuB,EAAE,IAAI,CAAC,CAAC;IAEvE,OAAO,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QAC9D,IAAI,OAAO,GAAG,KAAe,CAAC;QAC9B,KAAK,MAAM,OAAO,IAAI,iBAAiB,EAAE,CAAC;YACxC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACzC,CAAC;QACD,wEAAwE;QACxE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACjD,IAAI,OAAO;YAAE,OAAO,GAAG,GAAG,GAAG,OAAO,CAAC;QACrC,OAAO,GAAG,IAAI,GAAG,OAAO,GAAG,KAAK,EAAE,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kCAAkC,CAAC,QAAgB;IACjE,MAAM,QAAQ,GAAG;QACf,uBAAuB;QACvB,uBAAuB;QACvB,mCAAmC;QACnC,qCAAqC;QACrC,yCAAyC;KAC1C,CAAC;IAEF,OAAO,uBAAuB,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-helpers.js","sourceRoot":"","sources":["../../src/utils/test-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,WAAW,MAAM,aAAa,CAAC;AAGtC;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,SAAoB,EACpB,KAAuC,EACvC,UAAmC,EAAE;IAErC,MAAM,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG;QACV,WAAW,EAAE,CAAC;QACd,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;QACf,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC;KACjB,CAAC;IACF,OAAO,SAAS,
|
|
1
|
+
{"version":3,"file":"test-helpers.js","sourceRoot":"","sources":["../../src/utils/test-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,WAAW,MAAM,aAAa,CAAC;AAGtC;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,SAAoB,EACpB,KAAuC,EACvC,UAAmC,EAAE;IAErC,MAAM,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG;QACV,WAAW,EAAE,CAAC;QACd,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;QACf,MAAM,EAAE,GAAG,EAAE,GAAE,CAAC;KACjB,CAAC;IACF,OAAO,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,GAAU,EAAE,EAAE,GAAG,OAAO,EAAS,CAAC,CAAC;AAClG,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CACvC,SAAoB,EACpB,KAAuC,EACvC,UAAmC,EAAE;IAErC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,CAAC,GAAG,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG;QACV,WAAW,EAAE,CAAC;QACd,CAAC;QACD,KAAK,EAAE,GAAG,EAAE,GAAE,CAAC;QACf,MAAM,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;KAC3C,CAAC;IACF,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,GAAU,EAAE,EAAE,GAAG,OAAO,EAAS,CAAC,CAAC;IACxG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,SAAoB,EAAE,WAAmB,EAAE,WAAmB,EAAE,MAAc,IAAI;IAClH,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,WAAW,UAAU,GAAG,EAAE,CAAC,CAAC;IACnE,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,WAAW,WAAW,GAAG,EAAE,CAAC,CAAC;IACrE,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAErE,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAE7E,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,EAAE,CAAC;IAC5D,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,KAAK,QAAQ,EAAE,CAAC;AAC1D,CAAC"}
|
|
@@ -20,9 +20,7 @@ export function wrapForSFC(coreTransform) {
|
|
|
20
20
|
// Offset-based splicing — safe with $ characters
|
|
21
21
|
const start = scriptBlock.loc.start.offset;
|
|
22
22
|
const end = scriptBlock.loc.end.offset;
|
|
23
|
-
return
|
|
24
|
-
scriptResult +
|
|
25
|
-
fileInfo.source.substring(end));
|
|
23
|
+
return fileInfo.source.substring(0, start) + scriptResult + fileInfo.source.substring(end);
|
|
26
24
|
};
|
|
27
25
|
}
|
|
28
26
|
/**
|
|
@@ -41,9 +39,7 @@ export function wrapForSFCTemplate(templateTransform) {
|
|
|
41
39
|
return null;
|
|
42
40
|
const start = descriptor.template.loc.start.offset;
|
|
43
41
|
const end = descriptor.template.loc.end.offset;
|
|
44
|
-
return
|
|
45
|
-
result.content +
|
|
46
|
-
fileInfo.source.substring(end));
|
|
42
|
+
return fileInfo.source.substring(0, start) + result.content + fileInfo.source.substring(end);
|
|
47
43
|
};
|
|
48
44
|
}
|
|
49
45
|
/**
|
|
@@ -52,7 +48,14 @@ export function wrapForSFCTemplate(templateTransform) {
|
|
|
52
48
|
*/
|
|
53
49
|
export function wrapForSFCBoth(scriptTransform, templateTransform) {
|
|
54
50
|
return (fileInfo, api, options) => {
|
|
55
|
-
|
|
51
|
+
let afterScript = null;
|
|
52
|
+
try {
|
|
53
|
+
afterScript = wrapForSFC(scriptTransform)(fileInfo, api, options);
|
|
54
|
+
}
|
|
55
|
+
catch (err) {
|
|
56
|
+
api.report(`${fileInfo.path}: Script transform failed (${err instanceof Error ? err.message : String(err)}), ` +
|
|
57
|
+
`attempting template-only transform`);
|
|
58
|
+
}
|
|
56
59
|
const source = afterScript ?? fileInfo.source;
|
|
57
60
|
const afterTemplate = wrapForSFCTemplate(templateTransform)({ ...fileInfo, source }, api, options);
|
|
58
61
|
return afterTemplate ?? afterScript;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vue-sfc-wrapper.js","sourceRoot":"","sources":["../../src/utils/vue-sfc-wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGtD;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,aAAwB;IACjD,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;QAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACpC,OAAO,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC;QACD,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9E,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,IAAI,UAAU,CAAC,MAAM,CAAC;QAChE,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC;QAE9B,MAAM,YAAY,GAAG,aAAa,
|
|
1
|
+
{"version":3,"file":"vue-sfc-wrapper.js","sourceRoot":"","sources":["../../src/utils/vue-sfc-wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGtD;;;;;GAKG;AACH,MAAM,UAAU,UAAU,CAAC,aAAwB;IACjD,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;QAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACpC,OAAO,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC;QACD,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9E,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,IAAI,UAAU,CAAC,MAAM,CAAC;QAChE,IAAI,CAAC,WAAW;YAAE,OAAO,IAAI,CAAC;QAE9B,MAAM,YAAY,GAAG,aAAa,CAAC,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAC/F,IAAI,YAAY,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QAEtC,iDAAiD;QACjD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;QAC3C,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;QACvC,OAAO,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7F,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,iBAAgG;IAEhG,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QACjD,MAAM,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9E,IAAI,CAAC,UAAU,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAEtC,MAAM,MAAM,GAAG,iBAAiB,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC7E,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAEjC,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;QACnD,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;QAC/C,OAAO,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC/F,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,eAA0B,EAC1B,iBAAgG;IAEhG,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;QAChC,IAAI,WAAW,GAAkB,IAAI,CAAC;QACtC,IAAI,CAAC;YACH,WAAW,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QACpE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,MAAM,CACR,GAAG,QAAQ,CAAC,IAAI,8BAA8B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK;gBACjG,oCAAoC,CACvC,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,WAAW,IAAI,QAAQ,CAAC,MAAM,CAAC;QAC9C,MAAM,aAAa,GAAG,kBAAkB,CAAC,iBAAiB,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QACnG,OAAO,aAAa,IAAI,WAAW,CAAC;IACtC,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/version-detector.js
CHANGED
|
@@ -7,9 +7,7 @@ export function detectFrameworkVersion(cwd) {
|
|
|
7
7
|
if (!existsSync(pkgPath))
|
|
8
8
|
return null;
|
|
9
9
|
const pkg = JSON.parse(readFileSync(pkgPath, "utf-8"));
|
|
10
|
-
const version = pkg.dependencies?.[FRAMEWORK_PKG] ??
|
|
11
|
-
pkg.devDependencies?.[FRAMEWORK_PKG] ??
|
|
12
|
-
pkg.peerDependencies?.[FRAMEWORK_PKG];
|
|
10
|
+
const version = pkg.dependencies?.[FRAMEWORK_PKG] ?? pkg.devDependencies?.[FRAMEWORK_PKG] ?? pkg.peerDependencies?.[FRAMEWORK_PKG];
|
|
13
11
|
if (!version)
|
|
14
12
|
return null;
|
|
15
13
|
if (version.startsWith("workspace:")) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version-detector.js","sourceRoot":"","sources":["../src/version-detector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,MAAM,aAAa,GAAG,qBAAqB,CAAC;AAE5C,MAAM,UAAU,sBAAsB,CAAC,GAAW;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAC1C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACvD,MAAM,OAAO,GACX,GAAG,CAAC,YAAY,EAAE,CAAC,aAAa,CAAC
|
|
1
|
+
{"version":3,"file":"version-detector.js","sourceRoot":"","sources":["../src/version-detector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,MAAM,aAAa,GAAG,qBAAqB,CAAC;AAE5C,MAAM,UAAU,sBAAsB,CAAC,GAAW;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAC1C,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACvD,MAAM,OAAO,GACX,GAAG,CAAC,YAAY,EAAE,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC,aAAa,CAAC,IAAI,GAAG,CAAC,gBAAgB,EAAE,CAAC,aAAa,CAAC,CAAC;IAErH,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAE1B,IAAI,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QACrC,OAAO,sBAAsB,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,mEAAmE;IACnE,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,GAAG;QAAE,OAAO,GAAG,CAAC,OAAO,CAAC;IAE5B,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvC,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1C,CAAC;AAED,SAAS,sBAAsB,CAAC,GAAW;IACzC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;IACtF,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,CAAC;IACxC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IACzD,OAAO,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC;AAC7B,CAAC"}
|