assistant-ui 0.0.92 → 0.0.93
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 +17 -13
- package/dist/codemods/utils/createTransformer.d.ts.map +1 -1
- package/dist/codemods/utils/createTransformer.js +18 -15
- package/dist/codemods/utils/createTransformer.js.map +1 -1
- package/dist/codemods/v0-11/content-part-to-message-part.d.ts +3 -1
- package/dist/codemods/v0-11/content-part-to-message-part.d.ts.map +1 -1
- package/dist/codemods/v0-11/content-part-to-message-part.js +98 -135
- package/dist/codemods/v0-11/content-part-to-message-part.js.map +1 -1
- package/dist/codemods/v0-12/assistant-api-to-aui.d.ts +3 -1
- package/dist/codemods/v0-12/assistant-api-to-aui.d.ts.map +1 -1
- package/dist/codemods/v0-12/assistant-api-to-aui.js +126 -213
- package/dist/codemods/v0-12/assistant-api-to-aui.js.map +1 -1
- package/dist/codemods/v0-12/event-names-to-camelcase.d.ts +3 -1
- package/dist/codemods/v0-12/event-names-to-camelcase.d.ts.map +1 -1
- package/dist/codemods/v0-12/event-names-to-camelcase.js +33 -38
- package/dist/codemods/v0-12/event-names-to-camelcase.js.map +1 -1
- package/dist/codemods/v0-12/primitive-if-to-aui-if.d.ts +3 -1
- package/dist/codemods/v0-12/primitive-if-to-aui-if.d.ts.map +1 -1
- package/dist/codemods/v0-12/primitive-if-to-aui-if.js +212 -297
- package/dist/codemods/v0-12/primitive-if-to-aui-if.js.map +1 -1
- package/dist/codemods/v0-8/ui-package-split.d.ts +3 -1
- package/dist/codemods/v0-8/ui-package-split.d.ts.map +1 -1
- package/dist/codemods/v0-8/ui-package-split.js +121 -164
- package/dist/codemods/v0-8/ui-package-split.js.map +1 -1
- package/dist/codemods/v0-9/edge-package-split.d.ts +3 -1
- package/dist/codemods/v0-9/edge-package-split.d.ts.map +1 -1
- package/dist/codemods/v0-9/edge-package-split.js +96 -140
- package/dist/codemods/v0-9/edge-package-split.js.map +1 -1
- package/dist/commands/add.d.ts +16 -12
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +53 -64
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/agent.d.ts +5 -1
- package/dist/commands/agent.d.ts.map +1 -1
- package/dist/commands/agent.js +16 -25
- package/dist/commands/agent.js.map +1 -1
- package/dist/commands/create.d.ts +34 -30
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +454 -527
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/info.d.ts +5 -1
- package/dist/commands/info.d.ts.map +1 -1
- package/dist/commands/info.js +233 -314
- package/dist/commands/info.js.map +1 -1
- package/dist/commands/init.d.ts +12 -9
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +98 -107
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/mcp.d.ts +5 -1
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +175 -214
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/update.d.ts +5 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +46 -55
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/upgrade.d.ts +11 -7
- package/dist/commands/upgrade.d.ts.map +1 -1
- package/dist/commands/upgrade.js +26 -38
- package/dist/commands/upgrade.js.map +1 -1
- package/dist/index.d.ts +1 -3
- package/dist/index.js +15 -14
- package/dist/index.js.map +1 -1
- package/dist/lib/create-project.d.ts +24 -21
- package/dist/lib/create-project.d.ts.map +1 -1
- package/dist/lib/create-project.js +227 -297
- package/dist/lib/create-project.js.map +1 -1
- package/dist/lib/install-ai-sdk-lib.d.ts +4 -1
- package/dist/lib/install-ai-sdk-lib.d.ts.map +1 -1
- package/dist/lib/install-ai-sdk-lib.js +12 -8
- package/dist/lib/install-ai-sdk-lib.js.map +1 -1
- package/dist/lib/install-edge-lib.d.ts +4 -1
- package/dist/lib/install-edge-lib.d.ts.map +1 -1
- package/dist/lib/install-edge-lib.js +16 -12
- package/dist/lib/install-edge-lib.js.map +1 -1
- package/dist/lib/install-ui-lib.d.ts +4 -1
- package/dist/lib/install-ui-lib.d.ts.map +1 -1
- package/dist/lib/install-ui-lib.js +12 -8
- package/dist/lib/install-ui-lib.js.map +1 -1
- package/dist/lib/run-spawn.d.ts +7 -4
- package/dist/lib/run-spawn.d.ts.map +1 -1
- package/dist/lib/run-spawn.js +23 -23
- package/dist/lib/run-spawn.js.map +1 -1
- package/dist/lib/transform-options.d.ts +8 -5
- package/dist/lib/transform-options.d.ts.map +1 -1
- package/dist/lib/transform-options.js +0 -2
- package/dist/lib/transform.d.ts +15 -11
- package/dist/lib/transform.d.ts.map +1 -1
- package/dist/lib/transform.js +97 -114
- package/dist/lib/transform.js.map +1 -1
- package/dist/lib/upgrade.d.ts +6 -2
- package/dist/lib/upgrade.d.ts.map +1 -1
- package/dist/lib/upgrade.js +62 -64
- package/dist/lib/upgrade.js.map +1 -1
- package/dist/lib/utils/config.d.ts +21 -18
- package/dist/lib/utils/config.d.ts.map +1 -1
- package/dist/lib/utils/config.js +24 -28
- package/dist/lib/utils/config.js.map +1 -1
- package/dist/lib/utils/file-scanner.d.ts +9 -6
- package/dist/lib/utils/file-scanner.d.ts.map +1 -1
- package/dist/lib/utils/file-scanner.js +44 -51
- package/dist/lib/utils/file-scanner.js.map +1 -1
- package/dist/lib/utils/logger.d.ts +10 -7
- package/dist/lib/utils/logger.d.ts.map +1 -1
- package/dist/lib/utils/logger.js +23 -19
- package/dist/lib/utils/logger.js.map +1 -1
- package/dist/lib/utils/package-installer.d.ts +10 -7
- package/dist/lib/utils/package-installer.d.ts.map +1 -1
- package/dist/lib/utils/package-installer.js +18 -19
- package/dist/lib/utils/package-installer.js.map +1 -1
- package/dist/lib/utils/package-manager.d.ts +10 -7
- package/dist/lib/utils/package-manager.d.ts.map +1 -1
- package/dist/lib/utils/package-manager.js +68 -59
- package/dist/lib/utils/package-manager.js.map +1 -1
- package/package.json +7 -7
- package/dist/index.d.ts.map +0 -1
- package/dist/lib/transform-options.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-ai-sdk-lib.d.ts","
|
|
1
|
+
{"version":3,"file":"install-ai-sdk-lib.d.ts","names":[],"sources":["../../src/lib/install-ai-sdk-lib.ts"],"mappings":";iBAE8B,eAAA,CAAA,GAAmB,OAAO"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { installPackageIfNeeded } from "./utils/package-installer.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
2
|
+
//#region src/lib/install-ai-sdk-lib.ts
|
|
3
|
+
async function installAiSdkLib() {
|
|
4
|
+
await installPackageIfNeeded({
|
|
5
|
+
packageName: "@assistant-ui/react-ai-sdk",
|
|
6
|
+
importPatterns: ["@assistant-ui/react-ai-sdk"],
|
|
7
|
+
promptMessage: "AI SDK imports were added but @assistant-ui/react-ai-sdk is not installed. Do you want to install it? (Y/n) ",
|
|
8
|
+
skipMessage: "@assistant-ui/react-ai-sdk is already installed. Skipping installation.",
|
|
9
|
+
notFoundMessage: "No AI SDK imports found; skipping installation."
|
|
10
|
+
});
|
|
10
11
|
}
|
|
12
|
+
//#endregion
|
|
13
|
+
export { installAiSdkLib as default };
|
|
14
|
+
|
|
11
15
|
//# sourceMappingURL=install-ai-sdk-lib.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-ai-sdk-lib.js","
|
|
1
|
+
{"version":3,"file":"install-ai-sdk-lib.js","names":[],"sources":["../../src/lib/install-ai-sdk-lib.ts"],"sourcesContent":["import { installPackageIfNeeded } from \"./utils/package-installer\";\n\nexport default async function installAiSdkLib(): Promise<void> {\n await installPackageIfNeeded({\n packageName: \"@assistant-ui/react-ai-sdk\",\n importPatterns: [\"@assistant-ui/react-ai-sdk\"],\n promptMessage:\n \"AI SDK imports were added but @assistant-ui/react-ai-sdk is not installed. Do you want to install it? (Y/n) \",\n skipMessage:\n \"@assistant-ui/react-ai-sdk is already installed. Skipping installation.\",\n notFoundMessage: \"No AI SDK imports found; skipping installation.\",\n });\n}\n"],"mappings":";;AAEA,eAA8B,kBAAiC;CAC7D,MAAM,uBAAuB;EAC3B,aAAa;EACb,gBAAgB,CAAC,4BAA4B;EAC7C,eACE;EACF,aACE;EACF,iBAAiB;CACnB,CAAC;AACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-edge-lib.d.ts","
|
|
1
|
+
{"version":3,"file":"install-edge-lib.d.ts","names":[],"sources":["../../src/lib/install-edge-lib.ts"],"mappings":";iBAE8B,cAAA,CAAA,GAAkB,OAAO"}
|
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import { installPackageIfNeeded } from "./utils/package-installer.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
2
|
+
//#region src/lib/install-edge-lib.ts
|
|
3
|
+
async function installEdgeLib() {
|
|
4
|
+
await installPackageIfNeeded({
|
|
5
|
+
packageName: "@assistant-ui/react-ai-sdk",
|
|
6
|
+
importPatterns: [
|
|
7
|
+
"@assistant-ui/react-edge",
|
|
8
|
+
"@assistant-ui/react-ai-sdk",
|
|
9
|
+
"useChatRuntime"
|
|
10
|
+
],
|
|
11
|
+
promptMessage: "Edge Runtime imports were detected but @assistant-ui/react-ai-sdk is not installed. Do you want to install it? (Y/n) ",
|
|
12
|
+
skipMessage: "@assistant-ui/react-ai-sdk is already installed. Skipping installation.",
|
|
13
|
+
notFoundMessage: "No Edge Runtime imports found; skipping installation."
|
|
14
|
+
});
|
|
14
15
|
}
|
|
16
|
+
//#endregion
|
|
17
|
+
export { installEdgeLib as default };
|
|
18
|
+
|
|
15
19
|
//# sourceMappingURL=install-edge-lib.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-edge-lib.js","
|
|
1
|
+
{"version":3,"file":"install-edge-lib.js","names":[],"sources":["../../src/lib/install-edge-lib.ts"],"sourcesContent":["import { installPackageIfNeeded } from \"./utils/package-installer\";\n\nexport default async function installEdgeLib(): Promise<void> {\n await installPackageIfNeeded({\n packageName: \"@assistant-ui/react-ai-sdk\",\n importPatterns: [\n \"@assistant-ui/react-edge\",\n \"@assistant-ui/react-ai-sdk\",\n \"useChatRuntime\",\n ],\n promptMessage:\n \"Edge Runtime imports were detected but @assistant-ui/react-ai-sdk is not installed. Do you want to install it? (Y/n) \",\n skipMessage:\n \"@assistant-ui/react-ai-sdk is already installed. Skipping installation.\",\n notFoundMessage: \"No Edge Runtime imports found; skipping installation.\",\n });\n}\n"],"mappings":";;AAEA,eAA8B,iBAAgC;CAC5D,MAAM,uBAAuB;EAC3B,aAAa;EACb,gBAAgB;GACd;GACA;GACA;EACF;EACA,eACE;EACF,aACE;EACF,iBAAiB;CACnB,CAAC;AACH"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-ui-lib.d.ts","
|
|
1
|
+
{"version":3,"file":"install-ui-lib.d.ts","names":[],"sources":["../../src/lib/install-ui-lib.ts"],"mappings":";iBAE8B,iBAAA,CAAA,GAAqB,OAAO"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { installPackageIfNeeded } from "./utils/package-installer.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
2
|
+
//#region src/lib/install-ui-lib.ts
|
|
3
|
+
async function installReactUILib() {
|
|
4
|
+
await installPackageIfNeeded({
|
|
5
|
+
packageName: "@assistant-ui/react-ui",
|
|
6
|
+
importPatterns: ["@assistant-ui/react-ui"],
|
|
7
|
+
promptMessage: "React UI imports were added but @assistant-ui/react-ui is not installed. Do you want to install it? (Y/n) ",
|
|
8
|
+
skipMessage: "@assistant-ui/react-ui is already installed. Skipping installation.",
|
|
9
|
+
notFoundMessage: "No React UI imports found; skipping installation."
|
|
10
|
+
});
|
|
10
11
|
}
|
|
12
|
+
//#endregion
|
|
13
|
+
export { installReactUILib as default };
|
|
14
|
+
|
|
11
15
|
//# sourceMappingURL=install-ui-lib.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-ui-lib.js","
|
|
1
|
+
{"version":3,"file":"install-ui-lib.js","names":[],"sources":["../../src/lib/install-ui-lib.ts"],"sourcesContent":["import { installPackageIfNeeded } from \"./utils/package-installer\";\n\nexport default async function installReactUILib(): Promise<void> {\n await installPackageIfNeeded({\n packageName: \"@assistant-ui/react-ui\",\n importPatterns: [\"@assistant-ui/react-ui\"],\n promptMessage:\n \"React UI imports were added but @assistant-ui/react-ui is not installed. Do you want to install it? (Y/n) \",\n skipMessage:\n \"@assistant-ui/react-ui is already installed. Skipping installation.\",\n notFoundMessage: \"No React UI imports found; skipping installation.\",\n });\n}\n"],"mappings":";;AAEA,eAA8B,oBAAmC;CAC/D,MAAM,uBAAuB;EAC3B,aAAa;EACb,gBAAgB,CAAC,wBAAwB;EACzC,eACE;EACF,aACE;EACF,iBAAiB;CACnB,CAAC;AACH"}
|
package/dist/lib/run-spawn.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
//#region src/lib/run-spawn.d.ts
|
|
2
|
+
declare class SpawnExitError extends Error {
|
|
3
|
+
code: number;
|
|
4
|
+
constructor(code: number);
|
|
4
5
|
}
|
|
5
|
-
|
|
6
|
+
declare function runSpawn(command: string, args: string[], cwd?: string): Promise<void>;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { SpawnExitError, runSpawn };
|
|
6
9
|
//# sourceMappingURL=run-spawn.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-spawn.d.ts","
|
|
1
|
+
{"version":3,"file":"run-spawn.d.ts","names":[],"sources":["../../src/lib/run-spawn.ts"],"mappings":";cAEa,cAAA,SAAuB,KAAK;EACvC,IAAA;cAEY,IAAA;AAAA;AAAA,iBAME,QAAA,CACd,OAAA,UACA,IAAA,YACA,GAAA,YACC,OAAO"}
|
package/dist/lib/run-spawn.js
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
import { spawn } from "cross-spawn";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
});
|
|
2
|
+
//#region src/lib/run-spawn.ts
|
|
3
|
+
var SpawnExitError = class extends Error {
|
|
4
|
+
code;
|
|
5
|
+
constructor(code) {
|
|
6
|
+
super(`Process exited with code ${code}`);
|
|
7
|
+
this.code = code;
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
function runSpawn(command, args, cwd) {
|
|
11
|
+
return new Promise((resolve, reject) => {
|
|
12
|
+
const child = spawn(command, args, {
|
|
13
|
+
stdio: "inherit",
|
|
14
|
+
cwd
|
|
15
|
+
});
|
|
16
|
+
child.on("error", (error) => reject(error));
|
|
17
|
+
child.on("close", (code) => {
|
|
18
|
+
if (code !== 0) reject(new SpawnExitError(code || 1));
|
|
19
|
+
else resolve();
|
|
20
|
+
});
|
|
21
|
+
});
|
|
25
22
|
}
|
|
23
|
+
//#endregion
|
|
24
|
+
export { SpawnExitError, runSpawn };
|
|
25
|
+
|
|
26
26
|
//# sourceMappingURL=run-spawn.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-spawn.js","
|
|
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\n constructor(code: number) {\n super(`Process exited with code ${code}`);\n this.code = code;\n }\n}\n\nexport function runSpawn(\n command: string,\n args: string[],\n cwd?: string,\n): Promise<void> {\n return new Promise((resolve, reject) => {\n const child = spawn(command, args, {\n stdio: \"inherit\",\n cwd,\n });\n\n child.on(\"error\", (error) => reject(error));\n child.on(\"close\", (code) => {\n if (code !== 0) {\n reject(new SpawnExitError(code || 1));\n } else {\n resolve();\n }\n });\n });\n}\n"],"mappings":";;AAEA,IAAa,iBAAb,cAAoC,MAAM;CACxC;CAEA,YAAY,MAAc;EACxB,MAAM,4BAA4B,MAAM;EACxC,KAAK,OAAO;CACd;AACF;AAEA,SAAgB,SACd,SACA,MACA,KACe;CACf,OAAO,IAAI,SAAS,SAAS,WAAW;EACtC,MAAM,QAAQ,MAAM,SAAS,MAAM;GACjC,OAAO;GACP;EACF,CAAC;EAED,MAAM,GAAG,UAAU,UAAU,OAAO,KAAK,CAAC;EAC1C,MAAM,GAAG,UAAU,SAAS;GAC1B,IAAI,SAAS,GACX,OAAO,IAAI,eAAe,QAAQ,CAAC,CAAC;QAEpC,QAAQ;EAEZ,CAAC;CACH,CAAC;AACH"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
//#region src/lib/transform-options.d.ts
|
|
2
|
+
interface TransformOptions {
|
|
3
|
+
dry?: boolean;
|
|
4
|
+
print?: boolean;
|
|
5
|
+
verbose?: boolean;
|
|
6
|
+
jscodeshift?: string;
|
|
6
7
|
}
|
|
8
|
+
//#endregion
|
|
9
|
+
export { TransformOptions };
|
|
7
10
|
//# sourceMappingURL=transform-options.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform-options.d.ts","
|
|
1
|
+
{"version":3,"file":"transform-options.d.ts","names":[],"sources":["../../src/lib/transform-options.ts"],"mappings":";UAAiB,gBAAA;EACf,GAAA;EACA,KAAA;EACA,OAAA;EACA,WAAA;AAAA"}
|
package/dist/lib/transform.d.ts
CHANGED
|
@@ -1,21 +1,25 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { TransformOptions } from "./transform-options.js";
|
|
2
|
+
|
|
3
|
+
//#region src/lib/transform.d.ts
|
|
2
4
|
/**
|
|
3
5
|
* Gets the list of files that need to be processed in the codebase
|
|
4
6
|
* Only includes files that contain "assistant-ui" to optimize performance
|
|
5
7
|
*/
|
|
6
|
-
|
|
8
|
+
declare function getRelevantFiles(cwd: string): string[];
|
|
7
9
|
/**
|
|
8
10
|
* Counts the number of files that need to be processed
|
|
9
11
|
*/
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
declare function countFilesToProcess(cwd: string): number;
|
|
13
|
+
type TransformErrors = {
|
|
14
|
+
transform: string;
|
|
15
|
+
filename: string;
|
|
16
|
+
summary: string;
|
|
15
17
|
}[];
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
declare function transform(codemod: string, source: string, transformOptions: TransformOptions, options?: {
|
|
19
|
+
logStatus: boolean;
|
|
20
|
+
onProgress?: (processedFiles: number) => void;
|
|
21
|
+
relevantFiles?: string[];
|
|
20
22
|
}): TransformErrors;
|
|
23
|
+
//#endregion
|
|
24
|
+
export { TransformErrors, countFilesToProcess, getRelevantFiles, transform };
|
|
21
25
|
//# sourceMappingURL=transform.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.d.ts","
|
|
1
|
+
{"version":3,"file":"transform.d.ts","names":[],"sources":["../../src/lib/transform.ts"],"mappings":";;;;;AAkBA;;iBAAgB,gBAAA,CAAiB,GAAW;;AAAA;AA6B5C;iBAAgB,mBAAA,CAAoB,GAAW;AAAA,KAsCnC,eAAA;EACV,SAAA;EACA,QAAA;EACA,OAAA;AAAA;AAAA,iBAoBc,SAAA,CACd,OAAA,UACA,MAAA,UACA,gBAAA,EAAkB,gBAAA,EAClB,OAAA;EACE,SAAA;EACA,UAAA,IAAc,cAAA;EACd,aAAA;AAAA,IAED,eAAe"}
|
package/dist/lib/transform.js
CHANGED
|
@@ -1,131 +1,114 @@
|
|
|
1
|
+
import * as fs$1 from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { sync } from "glob";
|
|
1
4
|
import { execFileSync, spawnSync } from "node:child_process";
|
|
2
5
|
import debug from "debug";
|
|
3
|
-
import path from "node:path";
|
|
4
6
|
import { fileURLToPath } from "node:url";
|
|
5
|
-
|
|
6
|
-
import { sync as globSync } from "glob";
|
|
7
|
+
//#region src/lib/transform.ts
|
|
7
8
|
const log = debug("codemod:transform");
|
|
8
9
|
const error = debug("codemod:transform:error");
|
|
9
10
|
const __filename = fileURLToPath(import.meta.url);
|
|
10
11
|
const __dirname = path.dirname(__filename);
|
|
11
12
|
/**
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
catch {
|
|
34
|
-
return false;
|
|
35
|
-
}
|
|
36
|
-
});
|
|
37
|
-
return relevantFiles.map((file) => path.join(cwd, file));
|
|
13
|
+
* Gets the list of files that need to be processed in the codebase
|
|
14
|
+
* Only includes files that contain "assistant-ui" to optimize performance
|
|
15
|
+
*/
|
|
16
|
+
function getRelevantFiles(cwd) {
|
|
17
|
+
return sync("**/*.{js,jsx,ts,tsx}", {
|
|
18
|
+
cwd,
|
|
19
|
+
ignore: [
|
|
20
|
+
"**/node_modules/**",
|
|
21
|
+
"**/dist/**",
|
|
22
|
+
"**/build/**",
|
|
23
|
+
"**/*.min.js",
|
|
24
|
+
"**/*.bundle.js"
|
|
25
|
+
]
|
|
26
|
+
}).filter((file) => {
|
|
27
|
+
try {
|
|
28
|
+
return fs$1.readFileSync(path.join(cwd, file), "utf8").includes("assistant-ui");
|
|
29
|
+
} catch {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
}).map((file) => path.join(cwd, file));
|
|
38
33
|
}
|
|
39
34
|
/**
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
35
|
+
* Counts the number of files that need to be processed
|
|
36
|
+
*/
|
|
37
|
+
function countFilesToProcess(cwd) {
|
|
38
|
+
return getRelevantFiles(cwd).length;
|
|
44
39
|
}
|
|
45
40
|
function buildCommand(codemodPath, targetFiles, options) {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}
|
|
61
|
-
if (options.verbose) {
|
|
62
|
-
command.push("--verbose");
|
|
63
|
-
}
|
|
64
|
-
if (options.jscodeshift) {
|
|
65
|
-
command.push(options.jscodeshift);
|
|
66
|
-
}
|
|
67
|
-
return command;
|
|
41
|
+
const command = [
|
|
42
|
+
"npx",
|
|
43
|
+
"jscodeshift",
|
|
44
|
+
"-t",
|
|
45
|
+
codemodPath,
|
|
46
|
+
...targetFiles,
|
|
47
|
+
"--parser",
|
|
48
|
+
"tsx"
|
|
49
|
+
];
|
|
50
|
+
if (options.dry) command.push("--dry");
|
|
51
|
+
if (options.print) command.push("--print");
|
|
52
|
+
if (options.verbose) command.push("--verbose");
|
|
53
|
+
if (options.jscodeshift) command.push(options.jscodeshift);
|
|
54
|
+
return command;
|
|
68
55
|
}
|
|
69
56
|
function parseErrors(transform, output) {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
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;
|
|
82
73
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
encoding: "utf8",
|
|
120
|
-
stdio: "pipe",
|
|
121
|
-
});
|
|
122
|
-
const errors = parseErrors(codemod, stdout);
|
|
123
|
-
if (options.logStatus && errors.length > 0) {
|
|
124
|
-
errors.forEach(({ transform, filename, summary }) => {
|
|
125
|
-
error(`Error applying codemod [codemod=${transform}, path=${filename}, summary=${summary}]`);
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
return errors;
|
|
129
|
-
}
|
|
74
|
+
function transform(codemod, source, transformOptions, options = { logStatus: true }) {
|
|
75
|
+
if (options.logStatus) log(`Applying codemod '${codemod}': ${source}`);
|
|
76
|
+
const codemodPath = path.resolve(__dirname, `../codemods/${codemod}.js`);
|
|
77
|
+
const targetFiles = options.relevantFiles || getRelevantFiles(source);
|
|
78
|
+
if (targetFiles.length === 0) {
|
|
79
|
+
log(`No relevant files found for codemod '${codemod}'`);
|
|
80
|
+
return [];
|
|
81
|
+
}
|
|
82
|
+
log(`Found ${targetFiles.length} relevant files for codemod '${codemod}'`);
|
|
83
|
+
const command = buildCommand(codemodPath, targetFiles, transformOptions);
|
|
84
|
+
if (options.onProgress) {
|
|
85
|
+
const stdout = spawnSync(command[0], command.slice(1), {
|
|
86
|
+
encoding: "utf8",
|
|
87
|
+
stdio: [
|
|
88
|
+
"ignore",
|
|
89
|
+
"pipe",
|
|
90
|
+
"pipe"
|
|
91
|
+
]
|
|
92
|
+
}).stdout || "";
|
|
93
|
+
const processedFiles = (stdout.match(/Processing file/g) || []).length;
|
|
94
|
+
if (options.onProgress) options.onProgress(processedFiles);
|
|
95
|
+
const errors = parseErrors(codemod, stdout);
|
|
96
|
+
if (options.logStatus && errors.length > 0) errors.forEach(({ transform, filename, summary }) => {
|
|
97
|
+
error(`Error applying codemod [codemod=${transform}, path=${filename}, summary=${summary}]`);
|
|
98
|
+
});
|
|
99
|
+
return errors;
|
|
100
|
+
} else {
|
|
101
|
+
const errors = parseErrors(codemod, execFileSync(command[0], command.slice(1), {
|
|
102
|
+
encoding: "utf8",
|
|
103
|
+
stdio: "pipe"
|
|
104
|
+
}));
|
|
105
|
+
if (options.logStatus && errors.length > 0) errors.forEach(({ transform, filename, summary }) => {
|
|
106
|
+
error(`Error applying codemod [codemod=${transform}, path=${filename}, summary=${summary}]`);
|
|
107
|
+
});
|
|
108
|
+
return errors;
|
|
109
|
+
}
|
|
130
110
|
}
|
|
111
|
+
//#endregion
|
|
112
|
+
export { countFilesToProcess, getRelevantFiles, transform };
|
|
113
|
+
|
|
131
114
|
//# sourceMappingURL=transform.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.js","
|
|
1
|
+
{"version":3,"file":"transform.js","names":["globSync","fs"],"sources":["../../src/lib/transform.ts"],"sourcesContent":["import { execFileSync, spawnSync } from \"node:child_process\";\nimport 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\";\n\nconst log = debug(\"codemod:transform\");\nconst error = debug(\"codemod:transform:error\");\n\nconst __filename = fileURLToPath(import.meta.url);\nconst __dirname = path.dirname(__filename);\n\n/**\n * Gets the list of files that need to be processed in the codebase\n * Only includes files that contain \"assistant-ui\" to optimize performance\n */\nexport function getRelevantFiles(cwd: string): string[] {\n const pattern = \"**/*.{js,jsx,ts,tsx}\";\n const files = globSync(pattern, {\n cwd,\n ignore: [\n \"**/node_modules/**\",\n \"**/dist/**\",\n \"**/build/**\",\n \"**/*.min.js\",\n \"**/*.bundle.js\",\n ],\n });\n\n // Filter files to only include those containing \"assistant-ui\"\n const relevantFiles = files.filter((file) => {\n try {\n const content = fs.readFileSync(path.join(cwd, file), \"utf8\");\n return content.includes(\"assistant-ui\");\n } catch {\n return false;\n }\n });\n\n return relevantFiles.map((file) => path.join(cwd, file));\n}\n\n/**\n * Counts the number of files that need to be processed\n */\nexport function countFilesToProcess(cwd: string): number {\n return getRelevantFiles(cwd).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 ];\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\nfunction parseErrors(transform: string, output: string): TransformErrors {\n const errors: TransformErrors = [];\n const errorRegex = /ERR (.+) Transformation error/g;\n const syntaxErrorRegex = /SyntaxError: .+/g;\n\n for (const match of output.matchAll(errorRegex)) {\n const filename = match[1]!;\n const syntaxErrorMatch = syntaxErrorRegex.exec(output);\n if (syntaxErrorMatch) {\n const summary = syntaxErrorMatch[0];\n errors.push({ transform, filename, summary });\n }\n }\n\n return errors;\n}\n\nexport 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): 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 // Use spawn instead of execFileSync to capture output in real-time\n if (options.onProgress) {\n const result = spawnSync(command[0]!, command.slice(1), {\n encoding: \"utf8\",\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n });\n\n const stdout = result.stdout || \"\";\n\n // Count the number of processed files from the output\n const processedFiles = (stdout.match(/Processing file/g) || []).length;\n if (options.onProgress) {\n options.onProgress(processedFiles);\n }\n\n const errors = parseErrors(codemod, stdout);\n if (options.logStatus && errors.length > 0) {\n errors.forEach(({ transform, filename, summary }) => {\n error(\n `Error applying codemod [codemod=${transform}, path=${filename}, summary=${summary}]`,\n );\n });\n }\n return errors;\n } else {\n // Use the original synchronous approach if no progress callback\n const stdout = execFileSync(command[0]!, command.slice(1), {\n encoding: \"utf8\",\n stdio: \"pipe\",\n });\n const errors = parseErrors(codemod, stdout);\n if (options.logStatus && errors.length > 0) {\n errors.forEach(({ transform, filename, summary }) => {\n error(\n `Error applying codemod [codemod=${transform}, path=${filename}, summary=${summary}]`,\n );\n });\n }\n return errors;\n }\n}\n"],"mappings":"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"}
|
package/dist/lib/upgrade.d.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { TransformOptions } from "./transform-options.js";
|
|
2
|
+
|
|
3
|
+
//#region src/lib/upgrade.d.ts
|
|
2
4
|
/**
|
|
3
5
|
* Runs the upgrade cycle:
|
|
4
6
|
* - Runs each codemod in the bundle.
|
|
5
7
|
* - Displays progress using cli-progress.
|
|
6
8
|
* - After codemods run, checks if any file now imports from the new packages and prompts for install.
|
|
7
9
|
*/
|
|
8
|
-
|
|
10
|
+
declare function upgrade(options: TransformOptions): Promise<void>;
|
|
11
|
+
//#endregion
|
|
12
|
+
export { upgrade };
|
|
9
13
|
//# sourceMappingURL=upgrade.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.d.ts","
|
|
1
|
+
{"version":3,"file":"upgrade.d.ts","names":[],"sources":["../../src/lib/upgrade.ts"],"mappings":";;;;;AA2BA;;;;iBAAsB,OAAA,CAAQ,OAAA,EAAS,gBAAA,GAAgB,OAAA"}
|