@ai-stack/payloadcms 3.0.0-beta.104.3 → 3.0.0-beta.111
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 +3 -2
- package/dist/ai/models/anthropic/generateRichText.d.ts.map +1 -1
- package/dist/ai/models/anthropic/generateRichText.js +2 -2
- package/dist/ai/models/anthropic/generateRichText.js.map +1 -1
- package/dist/ai/models/anthropic/index.d.ts.map +1 -1
- package/dist/ai/models/anthropic/index.js +8 -32
- package/dist/ai/models/anthropic/index.js.map +1 -1
- package/dist/ai/models/elevenLabs/index.d.ts.map +1 -1
- package/dist/ai/models/elevenLabs/index.js +4 -3
- package/dist/ai/models/elevenLabs/index.js.map +1 -1
- package/dist/ai/models/openai/generateRichText.js +2 -2
- package/dist/ai/models/openai/generateRichText.js.map +1 -1
- package/dist/ai/models/openai/index.d.ts.map +1 -1
- package/dist/ai/models/openai/index.js +9 -35
- package/dist/ai/models/openai/index.js.map +1 -1
- package/dist/ai/prompts.js +1 -1
- package/dist/ai/prompts.js.map +1 -1
- package/dist/ai/schemas/lexicalJsonSchema.d.ts +2 -0
- package/dist/ai/schemas/lexicalJsonSchema.d.ts.map +1 -0
- package/dist/ai/schemas/lexicalJsonSchema.js +317 -0
- package/dist/ai/schemas/lexicalJsonSchema.js.map +1 -0
- package/dist/ai/utils/systemGenerate.d.ts +5 -0
- package/dist/ai/utils/systemGenerate.d.ts.map +1 -0
- package/dist/ai/utils/{generateSeedPrompt.js → systemGenerate.js} +2 -2
- package/dist/ai/utils/systemGenerate.js.map +1 -0
- package/dist/collections/Instructions.d.ts +1 -1
- package/dist/collections/Instructions.d.ts.map +1 -1
- package/dist/collections/Instructions.js +177 -85
- package/dist/collections/Instructions.js.map +1 -1
- package/dist/defaults.d.ts +1 -1
- package/dist/defaults.d.ts.map +1 -1
- package/dist/defaults.js +1 -1
- package/dist/defaults.js.map +1 -1
- package/dist/endpoints/fetchFields.d.ts +3 -0
- package/dist/endpoints/fetchFields.d.ts.map +1 -0
- package/dist/endpoints/fetchFields.js +21 -0
- package/dist/endpoints/fetchFields.js.map +1 -0
- package/dist/endpoints/index.d.ts.map +1 -1
- package/dist/endpoints/index.js +12 -17
- package/dist/endpoints/index.js.map +1 -1
- package/dist/fields/LexicalEditor/ComposeFeatureComponent.d.ts.map +1 -1
- package/dist/fields/LexicalEditor/ComposeFeatureComponent.js +1 -0
- package/dist/fields/LexicalEditor/ComposeFeatureComponent.js.map +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +11 -15
- package/dist/init.js.map +1 -1
- package/dist/plugin.d.ts.map +1 -1
- package/dist/plugin.js +9 -34
- package/dist/plugin.js.map +1 -1
- package/dist/providers/InstructionsProvider/InstructionsProvider.d.ts.map +1 -1
- package/dist/providers/InstructionsProvider/InstructionsProvider.js +8 -6
- package/dist/providers/InstructionsProvider/InstructionsProvider.js.map +1 -1
- package/dist/providers/InstructionsProvider/useInstructions.js +1 -1
- package/dist/providers/InstructionsProvider/useInstructions.js.map +1 -1
- package/dist/types.d.ts +9 -42
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -4
- package/dist/types.js.map +1 -1
- package/dist/ui/Compose/Compose.d.ts.map +1 -1
- package/dist/ui/Compose/Compose.js +6 -4
- package/dist/ui/Compose/Compose.js.map +1 -1
- package/dist/ui/Compose/hooks/useGenerate.d.ts.map +1 -1
- package/dist/ui/Compose/hooks/useGenerate.js +15 -16
- package/dist/ui/Compose/hooks/useGenerate.js.map +1 -1
- package/dist/utilities/updateFieldsConfig.d.ts.map +1 -1
- package/dist/utilities/updateFieldsConfig.js +6 -4
- package/dist/utilities/updateFieldsConfig.js.map +1 -1
- package/package.json +6 -9
- package/dist/ai/schemas/lexical.schema.d.ts +0 -31
- package/dist/ai/schemas/lexical.schema.d.ts.map +0 -1
- package/dist/ai/schemas/lexical.schema.js +0 -102
- package/dist/ai/schemas/lexical.schema.js.map +0 -1
- package/dist/ai/utils/generateSeedPrompt.d.ts +0 -5
- package/dist/ai/utils/generateSeedPrompt.d.ts.map +0 -1
- package/dist/ai/utils/generateSeedPrompt.js.map +0 -1
- package/dist/utilities/jsonToZod.d.ts +0 -3
- package/dist/utilities/jsonToZod.d.ts.map +0 -1
- package/dist/utilities/jsonToZod.js +0 -33
- package/dist/utilities/jsonToZod.js.map +0 -1
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
export const LexicalBaseNode = z.object({
|
|
3
|
-
type: z.string(),
|
|
4
|
-
children: z.array(z.any()).optional(),
|
|
5
|
-
direction: z.enum([
|
|
6
|
-
'ltr'
|
|
7
|
-
]).nullable().optional(),
|
|
8
|
-
format: z.string().optional(),
|
|
9
|
-
indent: z.number().optional(),
|
|
10
|
-
version: z.number().optional()
|
|
11
|
-
});
|
|
12
|
-
export const lexicalSchema = (customNodes)=>{
|
|
13
|
-
const BaseNode = z.object({
|
|
14
|
-
type: z.string(),
|
|
15
|
-
children: z.array(z.lazy(()=>Node)).optional(),
|
|
16
|
-
direction: z.enum([
|
|
17
|
-
'ltr'
|
|
18
|
-
]).nullable().optional(),
|
|
19
|
-
format: z.string().optional(),
|
|
20
|
-
indent: z.number().optional(),
|
|
21
|
-
version: z.number().optional()
|
|
22
|
-
});
|
|
23
|
-
const TextNode = BaseNode.extend({
|
|
24
|
-
type: z.literal('text'),
|
|
25
|
-
format: z.number().optional(),
|
|
26
|
-
text: z.string()
|
|
27
|
-
});
|
|
28
|
-
const LinkNode = BaseNode.extend({
|
|
29
|
-
id: z.string(),
|
|
30
|
-
type: z.literal('link'),
|
|
31
|
-
fields: z.object({
|
|
32
|
-
linkType: z.string(),
|
|
33
|
-
newTab: z.boolean(),
|
|
34
|
-
url: z.string()
|
|
35
|
-
})
|
|
36
|
-
});
|
|
37
|
-
const ListItemNode = BaseNode.extend({
|
|
38
|
-
type: z.literal('listitem'),
|
|
39
|
-
checked: z.boolean().optional(),
|
|
40
|
-
value: z.number()
|
|
41
|
-
});
|
|
42
|
-
const ListNode = BaseNode.extend({
|
|
43
|
-
type: z.literal('list'),
|
|
44
|
-
listType: z.enum([
|
|
45
|
-
'check',
|
|
46
|
-
'number',
|
|
47
|
-
'bullet'
|
|
48
|
-
]),
|
|
49
|
-
start: z.number(),
|
|
50
|
-
tag: z.enum([
|
|
51
|
-
'ul',
|
|
52
|
-
'ol'
|
|
53
|
-
])
|
|
54
|
-
});
|
|
55
|
-
const HeadingNode = BaseNode.extend({
|
|
56
|
-
type: z.literal('heading'),
|
|
57
|
-
tag: z.enum([
|
|
58
|
-
'h1',
|
|
59
|
-
'h2',
|
|
60
|
-
'h3',
|
|
61
|
-
'h4'
|
|
62
|
-
])
|
|
63
|
-
});
|
|
64
|
-
// Example of custom node - wip
|
|
65
|
-
const MediaNode = BaseNode.extend({
|
|
66
|
-
type: z.literal('block'),
|
|
67
|
-
version: z.literal(2),
|
|
68
|
-
fields: z.object({
|
|
69
|
-
id: z.string(),
|
|
70
|
-
media: z.string(),
|
|
71
|
-
position: z.enum([
|
|
72
|
-
'fullscreen',
|
|
73
|
-
'default'
|
|
74
|
-
]),
|
|
75
|
-
blockName: z.string(),
|
|
76
|
-
blockType: z.literal('mediaBlock')
|
|
77
|
-
})
|
|
78
|
-
});
|
|
79
|
-
const Node = z.union([
|
|
80
|
-
TextNode,
|
|
81
|
-
LinkNode,
|
|
82
|
-
ListItemNode,
|
|
83
|
-
ListNode,
|
|
84
|
-
HeadingNode,
|
|
85
|
-
BaseNode.extend({
|
|
86
|
-
type: z.enum([
|
|
87
|
-
'paragraph',
|
|
88
|
-
'quote',
|
|
89
|
-
'horizontalrule'
|
|
90
|
-
])
|
|
91
|
-
}),
|
|
92
|
-
...customNodes || []
|
|
93
|
-
]);
|
|
94
|
-
const RootNode = BaseNode.extend({
|
|
95
|
-
type: z.literal('root')
|
|
96
|
-
});
|
|
97
|
-
return z.object({
|
|
98
|
-
root: RootNode
|
|
99
|
-
});
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
//# sourceMappingURL=lexical.schema.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/ai/schemas/lexical.schema.ts"],"sourcesContent":["import { z } from 'zod'\n\nexport const LexicalBaseNode = z.object({\n type: z.string(),\n children: z.array(z.any()).optional(),\n direction: z.enum(['ltr']).nullable().optional(),\n format: z.string().optional(),\n indent: z.number().optional(),\n version: z.number().optional(),\n})\n\nexport const lexicalSchema = (customNodes?: (typeof LexicalBaseNode)[]) => {\n const BaseNode = z.object({\n type: z.string(),\n children: z.array(z.lazy(() => Node)).optional(),\n direction: z.enum(['ltr']).nullable().optional(),\n format: z.string().optional(),\n indent: z.number().optional(),\n version: z.number().optional(),\n })\n\n const TextNode = BaseNode.extend({\n type: z.literal('text'),\n format: z.number().optional(),\n text: z.string(),\n })\n\n const LinkNode = BaseNode.extend({\n id: z.string(),\n type: z.literal('link'),\n fields: z.object({\n linkType: z.string(),\n newTab: z.boolean(),\n url: z.string(),\n }),\n })\n\n const ListItemNode = BaseNode.extend({\n type: z.literal('listitem'),\n checked: z.boolean().optional(),\n value: z.number(),\n })\n\n const ListNode = BaseNode.extend({\n type: z.literal('list'),\n listType: z.enum(['check', 'number', 'bullet']),\n start: z.number(),\n tag: z.enum(['ul', 'ol']),\n })\n\n const HeadingNode = BaseNode.extend({\n type: z.literal('heading'),\n tag: z.enum(['h1', 'h2', 'h3', 'h4']),\n })\n\n // Example of custom node - wip\n const MediaNode = BaseNode.extend({\n type: z.literal('block'),\n version: z.literal(2),\n fields: z.object({\n id: z.string(),\n media: z.string(),\n position: z.enum(['fullscreen', 'default']),\n blockName: z.string(),\n blockType: z.literal('mediaBlock'),\n }),\n })\n\n const Node = z.union([\n TextNode,\n LinkNode,\n ListItemNode,\n ListNode,\n HeadingNode,\n BaseNode.extend({ type: z.enum(['paragraph', 'quote', 'horizontalrule']) }),\n ...(customNodes || []),\n ])\n\n const RootNode = BaseNode.extend({\n type: z.literal('root'),\n })\n\n return z.object({\n root: RootNode,\n })\n}\n"],"names":["z","LexicalBaseNode","object","type","string","children","array","any","optional","direction","enum","nullable","format","indent","number","version","lexicalSchema","customNodes","BaseNode","lazy","Node","TextNode","extend","literal","text","LinkNode","id","fields","linkType","newTab","boolean","url","ListItemNode","checked","value","ListNode","listType","start","tag","HeadingNode","MediaNode","media","position","blockName","blockType","union","RootNode","root"],"mappings":"AAAA,SAASA,CAAC,QAAQ,MAAK;AAEvB,OAAO,MAAMC,kBAAkBD,EAAEE,MAAM,CAAC;IACtCC,MAAMH,EAAEI,MAAM;IACdC,UAAUL,EAAEM,KAAK,CAACN,EAAEO,GAAG,IAAIC,QAAQ;IACnCC,WAAWT,EAAEU,IAAI,CAAC;QAAC;KAAM,EAAEC,QAAQ,GAAGH,QAAQ;IAC9CI,QAAQZ,EAAEI,MAAM,GAAGI,QAAQ;IAC3BK,QAAQb,EAAEc,MAAM,GAAGN,QAAQ;IAC3BO,SAASf,EAAEc,MAAM,GAAGN,QAAQ;AAC9B,GAAE;AAEF,OAAO,MAAMQ,gBAAgB,CAACC;IAC5B,MAAMC,WAAWlB,EAAEE,MAAM,CAAC;QACxBC,MAAMH,EAAEI,MAAM;QACdC,UAAUL,EAAEM,KAAK,CAACN,EAAEmB,IAAI,CAAC,IAAMC,OAAOZ,QAAQ;QAC9CC,WAAWT,EAAEU,IAAI,CAAC;YAAC;SAAM,EAAEC,QAAQ,GAAGH,QAAQ;QAC9CI,QAAQZ,EAAEI,MAAM,GAAGI,QAAQ;QAC3BK,QAAQb,EAAEc,MAAM,GAAGN,QAAQ;QAC3BO,SAASf,EAAEc,MAAM,GAAGN,QAAQ;IAC9B;IAEA,MAAMa,WAAWH,SAASI,MAAM,CAAC;QAC/BnB,MAAMH,EAAEuB,OAAO,CAAC;QAChBX,QAAQZ,EAAEc,MAAM,GAAGN,QAAQ;QAC3BgB,MAAMxB,EAAEI,MAAM;IAChB;IAEA,MAAMqB,WAAWP,SAASI,MAAM,CAAC;QAC/BI,IAAI1B,EAAEI,MAAM;QACZD,MAAMH,EAAEuB,OAAO,CAAC;QAChBI,QAAQ3B,EAAEE,MAAM,CAAC;YACf0B,UAAU5B,EAAEI,MAAM;YAClByB,QAAQ7B,EAAE8B,OAAO;YACjBC,KAAK/B,EAAEI,MAAM;QACf;IACF;IAEA,MAAM4B,eAAed,SAASI,MAAM,CAAC;QACnCnB,MAAMH,EAAEuB,OAAO,CAAC;QAChBU,SAASjC,EAAE8B,OAAO,GAAGtB,QAAQ;QAC7B0B,OAAOlC,EAAEc,MAAM;IACjB;IAEA,MAAMqB,WAAWjB,SAASI,MAAM,CAAC;QAC/BnB,MAAMH,EAAEuB,OAAO,CAAC;QAChBa,UAAUpC,EAAEU,IAAI,CAAC;YAAC;YAAS;YAAU;SAAS;QAC9C2B,OAAOrC,EAAEc,MAAM;QACfwB,KAAKtC,EAAEU,IAAI,CAAC;YAAC;YAAM;SAAK;IAC1B;IAEA,MAAM6B,cAAcrB,SAASI,MAAM,CAAC;QAClCnB,MAAMH,EAAEuB,OAAO,CAAC;QAChBe,KAAKtC,EAAEU,IAAI,CAAC;YAAC;YAAM;YAAM;YAAM;SAAK;IACtC;IAEA,+BAA+B;IAC/B,MAAM8B,YAAYtB,SAASI,MAAM,CAAC;QAChCnB,MAAMH,EAAEuB,OAAO,CAAC;QAChBR,SAASf,EAAEuB,OAAO,CAAC;QACnBI,QAAQ3B,EAAEE,MAAM,CAAC;YACfwB,IAAI1B,EAAEI,MAAM;YACZqC,OAAOzC,EAAEI,MAAM;YACfsC,UAAU1C,EAAEU,IAAI,CAAC;gBAAC;gBAAc;aAAU;YAC1CiC,WAAW3C,EAAEI,MAAM;YACnBwC,WAAW5C,EAAEuB,OAAO,CAAC;QACvB;IACF;IAEA,MAAMH,OAAOpB,EAAE6C,KAAK,CAAC;QACnBxB;QACAI;QACAO;QACAG;QACAI;QACArB,SAASI,MAAM,CAAC;YAAEnB,MAAMH,EAAEU,IAAI,CAAC;gBAAC;gBAAa;gBAAS;aAAiB;QAAE;WACrEO,eAAe,EAAE;KACtB;IAED,MAAM6B,WAAW5B,SAASI,MAAM,CAAC;QAC/BnB,MAAMH,EAAEuB,OAAO,CAAC;IAClB;IAEA,OAAOvB,EAAEE,MAAM,CAAC;QACd6C,MAAMD;IACR;AACF,EAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generateSeedPrompt.d.ts","sourceRoot":"","sources":["../../../src/ai/utils/generateSeedPrompt.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,kBAAkB,SAAgB;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,oBAmBhF,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/ai/utils/generateSeedPrompt.ts"],"sourcesContent":["import { anthropic } from '@ai-sdk/anthropic'\nimport { openai } from '@ai-sdk/openai'\nimport { generateText } from 'ai'\n\nimport { PLUGIN_DEFAULT_ANTHROPIC_MODEL, PLUGIN_DEFAULT_OPENAI_MODEL } from '../../defaults.js'\n\nexport const generateSeedPrompt = async (data: { prompt: string; system: string }) => {\n const { prompt, system } = data\n let model = null\n\n if (process.env.OPENAI_API_KEY) {\n model = openai(PLUGIN_DEFAULT_OPENAI_MODEL)\n } else if (process.env.ANTHROPIC_API_KEY) {\n model = anthropic(PLUGIN_DEFAULT_ANTHROPIC_MODEL)\n } else {\n throw new Error('- AI Plugin: Please check your environment variables!')\n }\n\n const { text } = await generateText({\n model,\n prompt,\n system,\n })\n\n return text\n}\n"],"names":["anthropic","openai","generateText","PLUGIN_DEFAULT_ANTHROPIC_MODEL","PLUGIN_DEFAULT_OPENAI_MODEL","generateSeedPrompt","data","prompt","system","model","process","env","OPENAI_API_KEY","ANTHROPIC_API_KEY","Error","text"],"mappings":"AAAA,SAASA,SAAS,QAAQ,oBAAmB;AAC7C,SAASC,MAAM,QAAQ,iBAAgB;AACvC,SAASC,YAAY,QAAQ,KAAI;AAEjC,SAASC,8BAA8B,EAAEC,2BAA2B,QAAQ,oBAAmB;AAE/F,OAAO,MAAMC,qBAAqB,OAAOC;IACvC,MAAM,EAAEC,MAAM,EAAEC,MAAM,EAAE,GAAGF;IAC3B,IAAIG,QAAQ;IAEZ,IAAIC,QAAQC,GAAG,CAACC,cAAc,EAAE;QAC9BH,QAAQR,OAAOG;IACjB,OAAO,IAAIM,QAAQC,GAAG,CAACE,iBAAiB,EAAE;QACxCJ,QAAQT,UAAUG;IACpB,OAAO;QACL,MAAM,IAAIW,MAAM;IAClB;IAEA,MAAM,EAAEC,IAAI,EAAE,GAAG,MAAMb,aAAa;QAClCO;QACAF;QACAC;IACF;IAEA,OAAOO;AACT,EAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"jsonToZod.d.ts","sourceRoot":"","sources":["../../src/utilities/jsonToZod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,wBAAgB,eAAe,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CA6B3D"}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
export function jsonSchemaToZod(schema) {
|
|
3
|
-
switch(schema.type){
|
|
4
|
-
case 'string':
|
|
5
|
-
return z.string();
|
|
6
|
-
case 'number':
|
|
7
|
-
return z.number();
|
|
8
|
-
case 'integer':
|
|
9
|
-
return z.number().int();
|
|
10
|
-
case 'boolean':
|
|
11
|
-
return z.boolean();
|
|
12
|
-
case 'null':
|
|
13
|
-
return z.null();
|
|
14
|
-
case 'array':
|
|
15
|
-
if (schema.items) {
|
|
16
|
-
return z.array(jsonSchemaToZod(schema.items));
|
|
17
|
-
}
|
|
18
|
-
return z.array(z.any());
|
|
19
|
-
case 'object':
|
|
20
|
-
if (schema.properties) {
|
|
21
|
-
const shape = {};
|
|
22
|
-
for (const [key, value] of Object.entries(schema.properties)){
|
|
23
|
-
shape[key] = jsonSchemaToZod(value);
|
|
24
|
-
}
|
|
25
|
-
return z.object(shape);
|
|
26
|
-
}
|
|
27
|
-
return z.object({});
|
|
28
|
-
default:
|
|
29
|
-
return z.any();
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
//# sourceMappingURL=jsonToZod.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/jsonToZod.ts"],"sourcesContent":["import { z } from 'zod'\n\nexport function jsonSchemaToZod(schema: any): z.ZodType<any> {\n switch (schema.type) {\n case 'string':\n return z.string()\n case 'number':\n return z.number()\n case 'integer':\n return z.number().int()\n case 'boolean':\n return z.boolean()\n case 'null':\n return z.null()\n case 'array':\n if (schema.items) {\n return z.array(jsonSchemaToZod(schema.items))\n }\n return z.array(z.any())\n case 'object':\n if (schema.properties) {\n const shape: { [key: string]: z.ZodType<any> } = {}\n for (const [key, value] of Object.entries(schema.properties)) {\n shape[key] = jsonSchemaToZod(value)\n }\n return z.object(shape)\n }\n return z.object({})\n default:\n return z.any()\n }\n}\n"],"names":["z","jsonSchemaToZod","schema","type","string","number","int","boolean","null","items","array","any","properties","shape","key","value","Object","entries","object"],"mappings":"AAAA,SAASA,CAAC,QAAQ,MAAK;AAEvB,OAAO,SAASC,gBAAgBC,MAAW;IACzC,OAAQA,OAAOC,IAAI;QACjB,KAAK;YACH,OAAOH,EAAEI,MAAM;QACjB,KAAK;YACH,OAAOJ,EAAEK,MAAM;QACjB,KAAK;YACH,OAAOL,EAAEK,MAAM,GAAGC,GAAG;QACvB,KAAK;YACH,OAAON,EAAEO,OAAO;QAClB,KAAK;YACH,OAAOP,EAAEQ,IAAI;QACf,KAAK;YACH,IAAIN,OAAOO,KAAK,EAAE;gBAChB,OAAOT,EAAEU,KAAK,CAACT,gBAAgBC,OAAOO,KAAK;YAC7C;YACA,OAAOT,EAAEU,KAAK,CAACV,EAAEW,GAAG;QACtB,KAAK;YACH,IAAIT,OAAOU,UAAU,EAAE;gBACrB,MAAMC,QAA2C,CAAC;gBAClD,KAAK,MAAM,CAACC,KAAKC,MAAM,IAAIC,OAAOC,OAAO,CAACf,OAAOU,UAAU,EAAG;oBAC5DC,KAAK,CAACC,IAAI,GAAGb,gBAAgBc;gBAC/B;gBACA,OAAOf,EAAEkB,MAAM,CAACL;YAClB;YACA,OAAOb,EAAEkB,MAAM,CAAC,CAAC;QACnB;YACE,OAAOlB,EAAEW,GAAG;IAChB;AACF"}
|