assistant-ui 0.0.49 → 0.0.51

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 (74) hide show
  1. package/dist/codemods/utils/createTransformer.d.ts +15 -0
  2. package/dist/codemods/utils/createTransformer.d.ts.map +1 -0
  3. package/dist/codemods/utils/createTransformer.js +1 -0
  4. package/dist/codemods/utils/createTransformer.js.map +1 -1
  5. package/dist/codemods/v0-8/ui-package-split.d.ts +3 -0
  6. package/dist/codemods/v0-8/ui-package-split.d.ts.map +1 -0
  7. package/dist/codemods/v0-8/ui-package-split.js +4 -3
  8. package/dist/codemods/v0-8/ui-package-split.js.map +1 -1
  9. package/dist/codemods/v0-9/edge-package-split.d.ts +3 -0
  10. package/dist/codemods/v0-9/edge-package-split.d.ts.map +1 -0
  11. package/dist/codemods/v0-9/edge-package-split.js +5 -4
  12. package/dist/codemods/v0-9/edge-package-split.js.map +1 -1
  13. package/dist/commands/add.d.ts +3 -0
  14. package/dist/commands/add.d.ts.map +1 -0
  15. package/dist/commands/add.js +3 -2
  16. package/dist/commands/add.js.map +1 -1
  17. package/dist/commands/create.d.ts +3 -0
  18. package/dist/commands/create.d.ts.map +1 -0
  19. package/dist/commands/create.js +2 -1
  20. package/dist/commands/create.js.map +1 -1
  21. package/dist/commands/init.d.ts +3 -0
  22. package/dist/commands/init.d.ts.map +1 -0
  23. package/dist/commands/init.js +3 -2
  24. package/dist/commands/init.js.map +1 -1
  25. package/dist/commands/update.d.ts +3 -0
  26. package/dist/commands/update.d.ts.map +1 -0
  27. package/dist/commands/update.js +2 -1
  28. package/dist/commands/update.js.map +1 -1
  29. package/dist/commands/upgrade.d.ts +10 -0
  30. package/dist/commands/upgrade.d.ts.map +1 -0
  31. package/dist/commands/upgrade.js +7 -6
  32. package/dist/commands/upgrade.js.map +1 -1
  33. package/dist/index.d.ts +3 -0
  34. package/dist/index.d.ts.map +1 -0
  35. package/dist/index.js +7 -5
  36. package/dist/index.js.map +1 -1
  37. package/dist/lib/install-ai-sdk-lib.d.ts +2 -0
  38. package/dist/lib/install-ai-sdk-lib.d.ts.map +1 -0
  39. package/dist/lib/install-ai-sdk-lib.js +1 -0
  40. package/dist/lib/install-ai-sdk-lib.js.map +1 -1
  41. package/dist/lib/install-edge-lib.d.ts +2 -0
  42. package/dist/lib/install-edge-lib.d.ts.map +1 -0
  43. package/dist/lib/install-edge-lib.js +1 -0
  44. package/dist/lib/install-edge-lib.js.map +1 -1
  45. package/dist/lib/install-ui-lib.d.ts +2 -0
  46. package/dist/lib/install-ui-lib.d.ts.map +1 -0
  47. package/dist/lib/install-ui-lib.js +1 -0
  48. package/dist/lib/install-ui-lib.js.map +1 -1
  49. package/dist/lib/transform-options.d.ts +7 -0
  50. package/dist/lib/transform-options.d.ts.map +1 -0
  51. package/dist/lib/transform.d.ts +21 -0
  52. package/dist/lib/transform.d.ts.map +1 -0
  53. package/dist/lib/transform.js +5 -4
  54. package/dist/lib/transform.js.map +1 -1
  55. package/dist/lib/upgrade.d.ts +9 -0
  56. package/dist/lib/upgrade.d.ts.map +1 -0
  57. package/dist/lib/upgrade.js +8 -7
  58. package/dist/lib/upgrade.js.map +1 -1
  59. package/package.json +3 -5
  60. package/src/codemods/utils/createTransformer.ts +41 -0
  61. package/src/codemods/v0-8/ui-package-split.ts +203 -0
  62. package/src/codemods/v0-9/edge-package-split.ts +226 -0
  63. package/src/commands/add.ts +47 -0
  64. package/src/commands/create.ts +92 -0
  65. package/src/commands/init.ts +50 -0
  66. package/src/commands/update.ts +60 -0
  67. package/src/commands/upgrade.ts +55 -0
  68. package/src/index.ts +28 -0
  69. package/src/lib/install-ai-sdk-lib.ts +92 -0
  70. package/src/lib/install-edge-lib.ts +92 -0
  71. package/src/lib/install-ui-lib.ts +92 -0
  72. package/src/lib/transform-options.ts +6 -0
  73. package/src/lib/transform.ts +177 -0
  74. package/src/lib/upgrade.ts +83 -0
@@ -0,0 +1,15 @@
1
+ import { FileInfo, API, JSCodeshift, Collection } from "jscodeshift";
2
+ export type TransformerFunction = (context: TransformContext, fileInfo: FileInfo, api: API, options: any) => void;
3
+ export interface TransformContext {
4
+ /**
5
+ * The jscodeshift API object.
6
+ */
7
+ j: JSCodeshift;
8
+ /**
9
+ * The root collection of the AST.
10
+ */
11
+ root: Collection<any>;
12
+ markAsChanged: () => void;
13
+ }
14
+ export declare function createTransformer(transformFn: TransformerFunction): (fileInfo: FileInfo, api: API, options: any) => string | null;
15
+ //# sourceMappingURL=createTransformer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createTransformer.d.ts","sourceRoot":"","sources":["../../../src/codemods/utils/createTransformer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAErE,MAAM,MAAM,mBAAmB,GAAG,CAChC,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,GAAG,KACT,IAAI,CAAC;AAEV,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,CAAC,EAAE,WAAW,CAAC;IAEf;;OAEG;IACH,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;IAEtB,aAAa,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,mBAAmB,IACpC,UAAU,QAAQ,EAAE,KAAK,GAAG,EAAE,SAAS,GAAG,mBAgBvE"}
@@ -1,3 +1,4 @@
1
+ // src/codemods/utils/createTransformer.ts
1
2
  function createTransformer(transformFn) {
2
3
  return function transformer(fileInfo, api, options) {
3
4
  const j = api.jscodeshift;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/codemods/utils/createTransformer.ts"],"sourcesContent":["import { FileInfo, API, JSCodeshift, Collection } from \"jscodeshift\";\n\nexport type TransformerFunction = (\n context: TransformContext,\n fileInfo: FileInfo,\n api: API,\n options: any,\n) => void;\n\nexport interface TransformContext {\n /**\n * The jscodeshift API object.\n */\n j: JSCodeshift;\n\n /**\n * The root collection of the AST.\n */\n root: Collection<any>;\n\n markAsChanged: () => void;\n}\n\nexport function createTransformer(transformFn: TransformerFunction) {\n return function transformer(fileInfo: FileInfo, api: API, options: any) {\n const j = api.jscodeshift;\n const root = j(fileInfo.source);\n\n let isChanged = false;\n const context: TransformContext = {\n j,\n root,\n markAsChanged: () => {\n isChanged = true;\n },\n };\n\n transformFn(context, fileInfo, api, options);\n return isChanged ? root.toSource() : null;\n };\n}\n"],"mappings":"AAuBO,SAAS,kBAAkB,aAAkC;AAClE,SAAO,SAAS,YAAY,UAAoB,KAAU,SAAc;AACtE,UAAM,IAAI,IAAI;AACd,UAAM,OAAO,EAAE,SAAS,MAAM;AAE9B,QAAI,YAAY;AAChB,UAAM,UAA4B;AAAA,MAChC;AAAA,MACA;AAAA,MACA,eAAe,MAAM;AACnB,oBAAY;AAAA,MACd;AAAA,IACF;AAEA,gBAAY,SAAS,UAAU,KAAK,OAAO;AAC3C,WAAO,YAAY,KAAK,SAAS,IAAI;AAAA,EACvC;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/codemods/utils/createTransformer.ts"],"sourcesContent":["import { FileInfo, API, JSCodeshift, Collection } from \"jscodeshift\";\n\nexport type TransformerFunction = (\n context: TransformContext,\n fileInfo: FileInfo,\n api: API,\n options: any,\n) => void;\n\nexport interface TransformContext {\n /**\n * The jscodeshift API object.\n */\n j: JSCodeshift;\n\n /**\n * The root collection of the AST.\n */\n root: Collection<any>;\n\n markAsChanged: () => void;\n}\n\nexport function createTransformer(transformFn: TransformerFunction) {\n return function transformer(fileInfo: FileInfo, api: API, options: any) {\n const j = api.jscodeshift;\n const root = j(fileInfo.source);\n\n let isChanged = false;\n const context: TransformContext = {\n j,\n root,\n markAsChanged: () => {\n isChanged = true;\n },\n };\n\n transformFn(context, fileInfo, api, options);\n return isChanged ? root.toSource() : null;\n };\n}\n"],"mappings":";AAuBO,SAAS,kBAAkB,aAAkC;AAClE,SAAO,SAAS,YAAY,UAAoB,KAAU,SAAc;AACtE,UAAM,IAAI,IAAI;AACd,UAAM,OAAO,EAAE,SAAS,MAAM;AAE9B,QAAI,YAAY;AAChB,UAAM,UAA4B;AAAA,MAChC;AAAA,MACA;AAAA,MACA,eAAe,MAAM;AACnB,oBAAY;AAAA,MACd;AAAA,IACF;AAEA,gBAAY,SAAS,UAAU,KAAK,OAAO;AAC3C,WAAO,YAAY,KAAK,SAAS,IAAI;AAAA,EACvC;AACF;","names":[]}
@@ -0,0 +1,3 @@
1
+ declare const migrateAssistantUI: (fileInfo: import("jscodeshift/src/core").FileInfo, api: import("jscodeshift/src/core").API, options: any) => string | null;
2
+ export default migrateAssistantUI;
3
+ //# sourceMappingURL=ui-package-split.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui-package-split.d.ts","sourceRoot":"","sources":["../../../src/codemods/v0-8/ui-package-split.ts"],"names":[],"mappings":"AA8BA,QAAA,MAAM,kBAAkB,6HA0KtB,CAAC;AAEH,eAAe,kBAAkB,CAAC"}
@@ -1,5 +1,6 @@
1
- import { createTransformer } from "../utils/createTransformer";
2
- const reactUIExports = [
1
+ // src/codemods/v0-8/ui-package-split.ts
2
+ import { createTransformer } from "../utils/createTransformer.js";
3
+ var reactUIExports = [
3
4
  "ThreadConfigProvider",
4
5
  "useThreadConfig",
5
6
  "ThreadConfig",
@@ -26,7 +27,7 @@ const reactUIExports = [
26
27
  "MakeMarkdownTextProps",
27
28
  "CodeHeader"
28
29
  ];
29
- const migrateAssistantUI = createTransformer(({ j, root, markAsChanged }) => {
30
+ var migrateAssistantUI = createTransformer(({ j, root, markAsChanged }) => {
30
31
  const sourcesToMigrate = [
31
32
  "@assistant-ui/react",
32
33
  "@assistant-ui/react-markdown"
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/codemods/v0-8/ui-package-split.ts"],"sourcesContent":["import { createTransformer } from \"../utils/createTransformer\";\n\nconst reactUIExports: string[] = [\n \"ThreadConfigProvider\",\n \"useThreadConfig\",\n \"ThreadConfig\",\n \"ThreadWelcomeConfig\",\n \"UserMessageConfig\",\n \"AssistantMessageConfig\",\n \"StringsConfig\",\n \"SuggestionConfig\",\n \"ThreadConfigProviderProps\",\n \"AssistantActionBar\",\n \"AssistantMessage\",\n \"AssistantModal\",\n \"BranchPicker\",\n \"Composer\",\n \"ContentPart\",\n \"AttachmentUI\",\n \"EditComposer\",\n \"Thread\",\n \"ThreadList\",\n \"ThreadListItem\",\n \"ThreadWelcome\",\n \"UserMessage\",\n \"makeMarkdownText\",\n \"MakeMarkdownTextProps\",\n \"CodeHeader\",\n];\n\nconst migrateAssistantUI = createTransformer(({ j, root, markAsChanged }) => {\n const sourcesToMigrate: string[] = [\n \"@assistant-ui/react\",\n \"@assistant-ui/react-markdown\",\n ];\n const movedSpecifiers: any[] = [];\n let lastMigratedImportPath: any = null;\n\n root\n .find(j.ImportDeclaration)\n .filter((path: any) => sourcesToMigrate.includes(path.value.source.value))\n .forEach((path: any) => {\n let hadMigratedSpecifiers = false;\n const remainingSpecifiers: any[] = [];\n path.value.specifiers.forEach((specifier: any) => {\n if (\n j.ImportSpecifier.check(specifier) &&\n reactUIExports.includes(specifier.imported.name as string)\n ) {\n movedSpecifiers.push(specifier);\n hadMigratedSpecifiers = true;\n } else {\n remainingSpecifiers.push(specifier);\n }\n });\n if (hadMigratedSpecifiers) {\n lastMigratedImportPath = path;\n }\n if (remainingSpecifiers.length === 0) {\n j(path).remove();\n markAsChanged();\n } else if (remainingSpecifiers.length !== path.value.specifiers.length) {\n path.value.specifiers = remainingSpecifiers;\n markAsChanged();\n }\n });\n\n if (movedSpecifiers.length > 0) {\n const existingReactUIImport = root.find(j.ImportDeclaration, {\n source: { value: \"@assistant-ui/react-ui\" },\n });\n if (existingReactUIImport.size() > 0) {\n existingReactUIImport.forEach((path: any) => {\n movedSpecifiers.forEach((specifier: any) => {\n if (\n !path.value.specifiers.some(\n (s: any) => s.imported.name === specifier.imported.name,\n )\n ) {\n path.value.specifiers.push(specifier);\n }\n });\n });\n } else {\n const newImport = j.importDeclaration(\n movedSpecifiers,\n j.literal(\"@assistant-ui/react-ui\"),\n );\n if (lastMigratedImportPath) {\n j(lastMigratedImportPath).insertAfter(newImport);\n } else {\n const firstImport = root.find(j.ImportDeclaration).at(0);\n if (firstImport.size() > 0) {\n firstImport.insertBefore(newImport);\n } else {\n root.get().node.program.body.unshift(newImport);\n }\n }\n }\n markAsChanged();\n }\n\n const cssReplacements: Record<string, string> = {\n \"@assistant-ui/react/styles/index.css\":\n \"@assistant-ui/react-ui/styles/index.css\",\n \"@assistant-ui/react/styles/modal.css\":\n \"@assistant-ui/react-ui/styles/modal.css\",\n \"@assistant-ui/react-markdown/styles/markdown.css\":\n \"@assistant-ui/react-ui/styles/markdown.css\",\n };\n\n root.find(j.ImportDeclaration).forEach((path: any) => {\n const sourceValue: string = path.value.source.value;\n if (cssReplacements[sourceValue]) {\n path.value.source = j.literal(cssReplacements[sourceValue]);\n markAsChanged();\n }\n });\n\n let removedMarkdownPlugin = false;\n root\n .find(j.CallExpression, { callee: { name: \"require\" } })\n .filter((path: any) => {\n const arg = path.value.arguments[0];\n return (\n arg &&\n (arg.type === \"Literal\" || arg.type === \"StringLiteral\") &&\n arg.value === \"@assistant-ui/react-markdown/tailwindcss\"\n );\n })\n .forEach((path: any) => {\n removedMarkdownPlugin = true;\n const parent = path.parentPath;\n if (\n parent &&\n parent.value &&\n parent.value.type === \"VariableDeclarator\"\n ) {\n const varDecl = parent.parentPath;\n if (\n varDecl &&\n varDecl.value.declarations &&\n varDecl.value.declarations.length === 1\n ) {\n j(varDecl).remove();\n } else {\n varDecl.value.declarations = varDecl.value.declarations.filter(\n (decl: any) => decl !== parent.value,\n );\n }\n markAsChanged();\n } else {\n j(path).remove();\n markAsChanged();\n }\n });\n\n root\n .find(j.CallExpression, { callee: { name: \"require\" } })\n .filter((path: any) => {\n const arg = path.value.arguments[0];\n return (\n arg &&\n (arg.type === \"Literal\" || arg.type === \"StringLiteral\") &&\n arg.value === \"@assistant-ui/react/tailwindcss\"\n );\n })\n .forEach((path: any) => {\n path.value.arguments[0].value = \"@assistant-ui/react-ui/tailwindcss\";\n markAsChanged();\n if (removedMarkdownPlugin) {\n if (\n path.parentPath &&\n path.parentPath.value &&\n path.parentPath.value.type === \"CallExpression\" &&\n path.parentPath.value.arguments.length > 0\n ) {\n const configObj = path.parentPath.value.arguments[0];\n if (configObj && configObj.type === \"ObjectExpression\") {\n const componentsProp = configObj.properties.find((prop: any) => {\n return (\n (prop.key.name === \"components\" ||\n prop.key.value === \"components\") &&\n prop.value.type === \"ArrayExpression\"\n );\n });\n if (componentsProp) {\n const componentsArray = componentsProp.value.elements;\n const hasMarkdown = componentsArray.some(\n (el: any) => el.type === \"Literal\" && el.value === \"markdown\",\n );\n if (!hasMarkdown) {\n componentsArray.push(j.literal(\"markdown\"));\n markAsChanged();\n }\n }\n }\n }\n }\n });\n});\n\nexport default migrateAssistantUI;\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../src/codemods/v0-8/ui-package-split.ts"],"sourcesContent":["import { createTransformer } from \"../utils/createTransformer\";\n\nconst reactUIExports: string[] = [\n \"ThreadConfigProvider\",\n \"useThreadConfig\",\n \"ThreadConfig\",\n \"ThreadWelcomeConfig\",\n \"UserMessageConfig\",\n \"AssistantMessageConfig\",\n \"StringsConfig\",\n \"SuggestionConfig\",\n \"ThreadConfigProviderProps\",\n \"AssistantActionBar\",\n \"AssistantMessage\",\n \"AssistantModal\",\n \"BranchPicker\",\n \"Composer\",\n \"ContentPart\",\n \"AttachmentUI\",\n \"EditComposer\",\n \"Thread\",\n \"ThreadList\",\n \"ThreadListItem\",\n \"ThreadWelcome\",\n \"UserMessage\",\n \"makeMarkdownText\",\n \"MakeMarkdownTextProps\",\n \"CodeHeader\",\n];\n\nconst migrateAssistantUI = createTransformer(({ j, root, markAsChanged }) => {\n const sourcesToMigrate: string[] = [\n \"@assistant-ui/react\",\n \"@assistant-ui/react-markdown\",\n ];\n const movedSpecifiers: any[] = [];\n let lastMigratedImportPath: any = null;\n\n root\n .find(j.ImportDeclaration)\n .filter((path: any) => sourcesToMigrate.includes(path.value.source.value))\n .forEach((path: any) => {\n let hadMigratedSpecifiers = false;\n const remainingSpecifiers: any[] = [];\n path.value.specifiers.forEach((specifier: any) => {\n if (\n j.ImportSpecifier.check(specifier) &&\n reactUIExports.includes(specifier.imported.name as string)\n ) {\n movedSpecifiers.push(specifier);\n hadMigratedSpecifiers = true;\n } else {\n remainingSpecifiers.push(specifier);\n }\n });\n if (hadMigratedSpecifiers) {\n lastMigratedImportPath = path;\n }\n if (remainingSpecifiers.length === 0) {\n j(path).remove();\n markAsChanged();\n } else if (remainingSpecifiers.length !== path.value.specifiers.length) {\n path.value.specifiers = remainingSpecifiers;\n markAsChanged();\n }\n });\n\n if (movedSpecifiers.length > 0) {\n const existingReactUIImport = root.find(j.ImportDeclaration, {\n source: { value: \"@assistant-ui/react-ui\" },\n });\n if (existingReactUIImport.size() > 0) {\n existingReactUIImport.forEach((path: any) => {\n movedSpecifiers.forEach((specifier: any) => {\n if (\n !path.value.specifiers.some(\n (s: any) => s.imported.name === specifier.imported.name,\n )\n ) {\n path.value.specifiers.push(specifier);\n }\n });\n });\n } else {\n const newImport = j.importDeclaration(\n movedSpecifiers,\n j.literal(\"@assistant-ui/react-ui\"),\n );\n if (lastMigratedImportPath) {\n j(lastMigratedImportPath).insertAfter(newImport);\n } else {\n const firstImport = root.find(j.ImportDeclaration).at(0);\n if (firstImport.size() > 0) {\n firstImport.insertBefore(newImport);\n } else {\n root.get().node.program.body.unshift(newImport);\n }\n }\n }\n markAsChanged();\n }\n\n const cssReplacements: Record<string, string> = {\n \"@assistant-ui/react/styles/index.css\":\n \"@assistant-ui/react-ui/styles/index.css\",\n \"@assistant-ui/react/styles/modal.css\":\n \"@assistant-ui/react-ui/styles/modal.css\",\n \"@assistant-ui/react-markdown/styles/markdown.css\":\n \"@assistant-ui/react-ui/styles/markdown.css\",\n };\n\n root.find(j.ImportDeclaration).forEach((path: any) => {\n const sourceValue: string = path.value.source.value;\n if (cssReplacements[sourceValue]) {\n path.value.source = j.literal(cssReplacements[sourceValue]);\n markAsChanged();\n }\n });\n\n let removedMarkdownPlugin = false;\n root\n .find(j.CallExpression, { callee: { name: \"require\" } })\n .filter((path: any) => {\n const arg = path.value.arguments[0];\n return (\n arg &&\n (arg.type === \"Literal\" || arg.type === \"StringLiteral\") &&\n arg.value === \"@assistant-ui/react-markdown/tailwindcss\"\n );\n })\n .forEach((path: any) => {\n removedMarkdownPlugin = true;\n const parent = path.parentPath;\n if (\n parent &&\n parent.value &&\n parent.value.type === \"VariableDeclarator\"\n ) {\n const varDecl = parent.parentPath;\n if (\n varDecl &&\n varDecl.value.declarations &&\n varDecl.value.declarations.length === 1\n ) {\n j(varDecl).remove();\n } else {\n varDecl.value.declarations = varDecl.value.declarations.filter(\n (decl: any) => decl !== parent.value,\n );\n }\n markAsChanged();\n } else {\n j(path).remove();\n markAsChanged();\n }\n });\n\n root\n .find(j.CallExpression, { callee: { name: \"require\" } })\n .filter((path: any) => {\n const arg = path.value.arguments[0];\n return (\n arg &&\n (arg.type === \"Literal\" || arg.type === \"StringLiteral\") &&\n arg.value === \"@assistant-ui/react/tailwindcss\"\n );\n })\n .forEach((path: any) => {\n path.value.arguments[0].value = \"@assistant-ui/react-ui/tailwindcss\";\n markAsChanged();\n if (removedMarkdownPlugin) {\n if (\n path.parentPath &&\n path.parentPath.value &&\n path.parentPath.value.type === \"CallExpression\" &&\n path.parentPath.value.arguments.length > 0\n ) {\n const configObj = path.parentPath.value.arguments[0];\n if (configObj && configObj.type === \"ObjectExpression\") {\n const componentsProp = configObj.properties.find((prop: any) => {\n return (\n (prop.key.name === \"components\" ||\n prop.key.value === \"components\") &&\n prop.value.type === \"ArrayExpression\"\n );\n });\n if (componentsProp) {\n const componentsArray = componentsProp.value.elements;\n const hasMarkdown = componentsArray.some(\n (el: any) => el.type === \"Literal\" && el.value === \"markdown\",\n );\n if (!hasMarkdown) {\n componentsArray.push(j.literal(\"markdown\"));\n markAsChanged();\n }\n }\n }\n }\n }\n });\n});\n\nexport default migrateAssistantUI;\n"],"mappings":"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","names":[]}
@@ -0,0 +1,3 @@
1
+ declare const migrateToEdgePackage: (fileInfo: import("jscodeshift/src/core").FileInfo, api: import("jscodeshift/src/core").API, options: any) => string | null;
2
+ export default migrateToEdgePackage;
3
+ //# sourceMappingURL=edge-package-split.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge-package-split.d.ts","sourceRoot":"","sources":["../../../src/codemods/v0-9/edge-package-split.ts"],"names":[],"mappings":"AAqCA,QAAA,MAAM,oBAAoB,6HA0LxB,CAAC;AAEH,eAAe,oBAAoB,CAAC"}
@@ -1,5 +1,6 @@
1
- import { createTransformer } from "../utils/createTransformer";
2
- const reactEdgeExports = [
1
+ // src/codemods/v0-9/edge-package-split.ts
2
+ import { createTransformer } from "../utils/createTransformer.js";
3
+ var reactEdgeExports = [
3
4
  // Edge Runtime
4
5
  "useEdgeRuntime",
5
6
  "EdgeRuntimeOptions",
@@ -22,14 +23,14 @@ const reactEdgeExports = [
22
23
  "toCoreMessages",
23
24
  "toCoreMessage"
24
25
  ];
25
- const reactAiSdkExports = [
26
+ var reactAiSdkExports = [
26
27
  "toLanguageModelMessages",
27
28
  "toLanguageModelTools",
28
29
  "fromLanguageModelMessages",
29
30
  "fromLanguageModelTools",
30
31
  "useDangerousInBrowserRuntime"
31
32
  ];
32
- const migrateToEdgePackage = createTransformer(({ j, root, markAsChanged }) => {
33
+ var migrateToEdgePackage = createTransformer(({ j, root, markAsChanged }) => {
33
34
  const sourcesToMigrate = ["@assistant-ui/react"];
34
35
  const movedEdgeSpecifiers = [];
35
36
  const movedAiSdkSpecifiers = [];
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/codemods/v0-9/edge-package-split.ts"],"sourcesContent":["import { createTransformer } from \"../utils/createTransformer\";\n\nconst reactEdgeExports: string[] = [\n // Edge Runtime\n \"useEdgeRuntime\",\n \"EdgeRuntimeOptions\",\n \"EdgeModelAdapter\",\n \"EdgeChatAdapter\",\n \"EdgeRuntimeRequestOptions\",\n \"createEdgeRuntimeAPI\",\n \"getEdgeRuntimeResponse\",\n\n // Core Types\n \"CoreMessage\",\n \"CoreUserMessage\",\n \"CoreAssistantMessage\",\n \"CoreSystemMessage\",\n \"CoreUserContentPart\",\n \"CoreAssistantContentPart\",\n \"CoreToolCallContentPart\",\n\n // Core message converters\n \"fromCoreMessages\",\n \"fromCoreMessage\",\n \"toCoreMessages\",\n \"toCoreMessage\",\n];\n\n// Language model converters to be moved to react-ai-sdk\nconst reactAiSdkExports: string[] = [\n \"toLanguageModelMessages\",\n \"toLanguageModelTools\",\n \"fromLanguageModelMessages\",\n \"fromLanguageModelTools\",\n \"useDangerousInBrowserRuntime\",\n];\n\nconst migrateToEdgePackage = createTransformer(({ j, root, markAsChanged }) => {\n const sourcesToMigrate: string[] = [\"@assistant-ui/react\"];\n const movedEdgeSpecifiers: any[] = [];\n const movedAiSdkSpecifiers: any[] = [];\n let lastMigratedImportPath: any = null;\n\n root\n .find(j.ImportDeclaration)\n .filter((path: any) => sourcesToMigrate.includes(path.value.source.value))\n .forEach((path: any) => {\n let hadMigratedSpecifiers = false;\n const remainingSpecifiers: any[] = [];\n path.value.specifiers.forEach((specifier: any) => {\n if (\n j.ImportSpecifier.check(specifier) &&\n reactEdgeExports.includes(specifier.imported.name as string)\n ) {\n movedEdgeSpecifiers.push(specifier);\n hadMigratedSpecifiers = true;\n } else if (\n j.ImportSpecifier.check(specifier) &&\n reactAiSdkExports.includes(specifier.imported.name as string)\n ) {\n movedAiSdkSpecifiers.push(specifier);\n hadMigratedSpecifiers = true;\n } else {\n remainingSpecifiers.push(specifier);\n }\n });\n if (hadMigratedSpecifiers) {\n lastMigratedImportPath = path;\n }\n if (remainingSpecifiers.length === 0) {\n j(path).remove();\n markAsChanged();\n } else if (remainingSpecifiers.length !== path.value.specifiers.length) {\n path.value.specifiers = remainingSpecifiers;\n markAsChanged();\n }\n });\n\n // Add imports for react-edge\n if (movedEdgeSpecifiers.length > 0) {\n const existingEdgeImport = root.find(j.ImportDeclaration, {\n source: { value: \"@assistant-ui/react-edge\" },\n });\n if (existingEdgeImport.size() > 0) {\n existingEdgeImport.forEach((path: any) => {\n movedEdgeSpecifiers.forEach((specifier: any) => {\n if (\n !path.value.specifiers.some(\n (s: any) => s.imported.name === specifier.imported.name,\n )\n ) {\n path.value.specifiers.push(specifier);\n }\n });\n });\n } else {\n const newImport = j.importDeclaration(\n movedEdgeSpecifiers,\n j.literal(\"@assistant-ui/react-edge\"),\n );\n if (lastMigratedImportPath) {\n j(lastMigratedImportPath).insertAfter(newImport);\n } else {\n const firstImport = root.find(j.ImportDeclaration).at(0);\n if (firstImport.size() > 0) {\n firstImport.insertBefore(newImport);\n } else {\n root.get().node.program.body.unshift(newImport);\n }\n }\n }\n markAsChanged();\n }\n\n // Add imports for react-ai-sdk\n if (movedAiSdkSpecifiers.length > 0) {\n const existingAiSdkImport = root.find(j.ImportDeclaration, {\n source: { value: \"@assistant-ui/react-ai-sdk\" },\n });\n if (existingAiSdkImport.size() > 0) {\n existingAiSdkImport.forEach((path: any) => {\n movedAiSdkSpecifiers.forEach((specifier: any) => {\n if (\n !path.value.specifiers.some(\n (s: any) => s.imported.name === specifier.imported.name,\n )\n ) {\n path.value.specifiers.push(specifier);\n }\n });\n });\n } else {\n const newImport = j.importDeclaration(\n movedAiSdkSpecifiers,\n j.literal(\"@assistant-ui/react-ai-sdk\"),\n );\n if (lastMigratedImportPath) {\n j(lastMigratedImportPath).insertAfter(newImport);\n } else {\n const firstImport = root.find(j.ImportDeclaration).at(0);\n if (firstImport.size() > 0) {\n firstImport.insertBefore(newImport);\n } else {\n root.get().node.program.body.unshift(newImport);\n }\n }\n }\n markAsChanged();\n }\n\n // Migrate imports from edge/converters\n root.find(j.ImportDeclaration).forEach((path: any) => {\n const sourceValue: string = path.value.source.value;\n if (\n sourceValue.startsWith(\"@assistant-ui/react/\") &&\n (sourceValue.includes(\"edge/\") ||\n sourceValue.includes(\"dangerous-in-browser/\"))\n ) {\n path.value.source = j.literal(\n sourceValue.replace(\n \"@assistant-ui/react/\",\n \"@assistant-ui/react-edge/\",\n ),\n );\n markAsChanged();\n }\n });\n\n // Migrate language model converter imports from react-edge to react-ai-sdk\n root.find(j.ImportDeclaration).forEach((path: any) => {\n const sourceValue: string = path.value.source.value;\n if (sourceValue === \"@assistant-ui/react-edge\") {\n let hasLanguageModelConverters = false;\n const remainingSpecifiers: any[] = [];\n const aiSdkSpecifiers: any[] = [];\n\n path.value.specifiers.forEach((specifier: any) => {\n if (\n j.ImportSpecifier.check(specifier) &&\n reactAiSdkExports.includes(specifier.imported.name as string)\n ) {\n aiSdkSpecifiers.push(specifier);\n hasLanguageModelConverters = true;\n } else {\n remainingSpecifiers.push(specifier);\n }\n });\n\n if (hasLanguageModelConverters) {\n if (remainingSpecifiers.length === 0) {\n j(path).remove();\n } else {\n path.value.specifiers = remainingSpecifiers;\n }\n\n const existingAiSdkImport = root.find(j.ImportDeclaration, {\n source: { value: \"@assistant-ui/react-ai-sdk\" },\n });\n\n if (existingAiSdkImport.size() > 0) {\n existingAiSdkImport.forEach((importPath: any) => {\n aiSdkSpecifiers.forEach((specifier: any) => {\n if (\n !importPath.value.specifiers.some(\n (s: any) => s.imported.name === specifier.imported.name,\n )\n ) {\n importPath.value.specifiers.push(specifier);\n }\n });\n });\n } else {\n const newImport = j.importDeclaration(\n aiSdkSpecifiers,\n j.literal(\"@assistant-ui/react-ai-sdk\"),\n );\n j(path).insertAfter(newImport);\n }\n\n markAsChanged();\n }\n }\n });\n});\n\nexport default migrateToEdgePackage;\n"],"mappings":"AAAA,SAAS,yBAAyB;AAElC,MAAM,mBAA6B;AAAA;AAAA,EAEjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAGA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAGA,MAAM,oBAA8B;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,MAAM,uBAAuB,kBAAkB,CAAC,EAAE,GAAG,MAAM,cAAc,MAAM;AAC7E,QAAM,mBAA6B,CAAC,qBAAqB;AACzD,QAAM,sBAA6B,CAAC;AACpC,QAAM,uBAA8B,CAAC;AACrC,MAAI,yBAA8B;AAElC,OACG,KAAK,EAAE,iBAAiB,EACxB,OAAO,CAAC,SAAc,iBAAiB,SAAS,KAAK,MAAM,OAAO,KAAK,CAAC,EACxE,QAAQ,CAAC,SAAc;AACtB,QAAI,wBAAwB;AAC5B,UAAM,sBAA6B,CAAC;AACpC,SAAK,MAAM,WAAW,QAAQ,CAAC,cAAmB;AAChD,UACE,EAAE,gBAAgB,MAAM,SAAS,KACjC,iBAAiB,SAAS,UAAU,SAAS,IAAc,GAC3D;AACA,4BAAoB,KAAK,SAAS;AAClC,gCAAwB;AAAA,MAC1B,WACE,EAAE,gBAAgB,MAAM,SAAS,KACjC,kBAAkB,SAAS,UAAU,SAAS,IAAc,GAC5D;AACA,6BAAqB,KAAK,SAAS;AACnC,gCAAwB;AAAA,MAC1B,OAAO;AACL,4BAAoB,KAAK,SAAS;AAAA,MACpC;AAAA,IACF,CAAC;AACD,QAAI,uBAAuB;AACzB,+BAAyB;AAAA,IAC3B;AACA,QAAI,oBAAoB,WAAW,GAAG;AACpC,QAAE,IAAI,EAAE,OAAO;AACf,oBAAc;AAAA,IAChB,WAAW,oBAAoB,WAAW,KAAK,MAAM,WAAW,QAAQ;AACtE,WAAK,MAAM,aAAa;AACxB,oBAAc;AAAA,IAChB;AAAA,EACF,CAAC;AAGH,MAAI,oBAAoB,SAAS,GAAG;AAClC,UAAM,qBAAqB,KAAK,KAAK,EAAE,mBAAmB;AAAA,MACxD,QAAQ,EAAE,OAAO,2BAA2B;AAAA,IAC9C,CAAC;AACD,QAAI,mBAAmB,KAAK,IAAI,GAAG;AACjC,yBAAmB,QAAQ,CAAC,SAAc;AACxC,4BAAoB,QAAQ,CAAC,cAAmB;AAC9C,cACE,CAAC,KAAK,MAAM,WAAW;AAAA,YACrB,CAAC,MAAW,EAAE,SAAS,SAAS,UAAU,SAAS;AAAA,UACrD,GACA;AACA,iBAAK,MAAM,WAAW,KAAK,SAAS;AAAA,UACtC;AAAA,QACF,CAAC;AAAA,MACH,CAAC;AAAA,IACH,OAAO;AACL,YAAM,YAAY,EAAE;AAAA,QAClB;AAAA,QACA,EAAE,QAAQ,0BAA0B;AAAA,MACtC;AACA,UAAI,wBAAwB;AAC1B,UAAE,sBAAsB,EAAE,YAAY,SAAS;AAAA,MACjD,OAAO;AACL,cAAM,cAAc,KAAK,KAAK,EAAE,iBAAiB,EAAE,GAAG,CAAC;AACvD,YAAI,YAAY,KAAK,IAAI,GAAG;AAC1B,sBAAY,aAAa,SAAS;AAAA,QACpC,OAAO;AACL,eAAK,IAAI,EAAE,KAAK,QAAQ,KAAK,QAAQ,SAAS;AAAA,QAChD;AAAA,MACF;AAAA,IACF;AACA,kBAAc;AAAA,EAChB;AAGA,MAAI,qBAAqB,SAAS,GAAG;AACnC,UAAM,sBAAsB,KAAK,KAAK,EAAE,mBAAmB;AAAA,MACzD,QAAQ,EAAE,OAAO,6BAA6B;AAAA,IAChD,CAAC;AACD,QAAI,oBAAoB,KAAK,IAAI,GAAG;AAClC,0BAAoB,QAAQ,CAAC,SAAc;AACzC,6BAAqB,QAAQ,CAAC,cAAmB;AAC/C,cACE,CAAC,KAAK,MAAM,WAAW;AAAA,YACrB,CAAC,MAAW,EAAE,SAAS,SAAS,UAAU,SAAS;AAAA,UACrD,GACA;AACA,iBAAK,MAAM,WAAW,KAAK,SAAS;AAAA,UACtC;AAAA,QACF,CAAC;AAAA,MACH,CAAC;AAAA,IACH,OAAO;AACL,YAAM,YAAY,EAAE;AAAA,QAClB;AAAA,QACA,EAAE,QAAQ,4BAA4B;AAAA,MACxC;AACA,UAAI,wBAAwB;AAC1B,UAAE,sBAAsB,EAAE,YAAY,SAAS;AAAA,MACjD,OAAO;AACL,cAAM,cAAc,KAAK,KAAK,EAAE,iBAAiB,EAAE,GAAG,CAAC;AACvD,YAAI,YAAY,KAAK,IAAI,GAAG;AAC1B,sBAAY,aAAa,SAAS;AAAA,QACpC,OAAO;AACL,eAAK,IAAI,EAAE,KAAK,QAAQ,KAAK,QAAQ,SAAS;AAAA,QAChD;AAAA,MACF;AAAA,IACF;AACA,kBAAc;AAAA,EAChB;AAGA,OAAK,KAAK,EAAE,iBAAiB,EAAE,QAAQ,CAAC,SAAc;AACpD,UAAM,cAAsB,KAAK,MAAM,OAAO;AAC9C,QACE,YAAY,WAAW,sBAAsB,MAC5C,YAAY,SAAS,OAAO,KAC3B,YAAY,SAAS,uBAAuB,IAC9C;AACA,WAAK,MAAM,SAAS,EAAE;AAAA,QACpB,YAAY;AAAA,UACV;AAAA,UACA;AAAA,QACF;AAAA,MACF;AACA,oBAAc;AAAA,IAChB;AAAA,EACF,CAAC;AAGD,OAAK,KAAK,EAAE,iBAAiB,EAAE,QAAQ,CAAC,SAAc;AACpD,UAAM,cAAsB,KAAK,MAAM,OAAO;AAC9C,QAAI,gBAAgB,4BAA4B;AAC9C,UAAI,6BAA6B;AACjC,YAAM,sBAA6B,CAAC;AACpC,YAAM,kBAAyB,CAAC;AAEhC,WAAK,MAAM,WAAW,QAAQ,CAAC,cAAmB;AAChD,YACE,EAAE,gBAAgB,MAAM,SAAS,KACjC,kBAAkB,SAAS,UAAU,SAAS,IAAc,GAC5D;AACA,0BAAgB,KAAK,SAAS;AAC9B,uCAA6B;AAAA,QAC/B,OAAO;AACL,8BAAoB,KAAK,SAAS;AAAA,QACpC;AAAA,MACF,CAAC;AAED,UAAI,4BAA4B;AAC9B,YAAI,oBAAoB,WAAW,GAAG;AACpC,YAAE,IAAI,EAAE,OAAO;AAAA,QACjB,OAAO;AACL,eAAK,MAAM,aAAa;AAAA,QAC1B;AAEA,cAAM,sBAAsB,KAAK,KAAK,EAAE,mBAAmB;AAAA,UACzD,QAAQ,EAAE,OAAO,6BAA6B;AAAA,QAChD,CAAC;AAED,YAAI,oBAAoB,KAAK,IAAI,GAAG;AAClC,8BAAoB,QAAQ,CAAC,eAAoB;AAC/C,4BAAgB,QAAQ,CAAC,cAAmB;AAC1C,kBACE,CAAC,WAAW,MAAM,WAAW;AAAA,gBAC3B,CAAC,MAAW,EAAE,SAAS,SAAS,UAAU,SAAS;AAAA,cACrD,GACA;AACA,2BAAW,MAAM,WAAW,KAAK,SAAS;AAAA,cAC5C;AAAA,YACF,CAAC;AAAA,UACH,CAAC;AAAA,QACH,OAAO;AACL,gBAAM,YAAY,EAAE;AAAA,YAClB;AAAA,YACA,EAAE,QAAQ,4BAA4B;AAAA,UACxC;AACA,YAAE,IAAI,EAAE,YAAY,SAAS;AAAA,QAC/B;AAEA,sBAAc;AAAA,MAChB;AAAA,IACF;AAAA,EACF,CAAC;AACH,CAAC;AAED,IAAO,6BAAQ;","names":[]}
1
+ {"version":3,"sources":["../../../src/codemods/v0-9/edge-package-split.ts"],"sourcesContent":["import { createTransformer } from \"../utils/createTransformer\";\n\nconst reactEdgeExports: string[] = [\n // Edge Runtime\n \"useEdgeRuntime\",\n \"EdgeRuntimeOptions\",\n \"EdgeModelAdapter\",\n \"EdgeChatAdapter\",\n \"EdgeRuntimeRequestOptions\",\n \"createEdgeRuntimeAPI\",\n \"getEdgeRuntimeResponse\",\n\n // Core Types\n \"CoreMessage\",\n \"CoreUserMessage\",\n \"CoreAssistantMessage\",\n \"CoreSystemMessage\",\n \"CoreUserContentPart\",\n \"CoreAssistantContentPart\",\n \"CoreToolCallContentPart\",\n\n // Core message converters\n \"fromCoreMessages\",\n \"fromCoreMessage\",\n \"toCoreMessages\",\n \"toCoreMessage\",\n];\n\n// Language model converters to be moved to react-ai-sdk\nconst reactAiSdkExports: string[] = [\n \"toLanguageModelMessages\",\n \"toLanguageModelTools\",\n \"fromLanguageModelMessages\",\n \"fromLanguageModelTools\",\n \"useDangerousInBrowserRuntime\",\n];\n\nconst migrateToEdgePackage = createTransformer(({ j, root, markAsChanged }) => {\n const sourcesToMigrate: string[] = [\"@assistant-ui/react\"];\n const movedEdgeSpecifiers: any[] = [];\n const movedAiSdkSpecifiers: any[] = [];\n let lastMigratedImportPath: any = null;\n\n root\n .find(j.ImportDeclaration)\n .filter((path: any) => sourcesToMigrate.includes(path.value.source.value))\n .forEach((path: any) => {\n let hadMigratedSpecifiers = false;\n const remainingSpecifiers: any[] = [];\n path.value.specifiers.forEach((specifier: any) => {\n if (\n j.ImportSpecifier.check(specifier) &&\n reactEdgeExports.includes(specifier.imported.name as string)\n ) {\n movedEdgeSpecifiers.push(specifier);\n hadMigratedSpecifiers = true;\n } else if (\n j.ImportSpecifier.check(specifier) &&\n reactAiSdkExports.includes(specifier.imported.name as string)\n ) {\n movedAiSdkSpecifiers.push(specifier);\n hadMigratedSpecifiers = true;\n } else {\n remainingSpecifiers.push(specifier);\n }\n });\n if (hadMigratedSpecifiers) {\n lastMigratedImportPath = path;\n }\n if (remainingSpecifiers.length === 0) {\n j(path).remove();\n markAsChanged();\n } else if (remainingSpecifiers.length !== path.value.specifiers.length) {\n path.value.specifiers = remainingSpecifiers;\n markAsChanged();\n }\n });\n\n // Add imports for react-edge\n if (movedEdgeSpecifiers.length > 0) {\n const existingEdgeImport = root.find(j.ImportDeclaration, {\n source: { value: \"@assistant-ui/react-edge\" },\n });\n if (existingEdgeImport.size() > 0) {\n existingEdgeImport.forEach((path: any) => {\n movedEdgeSpecifiers.forEach((specifier: any) => {\n if (\n !path.value.specifiers.some(\n (s: any) => s.imported.name === specifier.imported.name,\n )\n ) {\n path.value.specifiers.push(specifier);\n }\n });\n });\n } else {\n const newImport = j.importDeclaration(\n movedEdgeSpecifiers,\n j.literal(\"@assistant-ui/react-edge\"),\n );\n if (lastMigratedImportPath) {\n j(lastMigratedImportPath).insertAfter(newImport);\n } else {\n const firstImport = root.find(j.ImportDeclaration).at(0);\n if (firstImport.size() > 0) {\n firstImport.insertBefore(newImport);\n } else {\n root.get().node.program.body.unshift(newImport);\n }\n }\n }\n markAsChanged();\n }\n\n // Add imports for react-ai-sdk\n if (movedAiSdkSpecifiers.length > 0) {\n const existingAiSdkImport = root.find(j.ImportDeclaration, {\n source: { value: \"@assistant-ui/react-ai-sdk\" },\n });\n if (existingAiSdkImport.size() > 0) {\n existingAiSdkImport.forEach((path: any) => {\n movedAiSdkSpecifiers.forEach((specifier: any) => {\n if (\n !path.value.specifiers.some(\n (s: any) => s.imported.name === specifier.imported.name,\n )\n ) {\n path.value.specifiers.push(specifier);\n }\n });\n });\n } else {\n const newImport = j.importDeclaration(\n movedAiSdkSpecifiers,\n j.literal(\"@assistant-ui/react-ai-sdk\"),\n );\n if (lastMigratedImportPath) {\n j(lastMigratedImportPath).insertAfter(newImport);\n } else {\n const firstImport = root.find(j.ImportDeclaration).at(0);\n if (firstImport.size() > 0) {\n firstImport.insertBefore(newImport);\n } else {\n root.get().node.program.body.unshift(newImport);\n }\n }\n }\n markAsChanged();\n }\n\n // Migrate imports from edge/converters\n root.find(j.ImportDeclaration).forEach((path: any) => {\n const sourceValue: string = path.value.source.value;\n if (\n sourceValue.startsWith(\"@assistant-ui/react/\") &&\n (sourceValue.includes(\"edge/\") ||\n sourceValue.includes(\"dangerous-in-browser/\"))\n ) {\n path.value.source = j.literal(\n sourceValue.replace(\n \"@assistant-ui/react/\",\n \"@assistant-ui/react-edge/\",\n ),\n );\n markAsChanged();\n }\n });\n\n // Migrate language model converter imports from react-edge to react-ai-sdk\n root.find(j.ImportDeclaration).forEach((path: any) => {\n const sourceValue: string = path.value.source.value;\n if (sourceValue === \"@assistant-ui/react-edge\") {\n let hasLanguageModelConverters = false;\n const remainingSpecifiers: any[] = [];\n const aiSdkSpecifiers: any[] = [];\n\n path.value.specifiers.forEach((specifier: any) => {\n if (\n j.ImportSpecifier.check(specifier) &&\n reactAiSdkExports.includes(specifier.imported.name as string)\n ) {\n aiSdkSpecifiers.push(specifier);\n hasLanguageModelConverters = true;\n } else {\n remainingSpecifiers.push(specifier);\n }\n });\n\n if (hasLanguageModelConverters) {\n if (remainingSpecifiers.length === 0) {\n j(path).remove();\n } else {\n path.value.specifiers = remainingSpecifiers;\n }\n\n const existingAiSdkImport = root.find(j.ImportDeclaration, {\n source: { value: \"@assistant-ui/react-ai-sdk\" },\n });\n\n if (existingAiSdkImport.size() > 0) {\n existingAiSdkImport.forEach((importPath: any) => {\n aiSdkSpecifiers.forEach((specifier: any) => {\n if (\n !importPath.value.specifiers.some(\n (s: any) => s.imported.name === specifier.imported.name,\n )\n ) {\n importPath.value.specifiers.push(specifier);\n }\n });\n });\n } else {\n const newImport = j.importDeclaration(\n aiSdkSpecifiers,\n j.literal(\"@assistant-ui/react-ai-sdk\"),\n );\n j(path).insertAfter(newImport);\n }\n\n markAsChanged();\n }\n }\n });\n});\n\nexport default migrateToEdgePackage;\n"],"mappings":"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","names":[]}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare const add: Command;
3
+ //# sourceMappingURL=add.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,eAAO,MAAM,GAAG,SAyCZ,CAAC"}
@@ -1,7 +1,8 @@
1
+ // src/commands/add.ts
1
2
  import { Command } from "commander";
2
3
  import { spawn } from "cross-spawn";
3
- const REGISTRY_BASE_URL = "https://r.assistant-ui.com";
4
- const add = new Command().name("add").description("add a component to your project").argument("<components...>", "the components to add").option("-y, --yes", "skip confirmation prompt.", true).option("-o, --overwrite", "overwrite existing files.", false).option(
4
+ var REGISTRY_BASE_URL = "https://r.assistant-ui.com";
5
+ var add = new Command().name("add").description("add a component to your project").argument("<components...>", "the components to add").option("-y, --yes", "skip confirmation prompt.", true).option("-o, --overwrite", "overwrite existing files.", false).option(
5
6
  "-c, --cwd <cwd>",
6
7
  "the working directory. defaults to the current directory.",
7
8
  process.cwd()
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/commands/add.ts"],"sourcesContent":["import { Command } from \"commander\";\nimport { spawn } from \"cross-spawn\";\n\nconst REGISTRY_BASE_URL = \"https://r.assistant-ui.com\";\n\nexport const add = new Command()\n .name(\"add\")\n .description(\"add a component to your project\")\n .argument(\"<components...>\", \"the components to add\")\n .option(\"-y, --yes\", \"skip confirmation prompt.\", true)\n .option(\"-o, --overwrite\", \"overwrite existing files.\", false)\n .option(\n \"-c, --cwd <cwd>\",\n \"the working directory. defaults to the current directory.\",\n process.cwd(),\n )\n .option(\"-p, --path <path>\", \"the path to add the component to.\")\n .action((components: string[], opts) => {\n const componentsToAdd = components.map((c) => {\n if (!/^[a-zA-Z0-9-\\/]+$/.test(c)) {\n throw new Error(`Invalid component name: ${c}`);\n }\n return `${REGISTRY_BASE_URL}/${encodeURIComponent(c)}`;\n });\n\n const args = [`shadcn@latest`, \"add\", ...componentsToAdd];\n\n if (opts.yes) args.push(\"--yes\");\n if (opts.overwrite) args.push(\"--overwrite\");\n if (opts.cwd) args.push(\"--cwd\", opts.cwd);\n if (opts.path) args.push(\"--path\", opts.path);\n\n const child = spawn(\"npx\", args, {\n stdio: \"inherit\",\n shell: true,\n });\n\n child.on(\"error\", (error) => {\n console.error(`Error: ${error.message}`);\n });\n\n child.on(\"close\", (code) => {\n if (code !== 0) {\n console.log(`other-package-script process exited with code ${code}`);\n }\n });\n });\n"],"mappings":"AAAA,SAAS,eAAe;AACxB,SAAS,aAAa;AAEtB,MAAM,oBAAoB;AAEnB,MAAM,MAAM,IAAI,QAAQ,EAC5B,KAAK,KAAK,EACV,YAAY,iCAAiC,EAC7C,SAAS,mBAAmB,uBAAuB,EACnD,OAAO,aAAa,6BAA6B,IAAI,EACrD,OAAO,mBAAmB,6BAA6B,KAAK,EAC5D;AAAA,EACC;AAAA,EACA;AAAA,EACA,QAAQ,IAAI;AACd,EACC,OAAO,qBAAqB,mCAAmC,EAC/D,OAAO,CAAC,YAAsB,SAAS;AACtC,QAAM,kBAAkB,WAAW,IAAI,CAAC,MAAM;AAC5C,QAAI,CAAC,oBAAoB,KAAK,CAAC,GAAG;AAChC,YAAM,IAAI,MAAM,2BAA2B,CAAC,EAAE;AAAA,IAChD;AACA,WAAO,GAAG,iBAAiB,IAAI,mBAAmB,CAAC,CAAC;AAAA,EACtD,CAAC;AAED,QAAM,OAAO,CAAC,iBAAiB,OAAO,GAAG,eAAe;AAExD,MAAI,KAAK,IAAK,MAAK,KAAK,OAAO;AAC/B,MAAI,KAAK,UAAW,MAAK,KAAK,aAAa;AAC3C,MAAI,KAAK,IAAK,MAAK,KAAK,SAAS,KAAK,GAAG;AACzC,MAAI,KAAK,KAAM,MAAK,KAAK,UAAU,KAAK,IAAI;AAE5C,QAAM,QAAQ,MAAM,OAAO,MAAM;AAAA,IAC/B,OAAO;AAAA,IACP,OAAO;AAAA,EACT,CAAC;AAED,QAAM,GAAG,SAAS,CAAC,UAAU;AAC3B,YAAQ,MAAM,UAAU,MAAM,OAAO,EAAE;AAAA,EACzC,CAAC;AAED,QAAM,GAAG,SAAS,CAAC,SAAS;AAC1B,QAAI,SAAS,GAAG;AACd,cAAQ,IAAI,iDAAiD,IAAI,EAAE;AAAA,IACrE;AAAA,EACF,CAAC;AACH,CAAC;","names":[]}
1
+ {"version":3,"sources":["../../src/commands/add.ts"],"sourcesContent":["import { Command } from \"commander\";\nimport { spawn } from \"cross-spawn\";\n\nconst REGISTRY_BASE_URL = \"https://r.assistant-ui.com\";\n\nexport const add = new Command()\n .name(\"add\")\n .description(\"add a component to your project\")\n .argument(\"<components...>\", \"the components to add\")\n .option(\"-y, --yes\", \"skip confirmation prompt.\", true)\n .option(\"-o, --overwrite\", \"overwrite existing files.\", false)\n .option(\n \"-c, --cwd <cwd>\",\n \"the working directory. defaults to the current directory.\",\n process.cwd(),\n )\n .option(\"-p, --path <path>\", \"the path to add the component to.\")\n .action((components: string[], opts) => {\n const componentsToAdd = components.map((c) => {\n if (!/^[a-zA-Z0-9-\\/]+$/.test(c)) {\n throw new Error(`Invalid component name: ${c}`);\n }\n return `${REGISTRY_BASE_URL}/${encodeURIComponent(c)}`;\n });\n\n const args = [`shadcn@latest`, \"add\", ...componentsToAdd];\n\n if (opts.yes) args.push(\"--yes\");\n if (opts.overwrite) args.push(\"--overwrite\");\n if (opts.cwd) args.push(\"--cwd\", opts.cwd);\n if (opts.path) args.push(\"--path\", opts.path);\n\n const child = spawn(\"npx\", args, {\n stdio: \"inherit\",\n shell: true,\n });\n\n child.on(\"error\", (error) => {\n console.error(`Error: ${error.message}`);\n });\n\n child.on(\"close\", (code) => {\n if (code !== 0) {\n console.log(`other-package-script process exited with code ${code}`);\n }\n });\n });\n"],"mappings":";AAAA,SAAS,eAAe;AACxB,SAAS,aAAa;AAEtB,IAAM,oBAAoB;AAEnB,IAAM,MAAM,IAAI,QAAQ,EAC5B,KAAK,KAAK,EACV,YAAY,iCAAiC,EAC7C,SAAS,mBAAmB,uBAAuB,EACnD,OAAO,aAAa,6BAA6B,IAAI,EACrD,OAAO,mBAAmB,6BAA6B,KAAK,EAC5D;AAAA,EACC;AAAA,EACA;AAAA,EACA,QAAQ,IAAI;AACd,EACC,OAAO,qBAAqB,mCAAmC,EAC/D,OAAO,CAAC,YAAsB,SAAS;AACtC,QAAM,kBAAkB,WAAW,IAAI,CAAC,MAAM;AAC5C,QAAI,CAAC,oBAAoB,KAAK,CAAC,GAAG;AAChC,YAAM,IAAI,MAAM,2BAA2B,CAAC,EAAE;AAAA,IAChD;AACA,WAAO,GAAG,iBAAiB,IAAI,mBAAmB,CAAC,CAAC;AAAA,EACtD,CAAC;AAED,QAAM,OAAO,CAAC,iBAAiB,OAAO,GAAG,eAAe;AAExD,MAAI,KAAK,IAAK,MAAK,KAAK,OAAO;AAC/B,MAAI,KAAK,UAAW,MAAK,KAAK,aAAa;AAC3C,MAAI,KAAK,IAAK,MAAK,KAAK,SAAS,KAAK,GAAG;AACzC,MAAI,KAAK,KAAM,MAAK,KAAK,UAAU,KAAK,IAAI;AAE5C,QAAM,QAAQ,MAAM,OAAO,MAAM;AAAA,IAC/B,OAAO;AAAA,IACP,OAAO;AAAA,EACT,CAAC;AAED,QAAM,GAAG,SAAS,CAAC,UAAU;AAC3B,YAAQ,MAAM,UAAU,MAAM,OAAO,EAAE;AAAA,EACzC,CAAC;AAED,QAAM,GAAG,SAAS,CAAC,SAAS;AAC1B,QAAI,SAAS,GAAG;AACd,cAAQ,IAAI,iDAAiD,IAAI,EAAE;AAAA,IACrE;AAAA,EACF,CAAC;AACH,CAAC;","names":[]}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare const create: Command;
3
+ //# sourceMappingURL=create.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,eAAO,MAAM,MAAM,SAuFf,CAAC"}
@@ -1,7 +1,8 @@
1
+ // src/commands/create.ts
1
2
  import { Command } from "commander";
2
3
  import chalk from "chalk";
3
4
  import { spawn } from "cross-spawn";
4
- const create = new Command().name("create").description("create a new project").argument("[project-directory]").usage(`${chalk.green("[project-directory]")} [options]`).option(
5
+ var create = new Command().name("create").description("create a new project").argument("[project-directory]").usage(`${chalk.green("[project-directory]")} [options]`).option(
5
6
  "-t, --template <template>",
6
7
  `
7
8
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/commands/create.ts"],"sourcesContent":["import { Command } from \"commander\";\nimport chalk from \"chalk\";\nimport { spawn } from \"cross-spawn\";\n\nexport const create = new Command()\n .name(\"create\")\n .description(\"create a new project\")\n .argument(\"[project-directory]\")\n .usage(`${chalk.green(\"[project-directory]\")} [options]`)\n .option(\n \"-t, --template <template>\",\n `\n\n The template to use for the project, e.g. default, langgraph\n`,\n )\n .option(\n \"--use-npm\",\n `\n\n Explicitly tell the CLI to bootstrap the application using npm\n`,\n )\n .option(\n \"--use-pnpm\",\n `\n\n Explicitly tell the CLI to bootstrap the application using pnpm\n`,\n )\n .option(\n \"--use-yarn\",\n `\n\n Explicitly tell the CLI to bootstrap the application using Yarn\n`,\n )\n .option(\n \"--use-bun\",\n `\n\n Explicitly tell the CLI to bootstrap the application using Bun\n`,\n )\n .option(\n \"--skip-install\",\n `\n\n Explicitly tell the CLI to skip installing packages\n`,\n )\n .action((_, opts) => {\n const templates = {\n default: \"https://github.com/assistant-ui/assistant-ui-starter\",\n langgraph:\n \"https://github.com/assistant-ui/assistant-ui-starter-langgraph\",\n };\n\n const templateUrl =\n templates[(opts.template as keyof typeof templates) ?? \"default\"];\n if (!templateUrl) {\n console.error(`Unknown template: ${opts.template}`);\n process.exit(1);\n }\n\n const filteredArgs = process.argv.slice(3).filter((arg, index, arr) => {\n return !(\n arg === \"-t\" ||\n arg === \"--template\" ||\n arr[index - 1] === \"-t\" ||\n arr[index - 1] === \"--template\"\n );\n });\n\n const child = spawn(\n \"npx\",\n [`create-next-app@latest`, ...filteredArgs, \"-e\", templateUrl],\n {\n stdio: \"inherit\",\n },\n );\n\n child.on(\"error\", (error) => {\n console.error(`Error: ${error.message}`);\n });\n\n child.on(\"close\", (code) => {\n if (code !== 0) {\n console.log(`other-package-script process exited with code ${code}`);\n }\n });\n });\n"],"mappings":"AAAA,SAAS,eAAe;AACxB,OAAO,WAAW;AAClB,SAAS,aAAa;AAEf,MAAM,SAAS,IAAI,QAAQ,EAC/B,KAAK,QAAQ,EACb,YAAY,sBAAsB,EAClC,SAAS,qBAAqB,EAC9B,MAAM,GAAG,MAAM,MAAM,qBAAqB,CAAC,YAAY,EACvD;AAAA,EACC;AAAA,EACA;AAAA;AAAA;AAAA;AAIF,EACC;AAAA,EACC;AAAA,EACA;AAAA;AAAA;AAAA;AAIF,EACC;AAAA,EACC;AAAA,EACA;AAAA;AAAA;AAAA;AAIF,EACC;AAAA,EACC;AAAA,EACA;AAAA;AAAA;AAAA;AAIF,EACC;AAAA,EACC;AAAA,EACA;AAAA;AAAA;AAAA;AAIF,EACC;AAAA,EACC;AAAA,EACA;AAAA;AAAA;AAAA;AAIF,EACC,OAAO,CAAC,GAAG,SAAS;AACnB,QAAM,YAAY;AAAA,IAChB,SAAS;AAAA,IACT,WACE;AAAA,EACJ;AAEA,QAAM,cACJ,UAAW,KAAK,YAAuC,SAAS;AAClE,MAAI,CAAC,aAAa;AAChB,YAAQ,MAAM,qBAAqB,KAAK,QAAQ,EAAE;AAClD,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,eAAe,QAAQ,KAAK,MAAM,CAAC,EAAE,OAAO,CAAC,KAAK,OAAO,QAAQ;AACrE,WAAO,EACL,QAAQ,QACR,QAAQ,gBACR,IAAI,QAAQ,CAAC,MAAM,QACnB,IAAI,QAAQ,CAAC,MAAM;AAAA,EAEvB,CAAC;AAED,QAAM,QAAQ;AAAA,IACZ;AAAA,IACA,CAAC,0BAA0B,GAAG,cAAc,MAAM,WAAW;AAAA,IAC7D;AAAA,MACE,OAAO;AAAA,IACT;AAAA,EACF;AAEA,QAAM,GAAG,SAAS,CAAC,UAAU;AAC3B,YAAQ,MAAM,UAAU,MAAM,OAAO,EAAE;AAAA,EACzC,CAAC;AAED,QAAM,GAAG,SAAS,CAAC,SAAS;AAC1B,QAAI,SAAS,GAAG;AACd,cAAQ,IAAI,iDAAiD,IAAI,EAAE;AAAA,IACrE;AAAA,EACF,CAAC;AACH,CAAC;","names":[]}
1
+ {"version":3,"sources":["../../src/commands/create.ts"],"sourcesContent":["import { Command } from \"commander\";\nimport chalk from \"chalk\";\nimport { spawn } from \"cross-spawn\";\n\nexport const create = new Command()\n .name(\"create\")\n .description(\"create a new project\")\n .argument(\"[project-directory]\")\n .usage(`${chalk.green(\"[project-directory]\")} [options]`)\n .option(\n \"-t, --template <template>\",\n `\n\n The template to use for the project, e.g. default, langgraph\n`,\n )\n .option(\n \"--use-npm\",\n `\n\n Explicitly tell the CLI to bootstrap the application using npm\n`,\n )\n .option(\n \"--use-pnpm\",\n `\n\n Explicitly tell the CLI to bootstrap the application using pnpm\n`,\n )\n .option(\n \"--use-yarn\",\n `\n\n Explicitly tell the CLI to bootstrap the application using Yarn\n`,\n )\n .option(\n \"--use-bun\",\n `\n\n Explicitly tell the CLI to bootstrap the application using Bun\n`,\n )\n .option(\n \"--skip-install\",\n `\n\n Explicitly tell the CLI to skip installing packages\n`,\n )\n .action((_, opts) => {\n const templates = {\n default: \"https://github.com/assistant-ui/assistant-ui-starter\",\n langgraph:\n \"https://github.com/assistant-ui/assistant-ui-starter-langgraph\",\n };\n\n const templateUrl =\n templates[(opts.template as keyof typeof templates) ?? \"default\"];\n if (!templateUrl) {\n console.error(`Unknown template: ${opts.template}`);\n process.exit(1);\n }\n\n const filteredArgs = process.argv.slice(3).filter((arg, index, arr) => {\n return !(\n arg === \"-t\" ||\n arg === \"--template\" ||\n arr[index - 1] === \"-t\" ||\n arr[index - 1] === \"--template\"\n );\n });\n\n const child = spawn(\n \"npx\",\n [`create-next-app@latest`, ...filteredArgs, \"-e\", templateUrl],\n {\n stdio: \"inherit\",\n },\n );\n\n child.on(\"error\", (error) => {\n console.error(`Error: ${error.message}`);\n });\n\n child.on(\"close\", (code) => {\n if (code !== 0) {\n console.log(`other-package-script process exited with code ${code}`);\n }\n });\n });\n"],"mappings":";AAAA,SAAS,eAAe;AACxB,OAAO,WAAW;AAClB,SAAS,aAAa;AAEf,IAAM,SAAS,IAAI,QAAQ,EAC/B,KAAK,QAAQ,EACb,YAAY,sBAAsB,EAClC,SAAS,qBAAqB,EAC9B,MAAM,GAAG,MAAM,MAAM,qBAAqB,CAAC,YAAY,EACvD;AAAA,EACC;AAAA,EACA;AAAA;AAAA;AAAA;AAIF,EACC;AAAA,EACC;AAAA,EACA;AAAA;AAAA;AAAA;AAIF,EACC;AAAA,EACC;AAAA,EACA;AAAA;AAAA;AAAA;AAIF,EACC;AAAA,EACC;AAAA,EACA;AAAA;AAAA;AAAA;AAIF,EACC;AAAA,EACC;AAAA,EACA;AAAA;AAAA;AAAA;AAIF,EACC;AAAA,EACC;AAAA,EACA;AAAA;AAAA;AAAA;AAIF,EACC,OAAO,CAAC,GAAG,SAAS;AACnB,QAAM,YAAY;AAAA,IAChB,SAAS;AAAA,IACT,WACE;AAAA,EACJ;AAEA,QAAM,cACJ,UAAW,KAAK,YAAuC,SAAS;AAClE,MAAI,CAAC,aAAa;AAChB,YAAQ,MAAM,qBAAqB,KAAK,QAAQ,EAAE;AAClD,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,eAAe,QAAQ,KAAK,MAAM,CAAC,EAAE,OAAO,CAAC,KAAK,OAAO,QAAQ;AACrE,WAAO,EACL,QAAQ,QACR,QAAQ,gBACR,IAAI,QAAQ,CAAC,MAAM,QACnB,IAAI,QAAQ,CAAC,MAAM;AAAA,EAEvB,CAAC;AAED,QAAM,QAAQ;AAAA,IACZ;AAAA,IACA,CAAC,0BAA0B,GAAG,cAAc,MAAM,WAAW;AAAA,IAC7D;AAAA,MACE,OAAO;AAAA,IACT;AAAA,EACF;AAEA,QAAM,GAAG,SAAS,CAAC,UAAU;AAC3B,YAAQ,MAAM,UAAU,MAAM,OAAO,EAAE;AAAA,EACzC,CAAC;AAED,QAAM,GAAG,SAAS,CAAC,SAAS;AAC1B,QAAI,SAAS,GAAG;AACd,cAAQ,IAAI,iDAAiD,IAAI,EAAE;AAAA,IACrE;AAAA,EACF,CAAC;AACH,CAAC;","names":[]}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare const init: Command;
3
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,IAAI,SA0Cb,CAAC"}
@@ -1,10 +1,11 @@
1
+ // src/commands/init.ts
1
2
  import { Command } from "commander";
2
3
  import { spawn } from "cross-spawn";
3
4
  import fs from "fs";
4
5
  import path from "path";
5
6
  import chalk from "chalk";
6
- import { create } from "./create";
7
- const init = new Command().name("init").description("initialize assistant-ui in a new or existing project").action(async () => {
7
+ import { create } from "./create.js";
8
+ var init = new Command().name("init").description("initialize assistant-ui in a new or existing project").action(async () => {
8
9
  const packageJsonPath = path.join(process.cwd(), "package.json");
9
10
  const packageJsonExists = fs.existsSync(packageJsonPath);
10
11
  if (packageJsonExists) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/commands/init.ts"],"sourcesContent":["import { Command } from \"commander\";\nimport { spawn } from \"cross-spawn\";\nimport fs from \"fs\";\nimport path from \"path\";\nimport chalk from \"chalk\";\nimport { create } from \"./create\";\n\nexport const init = new Command()\n .name(\"init\")\n .description(\"initialize assistant-ui in a new or existing project\")\n .action(async () => {\n // Check if package.json exists in the current directory\n const packageJsonPath = path.join(process.cwd(), \"package.json\");\n const packageJsonExists = fs.existsSync(packageJsonPath);\n\n if (packageJsonExists) {\n // If package.json exists, run shadcn add command\n console.log(\n chalk.blue(\"Initializing assistant-ui in existing project...\"),\n );\n\n const child = spawn(\n \"npx\",\n [\n `shadcn@latest`,\n \"add\",\n \"https://r.assistant-ui.com/chat/b/ai-sdk-quick-start/json\",\n ],\n {\n stdio: \"inherit\",\n },\n );\n\n child.on(\"error\", (error) => {\n console.error(`Error: ${error.message}`);\n });\n\n child.on(\"close\", (code) => {\n if (code !== 0) {\n console.log(`shadcn process exited with code ${code}`);\n }\n });\n } else {\n // If package.json doesn't exist, use the create command\n console.log(chalk.blue(\"Creating a new assistant-ui project...\"));\n\n // Execute the create command with default template\n await create.parseAsync([]);\n }\n });\n"],"mappings":"AAAA,SAAS,eAAe;AACxB,SAAS,aAAa;AACtB,OAAO,QAAQ;AACf,OAAO,UAAU;AACjB,OAAO,WAAW;AAClB,SAAS,cAAc;AAEhB,MAAM,OAAO,IAAI,QAAQ,EAC7B,KAAK,MAAM,EACX,YAAY,sDAAsD,EAClE,OAAO,YAAY;AAElB,QAAM,kBAAkB,KAAK,KAAK,QAAQ,IAAI,GAAG,cAAc;AAC/D,QAAM,oBAAoB,GAAG,WAAW,eAAe;AAEvD,MAAI,mBAAmB;AAErB,YAAQ;AAAA,MACN,MAAM,KAAK,kDAAkD;AAAA,IAC/D;AAEA,UAAM,QAAQ;AAAA,MACZ;AAAA,MACA;AAAA,QACE;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA;AAAA,QACE,OAAO;AAAA,MACT;AAAA,IACF;AAEA,UAAM,GAAG,SAAS,CAAC,UAAU;AAC3B,cAAQ,MAAM,UAAU,MAAM,OAAO,EAAE;AAAA,IACzC,CAAC;AAED,UAAM,GAAG,SAAS,CAAC,SAAS;AAC1B,UAAI,SAAS,GAAG;AACd,gBAAQ,IAAI,mCAAmC,IAAI,EAAE;AAAA,MACvD;AAAA,IACF,CAAC;AAAA,EACH,OAAO;AAEL,YAAQ,IAAI,MAAM,KAAK,wCAAwC,CAAC;AAGhE,UAAM,OAAO,WAAW,CAAC,CAAC;AAAA,EAC5B;AACF,CAAC;","names":[]}
1
+ {"version":3,"sources":["../../src/commands/init.ts"],"sourcesContent":["import { Command } from \"commander\";\nimport { spawn } from \"cross-spawn\";\nimport fs from \"fs\";\nimport path from \"path\";\nimport chalk from \"chalk\";\nimport { create } from \"./create\";\n\nexport const init = new Command()\n .name(\"init\")\n .description(\"initialize assistant-ui in a new or existing project\")\n .action(async () => {\n // Check if package.json exists in the current directory\n const packageJsonPath = path.join(process.cwd(), \"package.json\");\n const packageJsonExists = fs.existsSync(packageJsonPath);\n\n if (packageJsonExists) {\n // If package.json exists, run shadcn add command\n console.log(\n chalk.blue(\"Initializing assistant-ui in existing project...\"),\n );\n\n const child = spawn(\n \"npx\",\n [\n `shadcn@latest`,\n \"add\",\n \"https://r.assistant-ui.com/chat/b/ai-sdk-quick-start/json\",\n ],\n {\n stdio: \"inherit\",\n },\n );\n\n child.on(\"error\", (error) => {\n console.error(`Error: ${error.message}`);\n });\n\n child.on(\"close\", (code) => {\n if (code !== 0) {\n console.log(`shadcn process exited with code ${code}`);\n }\n });\n } else {\n // If package.json doesn't exist, use the create command\n console.log(chalk.blue(\"Creating a new assistant-ui project...\"));\n\n // Execute the create command with default template\n await create.parseAsync([]);\n }\n });\n"],"mappings":";AAAA,SAAS,eAAe;AACxB,SAAS,aAAa;AACtB,OAAO,QAAQ;AACf,OAAO,UAAU;AACjB,OAAO,WAAW;AAClB,SAAS,cAAc;AAEhB,IAAM,OAAO,IAAI,QAAQ,EAC7B,KAAK,MAAM,EACX,YAAY,sDAAsD,EAClE,OAAO,YAAY;AAElB,QAAM,kBAAkB,KAAK,KAAK,QAAQ,IAAI,GAAG,cAAc;AAC/D,QAAM,oBAAoB,GAAG,WAAW,eAAe;AAEvD,MAAI,mBAAmB;AAErB,YAAQ;AAAA,MACN,MAAM,KAAK,kDAAkD;AAAA,IAC/D;AAEA,UAAM,QAAQ;AAAA,MACZ;AAAA,MACA;AAAA,QACE;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACA;AAAA,QACE,OAAO;AAAA,MACT;AAAA,IACF;AAEA,UAAM,GAAG,SAAS,CAAC,UAAU;AAC3B,cAAQ,MAAM,UAAU,MAAM,OAAO,EAAE;AAAA,IACzC,CAAC;AAED,UAAM,GAAG,SAAS,CAAC,SAAS;AAC1B,UAAI,SAAS,GAAG;AACd,gBAAQ,IAAI,mCAAmC,IAAI,EAAE;AAAA,MACvD;AAAA,IACF,CAAC;AAAA,EACH,OAAO;AAEL,YAAQ,IAAI,MAAM,KAAK,wCAAwC,CAAC;AAGhE,UAAM,OAAO,WAAW,CAAC,CAAC;AAAA,EAC5B;AACF,CAAC;","names":[]}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare const update: Command;
3
+ //# sourceMappingURL=update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,MAAM,SAoDf,CAAC"}
@@ -1,10 +1,11 @@
1
+ // src/commands/update.ts
1
2
  import { Command } from "commander";
2
3
  import fs from "fs";
3
4
  import path from "path";
4
5
  import chalk from "chalk";
5
6
  import { detect } from "detect-package-manager";
6
7
  import { sync as spawnSync } from "cross-spawn";
7
- const update = new Command().name("update").description(
8
+ var update = new Command().name("update").description(
8
9
  "Update all '@assistant-ui/*' and 'assistant-stream' packages in package.json to latest versions using your package manager."
9
10
  ).option("--dry", "Print the package manager command instead of running it.").action(async (opts) => {
10
11
  const packageJsonPath = path.join(process.cwd(), "package.json");
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/commands/update.ts"],"sourcesContent":["import { Command } from \"commander\";\nimport fs from \"fs\";\nimport path from \"path\";\nimport chalk from \"chalk\";\nimport { detect } from \"detect-package-manager\";\nimport { sync as spawnSync } from \"cross-spawn\";\n\nexport const update = new Command()\n .name(\"update\")\n .description(\n \"Update all '@assistant-ui/*' and 'assistant-stream' packages in package.json to latest versions using your package manager.\",\n )\n .option(\"--dry\", \"Print the package manager command instead of running it.\")\n .action(async (opts) => {\n const packageJsonPath = path.join(process.cwd(), \"package.json\");\n if (!fs.existsSync(packageJsonPath)) {\n console.error(\n chalk.red(\"No package.json found in the current directory.\"),\n );\n process.exit(1);\n }\n const pkg = JSON.parse(fs.readFileSync(packageJsonPath, \"utf-8\"));\n const sections = [\"dependencies\", \"devDependencies\"];\n const targets: string[] = [];\n for (const section of sections) {\n if (!pkg[section]) continue;\n for (const dep in pkg[section]) {\n if (dep.startsWith(\"@assistant-ui/\") || dep === \"assistant-stream\") {\n targets.push(dep);\n }\n }\n }\n if (!targets.length) {\n console.log(chalk.yellow(\"No matching packages found to update.\"));\n return;\n }\n const pm = await detect({ cwd: process.cwd() });\n let cmd: string;\n if (pm === \"yarn\") {\n cmd = `yarn add ${targets.map((d) => `${d}@latest`).join(\" \")}`;\n } else if (pm === \"pnpm\") {\n cmd = `pnpm add ${targets.map((d) => `${d}@latest`).join(\" \")}`;\n } else if (pm === \"bun\") {\n cmd = `bun add ${targets.map((d) => `${d}@latest`).join(\" \")}`;\n } else {\n cmd = `npm install ${targets.map((d) => `${d}@latest`).join(\" \")}`;\n }\n if (opts.dry) {\n console.log(chalk.blue(\"\\nDry run: would run the following command:\"));\n console.log(cmd);\n return;\n }\n console.log(chalk.blue(`\\nRunning: ${cmd}`));\n const result = spawnSync(cmd, { shell: true, stdio: \"inherit\" });\n if (result.status !== 0) {\n console.error(chalk.red(\"Package manager update failed.\"));\n process.exit(result.status || 1);\n }\n console.log(chalk.green(\"\\nAll packages updated to latest version!\"));\n });\n"],"mappings":"AAAA,SAAS,eAAe;AACxB,OAAO,QAAQ;AACf,OAAO,UAAU;AACjB,OAAO,WAAW;AAClB,SAAS,cAAc;AACvB,SAAS,QAAQ,iBAAiB;AAE3B,MAAM,SAAS,IAAI,QAAQ,EAC/B,KAAK,QAAQ,EACb;AAAA,EACC;AACF,EACC,OAAO,SAAS,0DAA0D,EAC1E,OAAO,OAAO,SAAS;AACtB,QAAM,kBAAkB,KAAK,KAAK,QAAQ,IAAI,GAAG,cAAc;AAC/D,MAAI,CAAC,GAAG,WAAW,eAAe,GAAG;AACnC,YAAQ;AAAA,MACN,MAAM,IAAI,iDAAiD;AAAA,IAC7D;AACA,YAAQ,KAAK,CAAC;AAAA,EAChB;AACA,QAAM,MAAM,KAAK,MAAM,GAAG,aAAa,iBAAiB,OAAO,CAAC;AAChE,QAAM,WAAW,CAAC,gBAAgB,iBAAiB;AACnD,QAAM,UAAoB,CAAC;AAC3B,aAAW,WAAW,UAAU;AAC9B,QAAI,CAAC,IAAI,OAAO,EAAG;AACnB,eAAW,OAAO,IAAI,OAAO,GAAG;AAC9B,UAAI,IAAI,WAAW,gBAAgB,KAAK,QAAQ,oBAAoB;AAClE,gBAAQ,KAAK,GAAG;AAAA,MAClB;AAAA,IACF;AAAA,EACF;AACA,MAAI,CAAC,QAAQ,QAAQ;AACnB,YAAQ,IAAI,MAAM,OAAO,uCAAuC,CAAC;AACjE;AAAA,EACF;AACA,QAAM,KAAK,MAAM,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC;AAC9C,MAAI;AACJ,MAAI,OAAO,QAAQ;AACjB,UAAM,YAAY,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC,SAAS,EAAE,KAAK,GAAG,CAAC;AAAA,EAC/D,WAAW,OAAO,QAAQ;AACxB,UAAM,YAAY,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC,SAAS,EAAE,KAAK,GAAG,CAAC;AAAA,EAC/D,WAAW,OAAO,OAAO;AACvB,UAAM,WAAW,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC,SAAS,EAAE,KAAK,GAAG,CAAC;AAAA,EAC9D,OAAO;AACL,UAAM,eAAe,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC,SAAS,EAAE,KAAK,GAAG,CAAC;AAAA,EAClE;AACA,MAAI,KAAK,KAAK;AACZ,YAAQ,IAAI,MAAM,KAAK,6CAA6C,CAAC;AACrE,YAAQ,IAAI,GAAG;AACf;AAAA,EACF;AACA,UAAQ,IAAI,MAAM,KAAK;AAAA,WAAc,GAAG,EAAE,CAAC;AAC3C,QAAM,SAAS,UAAU,KAAK,EAAE,OAAO,MAAM,OAAO,UAAU,CAAC;AAC/D,MAAI,OAAO,WAAW,GAAG;AACvB,YAAQ,MAAM,MAAM,IAAI,gCAAgC,CAAC;AACzD,YAAQ,KAAK,OAAO,UAAU,CAAC;AAAA,EACjC;AACA,UAAQ,IAAI,MAAM,MAAM,2CAA2C,CAAC;AACtE,CAAC;","names":[]}
1
+ {"version":3,"sources":["../../src/commands/update.ts"],"sourcesContent":["import { Command } from \"commander\";\nimport fs from \"fs\";\nimport path from \"path\";\nimport chalk from \"chalk\";\nimport { detect } from \"detect-package-manager\";\nimport { sync as spawnSync } from \"cross-spawn\";\n\nexport const update = new Command()\n .name(\"update\")\n .description(\n \"Update all '@assistant-ui/*' and 'assistant-stream' packages in package.json to latest versions using your package manager.\",\n )\n .option(\"--dry\", \"Print the package manager command instead of running it.\")\n .action(async (opts) => {\n const packageJsonPath = path.join(process.cwd(), \"package.json\");\n if (!fs.existsSync(packageJsonPath)) {\n console.error(\n chalk.red(\"No package.json found in the current directory.\"),\n );\n process.exit(1);\n }\n const pkg = JSON.parse(fs.readFileSync(packageJsonPath, \"utf-8\"));\n const sections = [\"dependencies\", \"devDependencies\"];\n const targets: string[] = [];\n for (const section of sections) {\n if (!pkg[section]) continue;\n for (const dep in pkg[section]) {\n if (dep.startsWith(\"@assistant-ui/\") || dep === \"assistant-stream\") {\n targets.push(dep);\n }\n }\n }\n if (!targets.length) {\n console.log(chalk.yellow(\"No matching packages found to update.\"));\n return;\n }\n const pm = await detect({ cwd: process.cwd() });\n let cmd: string;\n if (pm === \"yarn\") {\n cmd = `yarn add ${targets.map((d) => `${d}@latest`).join(\" \")}`;\n } else if (pm === \"pnpm\") {\n cmd = `pnpm add ${targets.map((d) => `${d}@latest`).join(\" \")}`;\n } else if (pm === \"bun\") {\n cmd = `bun add ${targets.map((d) => `${d}@latest`).join(\" \")}`;\n } else {\n cmd = `npm install ${targets.map((d) => `${d}@latest`).join(\" \")}`;\n }\n if (opts.dry) {\n console.log(chalk.blue(\"\\nDry run: would run the following command:\"));\n console.log(cmd);\n return;\n }\n console.log(chalk.blue(`\\nRunning: ${cmd}`));\n const result = spawnSync(cmd, { shell: true, stdio: \"inherit\" });\n if (result.status !== 0) {\n console.error(chalk.red(\"Package manager update failed.\"));\n process.exit(result.status || 1);\n }\n console.log(chalk.green(\"\\nAll packages updated to latest version!\"));\n });\n"],"mappings":";AAAA,SAAS,eAAe;AACxB,OAAO,QAAQ;AACf,OAAO,UAAU;AACjB,OAAO,WAAW;AAClB,SAAS,cAAc;AACvB,SAAS,QAAQ,iBAAiB;AAE3B,IAAM,SAAS,IAAI,QAAQ,EAC/B,KAAK,QAAQ,EACb;AAAA,EACC;AACF,EACC,OAAO,SAAS,0DAA0D,EAC1E,OAAO,OAAO,SAAS;AACtB,QAAM,kBAAkB,KAAK,KAAK,QAAQ,IAAI,GAAG,cAAc;AAC/D,MAAI,CAAC,GAAG,WAAW,eAAe,GAAG;AACnC,YAAQ;AAAA,MACN,MAAM,IAAI,iDAAiD;AAAA,IAC7D;AACA,YAAQ,KAAK,CAAC;AAAA,EAChB;AACA,QAAM,MAAM,KAAK,MAAM,GAAG,aAAa,iBAAiB,OAAO,CAAC;AAChE,QAAM,WAAW,CAAC,gBAAgB,iBAAiB;AACnD,QAAM,UAAoB,CAAC;AAC3B,aAAW,WAAW,UAAU;AAC9B,QAAI,CAAC,IAAI,OAAO,EAAG;AACnB,eAAW,OAAO,IAAI,OAAO,GAAG;AAC9B,UAAI,IAAI,WAAW,gBAAgB,KAAK,QAAQ,oBAAoB;AAClE,gBAAQ,KAAK,GAAG;AAAA,MAClB;AAAA,IACF;AAAA,EACF;AACA,MAAI,CAAC,QAAQ,QAAQ;AACnB,YAAQ,IAAI,MAAM,OAAO,uCAAuC,CAAC;AACjE;AAAA,EACF;AACA,QAAM,KAAK,MAAM,OAAO,EAAE,KAAK,QAAQ,IAAI,EAAE,CAAC;AAC9C,MAAI;AACJ,MAAI,OAAO,QAAQ;AACjB,UAAM,YAAY,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC,SAAS,EAAE,KAAK,GAAG,CAAC;AAAA,EAC/D,WAAW,OAAO,QAAQ;AACxB,UAAM,YAAY,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC,SAAS,EAAE,KAAK,GAAG,CAAC;AAAA,EAC/D,WAAW,OAAO,OAAO;AACvB,UAAM,WAAW,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC,SAAS,EAAE,KAAK,GAAG,CAAC;AAAA,EAC9D,OAAO;AACL,UAAM,eAAe,QAAQ,IAAI,CAAC,MAAM,GAAG,CAAC,SAAS,EAAE,KAAK,GAAG,CAAC;AAAA,EAClE;AACA,MAAI,KAAK,KAAK;AACZ,YAAQ,IAAI,MAAM,KAAK,6CAA6C,CAAC;AACrE,YAAQ,IAAI,GAAG;AACf;AAAA,EACF;AACA,UAAQ,IAAI,MAAM,KAAK;AAAA,WAAc,GAAG,EAAE,CAAC;AAC3C,QAAM,SAAS,UAAU,KAAK,EAAE,OAAO,MAAM,OAAO,UAAU,CAAC;AAC/D,MAAI,OAAO,WAAW,GAAG;AACvB,YAAQ,MAAM,MAAM,IAAI,gCAAgC,CAAC;AACzD,YAAQ,KAAK,OAAO,UAAU,CAAC;AAAA,EACjC;AACA,UAAQ,IAAI,MAAM,MAAM,2CAA2C,CAAC;AACtE,CAAC;","names":[]}
@@ -0,0 +1,10 @@
1
+ import { Command } from "commander";
2
+ export interface TransformOptions {
3
+ dry?: boolean;
4
+ print?: boolean;
5
+ verbose?: boolean;
6
+ jscodeshift?: string;
7
+ }
8
+ export declare const codemodCommand: Command;
9
+ export declare const upgradeCommand: Command;
10
+ //# sourceMappingURL=upgrade.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,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;AAgBD,eAAO,MAAM,cAAc,SAczB,CAAC;AAEH,eAAO,MAAM,cAAc,SAYzB,CAAC"}
@@ -1,16 +1,17 @@
1
+ // src/commands/upgrade.ts
1
2
  import { Command } from "commander";
2
- import { transform } from "../lib/transform";
3
- import { upgrade } from "../lib/upgrade";
3
+ import { transform } from "../lib/transform.js";
4
+ import { upgrade } from "../lib/upgrade.js";
4
5
  import debug from "debug";
5
- const error = debug("codemod:error");
6
+ var error = debug("codemod:error");
6
7
  debug.enable("codemod:*");
7
- const addTransformOptions = (command) => {
8
+ var addTransformOptions = (command) => {
8
9
  return command.option("-d, --dry", "Dry run (no changes are made to files)").option("-p, --print", "Print transformed files to stdout").option("--verbose", "Show more information about the transform process").option(
9
10
  "-j, --jscodeshift <options>",
10
11
  "Pass options directly to jscodeshift"
11
12
  );
12
13
  };
13
- const codemodCommand = addTransformOptions(
14
+ var codemodCommand = addTransformOptions(
14
15
  new Command().name("codemod").description("CLI tool for running codemods").argument("<codemod>", "Codemod to run (e.g., rewrite-framework-imports)").argument("<source>", "Path to source files or directory to transform")
15
16
  ).action((codemod, source, options) => {
16
17
  try {
@@ -21,7 +22,7 @@ const codemodCommand = addTransformOptions(
21
22
  process.exit(1);
22
23
  }
23
24
  });
24
- const upgradeCommand = addTransformOptions(
25
+ var upgradeCommand = addTransformOptions(
25
26
  new Command().command("upgrade").description("Upgrade ai package dependencies and apply codemods")
26
27
  ).action((options) => {
27
28
  try {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/commands/upgrade.ts"],"sourcesContent":["import { Command } from \"commander\";\nimport { transform } from \"../lib/transform\";\nimport { upgrade } from \"../lib/upgrade\";\nimport debug from \"debug\";\n\nexport interface TransformOptions {\n dry?: boolean;\n print?: boolean;\n verbose?: boolean;\n jscodeshift?: string;\n}\n\nconst error = debug(\"codemod:error\");\ndebug.enable(\"codemod:*\");\n\nconst addTransformOptions = (command: Command): Command => {\n return command\n .option(\"-d, --dry\", \"Dry run (no changes are made to files)\")\n .option(\"-p, --print\", \"Print transformed files to stdout\")\n .option(\"--verbose\", \"Show more information about the transform process\")\n .option(\n \"-j, --jscodeshift <options>\",\n \"Pass options directly to jscodeshift\",\n );\n};\n\nexport const codemodCommand = addTransformOptions(\n new Command()\n .name(\"codemod\")\n .description(\"CLI tool for running codemods\")\n .argument(\"<codemod>\", \"Codemod to run (e.g., rewrite-framework-imports)\")\n .argument(\"<source>\", \"Path to source files or directory to transform\"),\n).action((codemod, source, options: TransformOptions) => {\n try {\n transform(codemod, source, options);\n } catch (err: any) {\n error(`Error transforming: ${err}`);\n error(err.stack);\n process.exit(1);\n }\n});\n\nexport const upgradeCommand = addTransformOptions(\n new Command()\n .command(\"upgrade\")\n .description(\"Upgrade ai package dependencies and apply codemods\"),\n).action((options: TransformOptions) => {\n try {\n upgrade(options);\n } catch (err: any) {\n error(`Error upgrading: ${err}`);\n error(err.stack);\n process.exit(1);\n }\n});\n"],"mappings":"AAAA,SAAS,eAAe;AACxB,SAAS,iBAAiB;AAC1B,SAAS,eAAe;AACxB,OAAO,WAAW;AASlB,MAAM,QAAQ,MAAM,eAAe;AACnC,MAAM,OAAO,WAAW;AAExB,MAAM,sBAAsB,CAAC,YAA8B;AACzD,SAAO,QACJ,OAAO,aAAa,wCAAwC,EAC5D,OAAO,eAAe,mCAAmC,EACzD,OAAO,aAAa,mDAAmD,EACvE;AAAA,IACC;AAAA,IACA;AAAA,EACF;AACJ;AAEO,MAAM,iBAAiB;AAAA,EAC5B,IAAI,QAAQ,EACT,KAAK,SAAS,EACd,YAAY,+BAA+B,EAC3C,SAAS,aAAa,kDAAkD,EACxE,SAAS,YAAY,gDAAgD;AAC1E,EAAE,OAAO,CAAC,SAAS,QAAQ,YAA8B;AACvD,MAAI;AACF,cAAU,SAAS,QAAQ,OAAO;AAAA,EACpC,SAAS,KAAU;AACjB,UAAM,uBAAuB,GAAG,EAAE;AAClC,UAAM,IAAI,KAAK;AACf,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF,CAAC;AAEM,MAAM,iBAAiB;AAAA,EAC5B,IAAI,QAAQ,EACT,QAAQ,SAAS,EACjB,YAAY,oDAAoD;AACrE,EAAE,OAAO,CAAC,YAA8B;AACtC,MAAI;AACF,YAAQ,OAAO;AAAA,EACjB,SAAS,KAAU;AACjB,UAAM,oBAAoB,GAAG,EAAE;AAC/B,UAAM,IAAI,KAAK;AACf,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF,CAAC;","names":[]}
1
+ {"version":3,"sources":["../../src/commands/upgrade.ts"],"sourcesContent":["import { Command } from \"commander\";\nimport { transform } from \"../lib/transform\";\nimport { upgrade } from \"../lib/upgrade\";\nimport debug from \"debug\";\n\nexport interface TransformOptions {\n dry?: boolean;\n print?: boolean;\n verbose?: boolean;\n jscodeshift?: string;\n}\n\nconst error = debug(\"codemod:error\");\ndebug.enable(\"codemod:*\");\n\nconst addTransformOptions = (command: Command): Command => {\n return command\n .option(\"-d, --dry\", \"Dry run (no changes are made to files)\")\n .option(\"-p, --print\", \"Print transformed files to stdout\")\n .option(\"--verbose\", \"Show more information about the transform process\")\n .option(\n \"-j, --jscodeshift <options>\",\n \"Pass options directly to jscodeshift\",\n );\n};\n\nexport const codemodCommand = addTransformOptions(\n new Command()\n .name(\"codemod\")\n .description(\"CLI tool for running codemods\")\n .argument(\"<codemod>\", \"Codemod to run (e.g., rewrite-framework-imports)\")\n .argument(\"<source>\", \"Path to source files or directory to transform\"),\n).action((codemod, source, options: TransformOptions) => {\n try {\n transform(codemod, source, options);\n } catch (err: any) {\n error(`Error transforming: ${err}`);\n error(err.stack);\n process.exit(1);\n }\n});\n\nexport const upgradeCommand = addTransformOptions(\n new Command()\n .command(\"upgrade\")\n .description(\"Upgrade ai package dependencies and apply codemods\"),\n).action((options: TransformOptions) => {\n try {\n upgrade(options);\n } catch (err: any) {\n error(`Error upgrading: ${err}`);\n error(err.stack);\n process.exit(1);\n }\n});\n"],"mappings":";AAAA,SAAS,eAAe;AACxB,SAAS,iBAAiB;AAC1B,SAAS,eAAe;AACxB,OAAO,WAAW;AASlB,IAAM,QAAQ,MAAM,eAAe;AACnC,MAAM,OAAO,WAAW;AAExB,IAAM,sBAAsB,CAAC,YAA8B;AACzD,SAAO,QACJ,OAAO,aAAa,wCAAwC,EAC5D,OAAO,eAAe,mCAAmC,EACzD,OAAO,aAAa,mDAAmD,EACvE;AAAA,IACC;AAAA,IACA;AAAA,EACF;AACJ;AAEO,IAAM,iBAAiB;AAAA,EAC5B,IAAI,QAAQ,EACT,KAAK,SAAS,EACd,YAAY,+BAA+B,EAC3C,SAAS,aAAa,kDAAkD,EACxE,SAAS,YAAY,gDAAgD;AAC1E,EAAE,OAAO,CAAC,SAAS,QAAQ,YAA8B;AACvD,MAAI;AACF,cAAU,SAAS,QAAQ,OAAO;AAAA,EACpC,SAAS,KAAU;AACjB,UAAM,uBAAuB,GAAG,EAAE;AAClC,UAAM,IAAI,KAAK;AACf,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF,CAAC;AAEM,IAAM,iBAAiB;AAAA,EAC5B,IAAI,QAAQ,EACT,QAAQ,SAAS,EACjB,YAAY,oDAAoD;AACrE,EAAE,OAAO,CAAC,YAA8B;AACtC,MAAI;AACF,YAAQ,OAAO;AAAA,EACjB,SAAS,KAAU;AACjB,UAAM,oBAAoB,GAAG,EAAE;AAC/B,UAAM,IAAI,KAAK;AACf,YAAQ,KAAK,CAAC;AAAA,EAChB;AACF,CAAC;","names":[]}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js CHANGED
@@ -1,10 +1,12 @@
1
1
  #!/usr/bin/env node
2
+
3
+ // src/index.ts
2
4
  import { Command } from "commander";
3
- import { create } from "./commands/create";
4
- import { add } from "./commands/add";
5
- import { codemodCommand, upgradeCommand } from "./commands/upgrade";
6
- import { init } from "./commands/init";
7
- import { update } from "./commands/update";
5
+ import { create } from "./commands/create.js";
6
+ import { add } from "./commands/add.js";
7
+ import { codemodCommand, upgradeCommand } from "./commands/upgrade.js";
8
+ import { init } from "./commands/init.js";
9
+ import { update } from "./commands/update.js";
8
10
  process.on("SIGINT", () => process.exit(0));
9
11
  process.on("SIGTERM", () => process.exit(0));
10
12
  function main() {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { Command } from \"commander\";\nimport { create } from \"./commands/create\";\nimport { add } from \"./commands/add\";\nimport { codemodCommand, upgradeCommand } from \"./commands/upgrade\";\nimport { init } from \"./commands/init\";\nimport { update } from \"./commands/update\";\n\nprocess.on(\"SIGINT\", () => process.exit(0));\nprocess.on(\"SIGTERM\", () => process.exit(0));\n\nfunction main() {\n const program = new Command()\n .name(\"assistant-ui\")\n .description(\"add components and dependencies to your project\");\n\n program.addCommand(add);\n program.addCommand(create);\n program.addCommand(init);\n program.addCommand(codemodCommand);\n program.addCommand(upgradeCommand);\n program.addCommand(update);\n\n program.parse();\n}\n\nmain();\n"],"mappings":";AAEA,SAAS,eAAe;AACxB,SAAS,cAAc;AACvB,SAAS,WAAW;AACpB,SAAS,gBAAgB,sBAAsB;AAC/C,SAAS,YAAY;AACrB,SAAS,cAAc;AAEvB,QAAQ,GAAG,UAAU,MAAM,QAAQ,KAAK,CAAC,CAAC;AAC1C,QAAQ,GAAG,WAAW,MAAM,QAAQ,KAAK,CAAC,CAAC;AAE3C,SAAS,OAAO;AACd,QAAM,UAAU,IAAI,QAAQ,EACzB,KAAK,cAAc,EACnB,YAAY,iDAAiD;AAEhE,UAAQ,WAAW,GAAG;AACtB,UAAQ,WAAW,MAAM;AACzB,UAAQ,WAAW,IAAI;AACvB,UAAQ,WAAW,cAAc;AACjC,UAAQ,WAAW,cAAc;AACjC,UAAQ,WAAW,MAAM;AAEzB,UAAQ,MAAM;AAChB;AAEA,KAAK;","names":[]}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["#!/usr/bin/env node\n\nimport { Command } from \"commander\";\nimport { create } from \"./commands/create\";\nimport { add } from \"./commands/add\";\nimport { codemodCommand, upgradeCommand } from \"./commands/upgrade\";\nimport { init } from \"./commands/init\";\nimport { update } from \"./commands/update\";\n\nprocess.on(\"SIGINT\", () => process.exit(0));\nprocess.on(\"SIGTERM\", () => process.exit(0));\n\nfunction main() {\n const program = new Command()\n .name(\"assistant-ui\")\n .description(\"add components and dependencies to your project\");\n\n program.addCommand(add);\n program.addCommand(create);\n program.addCommand(init);\n program.addCommand(codemodCommand);\n program.addCommand(upgradeCommand);\n program.addCommand(update);\n\n program.parse();\n}\n\nmain();\n"],"mappings":";;;AAEA,SAAS,eAAe;AACxB,SAAS,cAAc;AACvB,SAAS,WAAW;AACpB,SAAS,gBAAgB,sBAAsB;AAC/C,SAAS,YAAY;AACrB,SAAS,cAAc;AAEvB,QAAQ,GAAG,UAAU,MAAM,QAAQ,KAAK,CAAC,CAAC;AAC1C,QAAQ,GAAG,WAAW,MAAM,QAAQ,KAAK,CAAC,CAAC;AAE3C,SAAS,OAAO;AACd,QAAM,UAAU,IAAI,QAAQ,EACzB,KAAK,cAAc,EACnB,YAAY,iDAAiD;AAEhE,UAAQ,WAAW,GAAG;AACtB,UAAQ,WAAW,MAAM;AACzB,UAAQ,WAAW,IAAI;AACvB,UAAQ,WAAW,cAAc;AACjC,UAAQ,WAAW,cAAc;AACjC,UAAQ,WAAW,MAAM;AAEzB,UAAQ,MAAM;AAChB;AAEA,KAAK;","names":[]}
@@ -0,0 +1,2 @@
1
+ export default function installAiSdkLib(): Promise<void>;
2
+ //# sourceMappingURL=install-ai-sdk-lib.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-ai-sdk-lib.d.ts","sourceRoot":"","sources":["../../src/lib/install-ai-sdk-lib.ts"],"names":[],"mappings":"AAuCA,wBAA8B,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAoD7D"}
@@ -1,3 +1,4 @@
1
+ // src/lib/install-ai-sdk-lib.ts
1
2
  import * as fs from "fs";
2
3
  import * as path from "path";
3
4
  import { execSync } from "child_process";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/lib/install-ai-sdk-lib.ts"],"sourcesContent":["import * as fs from \"fs\";\nimport * as path from \"path\";\nimport { execSync } from \"child_process\";\nimport { sync as globSync } from \"glob\";\nimport * as readline from \"readline\";\nimport { detect } from \"detect-package-manager\";\n\nfunction askQuestion(query: string): Promise<string> {\n return new Promise((resolve) => {\n const rl = readline.createInterface({\n input: process.stdin,\n output: process.stdout,\n });\n rl.question(query, (answer) => {\n rl.close();\n resolve(answer);\n });\n });\n}\n\nfunction isPackageInstalled(pkg: string): boolean {\n const cwd = process.cwd();\n try {\n const pkgJsonPath = path.join(cwd, \"package.json\");\n if (fs.existsSync(pkgJsonPath)) {\n const pkgJson = JSON.parse(fs.readFileSync(pkgJsonPath, \"utf8\"));\n const deps = pkgJson.dependencies || {};\n const devDeps = pkgJson.devDependencies || {};\n if (deps[pkg] || devDeps[pkg]) {\n return true;\n }\n }\n } catch (e) {\n // Fall back to node_modules check below.\n }\n const modulePath = path.join(cwd, \"node_modules\", ...pkg.split(\"/\"));\n return fs.existsSync(modulePath);\n}\n\nexport default async function installAiSdkLib(): Promise<void> {\n const cwd = process.cwd();\n const pattern = \"**/*.{js,jsx,ts,tsx}\";\n const files = globSync(pattern, {\n cwd,\n ignore: [\"**/node_modules/**\", \"**/dist/**\", \"**/build/**\"],\n });\n\n let found = false;\n for (const file of files) {\n const fullPath = path.join(cwd, file);\n const content = fs.readFileSync(fullPath, \"utf8\");\n if (content.includes(\"@assistant-ui/react-ai-sdk\")) {\n found = true;\n break;\n }\n }\n\n if (found) {\n if (isPackageInstalled(\"@assistant-ui/react-ai-sdk\")) {\n console.log(\n \"@assistant-ui/react-ai-sdk is already installed. Skipping installation.\",\n );\n return;\n }\n\n const answer = await askQuestion(\n \"AI SDK imports were added but @assistant-ui/react-ai-sdk is not installed. Do you want to install it? (Y/n) \",\n );\n if (answer === \"\" || answer.toLowerCase().startsWith(\"y\")) {\n const pm = await detect();\n let cmd = \"\";\n if (pm === \"yarn\") {\n cmd = \"yarn add @assistant-ui/react-ai-sdk\";\n } else if (pm === \"pnpm\") {\n cmd = \"pnpm add @assistant-ui/react-ai-sdk\";\n } else if (pm === \"bun\") {\n cmd = \"bun add @assistant-ui/react-ai-sdk\";\n } else {\n cmd = \"npm install @assistant-ui/react-ai-sdk\";\n }\n try {\n execSync(cmd, { stdio: \"inherit\" });\n } catch (e) {\n console.error(\"Installation failed:\", e);\n }\n } else {\n console.log(\"Skipping installation.\");\n }\n } else {\n console.log(\"No AI SDK imports found; skipping installation.\");\n }\n}\n"],"mappings":"AAAA,YAAY,QAAQ;AACpB,YAAY,UAAU;AACtB,SAAS,gBAAgB;AACzB,SAAS,QAAQ,gBAAgB;AACjC,YAAY,cAAc;AAC1B,SAAS,cAAc;AAEvB,SAAS,YAAY,OAAgC;AACnD,SAAO,IAAI,QAAQ,CAAC,YAAY;AAC9B,UAAM,KAAK,SAAS,gBAAgB;AAAA,MAClC,OAAO,QAAQ;AAAA,MACf,QAAQ,QAAQ;AAAA,IAClB,CAAC;AACD,OAAG,SAAS,OAAO,CAAC,WAAW;AAC7B,SAAG,MAAM;AACT,cAAQ,MAAM;AAAA,IAChB,CAAC;AAAA,EACH,CAAC;AACH;AAEA,SAAS,mBAAmB,KAAsB;AAChD,QAAM,MAAM,QAAQ,IAAI;AACxB,MAAI;AACF,UAAM,cAAc,KAAK,KAAK,KAAK,cAAc;AACjD,QAAI,GAAG,WAAW,WAAW,GAAG;AAC9B,YAAM,UAAU,KAAK,MAAM,GAAG,aAAa,aAAa,MAAM,CAAC;AAC/D,YAAM,OAAO,QAAQ,gBAAgB,CAAC;AACtC,YAAM,UAAU,QAAQ,mBAAmB,CAAC;AAC5C,UAAI,KAAK,GAAG,KAAK,QAAQ,GAAG,GAAG;AAC7B,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF,SAAS,GAAG;AAAA,EAEZ;AACA,QAAM,aAAa,KAAK,KAAK,KAAK,gBAAgB,GAAG,IAAI,MAAM,GAAG,CAAC;AACnE,SAAO,GAAG,WAAW,UAAU;AACjC;AAEA,eAAO,kBAAwD;AAC7D,QAAM,MAAM,QAAQ,IAAI;AACxB,QAAM,UAAU;AAChB,QAAM,QAAQ,SAAS,SAAS;AAAA,IAC9B;AAAA,IACA,QAAQ,CAAC,sBAAsB,cAAc,aAAa;AAAA,EAC5D,CAAC;AAED,MAAI,QAAQ;AACZ,aAAW,QAAQ,OAAO;AACxB,UAAM,WAAW,KAAK,KAAK,KAAK,IAAI;AACpC,UAAM,UAAU,GAAG,aAAa,UAAU,MAAM;AAChD,QAAI,QAAQ,SAAS,4BAA4B,GAAG;AAClD,cAAQ;AACR;AAAA,IACF;AAAA,EACF;AAEA,MAAI,OAAO;AACT,QAAI,mBAAmB,4BAA4B,GAAG;AACpD,cAAQ;AAAA,QACN;AAAA,MACF;AACA;AAAA,IACF;AAEA,UAAM,SAAS,MAAM;AAAA,MACnB;AAAA,IACF;AACA,QAAI,WAAW,MAAM,OAAO,YAAY,EAAE,WAAW,GAAG,GAAG;AACzD,YAAM,KAAK,MAAM,OAAO;AACxB,UAAI,MAAM;AACV,UAAI,OAAO,QAAQ;AACjB,cAAM;AAAA,MACR,WAAW,OAAO,QAAQ;AACxB,cAAM;AAAA,MACR,WAAW,OAAO,OAAO;AACvB,cAAM;AAAA,MACR,OAAO;AACL,cAAM;AAAA,MACR;AACA,UAAI;AACF,iBAAS,KAAK,EAAE,OAAO,UAAU,CAAC;AAAA,MACpC,SAAS,GAAG;AACV,gBAAQ,MAAM,wBAAwB,CAAC;AAAA,MACzC;AAAA,IACF,OAAO;AACL,cAAQ,IAAI,wBAAwB;AAAA,IACtC;AAAA,EACF,OAAO;AACL,YAAQ,IAAI,iDAAiD;AAAA,EAC/D;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/lib/install-ai-sdk-lib.ts"],"sourcesContent":["import * as fs from \"fs\";\nimport * as path from \"path\";\nimport { execSync } from \"child_process\";\nimport { sync as globSync } from \"glob\";\nimport * as readline from \"readline\";\nimport { detect } from \"detect-package-manager\";\n\nfunction askQuestion(query: string): Promise<string> {\n return new Promise((resolve) => {\n const rl = readline.createInterface({\n input: process.stdin,\n output: process.stdout,\n });\n rl.question(query, (answer) => {\n rl.close();\n resolve(answer);\n });\n });\n}\n\nfunction isPackageInstalled(pkg: string): boolean {\n const cwd = process.cwd();\n try {\n const pkgJsonPath = path.join(cwd, \"package.json\");\n if (fs.existsSync(pkgJsonPath)) {\n const pkgJson = JSON.parse(fs.readFileSync(pkgJsonPath, \"utf8\"));\n const deps = pkgJson.dependencies || {};\n const devDeps = pkgJson.devDependencies || {};\n if (deps[pkg] || devDeps[pkg]) {\n return true;\n }\n }\n } catch (e) {\n // Fall back to node_modules check below.\n }\n const modulePath = path.join(cwd, \"node_modules\", ...pkg.split(\"/\"));\n return fs.existsSync(modulePath);\n}\n\nexport default async function installAiSdkLib(): Promise<void> {\n const cwd = process.cwd();\n const pattern = \"**/*.{js,jsx,ts,tsx}\";\n const files = globSync(pattern, {\n cwd,\n ignore: [\"**/node_modules/**\", \"**/dist/**\", \"**/build/**\"],\n });\n\n let found = false;\n for (const file of files) {\n const fullPath = path.join(cwd, file);\n const content = fs.readFileSync(fullPath, \"utf8\");\n if (content.includes(\"@assistant-ui/react-ai-sdk\")) {\n found = true;\n break;\n }\n }\n\n if (found) {\n if (isPackageInstalled(\"@assistant-ui/react-ai-sdk\")) {\n console.log(\n \"@assistant-ui/react-ai-sdk is already installed. Skipping installation.\",\n );\n return;\n }\n\n const answer = await askQuestion(\n \"AI SDK imports were added but @assistant-ui/react-ai-sdk is not installed. Do you want to install it? (Y/n) \",\n );\n if (answer === \"\" || answer.toLowerCase().startsWith(\"y\")) {\n const pm = await detect();\n let cmd = \"\";\n if (pm === \"yarn\") {\n cmd = \"yarn add @assistant-ui/react-ai-sdk\";\n } else if (pm === \"pnpm\") {\n cmd = \"pnpm add @assistant-ui/react-ai-sdk\";\n } else if (pm === \"bun\") {\n cmd = \"bun add @assistant-ui/react-ai-sdk\";\n } else {\n cmd = \"npm install @assistant-ui/react-ai-sdk\";\n }\n try {\n execSync(cmd, { stdio: \"inherit\" });\n } catch (e) {\n console.error(\"Installation failed:\", e);\n }\n } else {\n console.log(\"Skipping installation.\");\n }\n } else {\n console.log(\"No AI SDK imports found; skipping installation.\");\n }\n}\n"],"mappings":";AAAA,YAAY,QAAQ;AACpB,YAAY,UAAU;AACtB,SAAS,gBAAgB;AACzB,SAAS,QAAQ,gBAAgB;AACjC,YAAY,cAAc;AAC1B,SAAS,cAAc;AAEvB,SAAS,YAAY,OAAgC;AACnD,SAAO,IAAI,QAAQ,CAAC,YAAY;AAC9B,UAAM,KAAc,yBAAgB;AAAA,MAClC,OAAO,QAAQ;AAAA,MACf,QAAQ,QAAQ;AAAA,IAClB,CAAC;AACD,OAAG,SAAS,OAAO,CAAC,WAAW;AAC7B,SAAG,MAAM;AACT,cAAQ,MAAM;AAAA,IAChB,CAAC;AAAA,EACH,CAAC;AACH;AAEA,SAAS,mBAAmB,KAAsB;AAChD,QAAM,MAAM,QAAQ,IAAI;AACxB,MAAI;AACF,UAAM,cAAmB,UAAK,KAAK,cAAc;AACjD,QAAO,cAAW,WAAW,GAAG;AAC9B,YAAM,UAAU,KAAK,MAAS,gBAAa,aAAa,MAAM,CAAC;AAC/D,YAAM,OAAO,QAAQ,gBAAgB,CAAC;AACtC,YAAM,UAAU,QAAQ,mBAAmB,CAAC;AAC5C,UAAI,KAAK,GAAG,KAAK,QAAQ,GAAG,GAAG;AAC7B,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF,SAAS,GAAG;AAAA,EAEZ;AACA,QAAM,aAAkB,UAAK,KAAK,gBAAgB,GAAG,IAAI,MAAM,GAAG,CAAC;AACnE,SAAU,cAAW,UAAU;AACjC;AAEA,eAAO,kBAAwD;AAC7D,QAAM,MAAM,QAAQ,IAAI;AACxB,QAAM,UAAU;AAChB,QAAM,QAAQ,SAAS,SAAS;AAAA,IAC9B;AAAA,IACA,QAAQ,CAAC,sBAAsB,cAAc,aAAa;AAAA,EAC5D,CAAC;AAED,MAAI,QAAQ;AACZ,aAAW,QAAQ,OAAO;AACxB,UAAM,WAAgB,UAAK,KAAK,IAAI;AACpC,UAAM,UAAa,gBAAa,UAAU,MAAM;AAChD,QAAI,QAAQ,SAAS,4BAA4B,GAAG;AAClD,cAAQ;AACR;AAAA,IACF;AAAA,EACF;AAEA,MAAI,OAAO;AACT,QAAI,mBAAmB,4BAA4B,GAAG;AACpD,cAAQ;AAAA,QACN;AAAA,MACF;AACA;AAAA,IACF;AAEA,UAAM,SAAS,MAAM;AAAA,MACnB;AAAA,IACF;AACA,QAAI,WAAW,MAAM,OAAO,YAAY,EAAE,WAAW,GAAG,GAAG;AACzD,YAAM,KAAK,MAAM,OAAO;AACxB,UAAI,MAAM;AACV,UAAI,OAAO,QAAQ;AACjB,cAAM;AAAA,MACR,WAAW,OAAO,QAAQ;AACxB,cAAM;AAAA,MACR,WAAW,OAAO,OAAO;AACvB,cAAM;AAAA,MACR,OAAO;AACL,cAAM;AAAA,MACR;AACA,UAAI;AACF,iBAAS,KAAK,EAAE,OAAO,UAAU,CAAC;AAAA,MACpC,SAAS,GAAG;AACV,gBAAQ,MAAM,wBAAwB,CAAC;AAAA,MACzC;AAAA,IACF,OAAO;AACL,cAAQ,IAAI,wBAAwB;AAAA,IACtC;AAAA,EACF,OAAO;AACL,YAAQ,IAAI,iDAAiD;AAAA,EAC/D;AACF;","names":[]}
@@ -0,0 +1,2 @@
1
+ export default function installEdgeLib(): Promise<void>;
2
+ //# sourceMappingURL=install-edge-lib.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-edge-lib.d.ts","sourceRoot":"","sources":["../../src/lib/install-edge-lib.ts"],"names":[],"mappings":"AAuCA,wBAA8B,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC,CAoD5D"}
@@ -1,3 +1,4 @@
1
+ // src/lib/install-edge-lib.ts
1
2
  import * as fs from "fs";
2
3
  import * as path from "path";
3
4
  import { execSync } from "child_process";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/lib/install-edge-lib.ts"],"sourcesContent":["import * as fs from \"fs\";\nimport * as path from \"path\";\nimport { execSync } from \"child_process\";\nimport { sync as globSync } from \"glob\";\nimport * as readline from \"readline\";\nimport { detect } from \"detect-package-manager\";\n\nfunction askQuestion(query: string): Promise<string> {\n return new Promise((resolve) => {\n const rl = readline.createInterface({\n input: process.stdin,\n output: process.stdout,\n });\n rl.question(query, (answer) => {\n rl.close();\n resolve(answer);\n });\n });\n}\n\nfunction isPackageInstalled(pkg: string): boolean {\n const cwd = process.cwd();\n try {\n const pkgJsonPath = path.join(cwd, \"package.json\");\n if (fs.existsSync(pkgJsonPath)) {\n const pkgJson = JSON.parse(fs.readFileSync(pkgJsonPath, \"utf8\"));\n const deps = pkgJson.dependencies || {};\n const devDeps = pkgJson.devDependencies || {};\n if (deps[pkg] || devDeps[pkg]) {\n return true;\n }\n }\n } catch (e) {\n // Fall back to node_modules check below.\n }\n const modulePath = path.join(cwd, \"node_modules\", ...pkg.split(\"/\"));\n return fs.existsSync(modulePath);\n}\n\nexport default async function installEdgeLib(): Promise<void> {\n const cwd = process.cwd();\n const pattern = \"**/*.{js,jsx,ts,tsx}\";\n const files = globSync(pattern, {\n cwd,\n ignore: [\"**/node_modules/**\", \"**/dist/**\", \"**/build/**\"],\n });\n\n let found = false;\n for (const file of files) {\n const fullPath = path.join(cwd, file);\n const content = fs.readFileSync(fullPath, \"utf8\");\n if (content.includes(\"@assistant-ui/react-edge\")) {\n found = true;\n break;\n }\n }\n\n if (found) {\n if (isPackageInstalled(\"@assistant-ui/react-edge\")) {\n console.log(\n \"@assistant-ui/react-edge is already installed. Skipping installation.\",\n );\n return;\n }\n\n const answer = await askQuestion(\n \"Edge Runtime imports were added but @assistant-ui/react-edge is not installed. Do you want to install it? (Y/n) \",\n );\n if (answer === \"\" || answer.toLowerCase().startsWith(\"y\")) {\n const pm = await detect();\n let cmd = \"\";\n if (pm === \"yarn\") {\n cmd = \"yarn add @assistant-ui/react-edge\";\n } else if (pm === \"pnpm\") {\n cmd = \"pnpm add @assistant-ui/react-edge\";\n } else if (pm === \"bun\") {\n cmd = \"bun add @assistant-ui/react-edge\";\n } else {\n cmd = \"npm install @assistant-ui/react-edge\";\n }\n try {\n execSync(cmd, { stdio: \"inherit\" });\n } catch (e) {\n console.error(\"Installation failed:\", e);\n }\n } else {\n console.log(\"Skipping installation.\");\n }\n } else {\n console.log(\"No Edge Runtime imports found; skipping installation.\");\n }\n}\n"],"mappings":"AAAA,YAAY,QAAQ;AACpB,YAAY,UAAU;AACtB,SAAS,gBAAgB;AACzB,SAAS,QAAQ,gBAAgB;AACjC,YAAY,cAAc;AAC1B,SAAS,cAAc;AAEvB,SAAS,YAAY,OAAgC;AACnD,SAAO,IAAI,QAAQ,CAAC,YAAY;AAC9B,UAAM,KAAK,SAAS,gBAAgB;AAAA,MAClC,OAAO,QAAQ;AAAA,MACf,QAAQ,QAAQ;AAAA,IAClB,CAAC;AACD,OAAG,SAAS,OAAO,CAAC,WAAW;AAC7B,SAAG,MAAM;AACT,cAAQ,MAAM;AAAA,IAChB,CAAC;AAAA,EACH,CAAC;AACH;AAEA,SAAS,mBAAmB,KAAsB;AAChD,QAAM,MAAM,QAAQ,IAAI;AACxB,MAAI;AACF,UAAM,cAAc,KAAK,KAAK,KAAK,cAAc;AACjD,QAAI,GAAG,WAAW,WAAW,GAAG;AAC9B,YAAM,UAAU,KAAK,MAAM,GAAG,aAAa,aAAa,MAAM,CAAC;AAC/D,YAAM,OAAO,QAAQ,gBAAgB,CAAC;AACtC,YAAM,UAAU,QAAQ,mBAAmB,CAAC;AAC5C,UAAI,KAAK,GAAG,KAAK,QAAQ,GAAG,GAAG;AAC7B,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF,SAAS,GAAG;AAAA,EAEZ;AACA,QAAM,aAAa,KAAK,KAAK,KAAK,gBAAgB,GAAG,IAAI,MAAM,GAAG,CAAC;AACnE,SAAO,GAAG,WAAW,UAAU;AACjC;AAEA,eAAO,iBAAuD;AAC5D,QAAM,MAAM,QAAQ,IAAI;AACxB,QAAM,UAAU;AAChB,QAAM,QAAQ,SAAS,SAAS;AAAA,IAC9B;AAAA,IACA,QAAQ,CAAC,sBAAsB,cAAc,aAAa;AAAA,EAC5D,CAAC;AAED,MAAI,QAAQ;AACZ,aAAW,QAAQ,OAAO;AACxB,UAAM,WAAW,KAAK,KAAK,KAAK,IAAI;AACpC,UAAM,UAAU,GAAG,aAAa,UAAU,MAAM;AAChD,QAAI,QAAQ,SAAS,0BAA0B,GAAG;AAChD,cAAQ;AACR;AAAA,IACF;AAAA,EACF;AAEA,MAAI,OAAO;AACT,QAAI,mBAAmB,0BAA0B,GAAG;AAClD,cAAQ;AAAA,QACN;AAAA,MACF;AACA;AAAA,IACF;AAEA,UAAM,SAAS,MAAM;AAAA,MACnB;AAAA,IACF;AACA,QAAI,WAAW,MAAM,OAAO,YAAY,EAAE,WAAW,GAAG,GAAG;AACzD,YAAM,KAAK,MAAM,OAAO;AACxB,UAAI,MAAM;AACV,UAAI,OAAO,QAAQ;AACjB,cAAM;AAAA,MACR,WAAW,OAAO,QAAQ;AACxB,cAAM;AAAA,MACR,WAAW,OAAO,OAAO;AACvB,cAAM;AAAA,MACR,OAAO;AACL,cAAM;AAAA,MACR;AACA,UAAI;AACF,iBAAS,KAAK,EAAE,OAAO,UAAU,CAAC;AAAA,MACpC,SAAS,GAAG;AACV,gBAAQ,MAAM,wBAAwB,CAAC;AAAA,MACzC;AAAA,IACF,OAAO;AACL,cAAQ,IAAI,wBAAwB;AAAA,IACtC;AAAA,EACF,OAAO;AACL,YAAQ,IAAI,uDAAuD;AAAA,EACrE;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/lib/install-edge-lib.ts"],"sourcesContent":["import * as fs from \"fs\";\nimport * as path from \"path\";\nimport { execSync } from \"child_process\";\nimport { sync as globSync } from \"glob\";\nimport * as readline from \"readline\";\nimport { detect } from \"detect-package-manager\";\n\nfunction askQuestion(query: string): Promise<string> {\n return new Promise((resolve) => {\n const rl = readline.createInterface({\n input: process.stdin,\n output: process.stdout,\n });\n rl.question(query, (answer) => {\n rl.close();\n resolve(answer);\n });\n });\n}\n\nfunction isPackageInstalled(pkg: string): boolean {\n const cwd = process.cwd();\n try {\n const pkgJsonPath = path.join(cwd, \"package.json\");\n if (fs.existsSync(pkgJsonPath)) {\n const pkgJson = JSON.parse(fs.readFileSync(pkgJsonPath, \"utf8\"));\n const deps = pkgJson.dependencies || {};\n const devDeps = pkgJson.devDependencies || {};\n if (deps[pkg] || devDeps[pkg]) {\n return true;\n }\n }\n } catch (e) {\n // Fall back to node_modules check below.\n }\n const modulePath = path.join(cwd, \"node_modules\", ...pkg.split(\"/\"));\n return fs.existsSync(modulePath);\n}\n\nexport default async function installEdgeLib(): Promise<void> {\n const cwd = process.cwd();\n const pattern = \"**/*.{js,jsx,ts,tsx}\";\n const files = globSync(pattern, {\n cwd,\n ignore: [\"**/node_modules/**\", \"**/dist/**\", \"**/build/**\"],\n });\n\n let found = false;\n for (const file of files) {\n const fullPath = path.join(cwd, file);\n const content = fs.readFileSync(fullPath, \"utf8\");\n if (content.includes(\"@assistant-ui/react-edge\")) {\n found = true;\n break;\n }\n }\n\n if (found) {\n if (isPackageInstalled(\"@assistant-ui/react-edge\")) {\n console.log(\n \"@assistant-ui/react-edge is already installed. Skipping installation.\",\n );\n return;\n }\n\n const answer = await askQuestion(\n \"Edge Runtime imports were added but @assistant-ui/react-edge is not installed. Do you want to install it? (Y/n) \",\n );\n if (answer === \"\" || answer.toLowerCase().startsWith(\"y\")) {\n const pm = await detect();\n let cmd = \"\";\n if (pm === \"yarn\") {\n cmd = \"yarn add @assistant-ui/react-edge\";\n } else if (pm === \"pnpm\") {\n cmd = \"pnpm add @assistant-ui/react-edge\";\n } else if (pm === \"bun\") {\n cmd = \"bun add @assistant-ui/react-edge\";\n } else {\n cmd = \"npm install @assistant-ui/react-edge\";\n }\n try {\n execSync(cmd, { stdio: \"inherit\" });\n } catch (e) {\n console.error(\"Installation failed:\", e);\n }\n } else {\n console.log(\"Skipping installation.\");\n }\n } else {\n console.log(\"No Edge Runtime imports found; skipping installation.\");\n }\n}\n"],"mappings":";AAAA,YAAY,QAAQ;AACpB,YAAY,UAAU;AACtB,SAAS,gBAAgB;AACzB,SAAS,QAAQ,gBAAgB;AACjC,YAAY,cAAc;AAC1B,SAAS,cAAc;AAEvB,SAAS,YAAY,OAAgC;AACnD,SAAO,IAAI,QAAQ,CAAC,YAAY;AAC9B,UAAM,KAAc,yBAAgB;AAAA,MAClC,OAAO,QAAQ;AAAA,MACf,QAAQ,QAAQ;AAAA,IAClB,CAAC;AACD,OAAG,SAAS,OAAO,CAAC,WAAW;AAC7B,SAAG,MAAM;AACT,cAAQ,MAAM;AAAA,IAChB,CAAC;AAAA,EACH,CAAC;AACH;AAEA,SAAS,mBAAmB,KAAsB;AAChD,QAAM,MAAM,QAAQ,IAAI;AACxB,MAAI;AACF,UAAM,cAAmB,UAAK,KAAK,cAAc;AACjD,QAAO,cAAW,WAAW,GAAG;AAC9B,YAAM,UAAU,KAAK,MAAS,gBAAa,aAAa,MAAM,CAAC;AAC/D,YAAM,OAAO,QAAQ,gBAAgB,CAAC;AACtC,YAAM,UAAU,QAAQ,mBAAmB,CAAC;AAC5C,UAAI,KAAK,GAAG,KAAK,QAAQ,GAAG,GAAG;AAC7B,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF,SAAS,GAAG;AAAA,EAEZ;AACA,QAAM,aAAkB,UAAK,KAAK,gBAAgB,GAAG,IAAI,MAAM,GAAG,CAAC;AACnE,SAAU,cAAW,UAAU;AACjC;AAEA,eAAO,iBAAuD;AAC5D,QAAM,MAAM,QAAQ,IAAI;AACxB,QAAM,UAAU;AAChB,QAAM,QAAQ,SAAS,SAAS;AAAA,IAC9B;AAAA,IACA,QAAQ,CAAC,sBAAsB,cAAc,aAAa;AAAA,EAC5D,CAAC;AAED,MAAI,QAAQ;AACZ,aAAW,QAAQ,OAAO;AACxB,UAAM,WAAgB,UAAK,KAAK,IAAI;AACpC,UAAM,UAAa,gBAAa,UAAU,MAAM;AAChD,QAAI,QAAQ,SAAS,0BAA0B,GAAG;AAChD,cAAQ;AACR;AAAA,IACF;AAAA,EACF;AAEA,MAAI,OAAO;AACT,QAAI,mBAAmB,0BAA0B,GAAG;AAClD,cAAQ;AAAA,QACN;AAAA,MACF;AACA;AAAA,IACF;AAEA,UAAM,SAAS,MAAM;AAAA,MACnB;AAAA,IACF;AACA,QAAI,WAAW,MAAM,OAAO,YAAY,EAAE,WAAW,GAAG,GAAG;AACzD,YAAM,KAAK,MAAM,OAAO;AACxB,UAAI,MAAM;AACV,UAAI,OAAO,QAAQ;AACjB,cAAM;AAAA,MACR,WAAW,OAAO,QAAQ;AACxB,cAAM;AAAA,MACR,WAAW,OAAO,OAAO;AACvB,cAAM;AAAA,MACR,OAAO;AACL,cAAM;AAAA,MACR;AACA,UAAI;AACF,iBAAS,KAAK,EAAE,OAAO,UAAU,CAAC;AAAA,MACpC,SAAS,GAAG;AACV,gBAAQ,MAAM,wBAAwB,CAAC;AAAA,MACzC;AAAA,IACF,OAAO;AACL,cAAQ,IAAI,wBAAwB;AAAA,IACtC;AAAA,EACF,OAAO;AACL,YAAQ,IAAI,uDAAuD;AAAA,EACrE;AACF;","names":[]}
@@ -0,0 +1,2 @@
1
+ export default function installReactUILib(): Promise<void>;
2
+ //# sourceMappingURL=install-ui-lib.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-ui-lib.d.ts","sourceRoot":"","sources":["../../src/lib/install-ui-lib.ts"],"names":[],"mappings":"AAuCA,wBAA8B,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAoD/D"}
@@ -1,3 +1,4 @@
1
+ // src/lib/install-ui-lib.ts
1
2
  import * as fs from "fs";
2
3
  import * as path from "path";
3
4
  import { execSync } from "child_process";