@kubb/plugin-zod 4.20.2 → 4.20.5
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/components.d.cts +2 -1
- package/dist/components.d.ts +2 -1
- package/dist/{generators-DWTQMdiR.js → generators-BawvbIJ1.js} +13 -7
- package/dist/generators-BawvbIJ1.js.map +1 -0
- package/dist/{generators-YkwNz13t.cjs → generators-DGBZd16i.cjs} +13 -7
- package/dist/generators-DGBZd16i.cjs.map +1 -0
- package/dist/generators.cjs +1 -1
- package/dist/generators.d.cts +1 -1
- package/dist/generators.d.ts +1 -1
- package/dist/generators.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +3 -2
- package/dist/index.d.ts +3 -2
- package/dist/index.js +1 -1
- package/dist/types-23ND42NW.d.cts +696 -0
- package/dist/types-CyZ4p-xC.d.ts +695 -0
- package/package.json +10 -6
- package/src/generators/__snapshots__/anyof.ts +1 -1
- package/src/generators/__snapshots__/coercion.ts +1 -1
- package/src/generators/__snapshots__/coercionDates.ts +1 -1
- package/src/generators/__snapshots__/coercionNumbers.ts +1 -1
- package/src/generators/__snapshots__/coercionStrings.ts +1 -1
- package/src/generators/__snapshots__/createItemUnionWithReadOnly.ts +1 -1
- package/src/generators/__snapshots__/createPet.ts +1 -1
- package/src/generators/__snapshots__/createPetWithUnknownTypeUnknown.ts +1 -1
- package/src/generators/__snapshots__/deletePet.ts +1 -1
- package/src/generators/__snapshots__/discriminator.ts +1 -1
- package/src/generators/__snapshots__/enumBooleanLiteral.ts +1 -1
- package/src/generators/__snapshots__/enumNamesType.ts +1 -1
- package/src/generators/__snapshots__/enumNullable.ts +1 -1
- package/src/generators/__snapshots__/enumSingleLiteral.ts +1 -1
- package/src/generators/__snapshots__/enumVarNamesType.ts +1 -1
- package/src/generators/__snapshots__/example.ts +1 -1
- package/src/generators/__snapshots__/exclusiveNumbers.ts +1 -1
- package/src/generators/__snapshots__/getPets.ts +1 -1
- package/src/generators/__snapshots__/getPetsWithQueryFilter_wrapOutput_all_.ts +1 -1
- package/src/generators/__snapshots__/imageNullable.ts +1 -1
- package/src/generators/__snapshots__/mixedValueTypeConst.ts +1 -1
- package/src/generators/__snapshots__/nullable.ts +1 -1
- package/src/generators/__snapshots__/nullableString.ts +1 -1
- package/src/generators/__snapshots__/nullableStringUuid.ts +1 -1
- package/src/generators/__snapshots__/nullableStringWithAnyOf.ts +1 -1
- package/src/generators/__snapshots__/numberValueConst.ts +1 -1
- package/src/generators/__snapshots__/oneof.ts +1 -1
- package/src/generators/__snapshots__/operations.ts +1 -1
- package/src/generators/__snapshots__/optionalPetInfer.ts +1 -1
- package/src/generators/__snapshots__/optionalPetTyped.ts +1 -1
- package/src/generators/__snapshots__/order.ts +1 -1
- package/src/generators/__snapshots__/orderDateTyeString.ts +1 -1
- package/src/generators/__snapshots__/orderDateTypeFalse.ts +1 -1
- package/src/generators/__snapshots__/orderDateTypeString.ts +1 -1
- package/src/generators/__snapshots__/pet.ts +1 -1
- package/src/generators/__snapshots__/petArray.ts +1 -1
- package/src/generators/__snapshots__/petCoercion.ts +1 -1
- package/src/generators/__snapshots__/petTupleObject.ts +1 -1
- package/src/generators/__snapshots__/petV4.ts +1 -1
- package/src/generators/__snapshots__/petWithMapper.ts +1 -1
- package/src/generators/__snapshots__/pets.ts +1 -1
- package/src/generators/__snapshots__/queryAllDefaulted.ts +1 -1
- package/src/generators/__snapshots__/recursive.ts +1 -1
- package/src/generators/__snapshots__/showPetById.ts +1 -1
- package/src/generators/__snapshots__/stringValueConst.ts +1 -1
- package/src/generators/__snapshots__/toy.ts +1 -1
- package/src/generators/__snapshots__/unionWithReadOnly.ts +1 -1
- package/src/generators/__snapshots__/updateItemUnionWithReadOnly.ts +1 -1
- package/src/generators/__snapshots__/uuidSchema.ts +1 -1
- package/src/generators/operationsGenerator.tsx +3 -1
- package/src/generators/zodGenerator.tsx +6 -2
- package/templates/ToZod.ts +1 -1
- package/dist/generators-DWTQMdiR.js.map +0 -1
- package/dist/generators-YkwNz13t.cjs.map +0 -1
- package/dist/types-BBLRijaO.d.ts +0 -1354
- package/dist/types-HQfz08mH.d.cts +0 -1355
package/package.json
CHANGED
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kubb/plugin-zod",
|
|
3
|
-
"version": "4.20.
|
|
3
|
+
"version": "4.20.5",
|
|
4
4
|
"description": "Zod schema generator plugin for Kubb, creating type-safe validation schemas from OpenAPI specifications for runtime data validation.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"zod",
|
|
7
7
|
"schema",
|
|
8
|
+
"schema-validation",
|
|
8
9
|
"validation",
|
|
10
|
+
"runtime-validation",
|
|
9
11
|
"type-safety",
|
|
12
|
+
"type-safe",
|
|
10
13
|
"typescript",
|
|
11
14
|
"openapi",
|
|
12
15
|
"swagger",
|
|
16
|
+
"oas",
|
|
13
17
|
"code-generator",
|
|
14
18
|
"codegen",
|
|
15
19
|
"plugins",
|
|
@@ -68,11 +72,11 @@
|
|
|
68
72
|
}
|
|
69
73
|
],
|
|
70
74
|
"dependencies": {
|
|
71
|
-
"@kubb/react-fabric": "0.12.
|
|
72
|
-
"@kubb/core": "4.20.
|
|
73
|
-
"@kubb/oas": "4.20.
|
|
74
|
-
"@kubb/
|
|
75
|
-
"@kubb/plugin-ts": "4.20.
|
|
75
|
+
"@kubb/react-fabric": "0.12.10",
|
|
76
|
+
"@kubb/core": "4.20.5",
|
|
77
|
+
"@kubb/plugin-oas": "4.20.5",
|
|
78
|
+
"@kubb/oas": "4.20.5",
|
|
79
|
+
"@kubb/plugin-ts": "4.20.5"
|
|
76
80
|
},
|
|
77
81
|
"devDependencies": {
|
|
78
82
|
"@asteasolutions/zod-to-openapi": "^8.4.0",
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Generated by Kubb (https://kubb.dev/).
|
|
3
3
|
* Do not edit manually.
|
|
4
4
|
*/
|
|
5
|
-
import
|
|
5
|
+
import * as z from 'zod'
|
|
6
6
|
|
|
7
7
|
export const listPetsQueryParams = z.object({
|
|
8
8
|
limit: z.optional(z.string().describe('How many items to return at one time (max 100)')),
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Generated by Kubb (https://kubb.dev/).
|
|
3
3
|
* Do not edit manually.
|
|
4
4
|
*/
|
|
5
|
-
import
|
|
5
|
+
import * as z from 'zod'
|
|
6
6
|
|
|
7
7
|
export const getThingsQueryParams = z.object({
|
|
8
8
|
limit: z.coerce.number().int().min(1).max(100).default(100).describe('Maximum number of things to return'),
|
|
@@ -31,6 +31,8 @@ export const operationsGenerator = createReactGenerator<PluginZod>({
|
|
|
31
31
|
})
|
|
32
32
|
.filter(Boolean)
|
|
33
33
|
|
|
34
|
+
const isZodImport = importPath === 'zod' || importPath === 'zod/mini'
|
|
35
|
+
|
|
34
36
|
return (
|
|
35
37
|
<File
|
|
36
38
|
baseName={file.baseName}
|
|
@@ -39,7 +41,7 @@ export const operationsGenerator = createReactGenerator<PluginZod>({
|
|
|
39
41
|
banner={getBanner({ oas, output, config: pluginManager.config })}
|
|
40
42
|
footer={getFooter({ oas, output })}
|
|
41
43
|
>
|
|
42
|
-
<File.Import isTypeOnly name={['z']} path={importPath} />
|
|
44
|
+
<File.Import isTypeOnly name={isZodImport ? 'z' : ['z']} path={importPath} isNameSpace={isZodImport} />
|
|
43
45
|
{imports}
|
|
44
46
|
<Operations name={name} operations={transformedOperations} />
|
|
45
47
|
</File>
|
|
@@ -125,6 +125,8 @@ export const zodGenerator = createReactGenerator<PluginZod>({
|
|
|
125
125
|
)
|
|
126
126
|
}
|
|
127
127
|
|
|
128
|
+
const isZodImport = plugin.options.importPath === 'zod' || plugin.options.importPath === 'zod/mini'
|
|
129
|
+
|
|
128
130
|
return (
|
|
129
131
|
<File
|
|
130
132
|
baseName={file.baseName}
|
|
@@ -133,7 +135,7 @@ export const zodGenerator = createReactGenerator<PluginZod>({
|
|
|
133
135
|
banner={getBanner({ oas, output: plugin.options.output, config: pluginManager.config })}
|
|
134
136
|
footer={getFooter({ oas, output: plugin.options.output })}
|
|
135
137
|
>
|
|
136
|
-
<File.Import name={['z']} path={plugin.options.importPath} />
|
|
138
|
+
<File.Import name={isZodImport ? 'z' : ['z']} path={plugin.options.importPath} isNameSpace={isZodImport} />
|
|
137
139
|
{operationSchemas.map(mapOperationSchema)}
|
|
138
140
|
</File>
|
|
139
141
|
)
|
|
@@ -159,6 +161,8 @@ export const zodGenerator = createReactGenerator<PluginZod>({
|
|
|
159
161
|
file: getFile(schema.name, { pluginKey: [pluginTsName] }),
|
|
160
162
|
}
|
|
161
163
|
|
|
164
|
+
const isZodImport = importPath === 'zod' || importPath === 'zod/mini'
|
|
165
|
+
|
|
162
166
|
return (
|
|
163
167
|
<File
|
|
164
168
|
baseName={zod.file.baseName}
|
|
@@ -167,7 +171,7 @@ export const zodGenerator = createReactGenerator<PluginZod>({
|
|
|
167
171
|
banner={getBanner({ oas, output, config: pluginManager.config })}
|
|
168
172
|
footer={getFooter({ oas, output })}
|
|
169
173
|
>
|
|
170
|
-
<File.Import name={['z']} path={importPath} />
|
|
174
|
+
<File.Import name={isZodImport ? 'z' : ['z']} path={importPath} isNameSpace={isZodImport} />
|
|
171
175
|
{typed && <File.Import isTypeOnly root={zod.file.path} path={type.file.path} name={[type.name]} />}
|
|
172
176
|
{typed && version === '3' && (
|
|
173
177
|
<File.Import name={['ToZod']} root={zod.file.path} path={path.resolve(config.root, config.output.path, '.kubb/ToZod.ts')} />
|
package/templates/ToZod.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Adapted based on https://github.com/colinhacks/zod/issues/372
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import type
|
|
6
|
+
import type * as z from 'zod'
|
|
7
7
|
|
|
8
8
|
type IsAny<T> = [any extends T ? 'true' : 'false'] extends ['true'] ? true : false
|
|
9
9
|
type NonOptional<T> = T extends undefined ? never : T
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"generators-DWTQMdiR.js","names":["options"],"sources":["../src/generators/operationsGenerator.tsx","../src/generators/zodGenerator.tsx"],"sourcesContent":["import { usePluginManager } from '@kubb/core/hooks'\nimport { createReactGenerator } from '@kubb/plugin-oas/generators'\nimport { useOas, useOperationManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter } from '@kubb/plugin-oas/utils'\nimport { File } from '@kubb/react-fabric'\nimport { Operations } from '../components/Operations.tsx'\nimport type { PluginZod } from '../types'\n\nexport const operationsGenerator = createReactGenerator<PluginZod>({\n name: 'operations',\n Operations({ operations, generator, plugin }) {\n const {\n key: pluginKey,\n options: { output, importPath },\n } = plugin\n const pluginManager = usePluginManager()\n\n const oas = useOas()\n const { getFile, groupSchemasByName } = useOperationManager(generator)\n\n const name = 'operations'\n const file = pluginManager.getFile({ name, extname: '.ts', pluginKey })\n\n const transformedOperations = operations.map((operation) => ({ operation, data: groupSchemasByName(operation, { type: 'function' }) }))\n\n const imports = Object.entries(transformedOperations)\n .map(([key, { data, operation }]) => {\n const names = [data.request, ...Object.values(data.responses), ...Object.values(data.parameters)].filter(Boolean)\n\n return <File.Import key={key} name={names} root={file.path} path={getFile(operation).path} />\n })\n .filter(Boolean)\n\n return (\n <File\n baseName={file.baseName}\n path={file.path}\n meta={file.meta}\n banner={getBanner({ oas, output, config: pluginManager.config })}\n footer={getFooter({ oas, output })}\n >\n <File.Import isTypeOnly name={['z']} path={importPath} />\n {imports}\n <Operations name={name} operations={transformedOperations} />\n </File>\n )\n },\n})\n","import path from 'node:path'\nimport { useMode, usePluginManager } from '@kubb/core/hooks'\nimport { type OperationSchema as OperationSchemaType, SchemaGenerator, schemaKeywords } from '@kubb/plugin-oas'\nimport { createReactGenerator } from '@kubb/plugin-oas/generators'\nimport { useOas, useOperationManager, useSchemaManager } from '@kubb/plugin-oas/hooks'\nimport { getBanner, getFooter, getImports } from '@kubb/plugin-oas/utils'\nimport { pluginTsName } from '@kubb/plugin-ts'\nimport { File } from '@kubb/react-fabric'\nimport { Zod } from '../components'\nimport type { PluginZod } from '../types'\n\nexport const zodGenerator = createReactGenerator<PluginZod>({\n name: 'zod',\n Operation({ config, operation, generator, plugin }) {\n const {\n options,\n options: { coercion: globalCoercion, inferred, typed, mapper, wrapOutput, version, mini },\n } = plugin\n\n const mode = useMode()\n const pluginManager = usePluginManager()\n\n const oas = useOas()\n const { getSchemas, getFile, getGroup } = useOperationManager(generator)\n const schemaManager = useSchemaManager()\n\n const file = getFile(operation)\n const schemas = getSchemas(operation)\n const schemaGenerator = new SchemaGenerator(options, {\n fabric: generator.context.fabric,\n oas,\n plugin,\n pluginManager,\n events: generator.context.events,\n mode,\n override: options.override,\n })\n\n const operationSchemas = [schemas.pathParams, schemas.queryParams, schemas.headerParams, schemas.statusCodes, schemas.request, schemas.response]\n .flat()\n .filter(Boolean)\n\n const mapOperationSchema = ({ name, schema: schemaOriginal, description, keysToOmit: keysToOmitOriginal, ...options }: OperationSchemaType) => {\n let schemaObject = schemaOriginal\n let keysToOmit = keysToOmitOriginal\n\n if ((schemaOriginal.anyOf || schemaOriginal.oneOf) && keysToOmitOriginal && keysToOmitOriginal.length > 0) {\n schemaObject = structuredClone(schemaOriginal)\n\n // Remove $ref so the schema parser generates inline schema instead of a reference\n delete schemaObject.$ref\n\n for (const key of keysToOmitOriginal) {\n delete schemaObject.properties?.[key]\n }\n\n if (Array.isArray(schemaObject.required)) {\n schemaObject.required = schemaObject.required.filter((key) => !keysToOmitOriginal.includes(key))\n }\n\n keysToOmit = undefined\n }\n\n const hasProperties = Object.keys(schemaObject || {}).length > 0\n const hasDefaults = Object.values(schemaObject.properties || {}).some((prop) => prop && Object.hasOwn(prop, 'default'))\n\n const required = Array.isArray(schemaObject?.required) ? schemaObject.required.length > 0 : !!schemaObject?.required\n const optional = !required && !hasDefaults && hasProperties && name.includes('Params')\n\n if (!optional && Array.isArray(schemaObject.required) && !schemaObject.required.length) {\n schemaObject.required = Object.entries(schemaObject.properties || {})\n .filter(([_key, value]) => value && Object.hasOwn(value, 'default'))\n .map(([key]) => key)\n }\n\n const tree = [\n ...schemaGenerator.parse({ schema: schemaObject, name, parentName: null }),\n optional ? { keyword: schemaKeywords.optional } : undefined,\n ].filter(Boolean)\n const imports = getImports(tree)\n const group = options.operation ? getGroup(options.operation) : undefined\n\n const coercion = name.includes('Params') ? { numbers: true, strings: false, dates: true } : globalCoercion\n\n const zod = {\n name: schemaManager.getName(name, { type: 'function' }),\n inferTypeName: schemaManager.getName(name, { type: 'type' }),\n file: schemaManager.getFile(name),\n }\n\n const type = {\n name: schemaManager.getName(name, {\n type: 'type',\n pluginKey: [pluginTsName],\n }),\n file: schemaManager.getFile(options.operationName || name, {\n pluginKey: [pluginTsName],\n group,\n }),\n }\n\n return (\n <>\n {typed && <File.Import isTypeOnly root={file.path} path={type.file.path} name={[type.name]} />}\n {typed && version === '3' && <File.Import name={['ToZod']} root={file.path} path={path.resolve(config.root, config.output.path, '.kubb/ToZod.ts')} />}\n {imports.map((imp) => (\n <File.Import key={[imp.path, imp.name, imp.isTypeOnly].join('-')} root={file.path} path={imp.path} name={imp.name} />\n ))}\n <Zod\n name={zod.name}\n typeName={typed ? type.name : undefined}\n inferTypeName={inferred ? zod.inferTypeName : undefined}\n description={description}\n tree={tree}\n schema={schemaObject}\n mapper={mapper}\n coercion={coercion}\n keysToOmit={keysToOmit}\n wrapOutput={wrapOutput}\n version={plugin.options.version}\n emptySchemaType={plugin.options.emptySchemaType}\n mini={mini}\n />\n </>\n )\n }\n\n return (\n <File\n baseName={file.baseName}\n path={file.path}\n meta={file.meta}\n banner={getBanner({ oas, output: plugin.options.output, config: pluginManager.config })}\n footer={getFooter({ oas, output: plugin.options.output })}\n >\n <File.Import name={['z']} path={plugin.options.importPath} />\n {operationSchemas.map(mapOperationSchema)}\n </File>\n )\n },\n Schema({ config, schema, plugin }) {\n const { getName, getFile } = useSchemaManager()\n const {\n options: { output, emptySchemaType, coercion, inferred, typed, mapper, importPath, wrapOutput, version, mini },\n } = plugin\n const pluginManager = usePluginManager()\n const oas = useOas()\n\n const imports = getImports(schema.tree)\n\n const zod = {\n name: getName(schema.name, { type: 'function' }),\n inferTypeName: getName(schema.name, { type: 'type' }),\n file: getFile(schema.name),\n }\n\n const type = {\n name: getName(schema.name, { type: 'type', pluginKey: [pluginTsName] }),\n file: getFile(schema.name, { pluginKey: [pluginTsName] }),\n }\n\n return (\n <File\n baseName={zod.file.baseName}\n path={zod.file.path}\n meta={zod.file.meta}\n banner={getBanner({ oas, output, config: pluginManager.config })}\n footer={getFooter({ oas, output })}\n >\n <File.Import name={['z']} path={importPath} />\n {typed && <File.Import isTypeOnly root={zod.file.path} path={type.file.path} name={[type.name]} />}\n {typed && version === '3' && (\n <File.Import name={['ToZod']} root={zod.file.path} path={path.resolve(config.root, config.output.path, '.kubb/ToZod.ts')} />\n )}\n {imports.map((imp) => (\n <File.Import key={[imp.path, imp.name, imp.isTypeOnly].join('-')} root={zod.file.path} path={imp.path} name={imp.name} />\n ))}\n\n <Zod\n name={zod.name}\n typeName={typed ? type.name : undefined}\n inferTypeName={inferred ? zod.inferTypeName : undefined}\n description={schema.value.description}\n tree={schema.tree}\n schema={schema.value}\n mapper={mapper}\n coercion={coercion}\n wrapOutput={wrapOutput}\n version={version}\n emptySchemaType={emptySchemaType}\n mini={mini}\n />\n </File>\n )\n },\n})\n"],"mappings":";;;;;;;;;;;;;AAQA,MAAa,sBAAsB,qBAAgC;CACjE,MAAM;CACN,WAAW,EAAE,YAAY,WAAW,UAAU;EAC5C,MAAM,EACJ,KAAK,WACL,SAAS,EAAE,QAAQ,iBACjB;EACJ,MAAM,gBAAgB,kBAAkB;EAExC,MAAM,MAAM,QAAQ;EACpB,MAAM,EAAE,SAAS,uBAAuB,oBAAoB,UAAU;EAEtE,MAAM,OAAO;EACb,MAAM,OAAO,cAAc,QAAQ;GAAE;GAAM,SAAS;GAAO;GAAW,CAAC;EAEvE,MAAM,wBAAwB,WAAW,KAAK,eAAe;GAAE;GAAW,MAAM,mBAAmB,WAAW,EAAE,MAAM,YAAY,CAAC;GAAE,EAAE;EAEvI,MAAM,UAAU,OAAO,QAAQ,sBAAsB,CAClD,KAAK,CAAC,KAAK,EAAE,MAAM,iBAAiB;GACnC,MAAM,QAAQ;IAAC,KAAK;IAAS,GAAG,OAAO,OAAO,KAAK,UAAU;IAAE,GAAG,OAAO,OAAO,KAAK,WAAW;IAAC,CAAC,OAAO,QAAQ;AAEjH,UAAO,oBAAC,KAAK;IAAiB,MAAM;IAAO,MAAM,KAAK;IAAM,MAAM,QAAQ,UAAU,CAAC;MAA5D,IAAoE;IAC7F,CACD,OAAO,QAAQ;AAElB,SACE,qBAAC;GACC,UAAU,KAAK;GACf,MAAM,KAAK;GACX,MAAM,KAAK;GACX,QAAQ,UAAU;IAAE;IAAK;IAAQ,QAAQ,cAAc;IAAQ,CAAC;GAChE,QAAQ,UAAU;IAAE;IAAK;IAAQ,CAAC;;IAElC,oBAAC,KAAK;KAAO;KAAW,MAAM,CAAC,IAAI;KAAE,MAAM;MAAc;IACxD;IACD,oBAAC;KAAiB;KAAM,YAAY;MAAyB;;IACxD;;CAGZ,CAAC;;;;ACpCF,MAAa,eAAe,qBAAgC;CAC1D,MAAM;CACN,UAAU,EAAE,QAAQ,WAAW,WAAW,UAAU;EAClD,MAAM,EACJ,SACA,SAAS,EAAE,UAAU,gBAAgB,UAAU,OAAO,QAAQ,YAAY,SAAS,WACjF;EAEJ,MAAM,OAAO,SAAS;EACtB,MAAM,gBAAgB,kBAAkB;EAExC,MAAM,MAAM,QAAQ;EACpB,MAAM,EAAE,YAAY,SAAS,aAAa,oBAAoB,UAAU;EACxE,MAAM,gBAAgB,kBAAkB;EAExC,MAAM,OAAO,QAAQ,UAAU;EAC/B,MAAM,UAAU,WAAW,UAAU;EACrC,MAAM,kBAAkB,IAAI,gBAAgB,SAAS;GACnD,QAAQ,UAAU,QAAQ;GAC1B;GACA;GACA;GACA,QAAQ,UAAU,QAAQ;GAC1B;GACA,UAAU,QAAQ;GACnB,CAAC;EAEF,MAAM,mBAAmB;GAAC,QAAQ;GAAY,QAAQ;GAAa,QAAQ;GAAc,QAAQ;GAAa,QAAQ;GAAS,QAAQ;GAAS,CAC7I,MAAM,CACN,OAAO,QAAQ;EAElB,MAAM,sBAAsB,EAAE,MAAM,QAAQ,gBAAgB,aAAa,YAAY,oBAAoB,GAAGA,gBAAmC;GAC7I,IAAI,eAAe;GACnB,IAAI,aAAa;AAEjB,QAAK,eAAe,SAAS,eAAe,UAAU,sBAAsB,mBAAmB,SAAS,GAAG;AACzG,mBAAe,gBAAgB,eAAe;AAG9C,WAAO,aAAa;AAEpB,SAAK,MAAM,OAAO,mBAChB,QAAO,aAAa,aAAa;AAGnC,QAAI,MAAM,QAAQ,aAAa,SAAS,CACtC,cAAa,WAAW,aAAa,SAAS,QAAQ,QAAQ,CAAC,mBAAmB,SAAS,IAAI,CAAC;AAGlG,iBAAa;;GAGf,MAAM,gBAAgB,OAAO,KAAK,gBAAgB,EAAE,CAAC,CAAC,SAAS;GAC/D,MAAM,cAAc,OAAO,OAAO,aAAa,cAAc,EAAE,CAAC,CAAC,MAAM,SAAS,QAAQ,OAAO,OAAO,MAAM,UAAU,CAAC;GAGvH,MAAM,WAAW,EADA,MAAM,QAAQ,cAAc,SAAS,GAAG,aAAa,SAAS,SAAS,IAAI,CAAC,CAAC,cAAc,aAC9E,CAAC,eAAe,iBAAiB,KAAK,SAAS,SAAS;AAEtF,OAAI,CAAC,YAAY,MAAM,QAAQ,aAAa,SAAS,IAAI,CAAC,aAAa,SAAS,OAC9E,cAAa,WAAW,OAAO,QAAQ,aAAa,cAAc,EAAE,CAAC,CAClE,QAAQ,CAAC,MAAM,WAAW,SAAS,OAAO,OAAO,OAAO,UAAU,CAAC,CACnE,KAAK,CAAC,SAAS,IAAI;GAGxB,MAAM,OAAO,CACX,GAAG,gBAAgB,MAAM;IAAE,QAAQ;IAAc;IAAM,YAAY;IAAM,CAAC,EAC1E,WAAW,EAAE,SAAS,eAAe,UAAU,GAAG,OACnD,CAAC,OAAO,QAAQ;GACjB,MAAM,UAAU,WAAW,KAAK;GAChC,MAAM,QAAQA,UAAQ,YAAY,SAASA,UAAQ,UAAU,GAAG;GAEhE,MAAM,WAAW,KAAK,SAAS,SAAS,GAAG;IAAE,SAAS;IAAM,SAAS;IAAO,OAAO;IAAM,GAAG;GAE5F,MAAM,MAAM;IACV,MAAM,cAAc,QAAQ,MAAM,EAAE,MAAM,YAAY,CAAC;IACvD,eAAe,cAAc,QAAQ,MAAM,EAAE,MAAM,QAAQ,CAAC;IAC5D,MAAM,cAAc,QAAQ,KAAK;IAClC;GAED,MAAM,OAAO;IACX,MAAM,cAAc,QAAQ,MAAM;KAChC,MAAM;KACN,WAAW,CAAC,aAAa;KAC1B,CAAC;IACF,MAAM,cAAc,QAAQA,UAAQ,iBAAiB,MAAM;KACzD,WAAW,CAAC,aAAa;KACzB;KACD,CAAC;IACH;AAED,UACE;IACG,SAAS,oBAAC,KAAK;KAAO;KAAW,MAAM,KAAK;KAAM,MAAM,KAAK,KAAK;KAAM,MAAM,CAAC,KAAK,KAAK;MAAI;IAC7F,SAAS,YAAY,OAAO,oBAAC,KAAK;KAAO,MAAM,CAAC,QAAQ;KAAE,MAAM,KAAK;KAAM,MAAM,KAAK,QAAQ,OAAO,MAAM,OAAO,OAAO,MAAM,iBAAiB;MAAI;IACpJ,QAAQ,KAAK,QACZ,oBAAC,KAAK;KAA4D,MAAM,KAAK;KAAM,MAAM,IAAI;KAAM,MAAM,IAAI;OAA3F;KAAC,IAAI;KAAM,IAAI;KAAM,IAAI;KAAW,CAAC,KAAK,IAAI,CAAqD,CACrH;IACF,oBAAC;KACC,MAAM,IAAI;KACV,UAAU,QAAQ,KAAK,OAAO;KAC9B,eAAe,WAAW,IAAI,gBAAgB;KACjC;KACP;KACN,QAAQ;KACA;KACE;KACE;KACA;KACZ,SAAS,OAAO,QAAQ;KACxB,iBAAiB,OAAO,QAAQ;KAC1B;MACN;OACD;;AAIP,SACE,qBAAC;GACC,UAAU,KAAK;GACf,MAAM,KAAK;GACX,MAAM,KAAK;GACX,QAAQ,UAAU;IAAE;IAAK,QAAQ,OAAO,QAAQ;IAAQ,QAAQ,cAAc;IAAQ,CAAC;GACvF,QAAQ,UAAU;IAAE;IAAK,QAAQ,OAAO,QAAQ;IAAQ,CAAC;cAEzD,oBAAC,KAAK;IAAO,MAAM,CAAC,IAAI;IAAE,MAAM,OAAO,QAAQ;KAAc,EAC5D,iBAAiB,IAAI,mBAAmB;IACpC;;CAGX,OAAO,EAAE,QAAQ,QAAQ,UAAU;EACjC,MAAM,EAAE,SAAS,YAAY,kBAAkB;EAC/C,MAAM,EACJ,SAAS,EAAE,QAAQ,iBAAiB,UAAU,UAAU,OAAO,QAAQ,YAAY,YAAY,SAAS,WACtG;EACJ,MAAM,gBAAgB,kBAAkB;EACxC,MAAM,MAAM,QAAQ;EAEpB,MAAM,UAAU,WAAW,OAAO,KAAK;EAEvC,MAAM,MAAM;GACV,MAAM,QAAQ,OAAO,MAAM,EAAE,MAAM,YAAY,CAAC;GAChD,eAAe,QAAQ,OAAO,MAAM,EAAE,MAAM,QAAQ,CAAC;GACrD,MAAM,QAAQ,OAAO,KAAK;GAC3B;EAED,MAAM,OAAO;GACX,MAAM,QAAQ,OAAO,MAAM;IAAE,MAAM;IAAQ,WAAW,CAAC,aAAa;IAAE,CAAC;GACvE,MAAM,QAAQ,OAAO,MAAM,EAAE,WAAW,CAAC,aAAa,EAAE,CAAC;GAC1D;AAED,SACE,qBAAC;GACC,UAAU,IAAI,KAAK;GACnB,MAAM,IAAI,KAAK;GACf,MAAM,IAAI,KAAK;GACf,QAAQ,UAAU;IAAE;IAAK;IAAQ,QAAQ,cAAc;IAAQ,CAAC;GAChE,QAAQ,UAAU;IAAE;IAAK;IAAQ,CAAC;;IAElC,oBAAC,KAAK;KAAO,MAAM,CAAC,IAAI;KAAE,MAAM;MAAc;IAC7C,SAAS,oBAAC,KAAK;KAAO;KAAW,MAAM,IAAI,KAAK;KAAM,MAAM,KAAK,KAAK;KAAM,MAAM,CAAC,KAAK,KAAK;MAAI;IACjG,SAAS,YAAY,OACpB,oBAAC,KAAK;KAAO,MAAM,CAAC,QAAQ;KAAE,MAAM,IAAI,KAAK;KAAM,MAAM,KAAK,QAAQ,OAAO,MAAM,OAAO,OAAO,MAAM,iBAAiB;MAAI;IAE7H,QAAQ,KAAK,QACZ,oBAAC,KAAK;KAA4D,MAAM,IAAI,KAAK;KAAM,MAAM,IAAI;KAAM,MAAM,IAAI;OAA/F;KAAC,IAAI;KAAM,IAAI;KAAM,IAAI;KAAW,CAAC,KAAK,IAAI,CAAyD,CACzH;IAEF,oBAAC;KACC,MAAM,IAAI;KACV,UAAU,QAAQ,KAAK,OAAO;KAC9B,eAAe,WAAW,IAAI,gBAAgB;KAC9C,aAAa,OAAO,MAAM;KAC1B,MAAM,OAAO;KACb,QAAQ,OAAO;KACP;KACE;KACE;KACH;KACQ;KACX;MACN;;IACG;;CAGZ,CAAC"}
|