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.
Files changed (117) hide show
  1. package/dist/codemods/utils/createTransformer.d.ts +17 -13
  2. package/dist/codemods/utils/createTransformer.d.ts.map +1 -1
  3. package/dist/codemods/utils/createTransformer.js +18 -15
  4. package/dist/codemods/utils/createTransformer.js.map +1 -1
  5. package/dist/codemods/v0-11/content-part-to-message-part.d.ts +3 -1
  6. package/dist/codemods/v0-11/content-part-to-message-part.d.ts.map +1 -1
  7. package/dist/codemods/v0-11/content-part-to-message-part.js +98 -135
  8. package/dist/codemods/v0-11/content-part-to-message-part.js.map +1 -1
  9. package/dist/codemods/v0-12/assistant-api-to-aui.d.ts +3 -1
  10. package/dist/codemods/v0-12/assistant-api-to-aui.d.ts.map +1 -1
  11. package/dist/codemods/v0-12/assistant-api-to-aui.js +126 -213
  12. package/dist/codemods/v0-12/assistant-api-to-aui.js.map +1 -1
  13. package/dist/codemods/v0-12/event-names-to-camelcase.d.ts +3 -1
  14. package/dist/codemods/v0-12/event-names-to-camelcase.d.ts.map +1 -1
  15. package/dist/codemods/v0-12/event-names-to-camelcase.js +33 -38
  16. package/dist/codemods/v0-12/event-names-to-camelcase.js.map +1 -1
  17. package/dist/codemods/v0-12/primitive-if-to-aui-if.d.ts +3 -1
  18. package/dist/codemods/v0-12/primitive-if-to-aui-if.d.ts.map +1 -1
  19. package/dist/codemods/v0-12/primitive-if-to-aui-if.js +212 -297
  20. package/dist/codemods/v0-12/primitive-if-to-aui-if.js.map +1 -1
  21. package/dist/codemods/v0-8/ui-package-split.d.ts +3 -1
  22. package/dist/codemods/v0-8/ui-package-split.d.ts.map +1 -1
  23. package/dist/codemods/v0-8/ui-package-split.js +121 -164
  24. package/dist/codemods/v0-8/ui-package-split.js.map +1 -1
  25. package/dist/codemods/v0-9/edge-package-split.d.ts +3 -1
  26. package/dist/codemods/v0-9/edge-package-split.d.ts.map +1 -1
  27. package/dist/codemods/v0-9/edge-package-split.js +96 -140
  28. package/dist/codemods/v0-9/edge-package-split.js.map +1 -1
  29. package/dist/commands/add.d.ts +16 -12
  30. package/dist/commands/add.d.ts.map +1 -1
  31. package/dist/commands/add.js +53 -64
  32. package/dist/commands/add.js.map +1 -1
  33. package/dist/commands/agent.d.ts +5 -1
  34. package/dist/commands/agent.d.ts.map +1 -1
  35. package/dist/commands/agent.js +16 -25
  36. package/dist/commands/agent.js.map +1 -1
  37. package/dist/commands/create.d.ts +34 -30
  38. package/dist/commands/create.d.ts.map +1 -1
  39. package/dist/commands/create.js +454 -527
  40. package/dist/commands/create.js.map +1 -1
  41. package/dist/commands/info.d.ts +5 -1
  42. package/dist/commands/info.d.ts.map +1 -1
  43. package/dist/commands/info.js +233 -314
  44. package/dist/commands/info.js.map +1 -1
  45. package/dist/commands/init.d.ts +12 -9
  46. package/dist/commands/init.d.ts.map +1 -1
  47. package/dist/commands/init.js +98 -107
  48. package/dist/commands/init.js.map +1 -1
  49. package/dist/commands/mcp.d.ts +5 -1
  50. package/dist/commands/mcp.d.ts.map +1 -1
  51. package/dist/commands/mcp.js +175 -214
  52. package/dist/commands/mcp.js.map +1 -1
  53. package/dist/commands/update.d.ts +5 -1
  54. package/dist/commands/update.d.ts.map +1 -1
  55. package/dist/commands/update.js +46 -55
  56. package/dist/commands/update.js.map +1 -1
  57. package/dist/commands/upgrade.d.ts +11 -7
  58. package/dist/commands/upgrade.d.ts.map +1 -1
  59. package/dist/commands/upgrade.js +26 -38
  60. package/dist/commands/upgrade.js.map +1 -1
  61. package/dist/index.d.ts +1 -3
  62. package/dist/index.js +15 -14
  63. package/dist/index.js.map +1 -1
  64. package/dist/lib/create-project.d.ts +24 -21
  65. package/dist/lib/create-project.d.ts.map +1 -1
  66. package/dist/lib/create-project.js +227 -297
  67. package/dist/lib/create-project.js.map +1 -1
  68. package/dist/lib/install-ai-sdk-lib.d.ts +4 -1
  69. package/dist/lib/install-ai-sdk-lib.d.ts.map +1 -1
  70. package/dist/lib/install-ai-sdk-lib.js +12 -8
  71. package/dist/lib/install-ai-sdk-lib.js.map +1 -1
  72. package/dist/lib/install-edge-lib.d.ts +4 -1
  73. package/dist/lib/install-edge-lib.d.ts.map +1 -1
  74. package/dist/lib/install-edge-lib.js +16 -12
  75. package/dist/lib/install-edge-lib.js.map +1 -1
  76. package/dist/lib/install-ui-lib.d.ts +4 -1
  77. package/dist/lib/install-ui-lib.d.ts.map +1 -1
  78. package/dist/lib/install-ui-lib.js +12 -8
  79. package/dist/lib/install-ui-lib.js.map +1 -1
  80. package/dist/lib/run-spawn.d.ts +7 -4
  81. package/dist/lib/run-spawn.d.ts.map +1 -1
  82. package/dist/lib/run-spawn.js +23 -23
  83. package/dist/lib/run-spawn.js.map +1 -1
  84. package/dist/lib/transform-options.d.ts +8 -5
  85. package/dist/lib/transform-options.d.ts.map +1 -1
  86. package/dist/lib/transform-options.js +0 -2
  87. package/dist/lib/transform.d.ts +15 -11
  88. package/dist/lib/transform.d.ts.map +1 -1
  89. package/dist/lib/transform.js +97 -114
  90. package/dist/lib/transform.js.map +1 -1
  91. package/dist/lib/upgrade.d.ts +6 -2
  92. package/dist/lib/upgrade.d.ts.map +1 -1
  93. package/dist/lib/upgrade.js +62 -64
  94. package/dist/lib/upgrade.js.map +1 -1
  95. package/dist/lib/utils/config.d.ts +21 -18
  96. package/dist/lib/utils/config.d.ts.map +1 -1
  97. package/dist/lib/utils/config.js +24 -28
  98. package/dist/lib/utils/config.js.map +1 -1
  99. package/dist/lib/utils/file-scanner.d.ts +9 -6
  100. package/dist/lib/utils/file-scanner.d.ts.map +1 -1
  101. package/dist/lib/utils/file-scanner.js +44 -51
  102. package/dist/lib/utils/file-scanner.js.map +1 -1
  103. package/dist/lib/utils/logger.d.ts +10 -7
  104. package/dist/lib/utils/logger.d.ts.map +1 -1
  105. package/dist/lib/utils/logger.js +23 -19
  106. package/dist/lib/utils/logger.js.map +1 -1
  107. package/dist/lib/utils/package-installer.d.ts +10 -7
  108. package/dist/lib/utils/package-installer.d.ts.map +1 -1
  109. package/dist/lib/utils/package-installer.js +18 -19
  110. package/dist/lib/utils/package-installer.js.map +1 -1
  111. package/dist/lib/utils/package-manager.d.ts +10 -7
  112. package/dist/lib/utils/package-manager.d.ts.map +1 -1
  113. package/dist/lib/utils/package-manager.js +68 -59
  114. package/dist/lib/utils/package-manager.js.map +1 -1
  115. package/package.json +7 -7
  116. package/dist/index.d.ts.map +0 -1
  117. package/dist/lib/transform-options.js.map +0 -1
@@ -1,2 +1,5 @@
1
- export default function installAiSdkLib(): Promise<void>;
1
+ //#region src/lib/install-ai-sdk-lib.d.ts
2
+ declare function installAiSdkLib(): Promise<void>;
3
+ //#endregion
4
+ export { installAiSdkLib as default };
2
5
  //# sourceMappingURL=install-ai-sdk-lib.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"install-ai-sdk-lib.d.ts","sourceRoot":"","sources":["../../src/lib/install-ai-sdk-lib.ts"],"names":[],"mappings":"AAEA,wBAA8B,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAU7D"}
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
- export default async function installAiSdkLib() {
3
- await installPackageIfNeeded({
4
- packageName: "@assistant-ui/react-ai-sdk",
5
- importPatterns: ["@assistant-ui/react-ai-sdk"],
6
- promptMessage: "AI SDK imports were added but @assistant-ui/react-ai-sdk is not installed. Do you want to install it? (Y/n) ",
7
- skipMessage: "@assistant-ui/react-ai-sdk is already installed. Skipping installation.",
8
- notFoundMessage: "No AI SDK imports found; skipping installation.",
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","sourceRoot":"","sources":["../../src/lib/install-ai-sdk-lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,qCAAkC;AAEnE,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,eAAe;IAC3C,MAAM,sBAAsB,CAAC;QAC3B,WAAW,EAAE,4BAA4B;QACzC,cAAc,EAAE,CAAC,4BAA4B,CAAC;QAC9C,aAAa,EACX,8GAA8G;QAChH,WAAW,EACT,yEAAyE;QAC3E,eAAe,EAAE,iDAAiD;KACnE,CAAC,CAAC;AACL,CAAC"}
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,2 +1,5 @@
1
- export default function installEdgeLib(): Promise<void>;
1
+ //#region src/lib/install-edge-lib.d.ts
2
+ declare function installEdgeLib(): Promise<void>;
3
+ //#endregion
4
+ export { installEdgeLib as default };
2
5
  //# sourceMappingURL=install-edge-lib.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"install-edge-lib.d.ts","sourceRoot":"","sources":["../../src/lib/install-edge-lib.ts"],"names":[],"mappings":"AAEA,wBAA8B,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAc5D"}
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
- export default async function installEdgeLib() {
3
- await installPackageIfNeeded({
4
- packageName: "@assistant-ui/react-ai-sdk",
5
- importPatterns: [
6
- "@assistant-ui/react-edge",
7
- "@assistant-ui/react-ai-sdk",
8
- "useChatRuntime",
9
- ],
10
- promptMessage: "Edge Runtime imports were detected but @assistant-ui/react-ai-sdk is not installed. Do you want to install it? (Y/n) ",
11
- skipMessage: "@assistant-ui/react-ai-sdk is already installed. Skipping installation.",
12
- notFoundMessage: "No Edge Runtime imports found; skipping installation.",
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","sourceRoot":"","sources":["../../src/lib/install-edge-lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,qCAAkC;AAEnE,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,cAAc;IAC1C,MAAM,sBAAsB,CAAC;QAC3B,WAAW,EAAE,4BAA4B;QACzC,cAAc,EAAE;YACd,0BAA0B;YAC1B,4BAA4B;YAC5B,gBAAgB;SACjB;QACD,aAAa,EACX,uHAAuH;QACzH,WAAW,EACT,yEAAyE;QAC3E,eAAe,EAAE,uDAAuD;KACzE,CAAC,CAAC;AACL,CAAC"}
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,2 +1,5 @@
1
- export default function installReactUILib(): Promise<void>;
1
+ //#region src/lib/install-ui-lib.d.ts
2
+ declare function installReactUILib(): Promise<void>;
3
+ //#endregion
4
+ export { installReactUILib as default };
2
5
  //# sourceMappingURL=install-ui-lib.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"install-ui-lib.d.ts","sourceRoot":"","sources":["../../src/lib/install-ui-lib.ts"],"names":[],"mappings":"AAEA,wBAA8B,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAU/D"}
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
- export default async function installReactUILib() {
3
- await installPackageIfNeeded({
4
- packageName: "@assistant-ui/react-ui",
5
- importPatterns: ["@assistant-ui/react-ui"],
6
- promptMessage: "React UI imports were added but @assistant-ui/react-ui is not installed. Do you want to install it? (Y/n) ",
7
- skipMessage: "@assistant-ui/react-ui is already installed. Skipping installation.",
8
- notFoundMessage: "No React UI imports found; skipping installation.",
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","sourceRoot":"","sources":["../../src/lib/install-ui-lib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,qCAAkC;AAEnE,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,iBAAiB;IAC7C,MAAM,sBAAsB,CAAC;QAC3B,WAAW,EAAE,wBAAwB;QACrC,cAAc,EAAE,CAAC,wBAAwB,CAAC;QAC1C,aAAa,EACX,4GAA4G;QAC9G,WAAW,EACT,qEAAqE;QACvE,eAAe,EAAE,mDAAmD;KACrE,CAAC,CAAC;AACL,CAAC"}
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"}
@@ -1,6 +1,9 @@
1
- export declare class SpawnExitError extends Error {
2
- code: number;
3
- constructor(code: number);
1
+ //#region src/lib/run-spawn.d.ts
2
+ declare class SpawnExitError extends Error {
3
+ code: number;
4
+ constructor(code: number);
4
5
  }
5
- export declare function runSpawn(command: string, args: string[], cwd?: string): Promise<void>;
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","sourceRoot":"","sources":["../../src/lib/run-spawn.ts"],"names":[],"mappings":"AAEA,qBAAa,cAAe,SAAQ,KAAK;IACvC,IAAI,EAAE,MAAM,CAAC;gBAED,IAAI,EAAE,MAAM;CAIzB;AAED,wBAAgB,QAAQ,CACtB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAgBf"}
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"}
@@ -1,26 +1,26 @@
1
1
  import { spawn } from "cross-spawn";
2
- export class SpawnExitError extends Error {
3
- code;
4
- constructor(code) {
5
- super(`Process exited with code ${code}`);
6
- this.code = code;
7
- }
8
- }
9
- export function runSpawn(command, args, cwd) {
10
- return new Promise((resolve, reject) => {
11
- const child = spawn(command, args, {
12
- stdio: "inherit",
13
- cwd,
14
- });
15
- child.on("error", (error) => reject(error));
16
- child.on("close", (code) => {
17
- if (code !== 0) {
18
- reject(new SpawnExitError(code || 1));
19
- }
20
- else {
21
- resolve();
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","sourceRoot":"","sources":["../../src/lib/run-spawn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvC,IAAI,CAAS;IAEb,YAAY,IAAY;QACtB,KAAK,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,UAAU,QAAQ,CACtB,OAAe,EACf,IAAc,EACd,GAAY;IAEZ,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;YACjC,KAAK,EAAE,SAAS;YAChB,GAAG;SACJ,CAAC,CAAC;QAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5C,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACzB,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,cAAc,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
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
- export interface TransformOptions {
2
- dry?: boolean;
3
- print?: boolean;
4
- verbose?: boolean;
5
- jscodeshift?: string;
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","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"}
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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=transform-options.js.map
@@ -1,21 +1,25 @@
1
- import type { TransformOptions } from "./transform-options.js";
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
- export declare function getRelevantFiles(cwd: string): string[];
8
+ declare function getRelevantFiles(cwd: string): string[];
7
9
  /**
8
10
  * Counts the number of files that need to be processed
9
11
  */
10
- export declare function countFilesToProcess(cwd: string): number;
11
- export type TransformErrors = {
12
- transform: string;
13
- filename: string;
14
- summary: string;
12
+ declare function countFilesToProcess(cwd: string): number;
13
+ type TransformErrors = {
14
+ transform: string;
15
+ filename: string;
16
+ summary: string;
15
17
  }[];
16
- export declare function transform(codemod: string, source: string, transformOptions: TransformOptions, options?: {
17
- logStatus: boolean;
18
- onProgress?: (processedFiles: number) => void;
19
- relevantFiles?: string[];
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","sourceRoot":"","sources":["../../src/lib/transform.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,+BAA4B;AAW5D;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAwBtD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEvD;AAoCD,MAAM,MAAM,eAAe,GAAG;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,EAAE,CAAC;AAmBJ,wBAAgB,SAAS,CACvB,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,eAAe,CA0DjB"}
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"}
@@ -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
- import * as fs from "node:fs";
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
- * Gets the list of files that need to be processed in the codebase
13
- * Only includes files that contain "assistant-ui" to optimize performance
14
- */
15
- export function getRelevantFiles(cwd) {
16
- const pattern = "**/*.{js,jsx,ts,tsx}";
17
- const files = globSync(pattern, {
18
- cwd,
19
- ignore: [
20
- "**/node_modules/**",
21
- "**/dist/**",
22
- "**/build/**",
23
- "**/*.min.js",
24
- "**/*.bundle.js",
25
- ],
26
- });
27
- // Filter files to only include those containing "assistant-ui"
28
- const relevantFiles = files.filter((file) => {
29
- try {
30
- const content = fs.readFileSync(path.join(cwd, file), "utf8");
31
- return content.includes("assistant-ui");
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
- * Counts the number of files that need to be processed
41
- */
42
- export function countFilesToProcess(cwd) {
43
- return getRelevantFiles(cwd).length;
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
- const command = [
47
- "npx",
48
- "jscodeshift",
49
- "-t",
50
- codemodPath,
51
- ...targetFiles,
52
- "--parser",
53
- "tsx",
54
- ];
55
- if (options.dry) {
56
- command.push("--dry");
57
- }
58
- if (options.print) {
59
- command.push("--print");
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
- const errors = [];
71
- const errorRegex = /ERR (.+) Transformation error/g;
72
- const syntaxErrorRegex = /SyntaxError: .+/g;
73
- for (const match of output.matchAll(errorRegex)) {
74
- const filename = match[1];
75
- const syntaxErrorMatch = syntaxErrorRegex.exec(output);
76
- if (syntaxErrorMatch) {
77
- const summary = syntaxErrorMatch[0];
78
- errors.push({ transform, filename, summary });
79
- }
80
- }
81
- return errors;
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
- export function transform(codemod, source, transformOptions, options = { logStatus: true }) {
84
- if (options.logStatus) {
85
- log(`Applying codemod '${codemod}': ${source}`);
86
- }
87
- const codemodPath = path.resolve(__dirname, `../codemods/${codemod}.js`);
88
- // Use pre-computed relevant files if provided, otherwise get them
89
- const targetFiles = options.relevantFiles || getRelevantFiles(source);
90
- if (targetFiles.length === 0) {
91
- log(`No relevant files found for codemod '${codemod}'`);
92
- return [];
93
- }
94
- log(`Found ${targetFiles.length} relevant files for codemod '${codemod}'`);
95
- const command = buildCommand(codemodPath, targetFiles, transformOptions);
96
- // Use spawn instead of execFileSync to capture output in real-time
97
- if (options.onProgress) {
98
- const result = spawnSync(command[0], command.slice(1), {
99
- encoding: "utf8",
100
- stdio: ["ignore", "pipe", "pipe"],
101
- });
102
- const stdout = result.stdout || "";
103
- // Count the number of processed files from the output
104
- const processedFiles = (stdout.match(/Processing file/g) || []).length;
105
- if (options.onProgress) {
106
- options.onProgress(processedFiles);
107
- }
108
- const errors = parseErrors(codemod, stdout);
109
- if (options.logStatus && errors.length > 0) {
110
- errors.forEach(({ transform, filename, summary }) => {
111
- error(`Error applying codemod [codemod=${transform}, path=${filename}, summary=${summary}]`);
112
- });
113
- }
114
- return errors;
115
- }
116
- else {
117
- // Use the original synchronous approach if no progress callback
118
- const stdout = execFileSync(command[0], command.slice(1), {
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","sourceRoot":"","sources":["../../src/lib/transform.ts"],"names":[],"mappings":"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"}
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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"}
@@ -1,9 +1,13 @@
1
- import type { TransformOptions } from "./transform-options.js";
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
- export declare function upgrade(options: TransformOptions): Promise<void>;
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","sourceRoot":"","sources":["../../src/lib/upgrade.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,+BAA4B;AAmB5D;;;;;GAKG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,gBAAgB,iBA+DtD"}
1
+ {"version":3,"file":"upgrade.d.ts","names":[],"sources":["../../src/lib/upgrade.ts"],"mappings":";;;;;AA2BA;;;;iBAAsB,OAAA,CAAQ,OAAA,EAAS,gBAAA,GAAgB,OAAA"}