assistant-ui 0.0.92 → 0.0.93

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/dist/codemods/utils/createTransformer.d.ts +17 -13
  2. package/dist/codemods/utils/createTransformer.d.ts.map +1 -1
  3. package/dist/codemods/utils/createTransformer.js +18 -15
  4. package/dist/codemods/utils/createTransformer.js.map +1 -1
  5. package/dist/codemods/v0-11/content-part-to-message-part.d.ts +3 -1
  6. package/dist/codemods/v0-11/content-part-to-message-part.d.ts.map +1 -1
  7. package/dist/codemods/v0-11/content-part-to-message-part.js +98 -135
  8. package/dist/codemods/v0-11/content-part-to-message-part.js.map +1 -1
  9. package/dist/codemods/v0-12/assistant-api-to-aui.d.ts +3 -1
  10. package/dist/codemods/v0-12/assistant-api-to-aui.d.ts.map +1 -1
  11. package/dist/codemods/v0-12/assistant-api-to-aui.js +126 -213
  12. package/dist/codemods/v0-12/assistant-api-to-aui.js.map +1 -1
  13. package/dist/codemods/v0-12/event-names-to-camelcase.d.ts +3 -1
  14. package/dist/codemods/v0-12/event-names-to-camelcase.d.ts.map +1 -1
  15. package/dist/codemods/v0-12/event-names-to-camelcase.js +33 -38
  16. package/dist/codemods/v0-12/event-names-to-camelcase.js.map +1 -1
  17. package/dist/codemods/v0-12/primitive-if-to-aui-if.d.ts +3 -1
  18. package/dist/codemods/v0-12/primitive-if-to-aui-if.d.ts.map +1 -1
  19. package/dist/codemods/v0-12/primitive-if-to-aui-if.js +212 -297
  20. package/dist/codemods/v0-12/primitive-if-to-aui-if.js.map +1 -1
  21. package/dist/codemods/v0-8/ui-package-split.d.ts +3 -1
  22. package/dist/codemods/v0-8/ui-package-split.d.ts.map +1 -1
  23. package/dist/codemods/v0-8/ui-package-split.js +121 -164
  24. package/dist/codemods/v0-8/ui-package-split.js.map +1 -1
  25. package/dist/codemods/v0-9/edge-package-split.d.ts +3 -1
  26. package/dist/codemods/v0-9/edge-package-split.d.ts.map +1 -1
  27. package/dist/codemods/v0-9/edge-package-split.js +96 -140
  28. package/dist/codemods/v0-9/edge-package-split.js.map +1 -1
  29. package/dist/commands/add.d.ts +16 -12
  30. package/dist/commands/add.d.ts.map +1 -1
  31. package/dist/commands/add.js +53 -64
  32. package/dist/commands/add.js.map +1 -1
  33. package/dist/commands/agent.d.ts +5 -1
  34. package/dist/commands/agent.d.ts.map +1 -1
  35. package/dist/commands/agent.js +16 -25
  36. package/dist/commands/agent.js.map +1 -1
  37. package/dist/commands/create.d.ts +34 -30
  38. package/dist/commands/create.d.ts.map +1 -1
  39. package/dist/commands/create.js +454 -527
  40. package/dist/commands/create.js.map +1 -1
  41. package/dist/commands/info.d.ts +5 -1
  42. package/dist/commands/info.d.ts.map +1 -1
  43. package/dist/commands/info.js +233 -314
  44. package/dist/commands/info.js.map +1 -1
  45. package/dist/commands/init.d.ts +12 -9
  46. package/dist/commands/init.d.ts.map +1 -1
  47. package/dist/commands/init.js +98 -107
  48. package/dist/commands/init.js.map +1 -1
  49. package/dist/commands/mcp.d.ts +5 -1
  50. package/dist/commands/mcp.d.ts.map +1 -1
  51. package/dist/commands/mcp.js +175 -214
  52. package/dist/commands/mcp.js.map +1 -1
  53. package/dist/commands/update.d.ts +5 -1
  54. package/dist/commands/update.d.ts.map +1 -1
  55. package/dist/commands/update.js +46 -55
  56. package/dist/commands/update.js.map +1 -1
  57. package/dist/commands/upgrade.d.ts +11 -7
  58. package/dist/commands/upgrade.d.ts.map +1 -1
  59. package/dist/commands/upgrade.js +26 -38
  60. package/dist/commands/upgrade.js.map +1 -1
  61. package/dist/index.d.ts +1 -3
  62. package/dist/index.js +15 -14
  63. package/dist/index.js.map +1 -1
  64. package/dist/lib/create-project.d.ts +24 -21
  65. package/dist/lib/create-project.d.ts.map +1 -1
  66. package/dist/lib/create-project.js +227 -297
  67. package/dist/lib/create-project.js.map +1 -1
  68. package/dist/lib/install-ai-sdk-lib.d.ts +4 -1
  69. package/dist/lib/install-ai-sdk-lib.d.ts.map +1 -1
  70. package/dist/lib/install-ai-sdk-lib.js +12 -8
  71. package/dist/lib/install-ai-sdk-lib.js.map +1 -1
  72. package/dist/lib/install-edge-lib.d.ts +4 -1
  73. package/dist/lib/install-edge-lib.d.ts.map +1 -1
  74. package/dist/lib/install-edge-lib.js +16 -12
  75. package/dist/lib/install-edge-lib.js.map +1 -1
  76. package/dist/lib/install-ui-lib.d.ts +4 -1
  77. package/dist/lib/install-ui-lib.d.ts.map +1 -1
  78. package/dist/lib/install-ui-lib.js +12 -8
  79. package/dist/lib/install-ui-lib.js.map +1 -1
  80. package/dist/lib/run-spawn.d.ts +7 -4
  81. package/dist/lib/run-spawn.d.ts.map +1 -1
  82. package/dist/lib/run-spawn.js +23 -23
  83. package/dist/lib/run-spawn.js.map +1 -1
  84. package/dist/lib/transform-options.d.ts +8 -5
  85. package/dist/lib/transform-options.d.ts.map +1 -1
  86. package/dist/lib/transform-options.js +0 -2
  87. package/dist/lib/transform.d.ts +15 -11
  88. package/dist/lib/transform.d.ts.map +1 -1
  89. package/dist/lib/transform.js +97 -114
  90. package/dist/lib/transform.js.map +1 -1
  91. package/dist/lib/upgrade.d.ts +6 -2
  92. package/dist/lib/upgrade.d.ts.map +1 -1
  93. package/dist/lib/upgrade.js +62 -64
  94. package/dist/lib/upgrade.js.map +1 -1
  95. package/dist/lib/utils/config.d.ts +21 -18
  96. package/dist/lib/utils/config.d.ts.map +1 -1
  97. package/dist/lib/utils/config.js +24 -28
  98. package/dist/lib/utils/config.js.map +1 -1
  99. package/dist/lib/utils/file-scanner.d.ts +9 -6
  100. package/dist/lib/utils/file-scanner.d.ts.map +1 -1
  101. package/dist/lib/utils/file-scanner.js +44 -51
  102. package/dist/lib/utils/file-scanner.js.map +1 -1
  103. package/dist/lib/utils/logger.d.ts +10 -7
  104. package/dist/lib/utils/logger.d.ts.map +1 -1
  105. package/dist/lib/utils/logger.js +23 -19
  106. package/dist/lib/utils/logger.js.map +1 -1
  107. package/dist/lib/utils/package-installer.d.ts +10 -7
  108. package/dist/lib/utils/package-installer.d.ts.map +1 -1
  109. package/dist/lib/utils/package-installer.js +18 -19
  110. package/dist/lib/utils/package-installer.js.map +1 -1
  111. package/dist/lib/utils/package-manager.d.ts +10 -7
  112. package/dist/lib/utils/package-manager.d.ts.map +1 -1
  113. package/dist/lib/utils/package-manager.js +68 -59
  114. package/dist/lib/utils/package-manager.js.map +1 -1
  115. package/package.json +7 -7
  116. package/dist/index.d.ts.map +0 -1
  117. package/dist/lib/transform-options.js.map +0 -1
@@ -1,227 +1,140 @@
1
1
  import { createTransformer } from "../utils/createTransformer.js";
2
- // Map of old hook names to new hook names
2
+ //#region src/codemods/v0-12/assistant-api-to-aui.ts
3
3
  const hookRenamingMap = {
4
- useAssistantApi: "useAui",
5
- useAssistantState: "useAuiState",
6
- useAssistantEvent: "useAuiEvent",
4
+ useAssistantApi: "useAui",
5
+ useAssistantState: "useAuiState",
6
+ useAssistantEvent: "useAuiEvent"
7
7
  };
8
- // Map of old component names to new component names
9
8
  const componentRenamingMap = {
10
- AssistantIf: "AuiIf",
11
- AssistantProvider: "AuiProvider",
9
+ AssistantIf: "AuiIf",
10
+ AssistantProvider: "AuiProvider"
12
11
  };
13
12
  const isUseAuiCall = (j, node) => {
14
- return (node &&
15
- j.CallExpression.check(node) &&
16
- j.Identifier.check(node.callee) &&
17
- (node.callee.name === "useAui" || node.callee.name === "useAssistantApi"));
13
+ return node && j.CallExpression.check(node) && j.Identifier.check(node.callee) && (node.callee.name === "useAui" || node.callee.name === "useAssistantApi");
18
14
  };
19
- // Check if a scope node directly contains an 'api' variable declaration
20
15
  const scopeHasDirectApiDeclaration = (j, scopeNode) => {
21
- // Get the body of the scope
22
- let body = null;
23
- if (j.FunctionDeclaration.check(scopeNode) ||
24
- j.FunctionExpression.check(scopeNode)) {
25
- body = scopeNode.body?.body;
26
- }
27
- else if (j.ArrowFunctionExpression.check(scopeNode)) {
28
- // Arrow functions might have block or expression body
29
- if (j.BlockStatement.check(scopeNode.body)) {
30
- body = scopeNode.body.body;
31
- }
32
- }
33
- else if (j.BlockStatement.check(scopeNode)) {
34
- body = scopeNode.body;
35
- }
36
- if (!Array.isArray(body))
37
- return false;
38
- // Check only direct statements in this scope's body
39
- for (const statement of body) {
40
- if (j.VariableDeclaration.check(statement)) {
41
- for (const declarator of statement.declarations) {
42
- if (j.Identifier.check(declarator.id) && declarator.id.name === "api") {
43
- // Don't count it as shadowing if it's from useAui
44
- if (!isUseAuiCall(j, declarator.init)) {
45
- return true;
46
- }
47
- }
48
- }
49
- }
50
- }
51
- return false;
16
+ let body = null;
17
+ if (j.FunctionDeclaration.check(scopeNode) || j.FunctionExpression.check(scopeNode)) body = scopeNode.body?.body;
18
+ else if (j.ArrowFunctionExpression.check(scopeNode)) {
19
+ if (j.BlockStatement.check(scopeNode.body)) body = scopeNode.body.body;
20
+ } else if (j.BlockStatement.check(scopeNode)) body = scopeNode.body;
21
+ if (!Array.isArray(body)) return false;
22
+ for (const statement of body) if (j.VariableDeclaration.check(statement)) {
23
+ for (const declarator of statement.declarations) if (j.Identifier.check(declarator.id) && declarator.id.name === "api") {
24
+ if (!isUseAuiCall(j, declarator.init)) return true;
25
+ }
26
+ }
27
+ return false;
52
28
  };
53
- // Check if a path is inside a scope that shadows the api variable
54
29
  const isInsideShadowingScope = (j, identifierPath) => {
55
- let currentPath = identifierPath.parent;
56
- while (currentPath) {
57
- const node = currentPath.value;
58
- // Check if this is a scope-creating node (function, arrow function, block)
59
- if (j.FunctionDeclaration.check(node) ||
60
- j.FunctionExpression.check(node) ||
61
- j.ArrowFunctionExpression.check(node) ||
62
- j.BlockStatement.check(node)) {
63
- if (scopeHasDirectApiDeclaration(j, node)) {
64
- return true;
65
- }
66
- }
67
- currentPath = currentPath.parent;
68
- }
69
- return false;
30
+ let currentPath = identifierPath.parent;
31
+ while (currentPath) {
32
+ const node = currentPath.value;
33
+ if (j.FunctionDeclaration.check(node) || j.FunctionExpression.check(node) || j.ArrowFunctionExpression.check(node) || j.BlockStatement.check(node)) {
34
+ if (scopeHasDirectApiDeclaration(j, node)) return true;
35
+ }
36
+ currentPath = currentPath.parent;
37
+ }
38
+ return false;
70
39
  };
71
40
  const migrateAssistantApiToAui = createTransformer(({ j, root, markAsChanged }) => {
72
- let hasApiFromUseAui = false;
73
- // 1. Update imports
74
- root.find(j.ImportDeclaration).forEach((path) => {
75
- const source = path.value.source.value;
76
- // Only process imports from @assistant-ui packages
77
- if (typeof source === "string" && source.startsWith("@assistant-ui/")) {
78
- path.value.specifiers?.forEach((specifier) => {
79
- if (j.ImportSpecifier.check(specifier)) {
80
- const oldName = specifier.imported.name;
81
- // Rename hooks
82
- if (hookRenamingMap[oldName]) {
83
- const newName = hookRenamingMap[oldName];
84
- specifier.imported.name = newName;
85
- if (specifier.local && specifier.local.name === oldName) {
86
- specifier.local.name = newName;
87
- }
88
- markAsChanged();
89
- }
90
- // Rename components
91
- if (componentRenamingMap[oldName]) {
92
- const newName = componentRenamingMap[oldName];
93
- specifier.imported.name = newName;
94
- if (specifier.local && specifier.local.name === oldName) {
95
- specifier.local.name = newName;
96
- }
97
- markAsChanged();
98
- }
99
- }
100
- });
101
- }
102
- });
103
- // 2. Find and rename variable declarations from useAui (or useAssistantApi)
104
- root.find(j.VariableDeclarator).forEach((path) => {
105
- const init = path.value.init;
106
- // Check if this is a call to useAui or useAssistantApi
107
- if (isUseAuiCall(j, init)) {
108
- if (j.Identifier.check(path.value.id)) {
109
- const oldVarName = path.value.id.name;
110
- // Only rename if it's called 'api'
111
- if (oldVarName === "api") {
112
- path.value.id.name = "aui";
113
- hasApiFromUseAui = true;
114
- markAsChanged();
115
- }
116
- }
117
- }
118
- });
119
- // 3. Rename all references to 'api' if we found it from useAui
120
- if (hasApiFromUseAui) {
121
- root.find(j.Identifier).forEach((path) => {
122
- if (path.value.name === "api") {
123
- // Skip if this is part of an import
124
- if (j.ImportSpecifier.check(path.parent.value)) {
125
- return;
126
- }
127
- // Skip if this is a variable declarator id
128
- if (j.VariableDeclarator.check(path.parent.value)) {
129
- const declarator = path.parent.value;
130
- if (declarator.id === path.value) {
131
- return;
132
- }
133
- }
134
- // Skip if this is a property key in an object (e.g., { api: true })
135
- if (j.Property.check(path.parent.value)) {
136
- const prop = path.parent.value;
137
- if (prop.key === path.value && !prop.shorthand && !prop.computed) {
138
- return;
139
- }
140
- }
141
- if (j.ObjectProperty.check(path.parent.value)) {
142
- const prop = path.parent.value;
143
- if (prop.key === path.value && !prop.shorthand && !prop.computed) {
144
- return;
145
- }
146
- }
147
- // Skip if this is a property in a member expression (e.g., foo.api)
148
- if (j.MemberExpression.check(path.parent.value) &&
149
- path.parent.value.property === path.value &&
150
- !path.parent.value.computed) {
151
- return;
152
- }
153
- // Skip if this is a JSX attribute name
154
- if (j.JSXAttribute.check(path.parent.value)) {
155
- return;
156
- }
157
- // Skip if this identifier is inside a scope that shadows the api variable
158
- if (isInsideShadowingScope(j, path)) {
159
- return;
160
- }
161
- // Update the reference
162
- path.value.name = "aui";
163
- markAsChanged();
164
- }
165
- });
166
- // Also handle JSX identifiers
167
- root.find(j.JSXIdentifier).forEach((path) => {
168
- if (path.value.name === "api") {
169
- if (!isInsideShadowingScope(j, path)) {
170
- path.value.name = "aui";
171
- markAsChanged();
172
- }
173
- }
174
- });
175
- }
176
- // 4. Update hook call references (in case they're used as values)
177
- Object.entries(hookRenamingMap).forEach(([oldName, newName]) => {
178
- root.find(j.Identifier).forEach((path) => {
179
- if (path.value.name === oldName) {
180
- // Skip if already handled in imports
181
- if (j.ImportSpecifier.check(path.parent.value)) {
182
- return;
183
- }
184
- // This might be a reference to the hook as a value
185
- path.value.name = newName;
186
- markAsChanged();
187
- }
188
- });
189
- });
190
- // 5. Update JSX component names
191
- Object.entries(componentRenamingMap).forEach(([oldName, newName]) => {
192
- // Update JSX opening elements
193
- root.find(j.JSXOpeningElement).forEach((path) => {
194
- if (j.JSXIdentifier.check(path.value.name) &&
195
- path.value.name.name === oldName) {
196
- path.value.name.name = newName;
197
- markAsChanged();
198
- }
199
- });
200
- // Update JSX closing elements
201
- root.find(j.JSXClosingElement).forEach((path) => {
202
- if (j.JSXIdentifier.check(path.value.name) &&
203
- path.value.name.name === oldName) {
204
- path.value.name.name = newName;
205
- markAsChanged();
206
- }
207
- });
208
- // Update regular identifier references (for component references)
209
- root.find(j.Identifier).forEach((path) => {
210
- if (path.value.name === oldName) {
211
- // Skip if already handled in imports
212
- if (j.ImportSpecifier.check(path.parent.value)) {
213
- return;
214
- }
215
- // Skip JSX identifiers (already handled above)
216
- if (j.JSXIdentifier.check(path.value)) {
217
- return;
218
- }
219
- // This might be a reference to the component as a value
220
- path.value.name = newName;
221
- markAsChanged();
222
- }
223
- });
224
- });
41
+ let hasApiFromUseAui = false;
42
+ root.find(j.ImportDeclaration).forEach((path) => {
43
+ const source = path.value.source.value;
44
+ if (typeof source === "string" && source.startsWith("@assistant-ui/")) path.value.specifiers?.forEach((specifier) => {
45
+ if (j.ImportSpecifier.check(specifier)) {
46
+ const oldName = specifier.imported.name;
47
+ if (hookRenamingMap[oldName]) {
48
+ const newName = hookRenamingMap[oldName];
49
+ specifier.imported.name = newName;
50
+ if (specifier.local && specifier.local.name === oldName) specifier.local.name = newName;
51
+ markAsChanged();
52
+ }
53
+ if (componentRenamingMap[oldName]) {
54
+ const newName = componentRenamingMap[oldName];
55
+ specifier.imported.name = newName;
56
+ if (specifier.local && specifier.local.name === oldName) specifier.local.name = newName;
57
+ markAsChanged();
58
+ }
59
+ }
60
+ });
61
+ });
62
+ root.find(j.VariableDeclarator).forEach((path) => {
63
+ const init = path.value.init;
64
+ if (isUseAuiCall(j, init)) {
65
+ if (j.Identifier.check(path.value.id)) {
66
+ if (path.value.id.name === "api") {
67
+ path.value.id.name = "aui";
68
+ hasApiFromUseAui = true;
69
+ markAsChanged();
70
+ }
71
+ }
72
+ }
73
+ });
74
+ if (hasApiFromUseAui) {
75
+ root.find(j.Identifier).forEach((path) => {
76
+ if (path.value.name === "api") {
77
+ if (j.ImportSpecifier.check(path.parent.value)) return;
78
+ if (j.VariableDeclarator.check(path.parent.value)) {
79
+ if (path.parent.value.id === path.value) return;
80
+ }
81
+ if (j.Property.check(path.parent.value)) {
82
+ const prop = path.parent.value;
83
+ if (prop.key === path.value && !prop.shorthand && !prop.computed) return;
84
+ }
85
+ if (j.ObjectProperty.check(path.parent.value)) {
86
+ const prop = path.parent.value;
87
+ if (prop.key === path.value && !prop.shorthand && !prop.computed) return;
88
+ }
89
+ if (j.MemberExpression.check(path.parent.value) && path.parent.value.property === path.value && !path.parent.value.computed) return;
90
+ if (j.JSXAttribute.check(path.parent.value)) return;
91
+ if (isInsideShadowingScope(j, path)) return;
92
+ path.value.name = "aui";
93
+ markAsChanged();
94
+ }
95
+ });
96
+ root.find(j.JSXIdentifier).forEach((path) => {
97
+ if (path.value.name === "api") {
98
+ if (!isInsideShadowingScope(j, path)) {
99
+ path.value.name = "aui";
100
+ markAsChanged();
101
+ }
102
+ }
103
+ });
104
+ }
105
+ Object.entries(hookRenamingMap).forEach(([oldName, newName]) => {
106
+ root.find(j.Identifier).forEach((path) => {
107
+ if (path.value.name === oldName) {
108
+ if (j.ImportSpecifier.check(path.parent.value)) return;
109
+ path.value.name = newName;
110
+ markAsChanged();
111
+ }
112
+ });
113
+ });
114
+ Object.entries(componentRenamingMap).forEach(([oldName, newName]) => {
115
+ root.find(j.JSXOpeningElement).forEach((path) => {
116
+ if (j.JSXIdentifier.check(path.value.name) && path.value.name.name === oldName) {
117
+ path.value.name.name = newName;
118
+ markAsChanged();
119
+ }
120
+ });
121
+ root.find(j.JSXClosingElement).forEach((path) => {
122
+ if (j.JSXIdentifier.check(path.value.name) && path.value.name.name === oldName) {
123
+ path.value.name.name = newName;
124
+ markAsChanged();
125
+ }
126
+ });
127
+ root.find(j.Identifier).forEach((path) => {
128
+ if (path.value.name === oldName) {
129
+ if (j.ImportSpecifier.check(path.parent.value)) return;
130
+ if (j.JSXIdentifier.check(path.value)) return;
131
+ path.value.name = newName;
132
+ markAsChanged();
133
+ }
134
+ });
135
+ });
225
136
  });
226
- export default migrateAssistantApiToAui;
137
+ //#endregion
138
+ export { migrateAssistantApiToAui as default };
139
+
227
140
  //# sourceMappingURL=assistant-api-to-aui.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"assistant-api-to-aui.js","sourceRoot":"","sources":["../../../src/codemods/v0-12/assistant-api-to-aui.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assistant-api-to-aui.js","names":[],"sources":["../../../src/codemods/v0-12/assistant-api-to-aui.ts"],"sourcesContent":["import { createTransformer } from \"../utils/createTransformer\";\n\n// Map of old hook names to new hook names\nconst hookRenamingMap: Record<string, string> = {\n useAssistantApi: \"useAui\",\n useAssistantState: \"useAuiState\",\n useAssistantEvent: \"useAuiEvent\",\n};\n\n// Map of old component names to new component names\nconst componentRenamingMap: Record<string, string> = {\n AssistantIf: \"AuiIf\",\n AssistantProvider: \"AuiProvider\",\n};\n\nconst isUseAuiCall = (j: any, node: any): boolean => {\n return (\n node &&\n j.CallExpression.check(node) &&\n j.Identifier.check(node.callee) &&\n (node.callee.name === \"useAui\" || node.callee.name === \"useAssistantApi\")\n );\n};\n\n// Check if a scope node directly contains an 'api' variable declaration\nconst scopeHasDirectApiDeclaration = (j: any, scopeNode: any): boolean => {\n // Get the body of the scope\n let body = null;\n if (\n j.FunctionDeclaration.check(scopeNode) ||\n j.FunctionExpression.check(scopeNode)\n ) {\n body = scopeNode.body?.body;\n } else if (j.ArrowFunctionExpression.check(scopeNode)) {\n // Arrow functions might have block or expression body\n if (j.BlockStatement.check(scopeNode.body)) {\n body = scopeNode.body.body;\n }\n } else if (j.BlockStatement.check(scopeNode)) {\n body = scopeNode.body;\n }\n\n if (!Array.isArray(body)) return false;\n\n // Check only direct statements in this scope's body\n for (const statement of body) {\n if (j.VariableDeclaration.check(statement)) {\n for (const declarator of statement.declarations) {\n if (j.Identifier.check(declarator.id) && declarator.id.name === \"api\") {\n // Don't count it as shadowing if it's from useAui\n if (!isUseAuiCall(j, declarator.init)) {\n return true;\n }\n }\n }\n }\n }\n\n return false;\n};\n\n// Check if a path is inside a scope that shadows the api variable\nconst isInsideShadowingScope = (j: any, identifierPath: any): boolean => {\n let currentPath = identifierPath.parent;\n\n while (currentPath) {\n const node = currentPath.value;\n\n // Check if this is a scope-creating node (function, arrow function, block)\n if (\n j.FunctionDeclaration.check(node) ||\n j.FunctionExpression.check(node) ||\n j.ArrowFunctionExpression.check(node) ||\n j.BlockStatement.check(node)\n ) {\n if (scopeHasDirectApiDeclaration(j, node)) {\n return true;\n }\n }\n\n currentPath = currentPath.parent;\n }\n\n return false;\n};\n\nconst migrateAssistantApiToAui = createTransformer(\n ({ j, root, markAsChanged }) => {\n let hasApiFromUseAui = false;\n\n // 1. Update imports\n root.find(j.ImportDeclaration).forEach((path: any) => {\n const source = path.value.source.value;\n\n // Only process imports from @assistant-ui packages\n if (typeof source === \"string\" && source.startsWith(\"@assistant-ui/\")) {\n path.value.specifiers?.forEach((specifier: any) => {\n if (j.ImportSpecifier.check(specifier)) {\n const oldName = specifier.imported.name as string;\n\n // Rename hooks\n if (hookRenamingMap[oldName]) {\n const newName = hookRenamingMap[oldName];\n specifier.imported.name = newName;\n if (specifier.local && specifier.local.name === oldName) {\n specifier.local.name = newName;\n }\n markAsChanged();\n }\n\n // Rename components\n if (componentRenamingMap[oldName]) {\n const newName = componentRenamingMap[oldName];\n specifier.imported.name = newName;\n if (specifier.local && specifier.local.name === oldName) {\n specifier.local.name = newName;\n }\n markAsChanged();\n }\n }\n });\n }\n });\n\n // 2. Find and rename variable declarations from useAui (or useAssistantApi)\n root.find(j.VariableDeclarator).forEach((path: any) => {\n const init = path.value.init;\n\n // Check if this is a call to useAui or useAssistantApi\n if (isUseAuiCall(j, init)) {\n if (j.Identifier.check(path.value.id)) {\n const oldVarName = path.value.id.name;\n\n // Only rename if it's called 'api'\n if (oldVarName === \"api\") {\n path.value.id.name = \"aui\";\n hasApiFromUseAui = true;\n markAsChanged();\n }\n }\n }\n });\n\n // 3. Rename all references to 'api' if we found it from useAui\n if (hasApiFromUseAui) {\n root.find(j.Identifier).forEach((path: any) => {\n if (path.value.name === \"api\") {\n // Skip if this is part of an import\n if (j.ImportSpecifier.check(path.parent.value)) {\n return;\n }\n\n // Skip if this is a variable declarator id\n if (j.VariableDeclarator.check(path.parent.value)) {\n const declarator = path.parent.value;\n if (declarator.id === path.value) {\n return;\n }\n }\n\n // Skip if this is a property key in an object (e.g., { api: true })\n if (j.Property.check(path.parent.value)) {\n const prop = path.parent.value;\n if (prop.key === path.value && !prop.shorthand && !prop.computed) {\n return;\n }\n }\n\n if (j.ObjectProperty.check(path.parent.value)) {\n const prop = path.parent.value;\n if (prop.key === path.value && !prop.shorthand && !prop.computed) {\n return;\n }\n }\n\n // Skip if this is a property in a member expression (e.g., foo.api)\n if (\n j.MemberExpression.check(path.parent.value) &&\n path.parent.value.property === path.value &&\n !path.parent.value.computed\n ) {\n return;\n }\n\n // Skip if this is a JSX attribute name\n if (j.JSXAttribute.check(path.parent.value)) {\n return;\n }\n\n // Skip if this identifier is inside a scope that shadows the api variable\n if (isInsideShadowingScope(j, path)) {\n return;\n }\n\n // Update the reference\n path.value.name = \"aui\";\n markAsChanged();\n }\n });\n\n // Also handle JSX identifiers\n root.find(j.JSXIdentifier).forEach((path: any) => {\n if (path.value.name === \"api\") {\n if (!isInsideShadowingScope(j, path)) {\n path.value.name = \"aui\";\n markAsChanged();\n }\n }\n });\n }\n\n // 4. Update hook call references (in case they're used as values)\n Object.entries(hookRenamingMap).forEach(([oldName, newName]) => {\n root.find(j.Identifier).forEach((path: any) => {\n if (path.value.name === oldName) {\n // Skip if already handled in imports\n if (j.ImportSpecifier.check(path.parent.value)) {\n return;\n }\n\n // This might be a reference to the hook as a value\n path.value.name = newName;\n markAsChanged();\n }\n });\n });\n\n // 5. Update JSX component names\n Object.entries(componentRenamingMap).forEach(([oldName, newName]) => {\n // Update JSX opening elements\n root.find(j.JSXOpeningElement).forEach((path: any) => {\n if (\n j.JSXIdentifier.check(path.value.name) &&\n path.value.name.name === oldName\n ) {\n path.value.name.name = newName;\n markAsChanged();\n }\n });\n\n // Update JSX closing elements\n root.find(j.JSXClosingElement).forEach((path: any) => {\n if (\n j.JSXIdentifier.check(path.value.name) &&\n path.value.name.name === oldName\n ) {\n path.value.name.name = newName;\n markAsChanged();\n }\n });\n\n // Update regular identifier references (for component references)\n root.find(j.Identifier).forEach((path: any) => {\n if (path.value.name === oldName) {\n // Skip if already handled in imports\n if (j.ImportSpecifier.check(path.parent.value)) {\n return;\n }\n\n // Skip JSX identifiers (already handled above)\n if (j.JSXIdentifier.check(path.value)) {\n return;\n }\n\n // This might be a reference to the component as a value\n path.value.name = newName;\n markAsChanged();\n }\n });\n });\n },\n);\n\nexport default migrateAssistantApiToAui;\n"],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ //#region src/codemods/v0-12/event-names-to-camelcase.d.ts
1
2
  declare const migrateEventNamesToCamelCase: (fileInfo: import("jscodeshift/src/core").FileInfo, api: import("jscodeshift/src/core").API, options: any) => string | null;
2
- export default migrateEventNamesToCamelCase;
3
+ //#endregion
4
+ export { migrateEventNamesToCamelCase as default };
3
5
  //# sourceMappingURL=event-names-to-camelcase.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-names-to-camelcase.d.ts","sourceRoot":"","sources":["../../../src/codemods/v0-12/event-names-to-camelcase.ts"],"names":[],"mappings":"AAYA,QAAA,MAAM,4BAA4B,6HAsCjC,CAAC;AAEF,eAAe,4BAA4B,CAAC"}
1
+ {"version":3,"file":"event-names-to-camelcase.d.ts","names":[],"sources":["../../../src/codemods/v0-12/event-names-to-camelcase.ts"],"mappings":";cAYM,4BAAA,GAA4B,QAAA,iCAAA,QAAA,EAAA,GAAA,iCAAA,GAAA,EAAA,OAAA"}
@@ -1,44 +1,39 @@
1
1
  import { createTransformer } from "../utils/createTransformer.js";
2
- // Map of old kebab-case event names to new camelCase event names
2
+ //#region src/codemods/v0-12/event-names-to-camelcase.ts
3
3
  const eventNameMap = {
4
- "thread.run-start": "thread.runStart",
5
- "thread.run-end": "thread.runEnd",
6
- "thread.model-context-update": "thread.modelContextUpdate",
7
- "composer.attachment-add": "composer.attachmentAdd",
8
- "thread-list-item.switched-to": "threadListItem.switchedTo",
9
- "thread-list-item.switched-away": "threadListItem.switchedAway",
4
+ "thread.run-start": "thread.runStart",
5
+ "thread.run-end": "thread.runEnd",
6
+ "thread.model-context-update": "thread.modelContextUpdate",
7
+ "composer.attachment-add": "composer.attachmentAdd",
8
+ "thread-list-item.switched-to": "threadListItem.switchedTo",
9
+ "thread-list-item.switched-away": "threadListItem.switchedAway"
10
10
  };
11
11
  const migrateEventNamesToCamelCase = createTransformer(({ j, root, markAsChanged }) => {
12
- // Find all string literals in the code
13
- root.find(j.Literal).forEach((path) => {
14
- const node = path.value;
15
- // Check if this is a string literal
16
- if (typeof node.value === "string") {
17
- const oldEventName = node.value;
18
- // Check if this event name needs to be migrated
19
- if (eventNameMap[oldEventName]) {
20
- const newEventName = eventNameMap[oldEventName];
21
- node.value = newEventName;
22
- markAsChanged();
23
- }
24
- }
25
- });
26
- // Also handle template literals (in case event names are in template strings)
27
- root.find(j.TemplateLiteral).forEach((path) => {
28
- const node = path.value;
29
- // Check quasi (string parts) in template literals
30
- node.quasis.forEach((quasi) => {
31
- if (quasi.value && typeof quasi.value.raw === "string") {
32
- const oldEventName = quasi.value.raw;
33
- if (eventNameMap[oldEventName]) {
34
- const newEventName = eventNameMap[oldEventName];
35
- quasi.value.raw = newEventName;
36
- quasi.value.cooked = newEventName;
37
- markAsChanged();
38
- }
39
- }
40
- });
41
- });
12
+ root.find(j.Literal).forEach((path) => {
13
+ const node = path.value;
14
+ if (typeof node.value === "string") {
15
+ const oldEventName = node.value;
16
+ if (eventNameMap[oldEventName]) {
17
+ node.value = eventNameMap[oldEventName];
18
+ markAsChanged();
19
+ }
20
+ }
21
+ });
22
+ root.find(j.TemplateLiteral).forEach((path) => {
23
+ path.value.quasis.forEach((quasi) => {
24
+ if (quasi.value && typeof quasi.value.raw === "string") {
25
+ const oldEventName = quasi.value.raw;
26
+ if (eventNameMap[oldEventName]) {
27
+ const newEventName = eventNameMap[oldEventName];
28
+ quasi.value.raw = newEventName;
29
+ quasi.value.cooked = newEventName;
30
+ markAsChanged();
31
+ }
32
+ }
33
+ });
34
+ });
42
35
  });
43
- export default migrateEventNamesToCamelCase;
36
+ //#endregion
37
+ export { migrateEventNamesToCamelCase as default };
38
+
44
39
  //# sourceMappingURL=event-names-to-camelcase.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-names-to-camelcase.js","sourceRoot":"","sources":["../../../src/codemods/v0-12/event-names-to-camelcase.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,sCAAmC;AAE/D,iEAAiE;AACjE,MAAM,YAAY,GAA2B;IAC3C,kBAAkB,EAAE,iBAAiB;IACrC,gBAAgB,EAAE,eAAe;IACjC,6BAA6B,EAAE,2BAA2B;IAC1D,yBAAyB,EAAE,wBAAwB;IACnD,8BAA8B,EAAE,2BAA2B;IAC3D,gCAAgC,EAAE,6BAA6B;CAChE,CAAC;AAEF,MAAM,4BAA4B,GAAG,iBAAiB,CACpD,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE;IAC7B,uCAAuC;IACvC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,IAAS,EAAE,EAAE;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QAExB,oCAAoC;QACpC,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YACnC,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;YAEhC,gDAAgD;YAChD,IAAI,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC/B,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;gBAChD,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC;gBAC1B,aAAa,EAAE,CAAC;YAClB,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,8EAA8E;IAC9E,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,IAAS,EAAE,EAAE;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;QAExB,kDAAkD;QAClD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAU,EAAE,EAAE;YACjC,IAAI,KAAK,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;gBACvD,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;gBAErC,IAAI,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC;oBAC/B,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;oBAChD,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,YAAY,CAAC;oBAC/B,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC;oBAClC,aAAa,EAAE,CAAC;gBAClB,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CACF,CAAC;AAEF,eAAe,4BAA4B,CAAC"}
1
+ {"version":3,"file":"event-names-to-camelcase.js","names":[],"sources":["../../../src/codemods/v0-12/event-names-to-camelcase.ts"],"sourcesContent":["import { createTransformer } from \"../utils/createTransformer\";\n\n// Map of old kebab-case event names to new camelCase event names\nconst eventNameMap: Record<string, string> = {\n \"thread.run-start\": \"thread.runStart\",\n \"thread.run-end\": \"thread.runEnd\",\n \"thread.model-context-update\": \"thread.modelContextUpdate\",\n \"composer.attachment-add\": \"composer.attachmentAdd\",\n \"thread-list-item.switched-to\": \"threadListItem.switchedTo\",\n \"thread-list-item.switched-away\": \"threadListItem.switchedAway\",\n};\n\nconst migrateEventNamesToCamelCase = createTransformer(\n ({ j, root, markAsChanged }) => {\n // Find all string literals in the code\n root.find(j.Literal).forEach((path: any) => {\n const node = path.value;\n\n // Check if this is a string literal\n if (typeof node.value === \"string\") {\n const oldEventName = node.value;\n\n // Check if this event name needs to be migrated\n if (eventNameMap[oldEventName]) {\n const newEventName = eventNameMap[oldEventName];\n node.value = newEventName;\n markAsChanged();\n }\n }\n });\n\n // Also handle template literals (in case event names are in template strings)\n root.find(j.TemplateLiteral).forEach((path: any) => {\n const node = path.value;\n\n // Check quasi (string parts) in template literals\n node.quasis.forEach((quasi: any) => {\n if (quasi.value && typeof quasi.value.raw === \"string\") {\n const oldEventName = quasi.value.raw;\n\n if (eventNameMap[oldEventName]) {\n const newEventName = eventNameMap[oldEventName];\n quasi.value.raw = newEventName;\n quasi.value.cooked = newEventName;\n markAsChanged();\n }\n }\n });\n });\n },\n);\n\nexport default migrateEventNamesToCamelCase;\n"],"mappings":";;AAGA,MAAM,eAAuC;CAC3C,oBAAoB;CACpB,kBAAkB;CAClB,+BAA+B;CAC/B,2BAA2B;CAC3B,gCAAgC;CAChC,kCAAkC;AACpC;AAEA,MAAM,+BAA+B,mBAClC,EAAE,GAAG,MAAM,oBAAoB;CAE9B,KAAK,KAAK,EAAE,OAAO,EAAE,SAAS,SAAc;EAC1C,MAAM,OAAO,KAAK;EAGlB,IAAI,OAAO,KAAK,UAAU,UAAU;GAClC,MAAM,eAAe,KAAK;GAG1B,IAAI,aAAa,eAAe;IAE9B,KAAK,QADgB,aAAa;IAElC,cAAc;GAChB;EACF;CACF,CAAC;CAGD,KAAK,KAAK,EAAE,eAAe,EAAE,SAAS,SAAc;EAIlD,KAHkB,MAGb,OAAO,SAAS,UAAe;GAClC,IAAI,MAAM,SAAS,OAAO,MAAM,MAAM,QAAQ,UAAU;IACtD,MAAM,eAAe,MAAM,MAAM;IAEjC,IAAI,aAAa,eAAe;KAC9B,MAAM,eAAe,aAAa;KAClC,MAAM,MAAM,MAAM;KAClB,MAAM,MAAM,SAAS;KACrB,cAAc;IAChB;GACF;EACF,CAAC;CACH,CAAC;AACH,CACF"}
@@ -1,3 +1,5 @@
1
+ //#region src/codemods/v0-12/primitive-if-to-aui-if.d.ts
1
2
  declare const migratePrimitiveIfToAuiIf: (fileInfo: import("jscodeshift/src/core").FileInfo, api: import("jscodeshift/src/core").API, options: any) => string | null;
2
- export default migratePrimitiveIfToAuiIf;
3
+ //#endregion
4
+ export { migratePrimitiveIfToAuiIf as default };
3
5
  //# sourceMappingURL=primitive-if-to-aui-if.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"primitive-if-to-aui-if.d.ts","sourceRoot":"","sources":["../../../src/codemods/v0-12/primitive-if-to-aui-if.ts"],"names":[],"mappings":"AAmKA,QAAA,MAAM,yBAAyB,6HA6L9B,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
1
+ {"version":3,"file":"primitive-if-to-aui-if.d.ts","names":[],"sources":["../../../src/codemods/v0-12/primitive-if-to-aui-if.ts"],"mappings":";cAmKM,yBAAA,GAAyB,QAAA,iCAAA,QAAA,EAAA,GAAA,iCAAA,GAAA,EAAA,OAAA"}