@easel-sh/cli 0.1.0-alpha.2 → 0.1.0-alpha.3
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-functions.d.ts","sourceRoot":"","sources":["../../src/commands/package-functions.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,uBAAuB;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AA4LD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"package-functions.d.ts","sourceRoot":"","sources":["../../src/commands/package-functions.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,uBAAuB;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AA4LD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,IAAI,CAwLvE"}
|
|
@@ -214,29 +214,36 @@ export function packageFunctions(options) {
|
|
|
214
214
|
console.warn("No resource hashes found in manifest. Nothing to package.");
|
|
215
215
|
return;
|
|
216
216
|
}
|
|
217
|
-
|
|
218
|
-
|
|
217
|
+
// One zip per unique hash (many resources can share the same hash/code)
|
|
218
|
+
const hashToRepresentative = new Map();
|
|
219
219
|
for (const [resourceName, hash] of Object.entries(resourceHashes)) {
|
|
220
|
+
if (hashToRepresentative.has(hash))
|
|
221
|
+
continue;
|
|
222
|
+
const cleanResourceName = resourceName.startsWith("/")
|
|
223
|
+
? resourceName.slice(1)
|
|
224
|
+
: resourceName;
|
|
225
|
+
const funcPath = path.join(functionsDir, `${cleanResourceName}.func`);
|
|
226
|
+
if (fs.existsSync(funcPath)) {
|
|
227
|
+
hashToRepresentative.set(hash, { resourceName, funcPath });
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
console.log(`Packaging ${hashToRepresentative.size} unique function(s) (from ${Object.keys(resourceHashes).length} resource(s))`);
|
|
231
|
+
for (const [hash, { resourceName, funcPath }] of hashToRepresentative) {
|
|
220
232
|
try {
|
|
221
|
-
//
|
|
222
|
-
// Resource names might have leading slashes, remove them
|
|
223
|
-
const cleanResourceName = resourceName.startsWith("/")
|
|
224
|
-
? resourceName.slice(1)
|
|
225
|
-
: resourceName;
|
|
226
|
-
const funcPath = path.join(functionsDir, `${cleanResourceName}.func`);
|
|
227
|
-
if (!fs.existsSync(funcPath)) {
|
|
228
|
-
console.warn(`Function directory not found: ${funcPath}`);
|
|
229
|
-
continue;
|
|
230
|
-
}
|
|
231
|
-
// Read .vc-config.json to get handler file name
|
|
233
|
+
// Read .vc-config.json to get handler and filePathMap
|
|
232
234
|
const vcConfigPath = path.join(funcPath, ".vc-config.json");
|
|
233
235
|
let handlerFile = "handler.js"; // default
|
|
236
|
+
let filePathMap = {};
|
|
234
237
|
if (fs.existsSync(vcConfigPath)) {
|
|
235
238
|
try {
|
|
236
239
|
const vcConfig = JSON.parse(fs.readFileSync(vcConfigPath, "utf8"));
|
|
237
240
|
if (vcConfig.handler) {
|
|
238
241
|
handlerFile = vcConfig.handler;
|
|
239
242
|
}
|
|
243
|
+
if (vcConfig.filePathMap &&
|
|
244
|
+
typeof vcConfig.filePathMap === "object") {
|
|
245
|
+
filePathMap = vcConfig.filePathMap;
|
|
246
|
+
}
|
|
240
247
|
}
|
|
241
248
|
catch (error) {
|
|
242
249
|
console.warn(`Warning: Could not read .vc-config.json from ${funcPath}: ${error.message}`);
|
|
@@ -280,6 +287,37 @@ export function packageFunctions(options) {
|
|
|
280
287
|
}
|
|
281
288
|
};
|
|
282
289
|
copyRecursive(funcPath, tempZipDir);
|
|
290
|
+
// Copy files/dirs from filePathMap (paths relative to project root -> dest path in bundle)
|
|
291
|
+
// baseDir is .vercel/output or .next/output, so project root is two levels up
|
|
292
|
+
const projectRoot = path.join(baseDir, "..", "..");
|
|
293
|
+
for (const [from, to] of Object.entries(filePathMap)) {
|
|
294
|
+
const fromNormalized = from.replace(/^\//, "").replace(/\/$/, "");
|
|
295
|
+
const toNormalized = to.replace(/^\//, "").replace(/\/$/, "");
|
|
296
|
+
const sourcePath = path.join(projectRoot, fromNormalized);
|
|
297
|
+
const destPath = path.join(tempZipDir, toNormalized);
|
|
298
|
+
if (!fs.existsSync(sourcePath)) {
|
|
299
|
+
console.warn(`Warning: filePathMap source not found: ${sourcePath} (from: ${from})`);
|
|
300
|
+
continue;
|
|
301
|
+
}
|
|
302
|
+
// Resolve symlinks so we copy actual content (e.g. node_modules may be a symlink)
|
|
303
|
+
let resolvedSource = sourcePath;
|
|
304
|
+
try {
|
|
305
|
+
resolvedSource = fs.realpathSync(sourcePath);
|
|
306
|
+
}
|
|
307
|
+
catch {
|
|
308
|
+
// If realpath fails, use sourcePath as-is
|
|
309
|
+
}
|
|
310
|
+
const stat = fs.statSync(resolvedSource);
|
|
311
|
+
if (stat.isFile()) {
|
|
312
|
+
fs.mkdirSync(path.dirname(destPath), { recursive: true });
|
|
313
|
+
fs.copyFileSync(resolvedSource, destPath);
|
|
314
|
+
}
|
|
315
|
+
else if (stat.isDirectory()) {
|
|
316
|
+
fs.mkdirSync(destPath, { recursive: true });
|
|
317
|
+
copyRecursive(resolvedSource, destPath);
|
|
318
|
+
}
|
|
319
|
+
// Skip other types (e.g. broken symlinks)
|
|
320
|
+
}
|
|
283
321
|
// Write handler wrapper as handler.js in temp directory
|
|
284
322
|
const handlerWrapperPath = path.join(tempZipDir, "handler.js");
|
|
285
323
|
fs.writeFileSync(handlerWrapperPath, handlerWrapperCode);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-functions.js","sourceRoot":"","sources":["../../src/commands/package-functions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAQrD;;GAEG;AACH,SAAS,sBAAsB,CAAC,WAAmB;IACjD,OAAO;;6BAEoB,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiL5D,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAgC;IAC/D,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IAElD,uCAAuC;IACvC,MAAM,OAAO,GAAG,sBAAsB,CAAC,eAAe,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAErD,6BAA6B;IAC7B,IAAI,oBAA4B,CAAC;IACjC,IAAI,YAAY,EAAE,CAAC;QACjB,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACpD,CAAC;SAAM,CAAC;QACN,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,4BAA4B,oBAAoB,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,0BAA0B;IAC1B,MAAM,eAAe,GAAG,EAAE,CAAC,YAAY,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;IACtE,MAAM,QAAQ,GAAuB,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAEjE,MAAM,cAAc,GAAG,QAAQ,CAAC,cAAc,IAAI,EAAE,CAAC;IAErD,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;QAC1E,OAAO;IACT,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"package-functions.js","sourceRoot":"","sources":["../../src/commands/package-functions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAQrD;;GAEG;AACH,SAAS,sBAAsB,CAAC,WAAmB;IACjD,OAAO;;6BAEoB,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiL5D,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAgC;IAC/D,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IAElD,uCAAuC;IACvC,MAAM,OAAO,GAAG,sBAAsB,CAAC,eAAe,CAAC,CAAC;IACxD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAErD,6BAA6B;IAC7B,IAAI,oBAA4B,CAAC;IACjC,IAAI,YAAY,EAAE,CAAC;QACjB,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IACpD,CAAC;SAAM,CAAC;QACN,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE,CAAC;QACzC,MAAM,IAAI,KAAK,CAAC,4BAA4B,oBAAoB,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,0BAA0B;IAC1B,MAAM,eAAe,GAAG,EAAE,CAAC,YAAY,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;IACtE,MAAM,QAAQ,GAAuB,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAEjE,MAAM,cAAc,GAAG,QAAQ,CAAC,cAAc,IAAI,EAAE,CAAC;IAErD,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;QAC1E,OAAO;IACT,CAAC;IAED,wEAAwE;IACxE,MAAM,oBAAoB,GAAG,IAAI,GAAG,EAGjC,CAAC;IACJ,KAAK,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QAClE,IAAI,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAS;QAC7C,MAAM,iBAAiB,GAAG,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC;YACpD,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;YACvB,CAAC,CAAC,YAAY,CAAC;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,iBAAiB,OAAO,CAAC,CAAC;QACtE,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,oBAAoB,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CACT,aAAa,oBAAoB,CAAC,IAAI,6BAA6B,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,eAAe,CACrH,CAAC;IAEF,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,IAAI,oBAAoB,EAAE,CAAC;QACtE,IAAI,CAAC;YACH,sDAAsD;YACtD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;YAC5D,IAAI,WAAW,GAAG,YAAY,CAAC,CAAC,UAAU;YAC1C,IAAI,WAAW,GAA2B,EAAE,CAAC;YAE7C,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;oBACnE,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;wBACrB,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC;oBACjC,CAAC;oBACD,IACE,QAAQ,CAAC,WAAW;wBACpB,OAAO,QAAQ,CAAC,WAAW,KAAK,QAAQ,EACxC,CAAC;wBACD,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;oBACrC,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAU,EAAE,CAAC;oBACpB,OAAO,CAAC,IAAI,CACV,gDAAgD,QAAQ,KAAK,KAAK,CAAC,OAAO,EAAE,CAC7E,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,yBAAyB;YACzB,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;YAE/D,6CAA6C;YAC7C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,IAAI,EAAE,CAAC,CAAC;YAC1D,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAE9C,gGAAgG;YAChG,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;YACxC,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,IAAY,EAAE,EAAE;gBAClD,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC7D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;oBAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;oBAE7C,IAAI,UAAU,GAAG,OAAO,CAAC;oBACzB,IAAI,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;oBAChC,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;wBAC3B,IAAI,CAAC;4BACH,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;4BACtC,IAAI,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC;gCAAE,SAAS,CAAC,uBAAuB;4BACpE,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;4BAC9B,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;4BACrC,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;wBAC7B,CAAC;wBAAC,MAAM,CAAC;4BACP,wDAAwD;4BACxD,SAAS;wBACX,CAAC;oBACH,CAAC;oBAED,IAAI,KAAK,EAAE,CAAC;wBACV,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;wBAC5C,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;oBACtC,CAAC;yBAAM,CAAC;wBACN,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;oBACxC,CAAC;gBACH,CAAC;YACH,CAAC,CAAC;YAEF,aAAa,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YAEpC,2FAA2F;YAC3F,8EAA8E;YAC9E,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACnD,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;gBACrD,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAClE,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;gBAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;gBAErD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC/B,OAAO,CAAC,IAAI,CACV,0CAA0C,UAAU,WAAW,IAAI,GAAG,CACvE,CAAC;oBACF,SAAS;gBACX,CAAC;gBAED,kFAAkF;gBAClF,IAAI,cAAc,GAAG,UAAU,CAAC;gBAChC,IAAI,CAAC;oBACH,cAAc,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;gBAC/C,CAAC;gBAAC,MAAM,CAAC;oBACP,0CAA0C;gBAC5C,CAAC;gBAED,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;gBACzC,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;oBAClB,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC1D,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;gBAC5C,CAAC;qBAAM,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;oBAC9B,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC5C,aAAa,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;gBAC1C,CAAC;gBACD,0CAA0C;YAC5C,CAAC;YAED,wDAAwD;YACxD,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;YAC/D,EAAE,CAAC,aAAa,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;YAEzD,kBAAkB;YAClB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,MAAM,CAAC,CAAC;YAElD,6CAA6C;YAC7C,IAAI,CAAC;gBACH,QAAQ,CACN,OAAO,UAAU,gBAAgB,OAAO,sBAAsB,EAC9D,EAAE,KAAK,EAAE,SAAS,EAAE,CACrB,CAAC;gBACF,OAAO,CAAC,GAAG,CAAC,cAAc,YAAY,OAAO,IAAI,MAAM,CAAC,CAAC;YAC3D,CAAC;YAAC,OAAO,QAAa,EAAE,CAAC;gBACvB,OAAO,CAAC,KAAK,CACX,4BAA4B,YAAY,KAAK,QAAQ,CAAC,OAAO,EAAE,CAChE,CAAC;gBACF,0BAA0B;gBAC1B,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACxD,SAAS;YACX,CAAC;YAED,0BAA0B;YAC1B,EAAE,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,mBAAmB,YAAY,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACnE,8BAA8B;QAChC,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;AAChD,CAAC"}
|