assistant-ui 0.0.117 → 0.0.118
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/dist/codemods/utils/createTransformer.d.ts +10 -12
- package/dist/codemods/utils/createTransformer.d.ts.map +1 -1
- package/dist/codemods/utils/resolveBinding.d.ts +3 -0
- package/dist/codemods/utils/resolveBinding.d.ts.map +1 -0
- package/dist/codemods/utils/resolveBinding.js +78 -0
- package/dist/codemods/utils/resolveBinding.js.map +1 -0
- package/dist/codemods/v0-11/content-part-to-message-part.d.ts +1 -3
- package/dist/codemods/v0-11/content-part-to-message-part.d.ts.map +1 -1
- package/dist/codemods/v0-12/assistant-api-to-aui.d.ts +1 -3
- package/dist/codemods/v0-12/assistant-api-to-aui.d.ts.map +1 -1
- package/dist/codemods/v0-12/assistant-api-to-aui.js +51 -99
- package/dist/codemods/v0-12/assistant-api-to-aui.js.map +1 -1
- package/dist/codemods/v0-12/event-names-to-camelcase.d.ts +1 -3
- package/dist/codemods/v0-12/event-names-to-camelcase.d.ts.map +1 -1
- package/dist/codemods/v0-12/primitive-if-to-aui-if.d.ts +1 -3
- package/dist/codemods/v0-12/primitive-if-to-aui-if.d.ts.map +1 -1
- package/dist/codemods/v0-15/aui-accessor-calls-to-properties.d.ts +1 -3
- package/dist/codemods/v0-15/aui-accessor-calls-to-properties.d.ts.map +1 -1
- package/dist/codemods/v0-15/aui-accessor-calls-to-properties.js +33 -5
- package/dist/codemods/v0-15/aui-accessor-calls-to-properties.js.map +1 -1
- package/dist/codemods/v0-8/ui-package-split.d.ts +1 -3
- package/dist/codemods/v0-8/ui-package-split.d.ts.map +1 -1
- package/dist/codemods/v0-9/edge-package-split.d.ts +1 -3
- package/dist/codemods/v0-9/edge-package-split.d.ts.map +1 -1
- package/dist/commands/add.d.ts +10 -12
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +3 -3
- package/dist/commands/agent.d.ts +0 -2
- package/dist/commands/agent.d.ts.map +1 -1
- package/dist/commands/agent.js +16 -13
- package/dist/commands/agent.js.map +1 -1
- package/dist/commands/create.d.ts +33 -28
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +19 -15
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/doctor.d.ts +8 -10
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/info.d.ts +2 -4
- package/dist/commands/info.d.ts.map +1 -1
- package/dist/commands/info.js +3 -3
- package/dist/commands/init.d.ts +5 -6
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +2 -2
- package/dist/commands/mcp.d.ts +0 -2
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +2 -2
- package/dist/commands/update.d.ts +0 -2
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +1 -1
- package/dist/commands/upgrade.d.ts +4 -6
- package/dist/commands/upgrade.d.ts.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -0
- package/dist/lib/agent-skill.d.ts +8 -6
- package/dist/lib/agent-skill.d.ts.map +1 -1
- package/dist/lib/agent-skill.js +78 -2
- package/dist/lib/agent-skill.js.map +1 -1
- package/dist/lib/create-project.d.ts +22 -20
- package/dist/lib/create-project.d.ts.map +1 -1
- package/dist/lib/create-project.js +91 -5
- package/dist/lib/create-project.js.map +1 -1
- package/dist/lib/handle-cli-error.d.ts +0 -2
- package/dist/lib/handle-cli-error.d.ts.map +1 -1
- package/dist/lib/install-ai-sdk-lib.d.ts +0 -2
- package/dist/lib/install-ai-sdk-lib.d.ts.map +1 -1
- package/dist/lib/install-edge-lib.d.ts +0 -2
- package/dist/lib/install-edge-lib.d.ts.map +1 -1
- package/dist/lib/run-spawn.d.ts +11 -12
- package/dist/lib/run-spawn.d.ts.map +1 -1
- package/dist/lib/run-spawn.js +25 -10
- package/dist/lib/run-spawn.js.map +1 -1
- package/dist/lib/transform-options.d.ts +4 -6
- package/dist/lib/transform-options.d.ts.map +1 -1
- package/dist/lib/transform.d.ts +11 -13
- package/dist/lib/transform.d.ts.map +1 -1
- package/dist/lib/transform.js +19 -35
- package/dist/lib/transform.js.map +1 -1
- package/dist/lib/upgrade.d.ts +2 -4
- package/dist/lib/upgrade.d.ts.map +1 -1
- package/dist/lib/upgrade.js +6 -11
- package/dist/lib/upgrade.js.map +1 -1
- package/dist/lib/utils/config.d.ts +14 -16
- package/dist/lib/utils/config.d.ts.map +1 -1
- package/dist/lib/utils/file-scanner.d.ts +8 -10
- package/dist/lib/utils/file-scanner.d.ts.map +1 -1
- package/dist/lib/utils/logger.d.ts +6 -8
- package/dist/lib/utils/logger.d.ts.map +1 -1
- package/dist/lib/utils/package-installer.d.ts +5 -7
- package/dist/lib/utils/package-installer.d.ts.map +1 -1
- package/dist/lib/utils/package-json.d.ts +0 -2
- package/dist/lib/utils/package-json.d.ts.map +1 -1
- package/dist/lib/utils/package-manager.d.ts +2 -4
- package/dist/lib/utils/package-manager.d.ts.map +1 -1
- package/dist/lib/utils/package-manager.js +13 -2
- package/dist/lib/utils/package-manager.js.map +1 -1
- package/dist/lib/utils/registry.d.ts +0 -2
- package/dist/lib/utils/registry.d.ts.map +1 -1
- package/dist/lib/utils/workspace.d.ts +0 -2
- package/dist/lib/utils/workspace.d.ts.map +1 -1
- package/dist/program.d.ts +0 -2
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +6 -6
- package/dist/run.d.ts +0 -2
- package/dist/run.d.ts.map +1 -1
- package/package.json +2 -3
- package/src/codemods/utils/resolveBinding.test.ts +107 -0
- package/src/codemods/utils/resolveBinding.ts +130 -0
- package/src/codemods/v0-12/__tests__/assistant-api-to-aui.test.ts +256 -0
- package/src/codemods/v0-12/assistant-api-to-aui.ts +125 -225
- package/src/codemods/v0-15/__tests__/aui-accessor-calls-to-properties.test.ts +101 -0
- package/src/codemods/v0-15/aui-accessor-calls-to-properties.ts +60 -5
- package/src/commands/agent.ts +15 -22
- package/src/commands/create.ts +24 -15
- package/src/lib/agent-skill.ts +103 -1
- package/src/lib/create-project.ts +99 -4
- package/src/lib/run-spawn.test.ts +47 -0
- package/src/lib/run-spawn.ts +29 -17
- package/src/lib/transform-files.test.ts +71 -0
- package/src/lib/transform.test.ts +69 -1
- package/src/lib/transform.ts +23 -38
- package/src/lib/upgrade.ts +9 -13
- package/src/lib/utils/package-manager.ts +24 -1
- package/plugin/.claude-plugin/plugin.json +0 -8
- package/plugin/skills/assistant-ui/SKILL.md +0 -199
- package/plugin/skills/assistant-ui/shipables.json +0 -22
package/dist/lib/run-spawn.d.ts
CHANGED
|
@@ -1,22 +1,21 @@
|
|
|
1
|
-
//#region src/lib/run-spawn.d.ts
|
|
2
1
|
export declare class SpawnExitError extends Error {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
code: number;
|
|
3
|
+
stderr: string;
|
|
4
|
+
stdout: string;
|
|
5
|
+
constructor(code: number, stderr?: string, stdout?: string);
|
|
6
6
|
}
|
|
7
7
|
export declare class SpawnSignalError extends Error {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
signal: NodeJS.Signals;
|
|
9
|
+
forwarded: boolean;
|
|
10
|
+
constructor(signal: NodeJS.Signals, forwarded: boolean);
|
|
11
11
|
}
|
|
12
12
|
export interface SpawnResult {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
code: number | null;
|
|
14
|
+
signal: NodeJS.Signals | null;
|
|
15
|
+
stdout: string;
|
|
16
|
+
stderr: string;
|
|
17
17
|
}
|
|
18
18
|
export declare const hasActiveSpawn: () => boolean;
|
|
19
19
|
export declare function runSpawn(command: string, args: string[], cwd?: string): Promise<void>;
|
|
20
20
|
export declare function runSpawnCapture(command: string, args: string[], cwd?: string): Promise<SpawnResult>;
|
|
21
|
-
//#endregion
|
|
22
21
|
//# sourceMappingURL=run-spawn.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-spawn.d.ts","
|
|
1
|
+
{"version":3,"file":"run-spawn.d.ts","sourceRoot":"","sources":["../../src/lib/run-spawn.ts"],"names":[],"mappings":"AAEA,qBAAa,cAAe,SAAQ,KAAK;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;gBAEH,IAAI,EAAE,MAAM,EAAE,MAAM,SAAK,EAAE,MAAM,SAAK;CAWnD;AAED,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;gBAEP,MAAM,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO;CAKvD;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAMD,eAAO,MAAM,cAAc,QAAO,OAA2B,CAAC;AA0F9D,wBAAgB,QAAQ,CACtB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CASf;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,WAAW,CAAC,CAEtB"}
|
package/dist/lib/run-spawn.js
CHANGED
|
@@ -3,10 +3,13 @@ import { spawn } from "cross-spawn";
|
|
|
3
3
|
var SpawnExitError = class extends Error {
|
|
4
4
|
code;
|
|
5
5
|
stderr;
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
stdout;
|
|
7
|
+
constructor(code, stderr = "", stdout = "") {
|
|
8
|
+
const output = [stdout, stderr].filter(Boolean).join("\n");
|
|
9
|
+
super(output ? `Process exited with code ${code}\n${output}` : `Process exited with code ${code}`);
|
|
8
10
|
this.code = code;
|
|
9
11
|
this.stderr = stderr;
|
|
12
|
+
this.stdout = stdout;
|
|
10
13
|
}
|
|
11
14
|
};
|
|
12
15
|
var SpawnSignalError = class extends Error {
|
|
@@ -31,6 +34,7 @@ function spawnProcess(command, args, cwd, captureOutput) {
|
|
|
31
34
|
cwd
|
|
32
35
|
});
|
|
33
36
|
let forwardedSignal = null;
|
|
37
|
+
let escalated = false;
|
|
34
38
|
let settled = false;
|
|
35
39
|
let stdout = "";
|
|
36
40
|
let stderr = "";
|
|
@@ -49,15 +53,23 @@ function spawnProcess(command, args, cwd, captureOutput) {
|
|
|
49
53
|
process.off("SIGINT", onSigint);
|
|
50
54
|
process.off("SIGTERM", onSigterm);
|
|
51
55
|
};
|
|
52
|
-
const
|
|
56
|
+
const rejectForwardedSignal = () => {
|
|
57
|
+
if (settled || forwardedSignal === null) return false;
|
|
53
58
|
settled = true;
|
|
59
|
+
child.stdout?.destroy();
|
|
60
|
+
child.stderr?.destroy();
|
|
54
61
|
cleanup();
|
|
55
|
-
reject(new SpawnSignalError(
|
|
62
|
+
reject(new SpawnSignalError(forwardedSignal, true));
|
|
63
|
+
return true;
|
|
56
64
|
};
|
|
57
65
|
const forwardSignal = (signal) => {
|
|
58
66
|
if (forwardedSignal !== null) {
|
|
59
|
-
|
|
60
|
-
|
|
67
|
+
if (!escalated) {
|
|
68
|
+
escalated = true;
|
|
69
|
+
child.kill("SIGKILL");
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
rejectForwardedSignal();
|
|
61
73
|
return;
|
|
62
74
|
}
|
|
63
75
|
forwardedSignal = signal;
|
|
@@ -70,17 +82,20 @@ function spawnProcess(command, args, cwd, captureOutput) {
|
|
|
70
82
|
process.on("SIGTERM", onSigterm);
|
|
71
83
|
child.on("error", (error) => {
|
|
72
84
|
if (settled) return;
|
|
85
|
+
if (rejectForwardedSignal()) return;
|
|
73
86
|
settled = true;
|
|
74
87
|
cleanup();
|
|
75
|
-
|
|
76
|
-
|
|
88
|
+
reject(error);
|
|
89
|
+
});
|
|
90
|
+
child.on("exit", () => {
|
|
91
|
+
rejectForwardedSignal();
|
|
77
92
|
});
|
|
78
93
|
child.on("close", (code, signal) => {
|
|
79
94
|
if (settled) return;
|
|
95
|
+
if (rejectForwardedSignal()) return;
|
|
80
96
|
settled = true;
|
|
81
97
|
cleanup();
|
|
82
|
-
|
|
83
|
-
else resolve({
|
|
98
|
+
resolve({
|
|
84
99
|
code,
|
|
85
100
|
signal: signal ?? null,
|
|
86
101
|
stdout,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-spawn.js","names":[],"sources":["../../src/lib/run-spawn.ts"],"sourcesContent":["import { spawn } from \"cross-spawn\";\n\nexport class SpawnExitError extends Error {\n code: number;\n stderr: string;\n\n constructor(code: number, stderr = \"\") {\n super(\n
|
|
1
|
+
{"version":3,"file":"run-spawn.js","names":[],"sources":["../../src/lib/run-spawn.ts"],"sourcesContent":["import { spawn } from \"cross-spawn\";\n\nexport class SpawnExitError extends Error {\n code: number;\n stderr: string;\n stdout: string;\n\n constructor(code: number, stderr = \"\", stdout = \"\") {\n const output = [stdout, stderr].filter(Boolean).join(\"\\n\");\n super(\n output\n ? `Process exited with code ${code}\\n${output}`\n : `Process exited with code ${code}`,\n );\n this.code = code;\n this.stderr = stderr;\n this.stdout = stdout;\n }\n}\n\nexport class SpawnSignalError extends Error {\n signal: NodeJS.Signals;\n forwarded: boolean;\n\n constructor(signal: NodeJS.Signals, forwarded: boolean) {\n super(`Process terminated by ${signal}`);\n this.signal = signal;\n this.forwarded = forwarded;\n }\n}\n\nexport interface SpawnResult {\n code: number | null;\n signal: NodeJS.Signals | null;\n stdout: string;\n stderr: string;\n}\n\nlet activeSpawns = 0;\n\n// A spawn that is forwarding a signal owns termination for that window, so\n// callers with their own cleanup listeners defer to it instead of racing it.\nexport const hasActiveSpawn = (): boolean => activeSpawns > 0;\n\nfunction spawnProcess(\n command: string,\n args: string[],\n cwd: string | undefined,\n captureOutput: boolean,\n): Promise<SpawnResult> {\n return new Promise((resolve, reject) => {\n const child = spawn(command, args, {\n stdio: captureOutput ? [\"ignore\", \"pipe\", \"pipe\"] : \"inherit\",\n cwd,\n });\n let forwardedSignal: NodeJS.Signals | null = null;\n let escalated = false;\n let settled = false;\n let stdout = \"\";\n let stderr = \"\";\n\n if (captureOutput) {\n child.stdout?.setEncoding(\"utf8\");\n child.stdout?.on(\"data\", (chunk: string) => {\n stdout += chunk;\n });\n child.stderr?.setEncoding(\"utf8\");\n child.stderr?.on(\"data\", (chunk: string) => {\n stderr += chunk;\n });\n }\n\n const cleanup = () => {\n activeSpawns -= 1;\n process.off(\"SIGINT\", onSigint);\n process.off(\"SIGTERM\", onSigterm);\n };\n\n const rejectForwardedSignal = () => {\n if (settled || forwardedSignal === null) return false;\n settled = true;\n child.stdout?.destroy();\n child.stderr?.destroy();\n cleanup();\n reject(new SpawnSignalError(forwardedSignal, true));\n return true;\n };\n\n const forwardSignal = (signal: NodeJS.Signals) => {\n if (forwardedSignal !== null) {\n if (!escalated) {\n escalated = true;\n child.kill(\"SIGKILL\");\n return;\n }\n\n rejectForwardedSignal();\n return;\n }\n\n forwardedSignal = signal;\n child.kill(signal);\n };\n const onSigint = () => forwardSignal(\"SIGINT\");\n const onSigterm = () => forwardSignal(\"SIGTERM\");\n\n activeSpawns += 1;\n process.on(\"SIGINT\", onSigint);\n process.on(\"SIGTERM\", onSigterm);\n\n child.on(\"error\", (error) => {\n if (settled) return;\n if (rejectForwardedSignal()) return;\n settled = true;\n cleanup();\n reject(error);\n });\n // \"close\" waits for stdio pipes, which a grandchild can hold open after\n // the child is reaped, so a forwarded signal settles on \"exit\".\n child.on(\"exit\", () => {\n rejectForwardedSignal();\n });\n child.on(\"close\", (code, signal) => {\n if (settled) return;\n if (rejectForwardedSignal()) return;\n settled = true;\n cleanup();\n resolve({ code, signal: signal ?? null, stdout, stderr });\n });\n });\n}\n\nexport function runSpawn(\n command: string,\n args: string[],\n cwd?: string,\n): Promise<void> {\n return spawnProcess(command, args, cwd, false).then(({ code, signal }) => {\n if (signal != null) {\n throw new SpawnSignalError(signal, false);\n }\n if (code !== 0) {\n throw new SpawnExitError(code || 1);\n }\n });\n}\n\nexport function runSpawnCapture(\n command: string,\n args: string[],\n cwd?: string,\n): Promise<SpawnResult> {\n return spawnProcess(command, args, cwd, true);\n}\n"],"mappings":";;AAEA,IAAa,iBAAb,cAAoC,MAAM;CACxC;CACA;CACA;CAEA,YAAY,MAAc,SAAS,IAAI,SAAS,IAAI;EAClD,MAAM,SAAS,CAAC,QAAQ,MAAM,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,KAAK,IAAI;EACzD,MACE,SACI,4BAA4B,KAAK,IAAI,WACrC,4BAA4B,MAClC;EACA,KAAK,OAAO;EACZ,KAAK,SAAS;EACd,KAAK,SAAS;CAChB;AACF;AAEA,IAAa,mBAAb,cAAsC,MAAM;CAC1C;CACA;CAEA,YAAY,QAAwB,WAAoB;EACtD,MAAM,yBAAyB,QAAQ;EACvC,KAAK,SAAS;EACd,KAAK,YAAY;CACnB;AACF;AASA,IAAI,eAAe;AAInB,MAAa,uBAAgC,eAAe;AAE5D,SAAS,aACP,SACA,MACA,KACA,eACsB;CACtB,OAAO,IAAI,SAAS,SAAS,WAAW;EACtC,MAAM,QAAQ,MAAM,SAAS,MAAM;GACjC,OAAO,gBAAgB;IAAC;IAAU;IAAQ;GAAM,IAAI;GACpD;EACF,CAAC;EACD,IAAI,kBAAyC;EAC7C,IAAI,YAAY;EAChB,IAAI,UAAU;EACd,IAAI,SAAS;EACb,IAAI,SAAS;EAEb,IAAI,eAAe;GACjB,MAAM,QAAQ,YAAY,MAAM;GAChC,MAAM,QAAQ,GAAG,SAAS,UAAkB;IAC1C,UAAU;GACZ,CAAC;GACD,MAAM,QAAQ,YAAY,MAAM;GAChC,MAAM,QAAQ,GAAG,SAAS,UAAkB;IAC1C,UAAU;GACZ,CAAC;EACH;EAEA,MAAM,gBAAgB;GACpB,gBAAgB;GAChB,QAAQ,IAAI,UAAU,QAAQ;GAC9B,QAAQ,IAAI,WAAW,SAAS;EAClC;EAEA,MAAM,8BAA8B;GAClC,IAAI,WAAW,oBAAoB,MAAM,OAAO;GAChD,UAAU;GACV,MAAM,QAAQ,QAAQ;GACtB,MAAM,QAAQ,QAAQ;GACtB,QAAQ;GACR,OAAO,IAAI,iBAAiB,iBAAiB,IAAI,CAAC;GAClD,OAAO;EACT;EAEA,MAAM,iBAAiB,WAA2B;GAChD,IAAI,oBAAoB,MAAM;IAC5B,IAAI,CAAC,WAAW;KACd,YAAY;KACZ,MAAM,KAAK,SAAS;KACpB;IACF;IAEA,sBAAsB;IACtB;GACF;GAEA,kBAAkB;GAClB,MAAM,KAAK,MAAM;EACnB;EACA,MAAM,iBAAiB,cAAc,QAAQ;EAC7C,MAAM,kBAAkB,cAAc,SAAS;EAE/C,gBAAgB;EAChB,QAAQ,GAAG,UAAU,QAAQ;EAC7B,QAAQ,GAAG,WAAW,SAAS;EAE/B,MAAM,GAAG,UAAU,UAAU;GAC3B,IAAI,SAAS;GACb,IAAI,sBAAsB,GAAG;GAC7B,UAAU;GACV,QAAQ;GACR,OAAO,KAAK;EACd,CAAC;EAGD,MAAM,GAAG,cAAc;GACrB,sBAAsB;EACxB,CAAC;EACD,MAAM,GAAG,UAAU,MAAM,WAAW;GAClC,IAAI,SAAS;GACb,IAAI,sBAAsB,GAAG;GAC7B,UAAU;GACV,QAAQ;GACR,QAAQ;IAAE;IAAM,QAAQ,UAAU;IAAM;IAAQ;GAAO,CAAC;EAC1D,CAAC;CACH,CAAC;AACH;AAEA,SAAgB,SACd,SACA,MACA,KACe;CACf,OAAO,aAAa,SAAS,MAAM,KAAK,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,aAAa;EACxE,IAAI,UAAU,MACZ,MAAM,IAAI,iBAAiB,QAAQ,KAAK;EAE1C,IAAI,SAAS,GACX,MAAM,IAAI,eAAe,QAAQ,CAAC;CAEtC,CAAC;AACH;AAEA,SAAgB,gBACd,SACA,MACA,KACsB;CACtB,OAAO,aAAa,SAAS,MAAM,KAAK,IAAI;AAC9C"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
//#region src/lib/transform-options.d.ts
|
|
2
1
|
export interface TransformOptions {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
dry?: boolean;
|
|
3
|
+
print?: boolean;
|
|
4
|
+
verbose?: boolean;
|
|
5
|
+
jscodeshift?: string;
|
|
7
6
|
}
|
|
8
|
-
//#endregion
|
|
9
7
|
//# sourceMappingURL=transform-options.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-options.d.ts","
|
|
1
|
+
{"version":3,"file":"transform-options.d.ts","sourceRoot":"","sources":["../../src/lib/transform-options.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
|
package/dist/lib/transform.d.ts
CHANGED
|
@@ -1,23 +1,21 @@
|
|
|
1
|
-
import { TransformOptions } from "./transform-options.js";
|
|
2
|
-
//#region src/lib/transform.d.ts
|
|
1
|
+
import type { TransformOptions } from "./transform-options.js";
|
|
3
2
|
/**
|
|
4
|
-
* Gets
|
|
5
|
-
*
|
|
3
|
+
* Gets relevant source files from an explicit file or directory target.
|
|
4
|
+
* Directory scans only include files containing "assistant-ui".
|
|
6
5
|
*/
|
|
7
|
-
export declare function getRelevantFiles(
|
|
6
|
+
export declare function getRelevantFiles(source: string): string[];
|
|
8
7
|
/**
|
|
9
8
|
* Counts the number of files that need to be processed
|
|
10
9
|
*/
|
|
11
|
-
export declare function countFilesToProcess(
|
|
10
|
+
export declare function countFilesToProcess(source: string): number;
|
|
12
11
|
export type TransformErrors = {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
transform: string;
|
|
13
|
+
filename: string;
|
|
14
|
+
summary: string;
|
|
16
15
|
}[];
|
|
17
16
|
export declare function transform(codemod: string, source: string, transformOptions: TransformOptions, options?: {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
logStatus: boolean;
|
|
18
|
+
onProgress?: (processedFiles: number) => void;
|
|
19
|
+
relevantFiles?: string[];
|
|
21
20
|
}): Promise<TransformErrors>;
|
|
22
|
-
//#endregion
|
|
23
21
|
//# sourceMappingURL=transform.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.d.ts","
|
|
1
|
+
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../src/lib/transform.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,+BAA4B;AAW5D;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CA4BzD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE1D;AAqCD,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,EAAE,CAAC;AAEJ,wBAAsB,SAAS,CAC7B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,gBAAgB,EAClC,OAAO,GAAE;IACP,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CACJ,GACtB,OAAO,CAAC,eAAe,CAAC,CAwC1B"}
|
package/dist/lib/transform.js
CHANGED
|
@@ -6,16 +6,17 @@ import debug from "debug";
|
|
|
6
6
|
import { fileURLToPath } from "node:url";
|
|
7
7
|
//#region src/lib/transform.ts
|
|
8
8
|
const log = debug("codemod:transform");
|
|
9
|
-
const error = debug("codemod:transform:error");
|
|
10
9
|
const __filename = fileURLToPath(import.meta.url);
|
|
11
10
|
const __dirname = path.dirname(__filename);
|
|
12
11
|
/**
|
|
13
|
-
* Gets
|
|
14
|
-
*
|
|
12
|
+
* Gets relevant source files from an explicit file or directory target.
|
|
13
|
+
* Directory scans only include files containing "assistant-ui".
|
|
15
14
|
*/
|
|
16
|
-
function getRelevantFiles(
|
|
15
|
+
function getRelevantFiles(source) {
|
|
16
|
+
const target = path.resolve(source);
|
|
17
|
+
if (fs$1.statSync(target).isFile()) return /\.(js|jsx|ts|tsx)$/.test(target) ? [target] : [];
|
|
17
18
|
return sync("**/*.{js,jsx,ts,tsx}", {
|
|
18
|
-
cwd,
|
|
19
|
+
cwd: target,
|
|
19
20
|
ignore: [
|
|
20
21
|
"**/node_modules/**",
|
|
21
22
|
"**/dist/**",
|
|
@@ -23,19 +24,19 @@ function getRelevantFiles(cwd) {
|
|
|
23
24
|
"**/*.min.js",
|
|
24
25
|
"**/*.bundle.js"
|
|
25
26
|
]
|
|
26
|
-
}).filter((file) => {
|
|
27
|
+
}).map((file) => path.join(target, file)).filter((file) => {
|
|
27
28
|
try {
|
|
28
|
-
return fs$1.readFileSync(
|
|
29
|
+
return fs$1.readFileSync(file, "utf8").includes("assistant-ui");
|
|
29
30
|
} catch {
|
|
30
31
|
return false;
|
|
31
32
|
}
|
|
32
|
-
})
|
|
33
|
+
});
|
|
33
34
|
}
|
|
34
35
|
/**
|
|
35
36
|
* Counts the number of files that need to be processed
|
|
36
37
|
*/
|
|
37
|
-
function countFilesToProcess(
|
|
38
|
-
return getRelevantFiles(
|
|
38
|
+
function countFilesToProcess(source) {
|
|
39
|
+
return getRelevantFiles(source).length;
|
|
39
40
|
}
|
|
40
41
|
function buildCommand(codemodPath, targetFiles, options) {
|
|
41
42
|
const command = [
|
|
@@ -45,7 +46,8 @@ function buildCommand(codemodPath, targetFiles, options) {
|
|
|
45
46
|
codemodPath,
|
|
46
47
|
...targetFiles,
|
|
47
48
|
"--parser",
|
|
48
|
-
"tsx"
|
|
49
|
+
"tsx",
|
|
50
|
+
"--fail-on-error"
|
|
49
51
|
];
|
|
50
52
|
if (options.dry) command.push("--dry");
|
|
51
53
|
if (options.print) command.push("--print");
|
|
@@ -53,24 +55,6 @@ function buildCommand(codemodPath, targetFiles, options) {
|
|
|
53
55
|
if (options.jscodeshift) command.push(options.jscodeshift);
|
|
54
56
|
return command;
|
|
55
57
|
}
|
|
56
|
-
function parseErrors(transform, output) {
|
|
57
|
-
const errors = [];
|
|
58
|
-
const errorRegex = /ERR (.+) Transformation error/g;
|
|
59
|
-
const syntaxErrorRegex = /SyntaxError: .+/g;
|
|
60
|
-
for (const match of output.matchAll(errorRegex)) {
|
|
61
|
-
const filename = match[1];
|
|
62
|
-
const syntaxErrorMatch = syntaxErrorRegex.exec(output);
|
|
63
|
-
if (syntaxErrorMatch) {
|
|
64
|
-
const summary = syntaxErrorMatch[0];
|
|
65
|
-
errors.push({
|
|
66
|
-
transform,
|
|
67
|
-
filename,
|
|
68
|
-
summary
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
return errors;
|
|
73
|
-
}
|
|
74
58
|
async function transform(codemod, source, transformOptions, options = { logStatus: true }) {
|
|
75
59
|
if (options.logStatus) log(`Applying codemod '${codemod}': ${source}`);
|
|
76
60
|
const codemodPath = path.resolve(__dirname, `../codemods/${codemod}.js`);
|
|
@@ -83,17 +67,17 @@ async function transform(codemod, source, transformOptions, options = { logStatu
|
|
|
83
67
|
const command = buildCommand(codemodPath, targetFiles, transformOptions);
|
|
84
68
|
const result = await runSpawnCapture(command[0], command.slice(1));
|
|
85
69
|
if (result.signal !== null) throw new SpawnSignalError(result.signal, false);
|
|
86
|
-
if (result.code !== 0)
|
|
70
|
+
if (result.code !== 0) {
|
|
71
|
+
const failure = new SpawnExitError(result.code || 1, result.stderr, result.stdout);
|
|
72
|
+
failure.message = `Codemod '${codemod}' failed\n${failure.message}`;
|
|
73
|
+
throw failure;
|
|
74
|
+
}
|
|
87
75
|
const { stdout } = result;
|
|
88
76
|
if (options.onProgress) {
|
|
89
77
|
const processedFiles = (stdout.match(/Processing file/g) || []).length;
|
|
90
78
|
options.onProgress(processedFiles);
|
|
91
79
|
}
|
|
92
|
-
|
|
93
|
-
if (options.logStatus && errors.length > 0) errors.forEach(({ transform, filename, summary }) => {
|
|
94
|
-
error(`Error applying codemod [codemod=${transform}, path=${filename}, summary=${summary}]`);
|
|
95
|
-
});
|
|
96
|
-
return errors;
|
|
80
|
+
return [];
|
|
97
81
|
}
|
|
98
82
|
//#endregion
|
|
99
83
|
export { countFilesToProcess, getRelevantFiles, transform };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.js","names":["
|
|
1
|
+
{"version":3,"file":"transform.js","names":["fs","globSync"],"sources":["../../src/lib/transform.ts"],"sourcesContent":["import debug from \"debug\";\nimport path from \"node:path\";\nimport type { TransformOptions } from \"./transform-options\";\nimport { fileURLToPath } from \"node:url\";\nimport * as fs from \"node:fs\";\nimport { sync as globSync } from \"glob\";\nimport { runSpawnCapture, SpawnExitError, SpawnSignalError } from \"./run-spawn\";\n\nconst log = debug(\"codemod:transform\");\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\n/**\n * Gets relevant source files from an explicit file or directory target.\n * Directory scans only include files containing \"assistant-ui\".\n */\nexport function getRelevantFiles(source: string): string[] {\n const target = path.resolve(source);\n if (fs.statSync(target).isFile()) {\n return /\\.(js|jsx|ts|tsx)$/.test(target) ? [target] : [];\n }\n\n const pattern = \"**/*.{js,jsx,ts,tsx}\";\n const files = globSync(pattern, {\n cwd: target,\n ignore: [\n \"**/node_modules/**\",\n \"**/dist/**\",\n \"**/build/**\",\n \"**/*.min.js\",\n \"**/*.bundle.js\",\n ],\n }).map((file) => path.join(target, file));\n\n const relevantFiles = files.filter((file) => {\n try {\n const content = fs.readFileSync(file, \"utf8\");\n return content.includes(\"assistant-ui\");\n } catch {\n return false;\n }\n });\n\n return relevantFiles;\n}\n\n/**\n * Counts the number of files that need to be processed\n */\nexport function countFilesToProcess(source: string): number {\n return getRelevantFiles(source).length;\n}\n\nfunction buildCommand(\n codemodPath: string,\n targetFiles: string[],\n options: TransformOptions,\n): string[] {\n const command = [\n \"npx\",\n \"jscodeshift\",\n \"-t\",\n codemodPath,\n ...targetFiles,\n \"--parser\",\n \"tsx\",\n \"--fail-on-error\",\n ];\n\n if (options.dry) {\n command.push(\"--dry\");\n }\n\n if (options.print) {\n command.push(\"--print\");\n }\n\n if (options.verbose) {\n command.push(\"--verbose\");\n }\n\n if (options.jscodeshift) {\n command.push(options.jscodeshift);\n }\n\n return command;\n}\n\nexport type TransformErrors = {\n transform: string;\n filename: string;\n summary: string;\n}[];\n\nexport async function transform(\n codemod: string,\n source: string,\n transformOptions: TransformOptions,\n options: {\n logStatus: boolean;\n onProgress?: (processedFiles: number) => void;\n relevantFiles?: string[];\n } = { logStatus: true },\n): Promise<TransformErrors> {\n if (options.logStatus) {\n log(`Applying codemod '${codemod}': ${source}`);\n }\n const codemodPath = path.resolve(__dirname, `../codemods/${codemod}.js`);\n\n // Use pre-computed relevant files if provided, otherwise get them\n const targetFiles = options.relevantFiles || getRelevantFiles(source);\n\n if (targetFiles.length === 0) {\n log(`No relevant files found for codemod '${codemod}'`);\n return [];\n }\n\n log(`Found ${targetFiles.length} relevant files for codemod '${codemod}'`);\n\n const command = buildCommand(codemodPath, targetFiles, transformOptions);\n\n const result = await runSpawnCapture(command[0]!, command.slice(1));\n if (result.signal !== null) {\n throw new SpawnSignalError(result.signal, false);\n }\n if (result.code !== 0) {\n const failure = new SpawnExitError(\n result.code || 1,\n result.stderr,\n result.stdout,\n );\n failure.message = `Codemod '${codemod}' failed\\n${failure.message}`;\n throw failure;\n }\n\n const { stdout } = result;\n\n if (options.onProgress) {\n const processedFiles = (stdout.match(/Processing file/g) || []).length;\n options.onProgress(processedFiles);\n }\n\n return [];\n}\n"],"mappings":";;;;;;;AAQA,MAAM,MAAM,MAAM,mBAAmB;AAErC,MAAM,aAAa,cAAc,YAAY,GAAG;AAChD,MAAM,YAAY,KAAK,QAAQ,UAAU;;;;;AAMzC,SAAgB,iBAAiB,QAA0B;CACzD,MAAM,SAAS,KAAK,QAAQ,MAAM;CAClC,IAAIA,KAAG,SAAS,MAAM,CAAC,CAAC,OAAO,GAC7B,OAAO,qBAAqB,KAAK,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC;CAwBzD,OApBcC,KAAS,wBAAS;EAC9B,KAAK;EACL,QAAQ;GACN;GACA;GACA;GACA;GACA;EACF;CACF,CAAC,CAAC,CAAC,KAAK,SAAS,KAAK,KAAK,QAAQ,IAAI,CAEb,CAAC,CAAC,QAAQ,SAAS;EAC3C,IAAI;GAEF,OADgBD,KAAG,aAAa,MAAM,MACzB,CAAC,CAAC,SAAS,cAAc;EACxC,QAAQ;GACN,OAAO;EACT;CACF,CAEmB;AACrB;;;;AAKA,SAAgB,oBAAoB,QAAwB;CAC1D,OAAO,iBAAiB,MAAM,CAAC,CAAC;AAClC;AAEA,SAAS,aACP,aACA,aACA,SACU;CACV,MAAM,UAAU;EACd;EACA;EACA;EACA;EACA,GAAG;EACH;EACA;EACA;CACF;CAEA,IAAI,QAAQ,KACV,QAAQ,KAAK,OAAO;CAGtB,IAAI,QAAQ,OACV,QAAQ,KAAK,SAAS;CAGxB,IAAI,QAAQ,SACV,QAAQ,KAAK,WAAW;CAG1B,IAAI,QAAQ,aACV,QAAQ,KAAK,QAAQ,WAAW;CAGlC,OAAO;AACT;AAQA,eAAsB,UACpB,SACA,QACA,kBACA,UAII,EAAE,WAAW,KAAK,GACI;CAC1B,IAAI,QAAQ,WACV,IAAI,qBAAqB,QAAQ,KAAK,QAAQ;CAEhD,MAAM,cAAc,KAAK,QAAQ,WAAW,eAAe,QAAQ,IAAI;CAGvE,MAAM,cAAc,QAAQ,iBAAiB,iBAAiB,MAAM;CAEpE,IAAI,YAAY,WAAW,GAAG;EAC5B,IAAI,wCAAwC,QAAQ,EAAE;EACtD,OAAO,CAAC;CACV;CAEA,IAAI,SAAS,YAAY,OAAO,+BAA+B,QAAQ,EAAE;CAEzE,MAAM,UAAU,aAAa,aAAa,aAAa,gBAAgB;CAEvE,MAAM,SAAS,MAAM,gBAAgB,QAAQ,IAAK,QAAQ,MAAM,CAAC,CAAC;CAClE,IAAI,OAAO,WAAW,MACpB,MAAM,IAAI,iBAAiB,OAAO,QAAQ,KAAK;CAEjD,IAAI,OAAO,SAAS,GAAG;EACrB,MAAM,UAAU,IAAI,eAClB,OAAO,QAAQ,GACf,OAAO,QACP,OAAO,MACT;EACA,QAAQ,UAAU,YAAY,QAAQ,YAAY,QAAQ;EAC1D,MAAM;CACR;CAEA,MAAM,EAAE,WAAW;CAEnB,IAAI,QAAQ,YAAY;EACtB,MAAM,kBAAkB,OAAO,MAAM,kBAAkB,KAAK,CAAC,EAAA,CAAG;EAChE,QAAQ,WAAW,cAAc;CACnC;CAEA,OAAO,CAAC;AACV"}
|
package/dist/lib/upgrade.d.ts
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
import { TransformOptions } from "./transform-options.js";
|
|
2
|
-
//#region src/lib/upgrade.d.ts
|
|
1
|
+
import type { TransformOptions } from "./transform-options.js";
|
|
3
2
|
/**
|
|
4
3
|
* Runs the upgrade cycle:
|
|
5
4
|
* - Runs each codemod in the bundle.
|
|
6
5
|
* - Displays progress using cli-progress.
|
|
7
|
-
* -
|
|
6
|
+
* - Outside dry mode, checks for new package imports and prompts for install.
|
|
8
7
|
*/
|
|
9
8
|
export declare function upgrade(options: TransformOptions): Promise<void>;
|
|
10
|
-
//#endregion
|
|
11
9
|
//# sourceMappingURL=upgrade.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.d.ts","
|
|
1
|
+
{"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../src/lib/upgrade.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,+BAA4B;AAiB5D;;;;;GAKG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,gBAAgB,iBA+DtD"}
|
package/dist/lib/upgrade.js
CHANGED
|
@@ -14,12 +14,11 @@ const bundle = [
|
|
|
14
14
|
"v0-15/aui-accessor-calls-to-properties"
|
|
15
15
|
];
|
|
16
16
|
const log = debug("codemod:upgrade");
|
|
17
|
-
const error = debug("codemod:upgrade:error");
|
|
18
17
|
/**
|
|
19
18
|
* Runs the upgrade cycle:
|
|
20
19
|
* - Runs each codemod in the bundle.
|
|
21
20
|
* - Displays progress using cli-progress.
|
|
22
|
-
* -
|
|
21
|
+
* - Outside dry mode, checks for new package imports and prompts for install.
|
|
23
22
|
*/
|
|
24
23
|
async function upgrade(options) {
|
|
25
24
|
const cwd = process.cwd();
|
|
@@ -36,11 +35,10 @@ async function upgrade(options) {
|
|
|
36
35
|
gracefulExit: true
|
|
37
36
|
}, Presets.shades_classic);
|
|
38
37
|
bar.start(totalWork, 0, { status: "Starting..." });
|
|
39
|
-
const allErrors = [];
|
|
40
38
|
try {
|
|
41
39
|
for (const codemod of bundle) {
|
|
42
40
|
bar.update(completedWork, { status: `Running ${codemod}...` });
|
|
43
|
-
|
|
41
|
+
await transform(codemod, cwd, options, {
|
|
44
42
|
logStatus: false,
|
|
45
43
|
onProgress: (processedFiles) => {
|
|
46
44
|
completedWork = bundle.indexOf(codemod) * fileCount + processedFiles;
|
|
@@ -48,19 +46,16 @@ async function upgrade(options) {
|
|
|
48
46
|
},
|
|
49
47
|
relevantFiles
|
|
50
48
|
});
|
|
51
|
-
allErrors.push(...errors);
|
|
52
49
|
completedWork = (bundle.indexOf(codemod) + 1) * fileCount;
|
|
53
50
|
bar.update(completedWork, { status: `Completed ${codemod}` });
|
|
54
51
|
}
|
|
55
|
-
bar.update(totalWork, { status: "Checking dependencies..." });
|
|
52
|
+
bar.update(totalWork, { status: options.dry ? "Preview complete" : "Checking dependencies..." });
|
|
56
53
|
} finally {
|
|
57
54
|
bar.stop();
|
|
58
55
|
}
|
|
59
|
-
if (
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
error(`codemod=${transform}, path=${filename}, summary=${summary}`);
|
|
63
|
-
});
|
|
56
|
+
if (options.dry) {
|
|
57
|
+
logger.success("Dry run complete. No files were changed.");
|
|
58
|
+
return;
|
|
64
59
|
}
|
|
65
60
|
logger.info("Checking for package dependencies...");
|
|
66
61
|
await installEdgeLib();
|
package/dist/lib/upgrade.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.js","names":[],"sources":["../../src/lib/upgrade.ts"],"sourcesContent":["import debug from \"debug\";\nimport { transform,
|
|
1
|
+
{"version":3,"file":"upgrade.js","names":[],"sources":["../../src/lib/upgrade.ts"],"sourcesContent":["import debug from \"debug\";\nimport { transform, getRelevantFiles } from \"./transform\";\nimport type { TransformOptions } from \"./transform-options\";\nimport { SingleBar, Presets } from \"cli-progress\";\nimport installEdgeLib from \"./install-edge-lib\";\nimport installAiSdkLib from \"./install-ai-sdk-lib\";\nimport { logger } from \"./utils/logger\";\n\nconst bundle = [\n \"v0-9/edge-package-split\",\n \"v0-11/content-part-to-message-part\",\n \"v0-12/assistant-api-to-aui\",\n \"v0-12/event-names-to-camelcase\",\n \"v0-12/primitive-if-to-aui-if\",\n \"v0-15/aui-accessor-calls-to-properties\",\n];\n\nconst log = debug(\"codemod:upgrade\");\n\n/**\n * Runs the upgrade cycle:\n * - Runs each codemod in the bundle.\n * - Displays progress using cli-progress.\n * - Outside dry mode, checks for new package imports and prompts for install.\n */\nexport async function upgrade(options: TransformOptions) {\n const cwd = process.cwd();\n log(\"Starting upgrade...\");\n\n // Find relevant files once to avoid duplicate work\n logger.info(\"Analyzing codebase...\");\n const relevantFiles = getRelevantFiles(cwd);\n const fileCount = relevantFiles.length;\n logger.info(`Found ${fileCount} files to process.`);\n\n // Calculate total work units (files × codemods)\n const totalWork = fileCount * bundle.length;\n let completedWork = 0;\n\n const bar = new SingleBar(\n {\n format: \"Progress |{bar}| {percentage}% | ETA: {eta}s || {status}\",\n hideCursor: true,\n gracefulExit: true,\n },\n Presets.shades_classic,\n );\n\n bar.start(totalWork, 0, { status: \"Starting...\" });\n\n try {\n for (const codemod of bundle) {\n bar.update(completedWork, { status: `Running ${codemod}...` });\n\n // Use a custom progress callback to update the progress bar\n await transform(codemod, cwd, options, {\n logStatus: false,\n onProgress: (processedFiles: number) => {\n completedWork = bundle.indexOf(codemod) * fileCount + processedFiles;\n bar.update(Math.min(completedWork, totalWork), {\n status: `Running ${codemod} (${processedFiles}/${fileCount} files)`,\n });\n },\n relevantFiles, // Pass the pre-computed relevant files\n });\n\n completedWork = (bundle.indexOf(codemod) + 1) * fileCount;\n bar.update(completedWork, { status: `Completed ${codemod}` });\n }\n\n bar.update(totalWork, {\n status: options.dry ? \"Preview complete\" : \"Checking dependencies...\",\n });\n } finally {\n bar.stop();\n }\n\n if (options.dry) {\n logger.success(\"Dry run complete. No files were changed.\");\n return;\n }\n\n logger.info(\"Checking for package dependencies...\");\n await installEdgeLib();\n await installAiSdkLib();\n\n log(\"Upgrade complete.\");\n logger.success(\"Upgrade complete!\");\n}\n"],"mappings":";;;;;;;AAQA,MAAM,SAAS;CACb;CACA;CACA;CACA;CACA;CACA;AACF;AAEA,MAAM,MAAM,MAAM,iBAAiB;;;;;;;AAQnC,eAAsB,QAAQ,SAA2B;CACvD,MAAM,MAAM,QAAQ,IAAI;CACxB,IAAI,qBAAqB;CAGzB,OAAO,KAAK,uBAAuB;CACnC,MAAM,gBAAgB,iBAAiB,GAAG;CAC1C,MAAM,YAAY,cAAc;CAChC,OAAO,KAAK,SAAS,UAAU,mBAAmB;CAGlD,MAAM,YAAY,YAAY,OAAO;CACrC,IAAI,gBAAgB;CAEpB,MAAM,MAAM,IAAI,UACd;EACE,QAAQ;EACR,YAAY;EACZ,cAAc;CAChB,GACA,QAAQ,cACV;CAEA,IAAI,MAAM,WAAW,GAAG,EAAE,QAAQ,cAAc,CAAC;CAEjD,IAAI;EACF,KAAK,MAAM,WAAW,QAAQ;GAC5B,IAAI,OAAO,eAAe,EAAE,QAAQ,WAAW,QAAQ,KAAK,CAAC;GAG7D,MAAM,UAAU,SAAS,KAAK,SAAS;IACrC,WAAW;IACX,aAAa,mBAA2B;KACtC,gBAAgB,OAAO,QAAQ,OAAO,IAAI,YAAY;KACtD,IAAI,OAAO,KAAK,IAAI,eAAe,SAAS,GAAG,EAC7C,QAAQ,WAAW,QAAQ,IAAI,eAAe,GAAG,UAAU,SAC7D,CAAC;IACH;IACA;GACF,CAAC;GAED,iBAAiB,OAAO,QAAQ,OAAO,IAAI,KAAK;GAChD,IAAI,OAAO,eAAe,EAAE,QAAQ,aAAa,UAAU,CAAC;EAC9D;EAEA,IAAI,OAAO,WAAW,EACpB,QAAQ,QAAQ,MAAM,qBAAqB,2BAC7C,CAAC;CACH,UAAU;EACR,IAAI,KAAK;CACX;CAEA,IAAI,QAAQ,KAAK;EACf,OAAO,QAAQ,0CAA0C;EACzD;CACF;CAEA,OAAO,KAAK,sCAAsC;CAClD,MAAM,eAAe;CACrB,MAAM,gBAAgB;CAEtB,IAAI,mBAAmB;CACvB,OAAO,QAAQ,mBAAmB;AACpC"}
|
|
@@ -1,22 +1,20 @@
|
|
|
1
|
-
//#region src/lib/utils/config.d.ts
|
|
2
1
|
export interface AssistantUIConfig {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
2
|
+
$schema?: string;
|
|
3
|
+
style?: string;
|
|
4
|
+
tailwind?: {
|
|
5
|
+
config?: string;
|
|
6
|
+
css?: string;
|
|
7
|
+
baseColor?: string;
|
|
8
|
+
cssVariables?: boolean;
|
|
9
|
+
};
|
|
10
|
+
aliases?: {
|
|
11
|
+
components?: string;
|
|
12
|
+
utils?: string;
|
|
13
|
+
ui?: string;
|
|
14
|
+
lib?: string;
|
|
15
|
+
};
|
|
17
16
|
}
|
|
18
17
|
export declare function getConfig(cwd?: string): AssistantUIConfig | null;
|
|
19
18
|
export declare function saveConfig(config: AssistantUIConfig, cwd?: string): void;
|
|
20
19
|
export declare function hasConfig(cwd?: string): boolean;
|
|
21
|
-
//#endregion
|
|
22
20
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/config.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE;QACT,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAOD,wBAAgB,SAAS,CACvB,GAAG,GAAE,MAAsB,GAC1B,iBAAiB,GAAG,IAAI,CAiB1B;AAED,wBAAgB,UAAU,CACxB,MAAM,EAAE,iBAAiB,EACzB,GAAG,GAAE,MAAsB,GAC1B,IAAI,CAGN;AAED,wBAAgB,SAAS,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAI9D"}
|
|
@@ -1,18 +1,16 @@
|
|
|
1
|
-
//#region src/lib/utils/file-scanner.d.ts
|
|
2
1
|
export interface ScanOptions {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
cwd?: string;
|
|
3
|
+
pattern?: string;
|
|
4
|
+
ignore?: string[];
|
|
6
5
|
}
|
|
7
6
|
export declare function readProjectFiles(pattern: string, options: {
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
cwd: string;
|
|
8
|
+
ignore?: string[];
|
|
10
9
|
}): Generator<{
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
file: string;
|
|
11
|
+
fullPath: string;
|
|
12
|
+
content: string;
|
|
14
13
|
}>;
|
|
15
14
|
export declare function scanForImport(importPattern: string | string[], options?: ScanOptions): boolean;
|
|
16
15
|
export declare function getFilesContaining(searchString: string, options?: ScanOptions): string[];
|
|
17
|
-
//#endregion
|
|
18
16
|
//# sourceMappingURL=file-scanner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-scanner.d.ts","
|
|
1
|
+
{"version":3,"file":"file-scanner.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/file-scanner.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,wBAAiB,gBAAgB,CAC/B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAC1C,SAAS,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAYhE;AAED,wBAAgB,aAAa,CAC3B,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE,EAChC,OAAO,GAAE,WAAgB,GACxB,OAAO,CAoBT;AAED,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,MAAM,EACpB,OAAO,GAAE,WAAgB,GACxB,MAAM,EAAE,CAqBV"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
//#region src/lib/utils/logger.d.ts
|
|
2
1
|
export declare const logger: {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
info: (message: string) => void;
|
|
3
|
+
success: (message: string) => void;
|
|
4
|
+
error: (message: string) => void;
|
|
5
|
+
warn: (message: string) => void;
|
|
6
|
+
step: (message: string) => void;
|
|
7
|
+
break: () => void;
|
|
9
8
|
};
|
|
10
|
-
//#endregion
|
|
11
9
|
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/logger.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM;oBACD,MAAM;uBAGH,MAAM;qBAGR,MAAM;oBAGP,MAAM;oBAGN,MAAM;;CAMvB,CAAC"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
//#region src/lib/utils/package-installer.d.ts
|
|
2
1
|
export interface PackageInstallConfig {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
packageName: string;
|
|
3
|
+
importPatterns: string[];
|
|
4
|
+
promptMessage: string;
|
|
5
|
+
skipMessage: string;
|
|
6
|
+
notFoundMessage: string;
|
|
8
7
|
}
|
|
9
8
|
export declare function installPackageIfNeeded(config: PackageInstallConfig): Promise<void>;
|
|
10
|
-
//#endregion
|
|
11
9
|
//# sourceMappingURL=package-installer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-installer.d.ts","
|
|
1
|
+
{"version":3,"file":"package-installer.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/package-installer.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,oBAAoB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAmBf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-json.d.ts","
|
|
1
|
+
{"version":3,"file":"package-json.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/package-json.ts"],"names":[],"mappings":"AAEA,wBAAgB,wBAAwB,CACtC,eAAe,EAAE,MAAM,EACvB,WAAW,EAAE,MAAM,QAOpB"}
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
//#region src/lib/utils/package-manager.d.ts
|
|
2
1
|
export type PackageManagerName = "npm" | "pnpm" | "yarn" | "bun";
|
|
3
2
|
export declare function askQuestion(query: string): Promise<string>;
|
|
4
3
|
export declare function isPackageInstalled(pkg: string, cwd?: string): boolean;
|
|
5
4
|
export interface InstallCommand {
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
command: string;
|
|
6
|
+
args: string[];
|
|
8
7
|
}
|
|
9
8
|
export declare function getInstallCommand(packageName: string | string[], cwd?: string): Promise<InstallCommand>;
|
|
10
9
|
export declare function resolvePackageManagerForCwd(cwd: string, packageManager?: PackageManagerName): Promise<PackageManagerName>;
|
|
11
10
|
export declare function installPackage(packageName: string, cwd?: string): Promise<boolean>;
|
|
12
|
-
//#endregion
|
|
13
11
|
//# sourceMappingURL=package-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-manager.d.ts","
|
|
1
|
+
{"version":3,"file":"package-manager.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/package-manager.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,kBAAkB,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAEjE,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAkC1D;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,EACX,GAAG,GAAE,MAAsB,GAC1B,OAAO,CAgBT;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,EAC9B,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,cAAc,CAAC,CAazB;AAYD,wBAAsB,2BAA2B,CAC/C,GAAG,EAAE,MAAM,EACX,cAAc,CAAC,EAAE,kBAAkB,GAClC,OAAO,CAAC,kBAAkB,CAAC,CAS7B;AAED,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC,CAUlB"}
|