@workflow/builders 4.0.1-beta.9 → 5.0.0-beta.0
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/README.md +1 -1
- package/dist/apply-swc-transform.d.ts +19 -4
- package/dist/apply-swc-transform.d.ts.map +1 -1
- package/dist/apply-swc-transform.js +62 -7
- package/dist/apply-swc-transform.js.map +1 -1
- package/dist/base-builder.d.ts +77 -22
- package/dist/base-builder.d.ts.map +1 -1
- package/dist/base-builder.js +667 -202
- package/dist/base-builder.js.map +1 -1
- package/dist/build-queue.d.ts +18 -0
- package/dist/build-queue.d.ts.map +1 -0
- package/dist/build-queue.js +26 -0
- package/dist/build-queue.js.map +1 -0
- package/dist/config-helpers.d.ts +32 -0
- package/dist/config-helpers.d.ts.map +1 -1
- package/dist/config-helpers.js +61 -0
- package/dist/config-helpers.js.map +1 -1
- package/dist/constants.d.ts +2 -4
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +2 -4
- package/dist/constants.js.map +1 -1
- package/dist/discover-entries-esbuild-plugin.d.ts +5 -6
- package/dist/discover-entries-esbuild-plugin.d.ts.map +1 -1
- package/dist/discover-entries-esbuild-plugin.js +98 -30
- package/dist/discover-entries-esbuild-plugin.js.map +1 -1
- package/dist/discover-entries-esbuild-plugin.test.d.ts +2 -0
- package/dist/discover-entries-esbuild-plugin.test.d.ts.map +1 -0
- package/dist/discover-entries-esbuild-plugin.test.js +110 -0
- package/dist/discover-entries-esbuild-plugin.test.js.map +1 -0
- package/dist/esbuild-tsconfig.d.ts +13 -0
- package/dist/esbuild-tsconfig.d.ts.map +1 -0
- package/dist/esbuild-tsconfig.js +25 -0
- package/dist/esbuild-tsconfig.js.map +1 -0
- package/dist/esbuild-tsconfig.test.d.ts +2 -0
- package/dist/esbuild-tsconfig.test.d.ts.map +1 -0
- package/dist/esbuild-tsconfig.test.js +94 -0
- package/dist/esbuild-tsconfig.test.js.map +1 -0
- package/dist/get-input-files.test.d.ts +2 -0
- package/dist/get-input-files.test.d.ts.map +1 -0
- package/dist/get-input-files.test.js +121 -0
- package/dist/get-input-files.test.js.map +1 -0
- package/dist/index.d.ts +10 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -2
- package/dist/index.js.map +1 -1
- package/dist/module-specifier.d.ts +85 -0
- package/dist/module-specifier.d.ts.map +1 -0
- package/dist/module-specifier.js +448 -0
- package/dist/module-specifier.js.map +1 -0
- package/dist/module-specifier.test.d.ts +2 -0
- package/dist/module-specifier.test.d.ts.map +1 -0
- package/dist/module-specifier.test.js +240 -0
- package/dist/module-specifier.test.js.map +1 -0
- package/dist/node-module-esbuild-plugin.d.ts +37 -0
- package/dist/node-module-esbuild-plugin.d.ts.map +1 -1
- package/dist/node-module-esbuild-plugin.js +364 -7
- package/dist/node-module-esbuild-plugin.js.map +1 -1
- package/dist/node-module-esbuild-plugin.test.js +461 -146
- package/dist/node-module-esbuild-plugin.test.js.map +1 -1
- package/dist/pseudo-package-esbuild-plugin.d.ts +20 -0
- package/dist/pseudo-package-esbuild-plugin.d.ts.map +1 -0
- package/dist/pseudo-package-esbuild-plugin.js +47 -0
- package/dist/pseudo-package-esbuild-plugin.js.map +1 -0
- package/dist/pseudo-package-esbuild-plugin.test.d.ts +2 -0
- package/dist/pseudo-package-esbuild-plugin.test.d.ts.map +1 -0
- package/dist/pseudo-package-esbuild-plugin.test.js +315 -0
- package/dist/pseudo-package-esbuild-plugin.test.js.map +1 -0
- package/dist/request-converter.d.ts +3 -0
- package/dist/request-converter.d.ts.map +1 -0
- package/dist/request-converter.js +14 -0
- package/dist/request-converter.js.map +1 -0
- package/dist/serde-checker.d.ts +70 -0
- package/dist/serde-checker.d.ts.map +1 -0
- package/dist/serde-checker.js +118 -0
- package/dist/serde-checker.js.map +1 -0
- package/dist/standalone.d.ts +3 -0
- package/dist/standalone.d.ts.map +1 -1
- package/dist/standalone.js +37 -13
- package/dist/standalone.js.map +1 -1
- package/dist/swc-esbuild-plugin.d.ts +23 -2
- package/dist/swc-esbuild-plugin.d.ts.map +1 -1
- package/dist/swc-esbuild-plugin.js +133 -43
- package/dist/swc-esbuild-plugin.js.map +1 -1
- package/dist/swc-esbuild-plugin.test.d.ts +2 -0
- package/dist/swc-esbuild-plugin.test.d.ts.map +1 -0
- package/dist/swc-esbuild-plugin.test.js +493 -0
- package/dist/swc-esbuild-plugin.test.js.map +1 -0
- package/dist/transform-utils.d.ts +68 -0
- package/dist/transform-utils.d.ts.map +1 -0
- package/dist/transform-utils.js +102 -0
- package/dist/transform-utils.js.map +1 -0
- package/dist/transform-utils.test.d.ts +2 -0
- package/dist/transform-utils.test.d.ts.map +1 -0
- package/dist/transform-utils.test.js +302 -0
- package/dist/transform-utils.test.js.map +1 -0
- package/dist/types.d.ts +31 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -1
- package/dist/vercel-build-output-api.d.ts.map +1 -1
- package/dist/vercel-build-output-api.js +38 -14
- package/dist/vercel-build-output-api.js.map +1 -1
- package/dist/workflow-alias.d.ts +3 -0
- package/dist/workflow-alias.d.ts.map +1 -0
- package/dist/workflow-alias.js +65 -0
- package/dist/workflow-alias.js.map +1 -0
- package/dist/workflow-alias.test.d.ts +2 -0
- package/dist/workflow-alias.test.d.ts.map +1 -0
- package/dist/workflow-alias.test.js +53 -0
- package/dist/workflow-alias.test.js.map +1 -0
- package/dist/workflows-extractor.d.ts +92 -0
- package/dist/workflows-extractor.d.ts.map +1 -0
- package/dist/workflows-extractor.js +1476 -0
- package/dist/workflows-extractor.js.map +1 -0
- package/package.json +14 -13
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-alias.d.ts","sourceRoot":"","sources":["../src/workflow-alias.ts"],"names":[],"mappings":"AAgCA,wBAAgB,iCAAiC,IAAI,IAAI,CAExD;AAED,wBAAsB,gCAAgC,CACpD,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAgD7B"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { access, realpath } from 'node:fs/promises';
|
|
2
|
+
import { resolve } from 'node:path';
|
|
3
|
+
const workflowAliasResolutionCache = new Map();
|
|
4
|
+
const WORKFLOW_ALIAS_ROOTS = [
|
|
5
|
+
'src/workflows',
|
|
6
|
+
'workflows',
|
|
7
|
+
'src/app',
|
|
8
|
+
'app',
|
|
9
|
+
'src/pages',
|
|
10
|
+
'pages',
|
|
11
|
+
];
|
|
12
|
+
function getAliasRelativePathCandidates(normalizedAbsolutePath) {
|
|
13
|
+
const candidates = new Set();
|
|
14
|
+
for (const aliasRoot of WORKFLOW_ALIAS_ROOTS) {
|
|
15
|
+
const marker = `/${aliasRoot}/`;
|
|
16
|
+
const markerIndex = normalizedAbsolutePath.lastIndexOf(marker);
|
|
17
|
+
if (markerIndex === -1) {
|
|
18
|
+
continue;
|
|
19
|
+
}
|
|
20
|
+
candidates.add(normalizedAbsolutePath.slice(markerIndex + 1));
|
|
21
|
+
}
|
|
22
|
+
return Array.from(candidates);
|
|
23
|
+
}
|
|
24
|
+
export function clearWorkflowAliasResolutionCache() {
|
|
25
|
+
workflowAliasResolutionCache.clear();
|
|
26
|
+
}
|
|
27
|
+
export async function resolveWorkflowAliasRelativePath(absoluteFilePath, workingDir) {
|
|
28
|
+
const normalizedAbsolutePath = absoluteFilePath.replace(/\\/g, '/');
|
|
29
|
+
const cacheKey = `${workingDir}::${normalizedAbsolutePath}`;
|
|
30
|
+
const cached = workflowAliasResolutionCache.get(cacheKey);
|
|
31
|
+
if (cached) {
|
|
32
|
+
return cached;
|
|
33
|
+
}
|
|
34
|
+
const resolutionPromise = (async () => {
|
|
35
|
+
const resolvedFilePath = await realpath(absoluteFilePath).catch(() => undefined);
|
|
36
|
+
if (!resolvedFilePath) {
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
const normalizedResolvedFilePath = resolvedFilePath.replace(/\\/g, '/');
|
|
40
|
+
const aliasCandidates = getAliasRelativePathCandidates(normalizedAbsolutePath);
|
|
41
|
+
if (aliasCandidates.length === 0) {
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
for (const aliasRelativePath of aliasCandidates) {
|
|
45
|
+
const candidatePath = resolve(workingDir, aliasRelativePath);
|
|
46
|
+
try {
|
|
47
|
+
await access(candidatePath);
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
const resolvedCandidatePath = await realpath(candidatePath).catch(() => undefined);
|
|
53
|
+
if (!resolvedCandidatePath) {
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
if (resolvedCandidatePath.replace(/\\/g, '/') === normalizedResolvedFilePath) {
|
|
57
|
+
return aliasRelativePath;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return undefined;
|
|
61
|
+
})();
|
|
62
|
+
workflowAliasResolutionCache.set(cacheKey, resolutionPromise);
|
|
63
|
+
return resolutionPromise;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=workflow-alias.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-alias.js","sourceRoot":"","sources":["../src/workflow-alias.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-alias.test.d.ts","sourceRoot":"","sources":["../src/workflow-alias.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { mkdtempSync, mkdirSync, rmSync, symlinkSync, writeFileSync, } from 'node:fs';
|
|
2
|
+
import { tmpdir } from 'node:os';
|
|
3
|
+
import { dirname, join } from 'node:path';
|
|
4
|
+
import { afterEach, beforeEach, describe, expect, it } from 'vitest';
|
|
5
|
+
import { clearWorkflowAliasResolutionCache, resolveWorkflowAliasRelativePath, } from './workflow-alias.js';
|
|
6
|
+
function writeFile(path) {
|
|
7
|
+
mkdirSync(dirname(path), { recursive: true });
|
|
8
|
+
writeFileSync(path, "'use workflow';\n", 'utf-8');
|
|
9
|
+
}
|
|
10
|
+
describe('resolveWorkflowAliasRelativePath', () => {
|
|
11
|
+
let testRoot;
|
|
12
|
+
let workingDir;
|
|
13
|
+
beforeEach(() => {
|
|
14
|
+
clearWorkflowAliasResolutionCache();
|
|
15
|
+
testRoot = mkdtempSync(join(tmpdir(), 'workflow-alias-'));
|
|
16
|
+
workingDir = join(testRoot, 'project');
|
|
17
|
+
mkdirSync(workingDir, { recursive: true });
|
|
18
|
+
});
|
|
19
|
+
afterEach(() => {
|
|
20
|
+
clearWorkflowAliasResolutionCache();
|
|
21
|
+
rmSync(testRoot, { recursive: true, force: true });
|
|
22
|
+
});
|
|
23
|
+
it('maps files in workflows/ to workflows/* aliases', async () => {
|
|
24
|
+
const filePath = join(workingDir, 'workflows', 'foo.ts');
|
|
25
|
+
writeFile(filePath);
|
|
26
|
+
await expect(resolveWorkflowAliasRelativePath(filePath, workingDir)).resolves.toBe('workflows/foo.ts');
|
|
27
|
+
});
|
|
28
|
+
it('maps files in src/workflows/ to src/workflows/* aliases', async () => {
|
|
29
|
+
const filePath = join(workingDir, 'src', 'workflows', 'foo.ts');
|
|
30
|
+
writeFile(filePath);
|
|
31
|
+
await expect(resolveWorkflowAliasRelativePath(filePath, workingDir)).resolves.toBe('src/workflows/foo.ts');
|
|
32
|
+
});
|
|
33
|
+
it('returns undefined for files that are not under workflows paths', async () => {
|
|
34
|
+
const filePath = join(workingDir, 'lib', 'foo.ts');
|
|
35
|
+
writeFile(filePath);
|
|
36
|
+
await expect(resolveWorkflowAliasRelativePath(filePath, workingDir)).resolves.toBeUndefined();
|
|
37
|
+
});
|
|
38
|
+
it('returns undefined when basename matches but realpath differs', async () => {
|
|
39
|
+
const workflowFilePath = join(workingDir, 'workflows', 'foo.ts');
|
|
40
|
+
const externalFilePath = join(testRoot, 'external', 'workflows', 'foo.ts');
|
|
41
|
+
writeFile(workflowFilePath);
|
|
42
|
+
writeFile(externalFilePath);
|
|
43
|
+
await expect(resolveWorkflowAliasRelativePath(externalFilePath, workingDir)).resolves.toBeUndefined();
|
|
44
|
+
});
|
|
45
|
+
it('maps symlinked app files to app/* aliases', async () => {
|
|
46
|
+
const externalAppDir = join(testRoot, 'external', 'app');
|
|
47
|
+
const externalFilePath = join(externalAppDir, '.well-known', 'agent', 'v1', 'steps.ts');
|
|
48
|
+
writeFile(externalFilePath);
|
|
49
|
+
symlinkSync(externalAppDir, join(workingDir, 'app'), process.platform === 'win32' ? 'junction' : 'dir');
|
|
50
|
+
await expect(resolveWorkflowAliasRelativePath(externalFilePath, workingDir)).resolves.toBe('app/.well-known/agent/v1/steps.ts');
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
//# sourceMappingURL=workflow-alias.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-alias.test.js","sourceRoot":"","sources":["../src/workflow-alias.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Node metadata for control flow semantics
|
|
3
|
+
*/
|
|
4
|
+
export interface NodeMetadata {
|
|
5
|
+
loopId?: string;
|
|
6
|
+
loopIsAwait?: boolean;
|
|
7
|
+
conditionalId?: string;
|
|
8
|
+
conditionalBranch?: 'Then' | 'Else';
|
|
9
|
+
parallelGroupId?: string;
|
|
10
|
+
parallelMethod?: string;
|
|
11
|
+
/** Step is passed as a reference (callback/tool) rather than directly called */
|
|
12
|
+
isStepReference?: boolean;
|
|
13
|
+
/** Context where the step reference was found (e.g., "tools.getWeather.execute") */
|
|
14
|
+
referenceContext?: string;
|
|
15
|
+
/** This node is a tool step connected to a DurableAgent */
|
|
16
|
+
isTool?: boolean;
|
|
17
|
+
/** The name of the tool (key in tools object) */
|
|
18
|
+
toolName?: string;
|
|
19
|
+
/** This node represents a collection of tools (imported variable) */
|
|
20
|
+
isToolsCollection?: boolean;
|
|
21
|
+
/** The variable name of the tools collection */
|
|
22
|
+
toolsVariable?: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Graph node for workflow visualization
|
|
26
|
+
*/
|
|
27
|
+
export interface ManifestNode {
|
|
28
|
+
id: string;
|
|
29
|
+
type: string;
|
|
30
|
+
data: {
|
|
31
|
+
label: string;
|
|
32
|
+
nodeKind: string;
|
|
33
|
+
stepId?: string;
|
|
34
|
+
};
|
|
35
|
+
metadata?: NodeMetadata;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Graph edge for workflow control flow
|
|
39
|
+
*/
|
|
40
|
+
export interface ManifestEdge {
|
|
41
|
+
id: string;
|
|
42
|
+
source: string;
|
|
43
|
+
target: string;
|
|
44
|
+
type: 'default' | 'loop' | 'conditional' | 'parallel' | 'tool';
|
|
45
|
+
label?: string;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Graph data for a single workflow
|
|
49
|
+
*/
|
|
50
|
+
export interface WorkflowGraphData {
|
|
51
|
+
nodes: ManifestNode[];
|
|
52
|
+
edges: ManifestEdge[];
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Step entry in the manifest
|
|
56
|
+
*/
|
|
57
|
+
export interface ManifestStepEntry {
|
|
58
|
+
stepId: string;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Workflow entry in the manifest (includes graph data)
|
|
62
|
+
*/
|
|
63
|
+
export interface ManifestWorkflowEntry {
|
|
64
|
+
workflowId: string;
|
|
65
|
+
graph: WorkflowGraphData;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Manifest structure - single source of truth for all workflow metadata
|
|
69
|
+
*/
|
|
70
|
+
export interface Manifest {
|
|
71
|
+
version: string;
|
|
72
|
+
steps: {
|
|
73
|
+
[filePath: string]: {
|
|
74
|
+
[stepName: string]: ManifestStepEntry;
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
workflows: {
|
|
78
|
+
[filePath: string]: {
|
|
79
|
+
[workflowName: string]: ManifestWorkflowEntry;
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Extracts workflow graphs from a bundled workflow file.
|
|
85
|
+
* Returns workflow entries organized by file path, ready for merging into Manifest.
|
|
86
|
+
*/
|
|
87
|
+
export declare function extractWorkflowGraphs(bundlePath: string): Promise<{
|
|
88
|
+
[filePath: string]: {
|
|
89
|
+
[workflowName: string]: ManifestWorkflowEntry;
|
|
90
|
+
};
|
|
91
|
+
}>;
|
|
92
|
+
//# sourceMappingURL=workflows-extractor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflows-extractor.d.ts","sourceRoot":"","sources":["../src/workflows-extractor.ts"],"names":[],"mappings":"AAqIA;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACpC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gFAAgF;IAChF,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,oFAAoF;IACpF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,2DAA2D;IAC3D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,gDAAgD;IAChD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,QAAQ,CAAC,EAAE,YAAY,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,aAAa,GAAG,UAAU,GAAG,MAAM,CAAC;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,iBAAiB,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE;QACL,CAAC,QAAQ,EAAE,MAAM,GAAG;YAClB,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAAC;SACvC,CAAC;KACH,CAAC;IACF,SAAS,EAAE;QACT,CAAC,QAAQ,EAAE,MAAM,GAAG;YAClB,CAAC,YAAY,EAAE,MAAM,GAAG,qBAAqB,CAAC;SAC/C,CAAC;KACH,CAAC;CACH;AAMD;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IACvE,CAAC,QAAQ,EAAE,MAAM,GAAG;QAClB,CAAC,YAAY,EAAE,MAAM,GAAG,qBAAqB,CAAC;KAC/C,CAAC;CACH,CAAC,CA8BD"}
|