assistant-ui 0.0.39 → 0.0.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/codemods/utils/createTransformer.d.ts.map +1 -1
- package/dist/codemods/v0-8/ui-package-split.js.map +1 -1
- package/dist/codemods/v0-8/ui-package-split.mjs.map +1 -1
- package/dist/codemods/v0-9/edge-package-split.d.ts +3 -0
- package/dist/codemods/v0-9/edge-package-split.d.ts.map +1 -0
- package/dist/codemods/v0-9/edge-package-split.js +209 -0
- package/dist/codemods/v0-9/edge-package-split.js.map +1 -0
- package/dist/codemods/v0-9/edge-package-split.mjs +188 -0
- package/dist/codemods/v0-9/edge-package-split.mjs.map +1 -0
- package/dist/commands/init.js +2 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/init.mjs +2 -1
- package/dist/commands/init.mjs.map +1 -1
- package/dist/lib/install-ai-sdk-lib.d.ts +2 -0
- package/dist/lib/install-ai-sdk-lib.d.ts.map +1 -0
- package/dist/lib/install-ai-sdk-lib.js +121 -0
- package/dist/lib/install-ai-sdk-lib.js.map +1 -0
- package/dist/lib/install-ai-sdk-lib.mjs +90 -0
- package/dist/lib/install-ai-sdk-lib.mjs.map +1 -0
- package/dist/lib/install-edge-lib.d.ts +2 -0
- package/dist/lib/install-edge-lib.d.ts.map +1 -0
- package/dist/lib/install-edge-lib.js +121 -0
- package/dist/lib/install-edge-lib.js.map +1 -0
- package/dist/lib/install-edge-lib.mjs +90 -0
- package/dist/lib/install-edge-lib.mjs.map +1 -0
- package/dist/lib/transform-options.js.map +1 -1
- package/dist/lib/transform.d.ts +11 -0
- package/dist/lib/transform.d.ts.map +1 -1
- package/dist/lib/transform.js +67 -22
- package/dist/lib/transform.js.map +1 -1
- package/dist/lib/transform.mjs +66 -23
- package/dist/lib/transform.mjs.map +1 -1
- package/dist/lib/upgrade.d.ts +1 -2
- package/dist/lib/upgrade.d.ts.map +1 -1
- package/dist/lib/upgrade.js +30 -6
- package/dist/lib/upgrade.js.map +1 -1
- package/dist/lib/upgrade.mjs +31 -7
- package/dist/lib/upgrade.mjs.map +1 -1
- package/package.json +9 -6
|
@@ -1 +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,
|
|
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 +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)\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":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,+BAAkC;AAElC,IAAM,iBAA2B;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEA,IAAM,yBAAqB,4CAAkB,CAAC,EAAE,GAAG,MAAM,cAAc,MAAM;AAC3E,QAAM,mBAA6B;AAAA,IACjC;AAAA,IACA;AAAA,EACF;AACA,QAAM,kBAAyB,CAAC;AAChC,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,eAAe,SAAS,UAAU,SAAS,IAAc,GACzD;AACA,wBAAgB,KAAK,SAAS;AAC9B,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;AAEH,MAAI,gBAAgB,SAAS,GAAG;AAC9B,UAAM,wBAAwB,KAAK,KAAK,EAAE,mBAAmB;AAAA,MAC3D,QAAQ,EAAE,OAAO,yBAAyB;AAAA,IAC5C,CAAC;AACD,QAAI,sBAAsB,KAAK,IAAI,GAAG;AACpC,4BAAsB,QAAQ,CAAC,SAAc;AAC3C,wBAAgB,QAAQ,CAAC,cAAmB;AAC1C,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,wBAAwB;AAAA,MACpC;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;AAEA,QAAM,kBAA0C;AAAA,IAC9C,wCACE;AAAA,IACF,wCACE;AAAA,IACF,oDACE;AAAA,EACJ;AAEA,OAAK,KAAK,EAAE,iBAAiB,EAAE,QAAQ,CAAC,SAAc;AACpD,UAAM,cAAsB,KAAK,MAAM,OAAO;AAC9C,QAAI,gBAAgB,WAAW,GAAG;AAChC,WAAK,MAAM,SAAS,EAAE,QAAQ,gBAAgB,WAAW,CAAC;AAC1D,oBAAc;AAAA,IAChB;AAAA,EACF,CAAC;AAED,MAAI,wBAAwB;AAC5B,OACG,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,UAAU,EAAE,CAAC,EACtD,OAAO,CAAC,SAAc;AACrB,UAAM,MAAM,KAAK,MAAM,UAAU,CAAC;AAClC,WACE,QACC,IAAI,SAAS,aAAa,IAAI,SAAS,oBACxC,IAAI,UAAU;AAAA,EAElB,CAAC,EACA,QAAQ,CAAC,SAAc;AACtB,4BAAwB;AACxB,UAAM,SAAS,KAAK;AACpB,QACE,UACA,OAAO,SACP,OAAO,MAAM,SAAS,sBACtB;AACA,YAAM,UAAU,OAAO;AACvB,UACE,WACA,QAAQ,MAAM,gBACd,QAAQ,MAAM,aAAa,WAAW,GACtC;AACA,UAAE,OAAO,EAAE,OAAO;AAAA,MACpB,OAAO;AACL,gBAAQ,MAAM,eAAe,QAAQ,MAAM,aAAa;AAAA,UACtD,CAAC,SAAc,SAAS,OAAO;AAAA,QACjC;AAAA,MACF;AACA,oBAAc;AAAA,IAChB,OAAO;AACL,QAAE,IAAI,EAAE,OAAO;AACf,oBAAc;AAAA,IAChB;AAAA,EACF,CAAC;AAEH,OACG,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,UAAU,EAAE,CAAC,EACtD,OAAO,CAAC,SAAc;AACrB,UAAM,MAAM,KAAK,MAAM,UAAU,CAAC;AAClC,WACE,QACC,IAAI,SAAS,aAAa,IAAI,SAAS,oBACxC,IAAI,UAAU;AAAA,EAElB,CAAC,EACA,QAAQ,CAAC,SAAc;AACtB,SAAK,MAAM,UAAU,CAAC,EAAE,QAAQ;AAChC,kBAAc;AACd,QAAI,uBAAuB;AACzB,UACE,KAAK,cACL,KAAK,WAAW,SAChB,KAAK,WAAW,MAAM,SAAS,oBAC/B,KAAK,WAAW,MAAM,UAAU,SAAS,GACzC;AACA,cAAM,YAAY,KAAK,WAAW,MAAM,UAAU,CAAC;AACnD,YAAI,aAAa,UAAU,SAAS,oBAAoB;AACtD,gBAAM,iBAAiB,UAAU,WAAW,KAAK,CAAC,SAAc;AAC9D,oBACG,KAAK,IAAI,SAAS,gBACjB,KAAK,IAAI,UAAU,iBACrB,KAAK,MAAM,SAAS;AAAA,UAExB,CAAC;AACD,cAAI,gBAAgB;AAClB,kBAAM,kBAAkB,eAAe,MAAM;AAC7C,kBAAM,cAAc,gBAAgB;AAAA,cAClC,CAAC,OAAY,GAAG,SAAS,aAAa,GAAG,UAAU;AAAA,YACrD;AACA,gBAAI,CAAC,aAAa;AAChB,8BAAgB,KAAK,EAAE,QAAQ,UAAU,CAAC;AAC1C,4BAAc;AAAA,YAChB;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC;AACL,CAAC;AAED,IAAO,2BAAQ;","names":[]}
|
|
@@ -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)\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 @@
|
|
|
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"}
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/codemods/v0-9/edge-package-split.ts
|
|
21
|
+
var edge_package_split_exports = {};
|
|
22
|
+
__export(edge_package_split_exports, {
|
|
23
|
+
default: () => edge_package_split_default
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(edge_package_split_exports);
|
|
26
|
+
var import_createTransformer = require("../utils/createTransformer.js");
|
|
27
|
+
var reactEdgeExports = [
|
|
28
|
+
// Edge Runtime
|
|
29
|
+
"useEdgeRuntime",
|
|
30
|
+
"EdgeRuntimeOptions",
|
|
31
|
+
"EdgeModelAdapter",
|
|
32
|
+
"EdgeChatAdapter",
|
|
33
|
+
"EdgeRuntimeRequestOptions",
|
|
34
|
+
"createEdgeRuntimeAPI",
|
|
35
|
+
"getEdgeRuntimeResponse",
|
|
36
|
+
// Core Types
|
|
37
|
+
"CoreMessage",
|
|
38
|
+
"CoreUserMessage",
|
|
39
|
+
"CoreAssistantMessage",
|
|
40
|
+
"CoreSystemMessage",
|
|
41
|
+
"CoreUserContentPart",
|
|
42
|
+
"CoreAssistantContentPart",
|
|
43
|
+
"CoreToolCallContentPart",
|
|
44
|
+
// Core message converters
|
|
45
|
+
"fromCoreMessages",
|
|
46
|
+
"fromCoreMessage",
|
|
47
|
+
"toCoreMessages",
|
|
48
|
+
"toCoreMessage"
|
|
49
|
+
];
|
|
50
|
+
var reactAiSdkExports = [
|
|
51
|
+
"toLanguageModelMessages",
|
|
52
|
+
"toLanguageModelTools",
|
|
53
|
+
"fromLanguageModelMessages",
|
|
54
|
+
"fromLanguageModelTools",
|
|
55
|
+
"useDangerousInBrowserRuntime"
|
|
56
|
+
];
|
|
57
|
+
var migrateToEdgePackage = (0, import_createTransformer.createTransformer)(({ j, root, markAsChanged }) => {
|
|
58
|
+
const sourcesToMigrate = ["@assistant-ui/react"];
|
|
59
|
+
const movedEdgeSpecifiers = [];
|
|
60
|
+
const movedAiSdkSpecifiers = [];
|
|
61
|
+
let lastMigratedImportPath = null;
|
|
62
|
+
root.find(j.ImportDeclaration).filter((path) => sourcesToMigrate.includes(path.value.source.value)).forEach((path) => {
|
|
63
|
+
let hadMigratedSpecifiers = false;
|
|
64
|
+
const remainingSpecifiers = [];
|
|
65
|
+
path.value.specifiers.forEach((specifier) => {
|
|
66
|
+
if (j.ImportSpecifier.check(specifier) && reactEdgeExports.includes(specifier.imported.name)) {
|
|
67
|
+
movedEdgeSpecifiers.push(specifier);
|
|
68
|
+
hadMigratedSpecifiers = true;
|
|
69
|
+
} else if (j.ImportSpecifier.check(specifier) && reactAiSdkExports.includes(specifier.imported.name)) {
|
|
70
|
+
movedAiSdkSpecifiers.push(specifier);
|
|
71
|
+
hadMigratedSpecifiers = true;
|
|
72
|
+
} else {
|
|
73
|
+
remainingSpecifiers.push(specifier);
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
if (hadMigratedSpecifiers) {
|
|
77
|
+
lastMigratedImportPath = path;
|
|
78
|
+
}
|
|
79
|
+
if (remainingSpecifiers.length === 0) {
|
|
80
|
+
j(path).remove();
|
|
81
|
+
markAsChanged();
|
|
82
|
+
} else if (remainingSpecifiers.length !== path.value.specifiers.length) {
|
|
83
|
+
path.value.specifiers = remainingSpecifiers;
|
|
84
|
+
markAsChanged();
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
if (movedEdgeSpecifiers.length > 0) {
|
|
88
|
+
const existingEdgeImport = root.find(j.ImportDeclaration, {
|
|
89
|
+
source: { value: "@assistant-ui/react-edge" }
|
|
90
|
+
});
|
|
91
|
+
if (existingEdgeImport.size() > 0) {
|
|
92
|
+
existingEdgeImport.forEach((path) => {
|
|
93
|
+
movedEdgeSpecifiers.forEach((specifier) => {
|
|
94
|
+
if (!path.value.specifiers.some(
|
|
95
|
+
(s) => s.imported.name === specifier.imported.name
|
|
96
|
+
)) {
|
|
97
|
+
path.value.specifiers.push(specifier);
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
} else {
|
|
102
|
+
const newImport = j.importDeclaration(
|
|
103
|
+
movedEdgeSpecifiers,
|
|
104
|
+
j.literal("@assistant-ui/react-edge")
|
|
105
|
+
);
|
|
106
|
+
if (lastMigratedImportPath) {
|
|
107
|
+
j(lastMigratedImportPath).insertAfter(newImport);
|
|
108
|
+
} else {
|
|
109
|
+
const firstImport = root.find(j.ImportDeclaration).at(0);
|
|
110
|
+
if (firstImport.size() > 0) {
|
|
111
|
+
firstImport.insertBefore(newImport);
|
|
112
|
+
} else {
|
|
113
|
+
root.get().node.program.body.unshift(newImport);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
markAsChanged();
|
|
118
|
+
}
|
|
119
|
+
if (movedAiSdkSpecifiers.length > 0) {
|
|
120
|
+
const existingAiSdkImport = root.find(j.ImportDeclaration, {
|
|
121
|
+
source: { value: "@assistant-ui/react-ai-sdk" }
|
|
122
|
+
});
|
|
123
|
+
if (existingAiSdkImport.size() > 0) {
|
|
124
|
+
existingAiSdkImport.forEach((path) => {
|
|
125
|
+
movedAiSdkSpecifiers.forEach((specifier) => {
|
|
126
|
+
if (!path.value.specifiers.some(
|
|
127
|
+
(s) => s.imported.name === specifier.imported.name
|
|
128
|
+
)) {
|
|
129
|
+
path.value.specifiers.push(specifier);
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
} else {
|
|
134
|
+
const newImport = j.importDeclaration(
|
|
135
|
+
movedAiSdkSpecifiers,
|
|
136
|
+
j.literal("@assistant-ui/react-ai-sdk")
|
|
137
|
+
);
|
|
138
|
+
if (lastMigratedImportPath) {
|
|
139
|
+
j(lastMigratedImportPath).insertAfter(newImport);
|
|
140
|
+
} else {
|
|
141
|
+
const firstImport = root.find(j.ImportDeclaration).at(0);
|
|
142
|
+
if (firstImport.size() > 0) {
|
|
143
|
+
firstImport.insertBefore(newImport);
|
|
144
|
+
} else {
|
|
145
|
+
root.get().node.program.body.unshift(newImport);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
markAsChanged();
|
|
150
|
+
}
|
|
151
|
+
root.find(j.ImportDeclaration).forEach((path) => {
|
|
152
|
+
const sourceValue = path.value.source.value;
|
|
153
|
+
if (sourceValue.startsWith("@assistant-ui/react/") && (sourceValue.includes("edge/") || sourceValue.includes("dangerous-in-browser/"))) {
|
|
154
|
+
path.value.source = j.literal(
|
|
155
|
+
sourceValue.replace(
|
|
156
|
+
"@assistant-ui/react/",
|
|
157
|
+
"@assistant-ui/react-edge/"
|
|
158
|
+
)
|
|
159
|
+
);
|
|
160
|
+
markAsChanged();
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
root.find(j.ImportDeclaration).forEach((path) => {
|
|
164
|
+
const sourceValue = path.value.source.value;
|
|
165
|
+
if (sourceValue === "@assistant-ui/react-edge") {
|
|
166
|
+
let hasLanguageModelConverters = false;
|
|
167
|
+
const remainingSpecifiers = [];
|
|
168
|
+
const aiSdkSpecifiers = [];
|
|
169
|
+
path.value.specifiers.forEach((specifier) => {
|
|
170
|
+
if (j.ImportSpecifier.check(specifier) && reactAiSdkExports.includes(specifier.imported.name)) {
|
|
171
|
+
aiSdkSpecifiers.push(specifier);
|
|
172
|
+
hasLanguageModelConverters = true;
|
|
173
|
+
} else {
|
|
174
|
+
remainingSpecifiers.push(specifier);
|
|
175
|
+
}
|
|
176
|
+
});
|
|
177
|
+
if (hasLanguageModelConverters) {
|
|
178
|
+
if (remainingSpecifiers.length === 0) {
|
|
179
|
+
j(path).remove();
|
|
180
|
+
} else {
|
|
181
|
+
path.value.specifiers = remainingSpecifiers;
|
|
182
|
+
}
|
|
183
|
+
const existingAiSdkImport = root.find(j.ImportDeclaration, {
|
|
184
|
+
source: { value: "@assistant-ui/react-ai-sdk" }
|
|
185
|
+
});
|
|
186
|
+
if (existingAiSdkImport.size() > 0) {
|
|
187
|
+
existingAiSdkImport.forEach((importPath) => {
|
|
188
|
+
aiSdkSpecifiers.forEach((specifier) => {
|
|
189
|
+
if (!importPath.value.specifiers.some(
|
|
190
|
+
(s) => s.imported.name === specifier.imported.name
|
|
191
|
+
)) {
|
|
192
|
+
importPath.value.specifiers.push(specifier);
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
});
|
|
196
|
+
} else {
|
|
197
|
+
const newImport = j.importDeclaration(
|
|
198
|
+
aiSdkSpecifiers,
|
|
199
|
+
j.literal("@assistant-ui/react-ai-sdk")
|
|
200
|
+
);
|
|
201
|
+
j(path).insertAfter(newImport);
|
|
202
|
+
}
|
|
203
|
+
markAsChanged();
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
});
|
|
208
|
+
var edge_package_split_default = migrateToEdgePackage;
|
|
209
|
+
//# sourceMappingURL=edge-package-split.js.map
|
|
@@ -0,0 +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":"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","names":[]}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
// src/codemods/v0-9/edge-package-split.ts
|
|
2
|
+
import { createTransformer } from "../utils/createTransformer.mjs";
|
|
3
|
+
var reactEdgeExports = [
|
|
4
|
+
// Edge Runtime
|
|
5
|
+
"useEdgeRuntime",
|
|
6
|
+
"EdgeRuntimeOptions",
|
|
7
|
+
"EdgeModelAdapter",
|
|
8
|
+
"EdgeChatAdapter",
|
|
9
|
+
"EdgeRuntimeRequestOptions",
|
|
10
|
+
"createEdgeRuntimeAPI",
|
|
11
|
+
"getEdgeRuntimeResponse",
|
|
12
|
+
// Core Types
|
|
13
|
+
"CoreMessage",
|
|
14
|
+
"CoreUserMessage",
|
|
15
|
+
"CoreAssistantMessage",
|
|
16
|
+
"CoreSystemMessage",
|
|
17
|
+
"CoreUserContentPart",
|
|
18
|
+
"CoreAssistantContentPart",
|
|
19
|
+
"CoreToolCallContentPart",
|
|
20
|
+
// Core message converters
|
|
21
|
+
"fromCoreMessages",
|
|
22
|
+
"fromCoreMessage",
|
|
23
|
+
"toCoreMessages",
|
|
24
|
+
"toCoreMessage"
|
|
25
|
+
];
|
|
26
|
+
var reactAiSdkExports = [
|
|
27
|
+
"toLanguageModelMessages",
|
|
28
|
+
"toLanguageModelTools",
|
|
29
|
+
"fromLanguageModelMessages",
|
|
30
|
+
"fromLanguageModelTools",
|
|
31
|
+
"useDangerousInBrowserRuntime"
|
|
32
|
+
];
|
|
33
|
+
var migrateToEdgePackage = createTransformer(({ j, root, markAsChanged }) => {
|
|
34
|
+
const sourcesToMigrate = ["@assistant-ui/react"];
|
|
35
|
+
const movedEdgeSpecifiers = [];
|
|
36
|
+
const movedAiSdkSpecifiers = [];
|
|
37
|
+
let lastMigratedImportPath = null;
|
|
38
|
+
root.find(j.ImportDeclaration).filter((path) => sourcesToMigrate.includes(path.value.source.value)).forEach((path) => {
|
|
39
|
+
let hadMigratedSpecifiers = false;
|
|
40
|
+
const remainingSpecifiers = [];
|
|
41
|
+
path.value.specifiers.forEach((specifier) => {
|
|
42
|
+
if (j.ImportSpecifier.check(specifier) && reactEdgeExports.includes(specifier.imported.name)) {
|
|
43
|
+
movedEdgeSpecifiers.push(specifier);
|
|
44
|
+
hadMigratedSpecifiers = true;
|
|
45
|
+
} else if (j.ImportSpecifier.check(specifier) && reactAiSdkExports.includes(specifier.imported.name)) {
|
|
46
|
+
movedAiSdkSpecifiers.push(specifier);
|
|
47
|
+
hadMigratedSpecifiers = true;
|
|
48
|
+
} else {
|
|
49
|
+
remainingSpecifiers.push(specifier);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
if (hadMigratedSpecifiers) {
|
|
53
|
+
lastMigratedImportPath = path;
|
|
54
|
+
}
|
|
55
|
+
if (remainingSpecifiers.length === 0) {
|
|
56
|
+
j(path).remove();
|
|
57
|
+
markAsChanged();
|
|
58
|
+
} else if (remainingSpecifiers.length !== path.value.specifiers.length) {
|
|
59
|
+
path.value.specifiers = remainingSpecifiers;
|
|
60
|
+
markAsChanged();
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
if (movedEdgeSpecifiers.length > 0) {
|
|
64
|
+
const existingEdgeImport = root.find(j.ImportDeclaration, {
|
|
65
|
+
source: { value: "@assistant-ui/react-edge" }
|
|
66
|
+
});
|
|
67
|
+
if (existingEdgeImport.size() > 0) {
|
|
68
|
+
existingEdgeImport.forEach((path) => {
|
|
69
|
+
movedEdgeSpecifiers.forEach((specifier) => {
|
|
70
|
+
if (!path.value.specifiers.some(
|
|
71
|
+
(s) => s.imported.name === specifier.imported.name
|
|
72
|
+
)) {
|
|
73
|
+
path.value.specifiers.push(specifier);
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
} else {
|
|
78
|
+
const newImport = j.importDeclaration(
|
|
79
|
+
movedEdgeSpecifiers,
|
|
80
|
+
j.literal("@assistant-ui/react-edge")
|
|
81
|
+
);
|
|
82
|
+
if (lastMigratedImportPath) {
|
|
83
|
+
j(lastMigratedImportPath).insertAfter(newImport);
|
|
84
|
+
} else {
|
|
85
|
+
const firstImport = root.find(j.ImportDeclaration).at(0);
|
|
86
|
+
if (firstImport.size() > 0) {
|
|
87
|
+
firstImport.insertBefore(newImport);
|
|
88
|
+
} else {
|
|
89
|
+
root.get().node.program.body.unshift(newImport);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
markAsChanged();
|
|
94
|
+
}
|
|
95
|
+
if (movedAiSdkSpecifiers.length > 0) {
|
|
96
|
+
const existingAiSdkImport = root.find(j.ImportDeclaration, {
|
|
97
|
+
source: { value: "@assistant-ui/react-ai-sdk" }
|
|
98
|
+
});
|
|
99
|
+
if (existingAiSdkImport.size() > 0) {
|
|
100
|
+
existingAiSdkImport.forEach((path) => {
|
|
101
|
+
movedAiSdkSpecifiers.forEach((specifier) => {
|
|
102
|
+
if (!path.value.specifiers.some(
|
|
103
|
+
(s) => s.imported.name === specifier.imported.name
|
|
104
|
+
)) {
|
|
105
|
+
path.value.specifiers.push(specifier);
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
} else {
|
|
110
|
+
const newImport = j.importDeclaration(
|
|
111
|
+
movedAiSdkSpecifiers,
|
|
112
|
+
j.literal("@assistant-ui/react-ai-sdk")
|
|
113
|
+
);
|
|
114
|
+
if (lastMigratedImportPath) {
|
|
115
|
+
j(lastMigratedImportPath).insertAfter(newImport);
|
|
116
|
+
} else {
|
|
117
|
+
const firstImport = root.find(j.ImportDeclaration).at(0);
|
|
118
|
+
if (firstImport.size() > 0) {
|
|
119
|
+
firstImport.insertBefore(newImport);
|
|
120
|
+
} else {
|
|
121
|
+
root.get().node.program.body.unshift(newImport);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
markAsChanged();
|
|
126
|
+
}
|
|
127
|
+
root.find(j.ImportDeclaration).forEach((path) => {
|
|
128
|
+
const sourceValue = path.value.source.value;
|
|
129
|
+
if (sourceValue.startsWith("@assistant-ui/react/") && (sourceValue.includes("edge/") || sourceValue.includes("dangerous-in-browser/"))) {
|
|
130
|
+
path.value.source = j.literal(
|
|
131
|
+
sourceValue.replace(
|
|
132
|
+
"@assistant-ui/react/",
|
|
133
|
+
"@assistant-ui/react-edge/"
|
|
134
|
+
)
|
|
135
|
+
);
|
|
136
|
+
markAsChanged();
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
root.find(j.ImportDeclaration).forEach((path) => {
|
|
140
|
+
const sourceValue = path.value.source.value;
|
|
141
|
+
if (sourceValue === "@assistant-ui/react-edge") {
|
|
142
|
+
let hasLanguageModelConverters = false;
|
|
143
|
+
const remainingSpecifiers = [];
|
|
144
|
+
const aiSdkSpecifiers = [];
|
|
145
|
+
path.value.specifiers.forEach((specifier) => {
|
|
146
|
+
if (j.ImportSpecifier.check(specifier) && reactAiSdkExports.includes(specifier.imported.name)) {
|
|
147
|
+
aiSdkSpecifiers.push(specifier);
|
|
148
|
+
hasLanguageModelConverters = true;
|
|
149
|
+
} else {
|
|
150
|
+
remainingSpecifiers.push(specifier);
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
if (hasLanguageModelConverters) {
|
|
154
|
+
if (remainingSpecifiers.length === 0) {
|
|
155
|
+
j(path).remove();
|
|
156
|
+
} else {
|
|
157
|
+
path.value.specifiers = remainingSpecifiers;
|
|
158
|
+
}
|
|
159
|
+
const existingAiSdkImport = root.find(j.ImportDeclaration, {
|
|
160
|
+
source: { value: "@assistant-ui/react-ai-sdk" }
|
|
161
|
+
});
|
|
162
|
+
if (existingAiSdkImport.size() > 0) {
|
|
163
|
+
existingAiSdkImport.forEach((importPath) => {
|
|
164
|
+
aiSdkSpecifiers.forEach((specifier) => {
|
|
165
|
+
if (!importPath.value.specifiers.some(
|
|
166
|
+
(s) => s.imported.name === specifier.imported.name
|
|
167
|
+
)) {
|
|
168
|
+
importPath.value.specifiers.push(specifier);
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
});
|
|
172
|
+
} else {
|
|
173
|
+
const newImport = j.importDeclaration(
|
|
174
|
+
aiSdkSpecifiers,
|
|
175
|
+
j.literal("@assistant-ui/react-ai-sdk")
|
|
176
|
+
);
|
|
177
|
+
j(path).insertAfter(newImport);
|
|
178
|
+
}
|
|
179
|
+
markAsChanged();
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
});
|
|
183
|
+
});
|
|
184
|
+
var edge_package_split_default = migrateToEdgePackage;
|
|
185
|
+
export {
|
|
186
|
+
edge_package_split_default as default
|
|
187
|
+
};
|
|
188
|
+
//# sourceMappingURL=edge-package-split.mjs.map
|
|
@@ -0,0 +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":"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","names":[]}
|
package/dist/commands/init.js
CHANGED
|
@@ -29,7 +29,8 @@ var init = new import_commander.Command().name("init").description("initialize a
|
|
|
29
29
|
const child = (0, import_cross_spawn.spawn)(
|
|
30
30
|
"npx",
|
|
31
31
|
[
|
|
32
|
-
`shadcn@
|
|
32
|
+
`shadcn@2.3.0`,
|
|
33
|
+
// TODO 2.4 does not init a project if run in an empty folder
|
|
33
34
|
"add",
|
|
34
35
|
"https://r.assistant-ui.com/chat/b/ai-sdk-quick-start/json"
|
|
35
36
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/commands/init.ts"],"sourcesContent":["import { Command } from \"commander\";\nimport { spawn } from \"cross-spawn\";\n\nexport const init = new Command()\n .name(\"init\")\n .description(\"initialize assistant-ui in a new or existing project\")\n .action(() => {\n const child = spawn(\n \"npx\",\n [\n `shadcn@
|
|
1
|
+
{"version":3,"sources":["../../src/commands/init.ts"],"sourcesContent":["import { Command } from \"commander\";\nimport { spawn } from \"cross-spawn\";\n\nexport const init = new Command()\n .name(\"init\")\n .description(\"initialize assistant-ui in a new or existing project\")\n .action(() => {\n const child = spawn(\n \"npx\",\n [\n `shadcn@2.3.0`, // TODO 2.4 does not init a project if run in an empty folder\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(`other-package-script process exited with code ${code}`);\n }\n });\n });\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAAwB;AACxB,yBAAsB;AAEf,IAAM,OAAO,IAAI,yBAAQ,EAC7B,KAAK,MAAM,EACX,YAAY,sDAAsD,EAClE,OAAO,MAAM;AACZ,QAAM,YAAQ;AAAA,IACZ;AAAA,IACA;AAAA,MACE;AAAA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA;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":[]}
|
package/dist/commands/init.mjs
CHANGED
|
@@ -5,7 +5,8 @@ var init = new Command().name("init").description("initialize assistant-ui in a
|
|
|
5
5
|
const child = spawn(
|
|
6
6
|
"npx",
|
|
7
7
|
[
|
|
8
|
-
`shadcn@
|
|
8
|
+
`shadcn@2.3.0`,
|
|
9
|
+
// TODO 2.4 does not init a project if run in an empty folder
|
|
9
10
|
"add",
|
|
10
11
|
"https://r.assistant-ui.com/chat/b/ai-sdk-quick-start/json"
|
|
11
12
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/commands/init.ts"],"sourcesContent":["import { Command } from \"commander\";\nimport { spawn } from \"cross-spawn\";\n\nexport const init = new Command()\n .name(\"init\")\n .description(\"initialize assistant-ui in a new or existing project\")\n .action(() => {\n const child = spawn(\n \"npx\",\n [\n `shadcn@
|
|
1
|
+
{"version":3,"sources":["../../src/commands/init.ts"],"sourcesContent":["import { Command } from \"commander\";\nimport { spawn } from \"cross-spawn\";\n\nexport const init = new Command()\n .name(\"init\")\n .description(\"initialize assistant-ui in a new or existing project\")\n .action(() => {\n const child = spawn(\n \"npx\",\n [\n `shadcn@2.3.0`, // TODO 2.4 does not init a project if run in an empty folder\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(`other-package-script process exited with code ${code}`);\n }\n });\n });\n"],"mappings":";AAAA,SAAS,eAAe;AACxB,SAAS,aAAa;AAEf,IAAM,OAAO,IAAI,QAAQ,EAC7B,KAAK,MAAM,EACX,YAAY,sDAAsD,EAClE,OAAO,MAAM;AACZ,QAAM,QAAQ;AAAA,IACZ;AAAA,IACA;AAAA,MACE;AAAA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,IACA;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 @@
|
|
|
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"}
|