assistant-ui 0.0.92 → 0.0.93
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/codemods/utils/createTransformer.d.ts +17 -13
- package/dist/codemods/utils/createTransformer.d.ts.map +1 -1
- package/dist/codemods/utils/createTransformer.js +18 -15
- package/dist/codemods/utils/createTransformer.js.map +1 -1
- package/dist/codemods/v0-11/content-part-to-message-part.d.ts +3 -1
- package/dist/codemods/v0-11/content-part-to-message-part.d.ts.map +1 -1
- package/dist/codemods/v0-11/content-part-to-message-part.js +98 -135
- package/dist/codemods/v0-11/content-part-to-message-part.js.map +1 -1
- package/dist/codemods/v0-12/assistant-api-to-aui.d.ts +3 -1
- package/dist/codemods/v0-12/assistant-api-to-aui.d.ts.map +1 -1
- package/dist/codemods/v0-12/assistant-api-to-aui.js +126 -213
- package/dist/codemods/v0-12/assistant-api-to-aui.js.map +1 -1
- package/dist/codemods/v0-12/event-names-to-camelcase.d.ts +3 -1
- package/dist/codemods/v0-12/event-names-to-camelcase.d.ts.map +1 -1
- package/dist/codemods/v0-12/event-names-to-camelcase.js +33 -38
- package/dist/codemods/v0-12/event-names-to-camelcase.js.map +1 -1
- package/dist/codemods/v0-12/primitive-if-to-aui-if.d.ts +3 -1
- package/dist/codemods/v0-12/primitive-if-to-aui-if.d.ts.map +1 -1
- package/dist/codemods/v0-12/primitive-if-to-aui-if.js +212 -297
- package/dist/codemods/v0-12/primitive-if-to-aui-if.js.map +1 -1
- package/dist/codemods/v0-8/ui-package-split.d.ts +3 -1
- package/dist/codemods/v0-8/ui-package-split.d.ts.map +1 -1
- package/dist/codemods/v0-8/ui-package-split.js +121 -164
- package/dist/codemods/v0-8/ui-package-split.js.map +1 -1
- package/dist/codemods/v0-9/edge-package-split.d.ts +3 -1
- package/dist/codemods/v0-9/edge-package-split.d.ts.map +1 -1
- package/dist/codemods/v0-9/edge-package-split.js +96 -140
- package/dist/codemods/v0-9/edge-package-split.js.map +1 -1
- package/dist/commands/add.d.ts +16 -12
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +53 -64
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/agent.d.ts +5 -1
- package/dist/commands/agent.d.ts.map +1 -1
- package/dist/commands/agent.js +16 -25
- package/dist/commands/agent.js.map +1 -1
- package/dist/commands/create.d.ts +34 -30
- package/dist/commands/create.d.ts.map +1 -1
- package/dist/commands/create.js +454 -527
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/info.d.ts +5 -1
- package/dist/commands/info.d.ts.map +1 -1
- package/dist/commands/info.js +233 -314
- package/dist/commands/info.js.map +1 -1
- package/dist/commands/init.d.ts +12 -9
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +98 -107
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/mcp.d.ts +5 -1
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +175 -214
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/update.d.ts +5 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +46 -55
- package/dist/commands/update.js.map +1 -1
- package/dist/commands/upgrade.d.ts +11 -7
- package/dist/commands/upgrade.d.ts.map +1 -1
- package/dist/commands/upgrade.js +26 -38
- package/dist/commands/upgrade.js.map +1 -1
- package/dist/index.d.ts +1 -3
- package/dist/index.js +15 -14
- package/dist/index.js.map +1 -1
- package/dist/lib/create-project.d.ts +24 -21
- package/dist/lib/create-project.d.ts.map +1 -1
- package/dist/lib/create-project.js +227 -297
- package/dist/lib/create-project.js.map +1 -1
- package/dist/lib/install-ai-sdk-lib.d.ts +4 -1
- package/dist/lib/install-ai-sdk-lib.d.ts.map +1 -1
- package/dist/lib/install-ai-sdk-lib.js +12 -8
- package/dist/lib/install-ai-sdk-lib.js.map +1 -1
- package/dist/lib/install-edge-lib.d.ts +4 -1
- package/dist/lib/install-edge-lib.d.ts.map +1 -1
- package/dist/lib/install-edge-lib.js +16 -12
- package/dist/lib/install-edge-lib.js.map +1 -1
- package/dist/lib/install-ui-lib.d.ts +4 -1
- package/dist/lib/install-ui-lib.d.ts.map +1 -1
- package/dist/lib/install-ui-lib.js +12 -8
- package/dist/lib/install-ui-lib.js.map +1 -1
- package/dist/lib/run-spawn.d.ts +7 -4
- package/dist/lib/run-spawn.d.ts.map +1 -1
- package/dist/lib/run-spawn.js +23 -23
- package/dist/lib/run-spawn.js.map +1 -1
- package/dist/lib/transform-options.d.ts +8 -5
- package/dist/lib/transform-options.d.ts.map +1 -1
- package/dist/lib/transform-options.js +0 -2
- package/dist/lib/transform.d.ts +15 -11
- package/dist/lib/transform.d.ts.map +1 -1
- package/dist/lib/transform.js +97 -114
- package/dist/lib/transform.js.map +1 -1
- package/dist/lib/upgrade.d.ts +6 -2
- package/dist/lib/upgrade.d.ts.map +1 -1
- package/dist/lib/upgrade.js +62 -64
- package/dist/lib/upgrade.js.map +1 -1
- package/dist/lib/utils/config.d.ts +21 -18
- package/dist/lib/utils/config.d.ts.map +1 -1
- package/dist/lib/utils/config.js +24 -28
- package/dist/lib/utils/config.js.map +1 -1
- package/dist/lib/utils/file-scanner.d.ts +9 -6
- package/dist/lib/utils/file-scanner.d.ts.map +1 -1
- package/dist/lib/utils/file-scanner.js +44 -51
- package/dist/lib/utils/file-scanner.js.map +1 -1
- package/dist/lib/utils/logger.d.ts +10 -7
- package/dist/lib/utils/logger.d.ts.map +1 -1
- package/dist/lib/utils/logger.js +23 -19
- package/dist/lib/utils/logger.js.map +1 -1
- package/dist/lib/utils/package-installer.d.ts +10 -7
- package/dist/lib/utils/package-installer.d.ts.map +1 -1
- package/dist/lib/utils/package-installer.js +18 -19
- package/dist/lib/utils/package-installer.js.map +1 -1
- package/dist/lib/utils/package-manager.d.ts +10 -7
- package/dist/lib/utils/package-manager.d.ts.map +1 -1
- package/dist/lib/utils/package-manager.js +68 -59
- package/dist/lib/utils/package-manager.js.map +1 -1
- package/package.json +7 -7
- package/dist/index.d.ts.map +0 -1
- package/dist/lib/transform-options.js.map +0 -1
|
@@ -1,227 +1,140 @@
|
|
|
1
1
|
import { createTransformer } from "../utils/createTransformer.js";
|
|
2
|
-
|
|
2
|
+
//#region src/codemods/v0-12/assistant-api-to-aui.ts
|
|
3
3
|
const hookRenamingMap = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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
|
-
|
|
11
|
-
|
|
9
|
+
AssistantIf: "AuiIf",
|
|
10
|
+
AssistantProvider: "AuiProvider"
|
|
12
11
|
};
|
|
13
12
|
const isUseAuiCall = (j, node) => {
|
|
14
|
-
|
|
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
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
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
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
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
|
-
|
|
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":";;AAGA,MAAM,kBAA0C;CAC9C,iBAAiB;CACjB,mBAAmB;CACnB,mBAAmB;AACrB;AAGA,MAAM,uBAA+C;CACnD,aAAa;CACb,mBAAmB;AACrB;AAEA,MAAM,gBAAgB,GAAQ,SAAuB;CACnD,OACE,QACA,EAAE,eAAe,MAAM,IAAI,KAC3B,EAAE,WAAW,MAAM,KAAK,MAAM,MAC7B,KAAK,OAAO,SAAS,YAAY,KAAK,OAAO,SAAS;AAE3D;AAGA,MAAM,gCAAgC,GAAQ,cAA4B;CAExE,IAAI,OAAO;CACX,IACE,EAAE,oBAAoB,MAAM,SAAS,KACrC,EAAE,mBAAmB,MAAM,SAAS,GAEpC,OAAO,UAAU,MAAM;MAClB,IAAI,EAAE,wBAAwB,MAAM,SAAS;MAE9C,EAAE,eAAe,MAAM,UAAU,IAAI,GACvC,OAAO,UAAU,KAAK;CAAA,OAEnB,IAAI,EAAE,eAAe,MAAM,SAAS,GACzC,OAAO,UAAU;CAGnB,IAAI,CAAC,MAAM,QAAQ,IAAI,GAAG,OAAO;CAGjC,KAAK,MAAM,aAAa,MACtB,IAAI,EAAE,oBAAoB,MAAM,SAAS;OAClC,MAAM,cAAc,UAAU,cACjC,IAAI,EAAE,WAAW,MAAM,WAAW,EAAE,KAAK,WAAW,GAAG,SAAS;OAE1D,CAAC,aAAa,GAAG,WAAW,IAAI,GAClC,OAAO;EAAA;CACT;CAMR,OAAO;AACT;AAGA,MAAM,0BAA0B,GAAQ,mBAAiC;CACvE,IAAI,cAAc,eAAe;CAEjC,OAAO,aAAa;EAClB,MAAM,OAAO,YAAY;EAGzB,IACE,EAAE,oBAAoB,MAAM,IAAI,KAChC,EAAE,mBAAmB,MAAM,IAAI,KAC/B,EAAE,wBAAwB,MAAM,IAAI,KACpC,EAAE,eAAe,MAAM,IAAI;OAEvB,6BAA6B,GAAG,IAAI,GACtC,OAAO;EAAA;EAIX,cAAc,YAAY;CAC5B;CAEA,OAAO;AACT;AAEA,MAAM,2BAA2B,mBAC9B,EAAE,GAAG,MAAM,oBAAoB;CAC9B,IAAI,mBAAmB;CAGvB,KAAK,KAAK,EAAE,iBAAiB,EAAE,SAAS,SAAc;EACpD,MAAM,SAAS,KAAK,MAAM,OAAO;EAGjC,IAAI,OAAO,WAAW,YAAY,OAAO,WAAW,gBAAgB,GAClE,KAAK,MAAM,YAAY,SAAS,cAAmB;GACjD,IAAI,EAAE,gBAAgB,MAAM,SAAS,GAAG;IACtC,MAAM,UAAU,UAAU,SAAS;IAGnC,IAAI,gBAAgB,UAAU;KAC5B,MAAM,UAAU,gBAAgB;KAChC,UAAU,SAAS,OAAO;KAC1B,IAAI,UAAU,SAAS,UAAU,MAAM,SAAS,SAC9C,UAAU,MAAM,OAAO;KAEzB,cAAc;IAChB;IAGA,IAAI,qBAAqB,UAAU;KACjC,MAAM,UAAU,qBAAqB;KACrC,UAAU,SAAS,OAAO;KAC1B,IAAI,UAAU,SAAS,UAAU,MAAM,SAAS,SAC9C,UAAU,MAAM,OAAO;KAEzB,cAAc;IAChB;GACF;EACF,CAAC;CAEL,CAAC;CAGD,KAAK,KAAK,EAAE,kBAAkB,EAAE,SAAS,SAAc;EACrD,MAAM,OAAO,KAAK,MAAM;EAGxB,IAAI,aAAa,GAAG,IAAI;OAClB,EAAE,WAAW,MAAM,KAAK,MAAM,EAAE;QACf,KAAK,MAAM,GAAG,SAGd,OAAO;KACxB,KAAK,MAAM,GAAG,OAAO;KACrB,mBAAmB;KACnB,cAAc;IAChB;;;CAGN,CAAC;CAGD,IAAI,kBAAkB;EACpB,KAAK,KAAK,EAAE,UAAU,EAAE,SAAS,SAAc;GAC7C,IAAI,KAAK,MAAM,SAAS,OAAO;IAE7B,IAAI,EAAE,gBAAgB,MAAM,KAAK,OAAO,KAAK,GAC3C;IAIF,IAAI,EAAE,mBAAmB,MAAM,KAAK,OAAO,KAAK;SAC3B,KAAK,OAAO,MAChB,OAAO,KAAK,OACzB;IAAA;IAKJ,IAAI,EAAE,SAAS,MAAM,KAAK,OAAO,KAAK,GAAG;KACvC,MAAM,OAAO,KAAK,OAAO;KACzB,IAAI,KAAK,QAAQ,KAAK,SAAS,CAAC,KAAK,aAAa,CAAC,KAAK,UACtD;IAEJ;IAEA,IAAI,EAAE,eAAe,MAAM,KAAK,OAAO,KAAK,GAAG;KAC7C,MAAM,OAAO,KAAK,OAAO;KACzB,IAAI,KAAK,QAAQ,KAAK,SAAS,CAAC,KAAK,aAAa,CAAC,KAAK,UACtD;IAEJ;IAGA,IACE,EAAE,iBAAiB,MAAM,KAAK,OAAO,KAAK,KAC1C,KAAK,OAAO,MAAM,aAAa,KAAK,SACpC,CAAC,KAAK,OAAO,MAAM,UAEnB;IAIF,IAAI,EAAE,aAAa,MAAM,KAAK,OAAO,KAAK,GACxC;IAIF,IAAI,uBAAuB,GAAG,IAAI,GAChC;IAIF,KAAK,MAAM,OAAO;IAClB,cAAc;GAChB;EACF,CAAC;EAGD,KAAK,KAAK,EAAE,aAAa,EAAE,SAAS,SAAc;GAChD,IAAI,KAAK,MAAM,SAAS;QAClB,CAAC,uBAAuB,GAAG,IAAI,GAAG;KACpC,KAAK,MAAM,OAAO;KAClB,cAAc;IAChB;;EAEJ,CAAC;CACH;CAGA,OAAO,QAAQ,eAAe,EAAE,SAAS,CAAC,SAAS,aAAa;EAC9D,KAAK,KAAK,EAAE,UAAU,EAAE,SAAS,SAAc;GAC7C,IAAI,KAAK,MAAM,SAAS,SAAS;IAE/B,IAAI,EAAE,gBAAgB,MAAM,KAAK,OAAO,KAAK,GAC3C;IAIF,KAAK,MAAM,OAAO;IAClB,cAAc;GAChB;EACF,CAAC;CACH,CAAC;CAGD,OAAO,QAAQ,oBAAoB,EAAE,SAAS,CAAC,SAAS,aAAa;EAEnE,KAAK,KAAK,EAAE,iBAAiB,EAAE,SAAS,SAAc;GACpD,IACE,EAAE,cAAc,MAAM,KAAK,MAAM,IAAI,KACrC,KAAK,MAAM,KAAK,SAAS,SACzB;IACA,KAAK,MAAM,KAAK,OAAO;IACvB,cAAc;GAChB;EACF,CAAC;EAGD,KAAK,KAAK,EAAE,iBAAiB,EAAE,SAAS,SAAc;GACpD,IACE,EAAE,cAAc,MAAM,KAAK,MAAM,IAAI,KACrC,KAAK,MAAM,KAAK,SAAS,SACzB;IACA,KAAK,MAAM,KAAK,OAAO;IACvB,cAAc;GAChB;EACF,CAAC;EAGD,KAAK,KAAK,EAAE,UAAU,EAAE,SAAS,SAAc;GAC7C,IAAI,KAAK,MAAM,SAAS,SAAS;IAE/B,IAAI,EAAE,gBAAgB,MAAM,KAAK,OAAO,KAAK,GAC3C;IAIF,IAAI,EAAE,cAAc,MAAM,KAAK,KAAK,GAClC;IAIF,KAAK,MAAM,OAAO;IAClB,cAAc;GAChB;EACF,CAAC;CACH,CAAC;AACH,CACF"}
|
|
@@ -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
|
-
|
|
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","
|
|
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
|
-
|
|
2
|
+
//#region src/codemods/v0-12/event-names-to-camelcase.ts
|
|
3
3
|
const eventNameMap = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
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
|
-
|
|
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","
|
|
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
|
-
|
|
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","
|
|
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"}
|