@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.
Files changed (42) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/cli.js +3 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/runner.d.ts +2 -0
  5. package/dist/runner.js +232 -18
  6. package/dist/runner.js.map +1 -1
  7. package/dist/transforms/banner-variants.js +1 -1
  8. package/dist/transforms/banner-variants.js.map +1 -1
  9. package/dist/transforms/blade-props-simplification.js +44 -32
  10. package/dist/transforms/blade-props-simplification.js.map +1 -1
  11. package/dist/transforms/define-app-module.js +99 -27
  12. package/dist/transforms/define-app-module.js.map +1 -1
  13. package/dist/transforms/define-options-to-blade.d.ts +4 -0
  14. package/dist/transforms/define-options-to-blade.js +36 -0
  15. package/dist/transforms/define-options-to-blade.js.map +1 -0
  16. package/dist/transforms/icon-container-prop.js +1 -4
  17. package/dist/transforms/icon-container-prop.js.map +1 -1
  18. package/dist/transforms/manual-migration-audit.d.ts +4 -0
  19. package/dist/transforms/manual-migration-audit.js +39 -0
  20. package/dist/transforms/manual-migration-audit.js.map +1 -0
  21. package/dist/transforms/menu-group-config.js.map +1 -1
  22. package/dist/transforms/registry.js +24 -2
  23. package/dist/transforms/registry.js.map +1 -1
  24. package/dist/transforms/scss-safe-use.js.map +1 -1
  25. package/dist/transforms/shims-to-globals.js +1 -5
  26. package/dist/transforms/shims-to-globals.js.map +1 -1
  27. package/dist/transforms/types.d.ts +9 -0
  28. package/dist/transforms/use-blade-migration.js.map +1 -1
  29. package/dist/transforms/use-data-table-sort.d.ts +4 -0
  30. package/dist/transforms/use-data-table-sort.js +138 -0
  31. package/dist/transforms/use-data-table-sort.js.map +1 -0
  32. package/dist/transforms/widgets-migration.js.map +1 -1
  33. package/dist/utils/import-dedup.d.ts +13 -0
  34. package/dist/utils/import-dedup.js +184 -0
  35. package/dist/utils/import-dedup.js.map +1 -0
  36. package/dist/utils/template-transform.js.map +1 -1
  37. package/dist/utils/test-helpers.js.map +1 -1
  38. package/dist/utils/vue-sfc-wrapper.js +10 -7
  39. package/dist/utils/vue-sfc-wrapper.js.map +1 -1
  40. package/dist/version-detector.js +1 -3
  41. package/dist/version-detector.js.map +1 -1
  42. 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,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC;QAChF,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;YAC1D,8DAA8D,CAC/D,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"}
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,CACrC,QAAgB,EAChB,OAAe,EACf,iBAA2B;IAE3B,4CAA4C;IAC5C,MAAM,QAAQ,GAAG,IAAI,MAAM,CACzB,KAAK,OAAO,uBAAuB,EACnC,IAAI,CACL,CAAC;IAEF,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
+ {"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,CACd,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,EAC1C,GAAU,EACV,EAAE,GAAG,OAAO,EAAS,CACtB,CAAC;AACJ,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,CACtB,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,EAC1C,GAAU,EACV,EAAE,GAAG,OAAO,EAAS,CACtB,CAAC;IACF,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC7B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAAoB,EACpB,WAAmB,EACnB,WAAmB,EACnB,MAAc,IAAI;IAElB,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"}
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 (fileInfo.source.substring(0, start) +
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 (fileInfo.source.substring(0, start) +
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
- const afterScript = wrapForSFC(scriptTransform)(fileInfo, api, options);
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":"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"}
1
+ {"version":3,"file":"vue-sfc-wrapper.js","sourceRoot":"","sources":["../../src/utils/vue-sfc-wrapper.ts"],"names":[],"mappings":"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"}
@@ -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;QACjC,GAAG,CAAC,eAAe,EAAE,CAAC,aAAa,CAAC;QACpC,GAAG,CAAC,gBAAgB,EAAE,CAAC,aAAa,CAAC,CAAC;IAExC,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,CACpB,GAAG,EACH,cAAc,EACd,WAAW,EACX,WAAW,EACX,cAAc,CACf,CAAC;IACF,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"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vc-shell/migrate",
3
- "version": "2.0.0-alpha.16",
3
+ "version": "2.0.0-alpha.18",
4
4
  "type": "module",
5
5
  "bin": "./dist/cli.js",
6
6
  "main": "./dist/cli.js",