joist-codegen 2.3.0-next.6 → 2.3.0-next.60
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/build/EntityDbMetadata.cjs +608 -0
- package/build/EntityDbMetadata.cjs.map +1 -0
- package/build/EntityDbMetadata.d.cts +274 -0
- package/build/EntityDbMetadata.d.cts.map +1 -0
- package/build/EntityDbMetadata.d.mts +274 -0
- package/build/EntityDbMetadata.d.mts.map +1 -0
- package/build/EntityDbMetadata.js +485 -661
- package/build/EntityDbMetadata.js.map +1 -1
- package/build/_virtual/_rolldown/runtime.cjs +23 -0
- package/build/_virtual/_rolldown/runtime.js +5 -0
- package/build/assignTags.cjs +45 -0
- package/build/assignTags.cjs.map +1 -0
- package/build/{assignTags.d.ts → assignTags.d.cts} +8 -4
- package/build/assignTags.d.cts.map +1 -0
- package/build/assignTags.d.mts +16 -0
- package/build/assignTags.d.mts.map +1 -0
- package/build/assignTags.js +37 -59
- package/build/assignTags.js.map +1 -1
- package/build/codemods/Codemod.cjs +2 -0
- package/build/codemods/Codemod.d.cts +17 -0
- package/build/codemods/Codemod.d.cts.map +1 -0
- package/build/codemods/Codemod.d.mts +17 -0
- package/build/codemods/Codemod.d.mts.map +1 -0
- package/build/codemods/Codemod.js +2 -3
- package/build/codemods/JscodeshiftMod.cjs +42 -0
- package/build/codemods/JscodeshiftMod.cjs.map +1 -0
- package/build/codemods/JscodeshiftMod.d.cts +14 -0
- package/build/codemods/JscodeshiftMod.d.cts.map +1 -0
- package/build/codemods/JscodeshiftMod.d.mts +14 -0
- package/build/codemods/JscodeshiftMod.d.mts.map +1 -0
- package/build/codemods/JscodeshiftMod.js +33 -33
- package/build/codemods/JscodeshiftMod.js.map +1 -1
- package/build/codemods/codemod_0001-rename_has_async_property.cjs +30 -0
- package/build/codemods/codemod_0001-rename_has_async_property.cjs.map +1 -0
- package/build/codemods/codemod_0001-rename_has_async_property.d.cts +9 -0
- package/build/codemods/codemod_0001-rename_has_async_property.d.cts.map +1 -0
- package/build/codemods/codemod_0001-rename_has_async_property.d.mts +9 -0
- package/build/codemods/codemod_0001-rename_has_async_property.d.mts.map +1 -0
- package/build/codemods/codemod_0001-rename_has_async_property.js +21 -25
- package/build/codemods/codemod_0001-rename_has_async_property.js.map +1 -1
- package/build/codemods/codemod_0002-rename_async_query_fields.cjs +50 -0
- package/build/codemods/codemod_0002-rename_async_query_fields.cjs.map +1 -0
- package/build/codemods/codemod_0002-rename_async_query_fields.d.cts +9 -0
- package/build/codemods/codemod_0002-rename_async_query_fields.d.cts.map +1 -0
- package/build/codemods/codemod_0002-rename_async_query_fields.d.mts +9 -0
- package/build/codemods/codemod_0002-rename_async_query_fields.d.mts.map +1 -0
- package/build/codemods/codemod_0002-rename_async_query_fields.js +38 -52
- package/build/codemods/codemod_0002-rename_async_query_fields.js.map +1 -1
- package/build/codemods/codemod_0003-rename_find_paginated.cjs +25 -0
- package/build/codemods/codemod_0003-rename_find_paginated.cjs.map +1 -0
- package/build/codemods/codemod_0003-rename_find_paginated.d.cts +9 -0
- package/build/codemods/codemod_0003-rename_find_paginated.d.cts.map +1 -0
- package/build/codemods/codemod_0003-rename_find_paginated.d.mts +9 -0
- package/build/codemods/codemod_0003-rename_find_paginated.d.mts.map +1 -0
- package/build/codemods/codemod_0003-rename_find_paginated.js +17 -26
- package/build/codemods/codemod_0003-rename_find_paginated.js.map +1 -1
- package/build/codemods/index.cjs +49 -0
- package/build/codemods/index.cjs.map +1 -0
- package/build/codemods/index.d.cts +12 -0
- package/build/codemods/index.d.cts.map +1 -0
- package/build/codemods/index.d.mts +12 -0
- package/build/codemods/index.d.mts.map +1 -0
- package/build/codemods/index.js +34 -42
- package/build/codemods/index.js.map +1 -1
- package/build/config.cjs +377 -0
- package/build/config.cjs.map +1 -0
- package/build/config.d.cts +181 -0
- package/build/config.d.cts.map +1 -0
- package/build/config.d.mts +181 -0
- package/build/config.d.mts.map +1 -0
- package/build/config.js +309 -347
- package/build/config.js.map +1 -1
- package/build/docs/cache.cjs +62 -0
- package/build/docs/cache.cjs.map +1 -0
- package/build/docs/cache.d.cts +17 -0
- package/build/docs/cache.d.cts.map +1 -0
- package/build/docs/cache.d.mts +17 -0
- package/build/docs/cache.d.mts.map +1 -0
- package/build/docs/cache.js +52 -53
- package/build/docs/cache.js.map +1 -1
- package/build/docs/generate-metadata-docs.cjs +32 -0
- package/build/docs/generate-metadata-docs.cjs.map +1 -0
- package/build/docs/generate-metadata-docs.d.cts +9 -0
- package/build/docs/generate-metadata-docs.d.cts.map +1 -0
- package/build/docs/generate-metadata-docs.d.mts +9 -0
- package/build/docs/generate-metadata-docs.d.mts.map +1 -0
- package/build/docs/generate-metadata-docs.js +19 -24
- package/build/docs/generate-metadata-docs.js.map +1 -1
- package/build/docs/index.cjs +90 -0
- package/build/docs/index.cjs.map +1 -0
- package/build/docs/index.d.cts +16 -0
- package/build/docs/index.d.cts.map +1 -0
- package/build/docs/index.d.mts +16 -0
- package/build/docs/index.d.mts.map +1 -0
- package/build/docs/index.js +75 -80
- package/build/docs/index.js.map +1 -1
- package/build/docs/markdown.cjs +181 -0
- package/build/docs/markdown.cjs.map +1 -0
- package/build/docs/{markdown.d.ts → markdown.d.cts} +14 -12
- package/build/docs/markdown.d.cts.map +1 -0
- package/build/docs/markdown.d.mts +32 -0
- package/build/docs/markdown.d.mts.map +1 -0
- package/build/docs/markdown.js +152 -220
- package/build/docs/markdown.js.map +1 -1
- package/build/docs/parsing.cjs +117 -0
- package/build/docs/parsing.cjs.map +1 -0
- package/build/docs/parsing.d.cts +48 -0
- package/build/docs/parsing.d.cts.map +1 -0
- package/build/docs/parsing.d.mts +48 -0
- package/build/docs/parsing.d.mts.map +1 -0
- package/build/docs/parsing.js +89 -88
- package/build/docs/parsing.js.map +1 -1
- package/build/findEntityScopes.cjs +119 -0
- package/build/findEntityScopes.cjs.map +1 -0
- package/build/findEntityScopes.d.cts +14 -0
- package/build/findEntityScopes.d.cts.map +1 -0
- package/build/findEntityScopes.d.mts +14 -0
- package/build/findEntityScopes.d.mts.map +1 -0
- package/build/findEntityScopes.js +83 -111
- package/build/findEntityScopes.js.map +1 -1
- package/build/foreignKeyOrdering.cjs +52 -0
- package/build/foreignKeyOrdering.cjs.map +1 -0
- package/build/foreignKeyOrdering.d.cts +8 -0
- package/build/foreignKeyOrdering.d.cts.map +1 -0
- package/build/foreignKeyOrdering.d.mts +8 -0
- package/build/foreignKeyOrdering.d.mts.map +1 -0
- package/build/foreignKeyOrdering.js +46 -55
- package/build/foreignKeyOrdering.js.map +1 -1
- package/build/generate.cjs +127 -0
- package/build/generate.cjs.map +1 -0
- package/build/generate.d.cts +17 -0
- package/build/generate.d.cts.map +1 -0
- package/build/generate.d.mts +17 -0
- package/build/generate.d.mts.map +1 -0
- package/build/generate.js +110 -124
- package/build/generate.js.map +1 -1
- package/build/generateEntitiesFile.cjs +46 -0
- package/build/generateEntitiesFile.cjs.map +1 -0
- package/build/generateEntitiesFile.d.cts +11 -0
- package/build/generateEntitiesFile.d.cts.map +1 -0
- package/build/generateEntitiesFile.d.mts +11 -0
- package/build/generateEntitiesFile.d.mts.map +1 -0
- package/build/generateEntitiesFile.js +28 -25
- package/build/generateEntitiesFile.js.map +1 -1
- package/build/generateEntityCodegenFile.cjs +951 -0
- package/build/generateEntityCodegenFile.cjs.map +1 -0
- package/build/generateEntityCodegenFile.d.cts +16 -0
- package/build/generateEntityCodegenFile.d.cts.map +1 -0
- package/build/generateEntityCodegenFile.d.mts +16 -0
- package/build/generateEntityCodegenFile.d.mts.map +1 -0
- package/build/generateEntityCodegenFile.js +734 -827
- package/build/generateEntityCodegenFile.js.map +1 -1
- package/build/generateEntityFile.cjs +23 -0
- package/build/generateEntityFile.cjs.map +1 -0
- package/build/generateEntityFile.d.cts +9 -0
- package/build/generateEntityFile.d.cts.map +1 -0
- package/build/generateEntityFile.d.mts +9 -0
- package/build/generateEntityFile.d.mts.map +1 -0
- package/build/generateEntityFile.js +11 -8
- package/build/generateEntityFile.js.map +1 -1
- package/build/generateEntityTestFile.cjs +25 -0
- package/build/generateEntityTestFile.cjs.map +1 -0
- package/build/generateEntityTestFile.d.cts +9 -0
- package/build/generateEntityTestFile.d.cts.map +1 -0
- package/build/generateEntityTestFile.d.mts +9 -0
- package/build/generateEntityTestFile.d.mts.map +1 -0
- package/build/generateEntityTestFile.js +10 -7
- package/build/generateEntityTestFile.js.map +1 -1
- package/build/generateEnumFile.cjs +73 -0
- package/build/generateEnumFile.cjs.map +1 -0
- package/build/generateEnumFile.d.cts +9 -0
- package/build/generateEnumFile.d.cts.map +1 -0
- package/build/generateEnumFile.d.mts +9 -0
- package/build/generateEnumFile.d.mts.map +1 -0
- package/build/generateEnumFile.js +33 -43
- package/build/generateEnumFile.js.map +1 -1
- package/build/generateFactoriesFiles.cjs +28 -0
- package/build/generateFactoriesFiles.cjs.map +1 -0
- package/build/generateFactoriesFiles.d.cts +7 -0
- package/build/generateFactoriesFiles.d.cts.map +1 -0
- package/build/generateFactoriesFiles.d.mts +7 -0
- package/build/generateFactoriesFiles.d.mts.map +1 -0
- package/build/generateFactoriesFiles.js +21 -16
- package/build/generateFactoriesFiles.js.map +1 -1
- package/build/generateFlushFunction.cjs +61 -0
- package/build/generateFlushFunction.cjs.map +1 -0
- package/build/{generateFlushFunction.d.ts → generateFlushFunction.d.cts} +8 -5
- package/build/generateFlushFunction.d.cts.map +1 -0
- package/build/generateFlushFunction.d.mts +23 -0
- package/build/generateFlushFunction.d.mts.map +1 -0
- package/build/generateFlushFunction.js +32 -78
- package/build/generateFlushFunction.js.map +1 -1
- package/build/generateMetadataFile.cjs +290 -0
- package/build/generateMetadataFile.cjs.map +1 -0
- package/build/generateMetadataFile.d.cts +8 -0
- package/build/generateMetadataFile.d.cts.map +1 -0
- package/build/generateMetadataFile.d.mts +8 -0
- package/build/generateMetadataFile.d.mts.map +1 -0
- package/build/generateMetadataFile.js +116 -140
- package/build/generateMetadataFile.js.map +1 -1
- package/build/generatePgEnumFile.cjs +21 -0
- package/build/generatePgEnumFile.cjs.map +1 -0
- package/build/generatePgEnumFile.d.cts +9 -0
- package/build/generatePgEnumFile.d.cts.map +1 -0
- package/build/generatePgEnumFile.d.mts +9 -0
- package/build/generatePgEnumFile.d.mts.map +1 -0
- package/build/generatePgEnumFile.js +12 -9
- package/build/generatePgEnumFile.js.map +1 -1
- package/build/index.cjs +135 -0
- package/build/index.cjs.map +1 -0
- package/build/index.d.cts +12 -0
- package/build/index.d.cts.map +1 -0
- package/build/index.d.mts +12 -0
- package/build/index.d.mts.map +1 -0
- package/build/index.js +108 -127
- package/build/index.js.map +1 -1
- package/build/inheritance.cjs +213 -0
- package/build/inheritance.cjs.map +1 -0
- package/build/inheritance.d.cts +12 -0
- package/build/inheritance.d.cts.map +1 -0
- package/build/inheritance.d.mts +12 -0
- package/build/inheritance.d.mts.map +1 -0
- package/build/inheritance.js +193 -247
- package/build/inheritance.js.map +1 -1
- package/build/installSkills.cjs +68 -0
- package/build/installSkills.cjs.map +1 -0
- package/build/installSkills.d.cts +16 -0
- package/build/installSkills.d.cts.map +1 -0
- package/build/installSkills.d.mts +16 -0
- package/build/installSkills.d.mts.map +1 -0
- package/build/installSkills.js +67 -0
- package/build/installSkills.js.map +1 -0
- package/build/keywords.cjs +7 -0
- package/build/keywords.cjs.map +1 -0
- package/build/keywords.d.cts +5 -0
- package/build/keywords.d.cts.map +1 -0
- package/build/keywords.d.mts +5 -0
- package/build/keywords.d.mts.map +1 -0
- package/build/keywords.js +5 -4
- package/build/keywords.js.map +1 -1
- package/build/loadMetadata.cjs +39 -0
- package/build/loadMetadata.cjs.map +1 -0
- package/build/loadMetadata.d.cts +31 -0
- package/build/loadMetadata.d.cts.map +1 -0
- package/build/loadMetadata.d.mts +31 -0
- package/build/loadMetadata.d.mts.map +1 -0
- package/build/loadMetadata.js +32 -39
- package/build/loadMetadata.js.map +1 -1
- package/build/logger.cjs +28 -0
- package/build/logger.cjs.map +1 -0
- package/build/logger.d.cts +13 -0
- package/build/logger.d.cts.map +1 -0
- package/build/logger.d.mts +13 -0
- package/build/logger.d.mts.map +1 -0
- package/build/logger.js +17 -16
- package/build/logger.js.map +1 -1
- package/build/scanEntityFiles.cjs +46 -0
- package/build/scanEntityFiles.cjs.map +1 -0
- package/build/scanEntityFiles.d.cts +8 -0
- package/build/scanEntityFiles.d.cts.map +1 -0
- package/build/scanEntityFiles.d.mts +8 -0
- package/build/scanEntityFiles.d.mts.map +1 -0
- package/build/scanEntityFiles.js +37 -42
- package/build/scanEntityFiles.js.map +1 -1
- package/build/sortForeignKeys.cjs +99 -0
- package/build/sortForeignKeys.cjs.map +1 -0
- package/build/{sortForeignKeys.d.ts → sortForeignKeys.d.cts} +8 -5
- package/build/sortForeignKeys.d.cts.map +1 -0
- package/build/sortForeignKeys.d.mts +35 -0
- package/build/sortForeignKeys.d.mts.map +1 -0
- package/build/sortForeignKeys.js +88 -117
- package/build/sortForeignKeys.js.map +1 -1
- package/build/symbols.cjs +228 -0
- package/build/symbols.cjs.map +1 -0
- package/build/symbols.d.cts +115 -0
- package/build/symbols.d.cts.map +1 -0
- package/build/symbols.d.mts +115 -0
- package/build/symbols.d.mts.map +1 -0
- package/build/symbols.js +116 -113
- package/build/symbols.js.map +1 -1
- package/build/tsdoc.cjs +22 -0
- package/build/tsdoc.cjs.map +1 -0
- package/build/tsdoc.d.cts +15 -0
- package/build/tsdoc.d.cts.map +1 -0
- package/build/tsdoc.d.mts +15 -0
- package/build/tsdoc.d.mts.map +1 -0
- package/build/tsdoc.js +18 -15
- package/build/tsdoc.js.map +1 -1
- package/build/utils.cjs +173 -0
- package/build/utils.cjs.map +1 -0
- package/build/utils.d.cts +34 -0
- package/build/utils.d.cts.map +1 -0
- package/build/utils.d.mts +34 -0
- package/build/utils.d.mts.map +1 -0
- package/build/utils.js +112 -166
- package/build/utils.js.map +1 -1
- package/build/write-json-schema.cjs +23 -0
- package/build/write-json-schema.cjs.map +1 -0
- package/build/write-json-schema.d.cts +1 -0
- package/build/write-json-schema.d.mts +1 -0
- package/build/write-json-schema.js +19 -13
- package/build/write-json-schema.js.map +1 -1
- package/package.json +37 -17
- package/skills/joist-docs/SKILL.md +133 -0
- package/skills/joist-em-basics/SKILL.md +114 -0
- package/skills/joist-partial-updates/SKILL.md +352 -0
- package/skills/joist-reactive-hints/SKILL.md +150 -0
- package/skills/joist-test-factories/SKILL.md +397 -0
- package/skills/joist-upsert/SKILL.md +95 -0
- package/build/EntityDbMetadata.d.ts +0 -269
- package/build/EntityDbMetadata.d.ts.map +0 -1
- package/build/EntityDbMetadata.test.d.ts +0 -2
- package/build/EntityDbMetadata.test.d.ts.map +0 -1
- package/build/EntityDbMetadata.test.js +0 -211
- package/build/EntityDbMetadata.test.js.map +0 -1
- package/build/assignTags.d.ts.map +0 -1
- package/build/codemods/Codemod.d.ts +0 -14
- package/build/codemods/Codemod.d.ts.map +0 -1
- package/build/codemods/Codemod.js.map +0 -1
- package/build/codemods/JscodeshiftMod.d.ts +0 -11
- package/build/codemods/JscodeshiftMod.d.ts.map +0 -1
- package/build/codemods/__tests__/codemod_0001-rename_has_async_property.test.d.ts +0 -2
- package/build/codemods/__tests__/codemod_0001-rename_has_async_property.test.d.ts.map +0 -1
- package/build/codemods/__tests__/codemod_0001-rename_has_async_property.test.js +0 -9
- package/build/codemods/__tests__/codemod_0001-rename_has_async_property.test.js.map +0 -1
- package/build/codemods/__tests__/codemod_0002-rename_async_query_fields.test.d.ts +0 -2
- package/build/codemods/__tests__/codemod_0002-rename_async_query_fields.test.d.ts.map +0 -1
- package/build/codemods/__tests__/codemod_0002-rename_async_query_fields.test.js +0 -9
- package/build/codemods/__tests__/codemod_0002-rename_async_query_fields.test.js.map +0 -1
- package/build/codemods/__tests__/codemod_0003-rename_find_paginated.test.d.ts +0 -2
- package/build/codemods/__tests__/codemod_0003-rename_find_paginated.test.d.ts.map +0 -1
- package/build/codemods/__tests__/codemod_0003-rename_find_paginated.test.js +0 -9
- package/build/codemods/__tests__/codemod_0003-rename_find_paginated.test.js.map +0 -1
- package/build/codemods/codemod_0001-rename_has_async_property.d.ts +0 -7
- package/build/codemods/codemod_0001-rename_has_async_property.d.ts.map +0 -1
- package/build/codemods/codemod_0002-rename_async_query_fields.d.ts +0 -7
- package/build/codemods/codemod_0002-rename_async_query_fields.d.ts.map +0 -1
- package/build/codemods/codemod_0003-rename_find_paginated.d.ts +0 -7
- package/build/codemods/codemod_0003-rename_find_paginated.d.ts.map +0 -1
- package/build/codemods/index.d.ts +0 -9
- package/build/codemods/index.d.ts.map +0 -1
- package/build/codemods/index.test.d.ts +0 -2
- package/build/codemods/index.test.d.ts.map +0 -1
- package/build/codemods/index.test.js +0 -24
- package/build/codemods/index.test.js.map +0 -1
- package/build/config.d.ts +0 -167
- package/build/config.d.ts.map +0 -1
- package/build/config.test.d.ts +0 -2
- package/build/config.test.d.ts.map +0 -1
- package/build/config.test.js +0 -78
- package/build/config.test.js.map +0 -1
- package/build/docs/cache.d.ts +0 -14
- package/build/docs/cache.d.ts.map +0 -1
- package/build/docs/cache.test.d.ts +0 -2
- package/build/docs/cache.test.d.ts.map +0 -1
- package/build/docs/cache.test.js +0 -47
- package/build/docs/cache.test.js.map +0 -1
- package/build/docs/generate-metadata-docs.d.ts +0 -6
- package/build/docs/generate-metadata-docs.d.ts.map +0 -1
- package/build/docs/index.d.ts +0 -9
- package/build/docs/index.d.ts.map +0 -1
- package/build/docs/index.test.d.ts +0 -2
- package/build/docs/index.test.d.ts.map +0 -1
- package/build/docs/index.test.js +0 -100
- package/build/docs/index.test.js.map +0 -1
- package/build/docs/markdown.d.ts.map +0 -1
- package/build/docs/markdown.test.d.ts +0 -2
- package/build/docs/markdown.test.d.ts.map +0 -1
- package/build/docs/markdown.test.js +0 -280
- package/build/docs/markdown.test.js.map +0 -1
- package/build/docs/parsing.d.ts +0 -42
- package/build/docs/parsing.d.ts.map +0 -1
- package/build/docs/parsing.test.d.ts +0 -2
- package/build/docs/parsing.test.d.ts.map +0 -1
- package/build/docs/parsing.test.js +0 -190
- package/build/docs/parsing.test.js.map +0 -1
- package/build/findEntityScopes.d.ts +0 -11
- package/build/findEntityScopes.d.ts.map +0 -1
- package/build/foreignKeyOrdering.d.ts +0 -3
- package/build/foreignKeyOrdering.d.ts.map +0 -1
- package/build/generate.d.ts +0 -12
- package/build/generate.d.ts.map +0 -1
- package/build/generateEntitiesFile.d.ts +0 -7
- package/build/generateEntitiesFile.d.ts.map +0 -1
- package/build/generateEntityCodegenFile.d.ts +0 -11
- package/build/generateEntityCodegenFile.d.ts.map +0 -1
- package/build/generateEntityFile.d.ts +0 -6
- package/build/generateEntityFile.d.ts.map +0 -1
- package/build/generateEntityTestFile.d.ts +0 -6
- package/build/generateEntityTestFile.d.ts.map +0 -1
- package/build/generateEnumFile.d.ts +0 -5
- package/build/generateEnumFile.d.ts.map +0 -1
- package/build/generateFactoriesFiles.d.ts +0 -4
- package/build/generateFactoriesFiles.d.ts.map +0 -1
- package/build/generateFlushFunction.d.ts.map +0 -1
- package/build/generateMetadataFile.d.ts +0 -5
- package/build/generateMetadataFile.d.ts.map +0 -1
- package/build/generatePgEnumFile.d.ts +0 -5
- package/build/generatePgEnumFile.d.ts.map +0 -1
- package/build/index.d.ts +0 -11
- package/build/index.d.ts.map +0 -1
- package/build/inheritance.d.ts +0 -10
- package/build/inheritance.d.ts.map +0 -1
- package/build/keywords.d.ts +0 -2
- package/build/keywords.d.ts.map +0 -1
- package/build/loadMetadata.d.ts +0 -26
- package/build/loadMetadata.d.ts.map +0 -1
- package/build/logger.d.ts +0 -10
- package/build/logger.d.ts.map +0 -1
- package/build/scanEntityFiles.d.ts +0 -5
- package/build/scanEntityFiles.d.ts.map +0 -1
- package/build/sortForeignKeys.d.ts.map +0 -1
- package/build/symbols.d.ts +0 -108
- package/build/symbols.d.ts.map +0 -1
- package/build/tsdoc.d.ts +0 -12
- package/build/tsdoc.d.ts.map +0 -1
- package/build/utils.d.ts +0 -31
- package/build/utils.d.ts.map +0 -1
- package/build/write-json-schema.d.ts +0 -2
- package/build/write-json-schema.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateEntityCodegenFile.js","sourceRoot":"","sources":["../src/generateEntityCodegenFile.ts"],"names":[],"mappings":";;AA2GA,8DA6PC;AAk1BD,8BAWC;AArsCD,6CAAoD;AACpD,yCAAmC;AACnC,qCAAoD;AAcpD,+CAA+C;AAC/C,yCAAsC;AACtC,uCAuEmB;AACnB,mCAAwC;AACxC,mCAA0D;AAe1D,+DAA+D;AAC/D,SAAgB,yBAAyB,CACvC,MAAc,EACd,MAAkB,EAClB,IAAsB,EACtB,eAA8B,EAAE;IAEhC,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAC/C,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACjC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;IAE/B,kEAAkE;IAClE,MAAM,OAAO,GAAG,mBAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAA,oBAAY,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;IAEhF,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,qBAAqB;IACxE,UAAU,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,sBAAsB;IAC5E,UAAU,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,sBAAsB;IAClE,UAAU,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,mBAAmB;IAC5D,MAAM,SAAS,GAAG,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAExD,MAAM,UAAU,GAAG,GAAG,IAAA,uBAAS,EAAC,UAAU,CAAC,QAAQ,CAAC;IACpD,MAAM,WAAW,GAAG,GAAG,IAAA,uBAAS,EAAC,UAAU,CAAC,OAAO,CAAC;IACpD,MAAM,QAAQ,GAAG,IAAA,aAAG,EAAC,GAAG,IAAA,uBAAS,EAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;IAEnE,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAA,aAAG,EAAC,KAAK,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC/E,MAAM,aAAa,GAAG,IAAA,aAAG,EAAC,MAAM,MAAM,CAAC,IAAI,gBAAgB,CAAC,CAAC;IAE7D,0DAA0D;IAC1D,MAAM,WAAW,GACf,MAAM,CAAC,MAAM,KAAK,eAAe;QAC/B,CAAC,CAAC,IAAA,cAAI,EAAA,4BAA4B;QAClC,CAAC,CAAC,IAAA,cAAI,EAAA,UAAU,gBAAM,IAAI,QAAQ,wBAAwB,CAAC;IAC/D,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAEjC,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS;QACvC,CAAC,CAAC,IAAA,cAAI,EAAA;;oBAEU,IAAI,CAAC,SAAS,CAAC,SAAS;;GAEzC;QACC,CAAC,CAAC,EAAE,CAAC;IAEP,yEAAyE;IACzE,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,aAAa,CAAC,CAAC;IAC9E,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;IACjF,MAAM,IAAI,GAAG,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,IAAA,cAAI,EAAA,GAAG,oBAAU,IAAI,uBAAa,KAAK,MAAM,GAAG,CAAC;IAC/F,MAAM,eAAe,GAAG,UAAU;QAChC,CAAC,CAAC,IAAA,cAAI,EAAA,WAAW,IAAA,aAAG,EAAC,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,GAAG,gBAAgB,CAAC,EAAE;QAC9E,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,aAAa,GAAG,UAAU,CAAC,CAAC,CAAC,IAAA,cAAI,EAAA,WAAW,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACpF,MAAM,eAAe,GAAG,UAAU;QAChC,CAAC,CAAC,IAAA,cAAI,EAAA,WAAW,IAAA,aAAG,EAAC,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,GAAG,gBAAgB,CAAC,EAAE;QAC/E,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,eAAe,GAAG,UAAU;QAChC,CAAC,CAAC,IAAA,cAAI,EAAA,WAAW,IAAA,aAAG,EAAC,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,GAAG,gBAAgB,CAAC,EAAE;QAC9E,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,kBAAkB,GAAG,UAAU;QACnC,CAAC,CAAC,IAAA,cAAI,EAAA,WAAW,IAAA,aAAG,EAAC,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,iBAAiB,GAAG,gBAAgB,CAAC,EAAE;QACrF,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,cAAc,GAAG,UAAU,CAAC,CAAC,CAAC,IAAA,cAAI,EAAA,WAAW,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACtF,MAAM,iCAAiC,GAAG,IAAI,CAAC,QAAQ;QACrD,CAAC,CAAC,IAAA,cAAI,EAAA;+BACqB,MAAM,CAAC,IAAI;0BAChB,MAAM,CAAC,IAAI;MAC/B;QACF,CAAC,CAAC,EAAE,CAAC;IAEP,IAAI,qBAAqB,CAAC;IAC1B,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,qBAAqB,GAAG,IAAA,kBAAQ;QAC9B,gGAAgG;QAChG,gGAAgG;QAChG,+FAA+F;QAC/F,EAAE;QACF,4BAA4B;QAC5B,gCAAgC;QAChC,mCAAmC;QACnC,EAAE;QACF,uEAAuE;QACvE,EAAE;QACF,uDAAuD;QACvD;YACE,IAAA,cAAI,EAAA,IAAI;YACR,GAAG,CAAC,IAAI,EAAE,GAAG,WAAW,CAAC,CAAC,GAAG,CAC3B,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,cAAI,EAAA,UAAU,kBAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,OAAO,qBAAW,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CACtF;SACF,EACD,EAAE,EAAE,EAAE,GAAG,EAAE,CACZ,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,qBAAqB,GAAG,EAAE,CAAC;IAC7B,CAAC;IAED,IAAI,gBAAgB,CAAC;IACrB,IAAI,UAAU,EAAE,CAAC;QACf,gBAAgB,GAAG,IAAA,cAAI,EAAA,KAAK,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACvD,CAAC;SAAM,CAAC;QACN,gBAAgB,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,OAAO,IAAA,cAAI,EAAA;kBACK,MAAM,CAAC,MAAM,MAAM,gBAAM,IAAI,MAAM,MAAM,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU;;MAE9F,wBAAwB,CAAC,IAAI,CAAC;;uBAEb,MAAM,CAAC,UAAU,IAAI,eAAe;QACnD,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC;;;uBAGjB,MAAM,CAAC,QAAQ,IAAI,aAAa;QAC/C,kBAAkB,CAAC,IAAI,CAAC;;;uBAGT,MAAM,CAAC,WAAW,IAAI,eAAe;QACpD,oBAAoB,CAAC,IAAI,CAAC;;;uBAGX,MAAM,CAAC,UAAU,IAAI,eAAe;QACnD,oBAAoB,CAAC,WAAW,EAAE,IAAI,CAAC;;;uBAGxB,MAAM,CAAC,iBAAiB,IAAI,kBAAkB;QAC7D,2BAA2B,CAAC,WAAW,EAAE,IAAI,CAAC;;;uBAG/B,MAAM,CAAC,SAAS,IAAI,cAAc;QACjD,mBAAmB,CAAC,IAAI,CAAC;;;uBAGV,MAAM,CAAC,iBAAiB;QACvC,yBAAyB,CAAC,IAAI,CAAC;;;uBAGhB,MAAM,CAAC,UAAU;QAChC,YAAY,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAA,cAAI,EAAA,GAAG,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC;;;kBAGzD,MAAM,CAAC,SAAS,MAAM,eAAK,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,UAAU;;mBAE/D,UAAU,UAAU,mBAAS,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW;;mBAE5D,WAAW,MAAM,oBAAU,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,SAAS,MAAM,UAAU;;MAE5F,8BAA8B,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC;MACxD,qBAAqB,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC;;;;UAI3C,UAAU;wBACI,UAAU;wBACV,MAAM,CAAC,UAAU;2BACd,MAAM,CAAC,iBAAiB;uBAC5B,MAAM,CAAC,SAAS;sBACjB,MAAM,CAAC,QAAQ;wBACb,MAAM,CAAC,UAAU;wBACjB,MAAM,CAAC,WAAW;+BACX,MAAM,CAAC,iBAAiB;+CACR,aAAa;;;;;4BAKhC,UAAU,mBAAmB,IAAI,eAAe,uBAAa;mCACtD,OAAO;kCACR,wBAAc,IAAI,MAAM,CAAC,IAAI;;;UAGrD,UAAU,CAAC,CAAC,CAAC,OAAO,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE;UAC5C,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,UAAU;;;QAGpC,SAAS;SACR,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;SACpC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,OAAO,IAAA,cAAI,EAAA,GAAG,CAAC,CAAC,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACnD,CAAC,CAAC;QACF,SAAS;SACR,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC;SACpC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,OAAO,IAAA,cAAI,EAAA,YAAY,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACzF,CAAC,CAAC;QACF,SAAS;SACR,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;SACjC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,OAAO,IAAA,cAAI,EAAA,oBAAoB,CAAC,CAAC,SAAS,KAAK,CAAC,CAAC,IAAI,IAAI,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;IACrF,CAAC,CAAC;;kBAEQ,MAAM,CAAC,MAAM;iCACE,qBAAW,KAAK,UAAU;;;uBAGpC,MAAM,CAAC,MAAM;UAC1B,WAAW;;;wBAGG,kBAAQ;uCACO,qBAAW,KAAK,UAAU;;;6BAGpC,kBAAQ;iBACpB,kBAAQ;;;QAGjB,UAAU;;QAEV,qBAAa,CAAC,MAAM,CAAC,UAAU;0BACb,MAAM,CAAC,QAAQ;UAC/B,iBAAO,mBAAmB,UAAU;;;QAGtC,qBAAa,CAAC,MAAM,CAAC,UAAU;yBACd,uBAAa,IAAI,MAAM,CAAC,QAAQ;UAC/C,iBAAO,mBAAmB,UAAU,aAAa,gBAAM,IAAI,UAAU;;;QAGvE,qBAAa,CAAC,MAAM,CAAC,cAAc;6BACd,2BAAiB,IAAI,UAAU;iBAC3C,uBAAa,mBAAmB,UAAU;;;QAGnD,qBAAa,CAAC,MAAM,CAAC,OAAO;uBACb,iBAAO,IAAI,UAAU,GAAG,qBAAqB;iBACnD,yBAAe;;;QAGxB,kBAAkB;;QAElB,qBAAa,CAAC,MAAM,CAAC,IAAI;8BACH,cAAI,IAAI,MAAM,CAAC,IAAI,SAAS,cAAI;iBAC7C,kBAAQ,mBAAmB,UAAU;;;QAG9C,qBAAa,CAAC,MAAM,CAAC,QAAQ;iCACJ,kBAAQ,IAAI,UAAU,wBAAwB,gBAAM,IAAI,UAAU;iCAClE,kBAAQ,IAAI,UAAU,yDAAyD,gBAAM,IAAI,UAAU;iCACnG,kBAAQ,IAAI,UAAU,uBAAuB,OAAO,YAAY,UAAU;iCAC1E,kBAAQ,IAAI,UAAU,wDAAwD,OAAO,YAAY,UAAU;iCAC3G,kBAAQ,IAAI,UAAU,gCAAgC,OAAO,YAAY,UAAU,wBAAwB,gBAAM,IAAI,UAAU;iDAC/G,UAAU;;;QAGnD,qBAAa,CAAC,MAAM,CAAC,QAAQ;iCACJ,kBAAQ,IAAI,UAAU,wBAAwB,gBAAM,IAAI,UAAU,GAAG,gBAAgB;iBACrG,kBAAQ,mBAAmB,UAAU;;;QAG9C,qBAAa,CAAC,MAAM,CAAC,MAAM;;+BAEJ,oBAAU,IAAI,UAAU,wBAAwB,qBAAW,IAAI,UAAU;;sEAElC,gBAAM;;;GAGzE,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,KAA+C;IAC3E,IAAI,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IAC9B,6CAA6C;IAC7C,IAAI,aAAa,KAAK,IAAI,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC;IACf,CAAC;IACD,kGAAkG;IAClG,8DAA8D;IAC9D,aAAa,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;IACzC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC1E,+EAA+E;IAC/E,OAAO,CACL,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;QAC3D,CAAC,SAAS,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;QAC3D,CAAC,SAAS,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACxD,CAAC,SAAS,KAAK,SAAS,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CACvE,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,IAAsB;IACtD,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC;QACvC,IAAA,cAAI,EAAA,eAAe,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,cAAI,EAAA,KAAK,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,GAAG;QAC/F,IAAA,cAAI,EAAA,sBAAsB,EAAE,CAAC,SAAS,mBAAmB,wCAA8B,IAAI,EAAE,CAAC,SAAS;gBAC3F,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,cAAI,EAAA,GAAG,CAAC,CAAC,WAAW,CAAC,UAAU,GAAG,CAAC;MACtE;QACF,IAAA,cAAI,EAAA,qBAAqB,EAAE,CAAC,SAAS,0CAA0C,EAAE,CAAC,SAAS;eAChF,kBAAQ,uBAAuB,EAAE,CAAC,SAAS;MACpD;KACH,CAAC,CAAC;AACL,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAc,EAAE,IAAsB,EAAE,UAAkB;IACvF,uFAAuF;IACvF,mGAAmG;IACnG,SAAS,OAAO,CAAC,KAAiC;QAChD,OAAO,SAAS,IAAI,KAAK,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC;IACxD,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU;SAC/B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;SAC9C,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,EAAE;QACpC,OAAO,IAAA,cAAI,EAAA,GAAG,UAAU,gBAAgB,SAAS,MAAM,aAAa,IAAI,CAAC;IAC3E,CAAC,CAAC,CAAC;IACL,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO;SACzB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC;SACxC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,EAAE;QACpC,OAAO,IAAA,cAAI,EAAA,GAAG,UAAU,gBAAgB,SAAS,MAAM,aAAa,IAAI,CAAC;IAC3E,CAAC,CAAC,CAAC;IACL,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;SACrB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;SAC1D,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE;QACpE,MAAM,UAAU,GACd,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,aAAa,CAAC,CAAC;YACpD,IAAA,YAAI,EAAC,yBAAyB,aAAa,QAAQ,IAAI,CAAC,SAAS,IAAI,UAAU,EAAE,CAAC,CAAC;QACrF,OAAO,IAAA,cAAI,EAAA,GAAG,UAAU,gBAAgB,SAAS,MAAM,QAAQ,IAAI,IAAA,wBAAU,EAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;IACrG,CAAC,CAAC,CAAC;IACL,OAAO,CAAC,GAAG,UAAU,EAAE,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,8BAA8B,CAAC,EAAc,EAAE,IAAsB,EAAE,UAAkB;IAChG,8CAA8C;IAC9C,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;IAC7F,MAAM,KAAK,GAAG,MAAM;SACjB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;SACxB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QACxB,MAAM,UAAU,GAAG,SAAS,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC;QAC3D,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,IAAA,cAAI,EAAA,GAAG,UAAU,aAAa,SAAS,MAAM,yBAAe,KAAK,SAAS,MAAM,CAAC;QAC1F,CAAC;aAAM,CAAC;YACN,OAAO,IAAA,cAAI,EAAA,GAAG,UAAU,YAAY,yBAAe,KAAK,SAAS,MAAM,CAAC;QAC1E,CAAC;IACH,CAAC,CAAC,CAAC;IACL,sCAAsC;IACtC,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,qBAAqB,CAAC,IAAI,IAAA,YAAI,EAAC,qBAAqB,CAAC,CAAC;QAChH,KAAK,CAAC,IAAI,CAAC,IAAA,cAAI,EAAA,GAAG,UAAU,YAAY,yBAAe,KAAK,KAAK,CAAC,SAAS,MAAM,CAAC,CAAC;IACrF,CAAC;IACD,0BAA0B;IAC1B,MAAM,WAAW,GAAG,IAAA,4BAAc,EAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACzB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClC,8GAA8G;YAC9G,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACrD,IAAI,MAAM,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACxD,KAAK,CAAC,IAAI,CAAC,IAAA,cAAI,EAAA,GAAG,UAAU,aAAa,GAAG,CAAC,SAAS,MAAM,uBAAa,KAAK,GAAG,CAAC,SAAS,MAAM,CAAC,CAAC;YACrG,CAAC;QACH,CAAC;IACH,CAAC;IACD,wCAAwC;IACxC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,IAAI,CAAC,UAAU;aACZ,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CACd,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,CAC7B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,KAAK,GAAG,CAAC,WAAW,CAAC,IAAI,CACpF,CACF;aACA,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACf,KAAK,CAAC,IAAI,CAAC,IAAA,cAAI,EAAA,GAAG,UAAU,aAAa,GAAG,CAAC,SAAS,MAAM,uBAAa,KAAK,GAAG,CAAC,SAAS,MAAM,CAAC,CAAC;QACrG,CAAC,CAAC,CAAC;IACP,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,qBAAqB;AACrB,SAAS,kBAAkB,CAAC,IAAsB;IAChD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC/C,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QACzD,IAAI,OAAO;YAAE,OAAO,IAAA,cAAI,EAAA,EAAE,CAAC;QAC3B,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,GAAG,sBAAsB,CAAC,KAAK,CAAC,KAAK,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC;IACrG,CAAC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACrC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QACjE,IAAI,IAAI,CAAC,qBAAqB,KAAK,SAAS,IAAI,OAAO,EAAE,CAAC;YACxD,sFAAsF;YACtF,OAAO,IAAA,cAAI,EAAA,EAAE,CAAC;QAChB,CAAC;aAAM,IAAI,OAAO,EAAE,CAAC;YACnB,uDAAuD;YACvD,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,MAAM,QAAQ,KAAK,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,GAAG,sBAAsB,CAAC,KAAK,CAAC,KAAK,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC;QACpG,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACzC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QAC/C,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,GAAG,sBAAsB,CAAC,KAAK,CAAC,KAAK,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC;IACpG,CAAC,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU;SACxB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,wCAAwC;QAC3E,uFAAuF;QACvF,+FAA+F;QAC/F,sDAAsD;SACrD,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;SAC5F,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QAClD,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,GAAG,sBAAsB,CAAC,KAAK,CAAC,KAAK,WAAW,CAAC,IAAI,MAAM,WAAW,CAAC,MAAM,IAAI,SAAS,GAAG,CAAC;IACvH,CAAC,CAAC,CAAC;IACL,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE;QAC5D,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,MAAM,WAAW,CAAC,IAAI,UAAU,CAAC;IAC1D,CAAC,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE;QAC7D,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,MAAM,WAAW,CAAC,IAAI,KAAK,CAAC;IACrD,CAAC,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW;SACzB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,2BAA2B;SAC7D,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE;QAClC,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,MAAM,WAAW,CAAC,IAAI,KAAK,CAAC;IACrD,CAAC,CAAC,CAAC;IACL,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE;QACnE,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,MAAM,QAAQ,KAAK,CAAC;IAC7C,CAAC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC5C,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QAChD,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,GAAG,sBAAsB,CAAC,KAAK,CAAC,KAAK,SAAS,GAAG,CAAC;IAC3E,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,UAAU,EAAE,GAAG,KAAK,EAAE,GAAG,OAAO,EAAE,GAAG,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,OAAO,CAAC,CAAC;AACrG,CAAC;AAED,uBAAuB;AACvB,SAAS,kBAAkB,CAAC,IAAsB,EAAE,MAA2B;IAC7E,MAAM,EAAE,GAAG,IAAA,cAAI,EAAA,kCAAkC,MAAM,aAAa,IAAI,sBAAsB,CAAC;IAC/F,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC/C,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QACjE,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,gCAAgC,SAAS,aAAa,MAAM,eAAe,gBAAgB,CAChH,OAAO,CACR,cAAc,OAAO,KAAK,KAAK,KAAK,CAAC;IACxC,CAAC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACrC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QACxD,IAAI,OAAO,EAAE,CAAC;YACZ,uDAAuD;YACvD,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,2BAA2B,QAAQ,wBAAwB,CAAC;QACrF,CAAC;aAAM,CAAC;YACN,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,2BAA2B,QAAQ,eAAe,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC;QAC1G,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QACpE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC3C,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,2BAA2B,QAAQ,eAAe,QAAQ,mBAAmB,CAAC;IACvG,CAAC,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;QAC/E,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,0BAA0B,WAAW,CAAC,IAAI,eAAe,gBAAgB,CAC9F,OAAO,CACR,cAAc,OAAO,KAAK,KAAK,KAAK,CAAC;IACxC,CAAC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE;QACxE,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,2BAA2B,SAAS,eAAe,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC;IAC3G,CAAC,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE;QAC9D,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,0BAA0B,WAAW,CAAC,IAAI,KAAK,CAAC;IACzE,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE;QACnE,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,8BAA8B,QAAQ,KAAK,CAAC;IACrE,CAAC,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE;QAC7D,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,0BAA0B,WAAW,CAAC,IAAI,KAAK,CAAC;IACzE,CAAC,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE;QACnE,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,0BAA0B,WAAW,CAAC,IAAI,KAAK,CAAC;IACzE,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK,EAAE,GAAG,OAAO,EAAE,GAAG,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AAC1G,CAAC;AAED,sFAAsF;AACtF,sFAAsF;AACtF,yEAAyE;AACzE,SAAS,oBAAoB,CAAC,IAAsB;IAClD,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU;SACxB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,0BAA0B;SAC5D,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE;QAClC,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,QAAQ,WAAW,CAAC,MAAM,UAAU,CAAC;IAC9D,CAAC,CAAC,CAAC;IACL,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE;QAC5D,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,QAAQ,WAAW,CAAC,MAAM,UAAU,CAAC;IAC9D,CAAC,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,EAAE;QAChE,OAAO,IAAA,cAAI,EAAA,GAAG,YAAY,SAAS,WAAW,CAAC,MAAM,YAAY,CAAC;IACpE,CAAC,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW;SACzB,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,2BAA2B;SAC7D,GAAG,CAAC,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,EAAE;QACrC,OAAO,IAAA,cAAI,EAAA,GAAG,YAAY,SAAS,WAAW,CAAC,MAAM,YAAY,CAAC;IACpE,CAAC,CAAC,CAAC;IACL,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE;QAC/D,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,SAAS,cAAI,IAAI,SAAS,WAAW,CAAC;IAC/D,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,KAAK,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,oBAAoB,CAAC,WAA6C,EAAE,IAAsB;IACjG,0FAA0F;IAC1F,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAA,cAAI,EAAA,QAAQ,qBAAW,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,kBAAkB,CAAC,CAAC;IAC5G,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;QAC3E,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,MAAM,uBAAa,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;QACzE,CAAC;aAAM,CAAC;YACN,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,MAAM,qBAAW,IAAI,SAAS,KAAK,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;QACrF,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;QACzE,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,MAAM,qBAAW,IAAI,QAAQ,GAAG,UAAU,KAAK,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;IACjG,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QACpE,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,MAAM,qBAAW,IAAI,QAAQ,KAAK,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;IACpF,CAAC,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE;QAC1E,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAA,YAAI,EAAC,+BAA+B,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3G,OAAO;YACL,IAAA,cAAI,EAAA,GAAG,SAAS,MAAM,sBAAY,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,MAAM,KAAK,kBAAQ,IACxF,WAAW,CAAC,IACd,MAAM,WAAW,CAAC,OAAO,CAAC,IAAI;YAC9B,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;gBAC/B,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,GAAG,EAAE,CAAC,IAAI,MAAM,sBAAY,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAQ,IACrG,EAAE,CAAC,MAAM,CAAC,IACZ,MAAM,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;YACjC,CAAC,CAAC;SACH,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE;QAC5D,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,MAAM,sBAAY,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,MAAM,KAAK,kBAAQ,IAAI,WAAW,CAAC,IAAI,uBAAuB,CAAC;IAC/I,CAAC,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,kBAAkB,EAAE,EAAE,EAAE;QACrF,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAA,YAAI,EAAC,+BAA+B,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3G,OAAO;YACL,IAAA,cAAI,EAAA,GAAG,SAAS,MAAM,sBAAY,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,MAAM,KAAK,kBAAQ,IAAI,WAAW,CAAC,IAAI,uBAAuB;YACrI,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;gBAC/B,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,GAAG,EAAE,CAAC,IAAI,MAAM,sBAAY,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,kBAAQ,IACrG,EAAE,CAAC,MAAM,CAAC,IACZ,MAAM,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC;YAC5C,CAAC,CAAC;SACH,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE;QAC9D,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,MAAM,sBAAY,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,MAAM,KAAK,kBAAQ,IAAI,WAAW,CAAC,IAAI,uBAAuB,CAAC;IAC/I,CAAC,CAAC,CAAC;IACH,8GAA8G;IAC9G,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE;QACnE,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,MAAM,qBAAW,IAAI,QAAQ,sBAAsB,CAAC;IAC7E,CAAC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;QACxF,OAAO;YACL,IAAA,cAAI,EAAA,GAAG,SAAS,MAAM,sBAAY,IAAI,SAAS,KAAK,cAAI,IAAI,SAAS,aAAa,WAAW,CAAC,OAAO,CAAC,IAAI;YAC1G,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACzB,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;gBAClC,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,GAAG,IAAI,MAAM,sBAAY,IAAI,IAAI,KAAK,cAAI,IAAI,IAAI,MAAM,kBAAQ,IAAI,IAAI,WAAW,CAAC;YAC7G,CAAC,CAAC;SACH,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,OAAO,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK,EAAE,GAAG,OAAO,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,KAAK,CAAC,CAAC;AACjH,CAAC;AAED,SAAS,2BAA2B,CAAC,WAA6C,EAAE,IAAsB;IACxG,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAA,cAAI,EAAA,QAAQ,4BAAkB,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;IACrG,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE;QAClE,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,MAAM,8BAAoB,GAAG,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,MAAM,4BAAkB,IAAI,SAAS,IAAI,CAAC;QACnE,CAAC;IACH,CAAC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;QAChE,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACvC,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,MAAM,4BAAkB,IAAI,QAAQ,GAAG,UAAU,IAAI,CAAC;IAC/E,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC3D,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,MAAM,4BAAkB,IAAI,QAAQ,IAAI,CAAC;IAClE,CAAC,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE;QAC1E,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QAChD,OAAO;YACL,IAAA,cAAI,EAAA,GAAG,SAAS,MAAM,6BAAmB,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,MAAM,KAAK,yBAAe,IACtG,WAAW,CAAC,IACd,MAAM,WAAW,CAAC,OAAO,CAAC,IAAI;YAC9B,IAAA,cAAI,EAAA,GAAG,SAAS,QAAQ,4BAAkB,IAAI,WAAW,CAAC,MAAM,IAAI;YACpE,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;gBAC/B,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,GAAG,EAAE,CAAC,IAAI,MAAM,6BAAmB,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,yBAAe,IACnH,EAAE,CAAC,MAAM,CAAC,IACZ,MAAM,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;YACjC,CAAC,CAAC;SACH,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE;QAC5D,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,MAAM,6BAAmB,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,MAAM,KAAK,yBAAe,IAAI,WAAW,CAAC,IAAI,uBAAuB,CAAC;IAC7J,CAAC,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,kBAAkB,EAAE,EAAE,EAAE;QACrF,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAA,YAAI,EAAC,+BAA+B,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3G,OAAO;YACL,IAAA,cAAI,EAAA,GAAG,SAAS,MAAM,6BAAmB,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,MAAM,KAAK,yBAAe,IAAI,WAAW,CAAC,IAAI,uBAAuB;YACnJ,GAAG,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;gBAC/B,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,GAAG,EAAE,CAAC,IAAI,MAAM,6BAAmB,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,yBAAe,IACnH,EAAE,CAAC,MAAM,CAAC,IACZ,MAAM,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC;YAC5C,CAAC,CAAC;SACH,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE;QAC9D,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,MAAM,6BAAmB,IAAI,WAAW,CAAC,IAAI,KAAK,WAAW,CAAC,MAAM,KAAK,yBAAe,IAAI,WAAW,CAAC,IAAI,uBAAuB,CAAC;IAC7J,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE;QACnE,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,MAAM,4BAAkB,IAAI,QAAQ,IAAI,CAAC;IAClE,CAAC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE;QACxF,OAAO;YACL,IAAA,cAAI,EAAA,GAAG,SAAS,MAAM,6BAAmB,IAAI,SAAS,KAAK,cAAI,IAAI,SAAS,aAAa,WAAW,CAAC,OAAO,CAAC,IAAI;YACjH,IAAA,cAAI,EAAA,GAAG,SAAS,QAAQ,4BAAkB,IAAI,cAAI,IAAI,SAAS,KAAK;YACpE,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACzB,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;gBAClC,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,GAAG,IAAI,MAAM,6BAAmB,IAAI,IAAI,KAAK,cAAI,IAAI,IAAI,MAAM,kBAAQ,IAAI,IAAI,WAAW,CAAC;YACpH,CAAC,CAAC;SACH,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,OAAO,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK,EAAE,GAAG,OAAO,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,KAAK,CAAC,CAAC;AACjH,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAsB;IACjD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAA,cAAI,EAAA,QAAQ,iBAAO,GAAG,CAAC,CAAC;IACnE,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;QACvD,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,MAAM,iBAAO,GAAG,CAAC;IAC1C,CAAC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;QAC7C,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,MAAM,iBAAO,GAAG,CAAC;IAC1C,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;QACjD,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,MAAM,iBAAO,GAAG,CAAC;IAC1C,CAAC,CAAC,CAAC;IACH,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,EAAE;QAC7D,OAAO,IAAA,cAAI,EAAA,GAAG,SAAS,MAAM,WAAW,CAAC,SAAS,GAAG,CAAC;IACxD,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,OAAO,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK,EAAE,GAAG,OAAO,EAAE,GAAG,GAAG,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,yBAAyB,CAAC,IAAsB;IACvD,SAAS,QAAQ,CAAC,SAAiB;QACjC,OAAO,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU;SAC/B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC;SACpC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QAChD,OAAO,IAAA,cAAI,EAAA,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC;IAChF,CAAC,CAAC,CAAC;IACL,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;SACrB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC;SACpC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;QACxD,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,IAAA,cAAI,EAAA,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,QAAQ,KAAK,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,OAAO,IAAA,cAAI,EAAA,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC;QAC/E,CAAC;IACH,CAAC,CAAC,CAAC;IACL,OAAO,CAAC,GAAG,UAAU,EAAE,GAAG,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAsB,EAAE,MAAc;IAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC3C,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QAC5C,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;QAEpD,IAAI,MAAY,CAAC;QACjB,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YAC1B,MAAM,GAAG,IAAA,cAAI,EAAA;4BACS,SAAS,KAAK,uBAAa,IAAI,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,SAAS,GAAG,aAAa;MAChG,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;YAChC,MAAM,GAAG,IAAA,cAAI,EAAA;uBACI,SAAS,OAAO,SAAS,GAAG,aAAa;MAC1D,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YACvB,MAAM,GAAG,IAAA,cAAI,EAAA;cACL,SAAS,OAAO,aAAG,kBAAkB,CAAC,CAAC,SAAS,IAAI,aAAa;mBAC5D,kBAAQ,WAAW,SAAS;;MAEzC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,IAAA,cAAI,EAAA;cACL,SAAS,OAAO,SAAS,GAAG,aAAa;mBACpC,kBAAQ,WAAW,SAAS;;MAEzC,CAAC;QACH,CAAC;QAED,IAAI,MAAqB,CAAC;QAC1B,6DAA6D;QAC7D,MAAM,SAAS,GAAG,mBAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QACrE,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YAChB,kFAAkF;YAClF,8EAA8E;YAC9E,EAAE;YACF,2FAA2F;YAC3F,sEAAsE;YACtE,MAAM,GAAG,IAAA,cAAI,EAAA;uBACI,IAAA,wBAAU,EAAC,SAAS,CAAC,IAAI,SAAS,KAAK,SAAS,GAAG,aAAa;YAC3E,kBAAQ,WAAW,SAAS,MAAM,SAAS;;OAEhD,CAAC;QACJ,CAAC;aAAM,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,GAAG,EAAE,CAAC;QACd,CAAC;aAAM,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;YACzB,wEAAwE;YACxE,mEAAmE;YACnE,MAAM,GAAG,IAAA,cAAI,EAAA;cACL,SAAS,WAAW,SAAS,GAAG,aAAa;;cAE7C,kBAAQ,WAAW,CAAC,CAAC,WAAW;;YAElC,kBAAQ,WAAW,SAAS;;OAEjC,CAAC;QACJ,CAAC;aAAM,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YACvB,wEAAwE;YACxE,2DAA2D;YAC3D,MAAM,GAAG,IAAA,cAAI,EAAA;cACL,SAAS,WAAW,aAAG,iBAAiB,CAAC,CAAC,SAAS,IAAI,aAAa;;cAEpE,kBAAQ,WAAW,SAAS,MAAM,CAAC,CAAC,SAAS;;cAE7C,kBAAQ,WAAW,SAAS;;;OAGnC,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,IAAA,cAAI,EAAA;cACL,SAAS,IAAI,SAAS,KAAK,SAAS,GAAG,aAAa;YACtD,kBAAQ,WAAW,SAAS,MAAM,SAAS;;OAEhD,CAAC;QACJ,CAAC;QAED,OAAO,IAAA,cAAI,EAAA,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;IACnC,CAAC,CAAC,CAAC;IACH,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAsB,EAAE,MAAc;IAChE,OAAO,IAAI,CAAC,KAAK;SACd,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;SACzB,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACb,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QAC/F,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;QACpD,MAAM,SAAS,GAAG,IAAA,cAAI,EAAA,GAAG,cAAc,mBAAmB,SAAS,GAAG,CAAC;QAEvE,IAAI,MAAY,CAAC;QACjB,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YACxB,MAAM,GAAG,IAAA,cAAI,EAAA;8BACS,SAAS,KAAK,uBAAa,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,GAAG,aAAa;QAC7F,CAAC;QACH,CAAC;aAAM,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;YAC9B,MAAM,GAAG,IAAA,cAAI,EAAA;yBACI,SAAS,OAAO,QAAQ,GAAG,aAAa;QACzD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,IAAA,cAAI,EAAA;gBACL,SAAS,OAAO,QAAQ,GAAG,aAAa;qBACnC,kBAAQ,WAAW,SAAS;;;gBAGjC,SAAS,cAAc,eAAe,GAAG,aAAa;qBACjD,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAA,cAAI,EAAA,QAAQ,SAAS,MAAM,SAAS,cAAc;;QAErF,CAAC;QACH,CAAC;QAED,IAAI,MAAY,CAAC;QACjB,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,GAAG,IAAA,cAAI,EAAA,EAAE,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,IAAA,cAAI,EAAA;gBACL,SAAS,IAAI,SAAS,KAAK,QAAQ,GAAG,aAAa;cACrD,kBAAQ,WAAW,SAAS,MAAM,SAAS;;SAEhD,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACnD,MAAM,qBAAqB,GAAG,IAAI,CAAC,KAAK;aACrC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC;aAC9B,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAElE,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAC5B,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,cAAI,EAAA;kBACH,qBAAqB,CAAC,CAAC,CAAC,IAAA,wBAAU,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAA,wBAAU,EAAC,GAAG,CAAC,IAAI,CAAC;qBACtE,kBAAQ,WAAW,SAAS,UAAU,QAAQ,IAAI,IAAA,wBAAU,EAAC,GAAG,CAAC,IAAI,CAAC;;SAElF,CACF,CAAC;QACF,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAsB;IAC9C,OAAO,IAAI,CAAC,KAAK;SACd,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;SACxB,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACb,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;QAC7E,MAAM,MAAM,GAAG,IAAA,cAAI,EAAA;cACX,SAAS,OAAO,QAAQ;mBACnB,kBAAQ,WAAW,SAAS;;;cAGjC,SAAS,cAAc,eAAe;wBAC5B,SAAS,gBAAgB,cAAc;;MAEzD,CAAC;QACD,MAAM,MAAM,GAAG,IAAA,cAAI,EAAA;cACX,SAAS,IAAI,SAAS,KAAK,QAAQ;YACrC,kBAAQ,WAAW,SAAS,MAAM,SAAS;;OAEhD,CAAC;QAEF,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACnD,MAAM,qBAAqB,GAAG,IAAI,CAAC,KAAK;aACrC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC;aAC9B,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAElE,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAC5B,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,cAAI,EAAA;kBACH,qBAAqB,CAAC,CAAC,CAAC,IAAA,wBAAU,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAA,wBAAU,EAAC,GAAG,CAAC,IAAI,CAAC;0BACjE,SAAS,aAAa,QAAQ,IAAI,IAAA,wBAAU,EAAC,GAAG,CAAC,IAAI,CAAC;;SAEvE,CACF,CAAC;QACF,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACP,CAAC;AAED,SAAS,aAAa,CAAC,IAAsB;IAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QAChC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;QACvD,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;QAEpD,MAAM,MAAM,GAAG,IAAA,cAAI,EAAA;cACT,SAAS,OAAO,QAAQ,GAAG,aAAa;mBACnC,kBAAQ,WAAW,SAAS;;MAEzC,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,cAAI,EAAA;cACT,SAAS,IAAI,SAAS,KAAK,QAAQ,GAAG,aAAa;YACrD,kBAAQ,WAAW,SAAS,MAAM,SAAS;;OAEhD,CAAC;QAEJ,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;QAClC,MAAM,qBAAqB,GAAG,IAAI,CAAC,OAAO;aACvC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,CAAC;aAC9B,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE/D,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAC9B,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,cAAI,EAAA;kBACD,qBAAqB,CAAC,CAAC,CAAC,IAAA,wBAAU,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,IAAA,wBAAU,EAAC,GAAG,CAAC;0BAC5D,SAAS,QAAQ,QAAQ,IAAI,IAAA,wBAAU,EAAC,GAAG,CAAC;;SAE7D,CACJ,CAAC;QACF,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CAAC,MAAc,EAAE,IAAsB,EAAE,MAAc;IAC7E,yBAAyB;IACzB,MAAM,GAAG,GAAe,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAClD,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;QAChE,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;QACtD,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,IAAA,cAAI,EAAA,qBAAqB,SAAS,KAAK,2BAAiB,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC;YAChI,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAW,CAAC;QAC7C,CAAC;QACD,MAAM,IAAI,GAAG,IAAA,cAAI,EAAA,GAAG,4BAAkB,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,KAAK,aAAa,GAAG,CAAC;QAChG,MAAM,IAAI,GAAG,IAAA,cAAI,EAAA,GAAG,gBAAM,IAAI,CAAC;QAC/B,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACrD,CAAC,CAAC,CAAC;IACH,aAAa;IACb,MAAM,OAAO,GACX,IAAI,CAAC,QAAQ,EAAE,UAAU;QACvB,sHAAsH;SACrH,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7E,yEAAyE;SACxE,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC;SACxC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;QAChD,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;QACtD,MAAM,IAAI,GAAG,IAAA,cAAI,EAAA,GAAG,4BAAkB,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,KAAK,aAAa,GAAG,CAAC;QAChG,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAC5C,CAAC,CAAC,IAAI,EAAE,CAAC;IAEb,uCAAuC;IACvC,MAAM,YAAY,GAAe,IAAI,CAAC,UAAU;SAC7C,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;QACpD,sCAAsC;SACrC,MAAM,CACL,CAAC,GAAG,EAAE,EAAE;IACN,+FAA+F;IAC/F,uEAAuE;IACvE,CAAC,CACC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,IAAI,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACnG,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,sBAAsB,KAAK,IAAI,CAChE,CACJ;QACD,gFAAgF;SAC/E,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;SAC7B,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACf,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;QAChE,MAAM,YAAY,GAAG,GAAG,IAAA,kBAAM,EAAC,OAAO,CAAC,WAAW,CAAC;QACnD,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,KAAK,cAAc,CAAC,CAAC;QACrF,MAAM,aAAa,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,IAAA,kBAAM,EAAC,cAAc,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,cAAc,WAAW,CAAC;QAC1G,OAAO;YACL;gBACE,IAAI,EAAE,UAAU;gBAChB,SAAS,EAAE,YAAY;gBACvB,IAAI,EAAE,IAAA,cAAI,EAAA,GAAG,4BAAkB,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,GAAG;gBACtE,IAAI,EAAE,IAAA,cAAI,EAAA,GAAG,6BAAmB,KAAK,OAAO,OAAO,aAAa,IAAI;aACrE;YACD;gBACE,IAAI,EAAE,UAAU;gBAChB,SAAS,EAAE,aAAa;gBACxB,IAAI,EAAE,IAAA,cAAI,EAAA,GAAG,4BAAkB,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,GAAG;gBACtE,IAAI,EAAE,IAAA,cAAI,EAAA,GAAG,8BAAoB,KAAK,cAAc,OAAO,YAAY,IAAI;aAC5E;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEL,+DAA+D;IAC/D,MAAM,YAAY,GAAe,IAAI,CAAC,WAAW;SAC9C,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;SACnD,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;QAC9B,+FAA+F;QAC/F,uEAAuE;SACtE,MAAM,CACL,CAAC,GAAG,EAAE,EAAE,CACN,CAAC,CACC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,IAAI,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACnG,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,sBAAsB,KAAK,IAAI,CAChE,CACJ;SACA,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;QACvD,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,SAAS,EAAE,GAAG,SAAS,WAAW;YAClC,IAAI,EAAE,IAAA,cAAI,EAAA,GAAG,4BAAkB,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,GAAG;YACtE,IAAI,EAAE,IAAA,cAAI,EAAA,GAAG,yBAAe,KAAK,SAAS,OAAO,cAAc,aAAa;SAC7E,CAAC;IACJ,CAAC,CAAC,CAAC;IAEL,gBAAgB;IAChB,MAAM,GAAG,GAAe,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAClD,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;QACvC,MAAM,IAAI,GAAG,IAAA,cAAI,EAAA,GAAG,oBAAU,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,GAAG,CAAC;QACtE,MAAM,IAAI,GAAG,IAAA,cAAI,EAAA,GAAG,iBAAO,IAAI,CAAC;QAChC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACrD,CAAC,CAAC,CAAC;IACH,aAAa;IACb,MAAM,OAAO,GACX,IAAI,CAAC,QAAQ,EAAE,UAAU;QACvB,2HAA2H;SAC1H,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,SAAS,CAAC,CAAC;SAC5E,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;QACvC,MAAM,IAAI,GAAG,IAAA,cAAI,EAAA,GAAG,oBAAU,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,GAAG,CAAC;QACtE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAC5C,CAAC,CAAC,IAAI,EAAE,CAAC;IAEb,sBAAsB;IACtB,MAAM,IAAI,GAAe,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACxD,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;QACvC,MAAM,IAAI,GAAG,IAAA,cAAI,EAAA,GAAG,yBAAe,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,GAAG,CAAC;QAC3E,MAAM,IAAI,GAAG,IAAA,cAAI,EAAA,GAAG,sBAAY,IAAI,CAAC;QACrC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,eAAe;IACf,MAAM,GAAG,GAAe,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACjD,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;QACvC,MAAM,IAAI,GAAG,IAAA,cAAI,EAAA,GAAG,2BAAiB,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,GAAG,CAAC;QAC7E,MAAM,IAAI,GAAG,IAAA,cAAI,EAAA,GAAG,qBAAW,IAAI,CAAC;QACpC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACrD,CAAC,CAAC,CAAC;IACH,aAAa;IACb,MAAM,OAAO,GACX,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACnC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;QACvC,MAAM,IAAI,GAAG,IAAA,cAAI,EAAA,GAAG,2BAAiB,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,GAAG,CAAC;QAC7E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAC5C,CAAC,CAAC,IAAI,EAAE,CAAC;IAEX,iBAAiB;IACjB,MAAM,GAAG,GAAe,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACnD,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;QACvC,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;QACnF,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,IAAA,cAAI,EAAA,qBAAqB,SAAS,KAAK,4BAAkB,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,IAAI,CAAC;YAC/G,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAW,CAAC;QACtD,CAAC;aAAM,IAAI,GAAG,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;YACvC,MAAM,IAAI,GAAG,IAAA,cAAI,EAAA,GAAG,qCAA2B,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,GAAG,CAAC;YACvF,MAAM,IAAI,GAAG,IAAA,cAAI,EAAA,GAAG,wCAA8B,IAAI,CAAC;YACvD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAC9D,CAAC;aAAM,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,IAAA,cAAI,EAAA,GAAG,oBAAU,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,GAAG,CAAC;YACtE,MAAM,IAAI,GAAG,IAAA,cAAI,EAAA,GAAG,uBAAa,IAAI,CAAC;YACtC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,IAAA,mBAAW,EAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC,CAAC,CAAC;IACH,aAAa;IACb,MAAM,OAAO,GACX,IAAI,CAAC,QAAQ,EAAE,WAAW;QACxB,2GAA2G;SAC1G,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;SAC7B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACX,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,GAAG,CAAC;QACvC,MAAM,IAAI,GAAG,IAAA,cAAI,EAAA,GAAG,oBAAU,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,GAAG,CAAC;QACtE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAC5C,CAAC,CAAC,IAAI,EAAE,CAAC;IAEb,2DAA2D;IAC3D,MAAM,OAAO,GAAe,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAC3D,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC;QACpC,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,aAAa,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,eAAe,EAAE,CAAC;QACnF,MAAM,IAAI,GAAG,IAAA,cAAI,EAAA,GAAG,wBAAc,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,GAAG,CAAC;QAClE,MAAM,IAAI,GAAG,IAAA,cAAI,EAAA,GAAG,2BAAiB,IAAI,CAAC;QAC1C,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IAC9D,CAAC,CAAC,CAAC;IACH,MAAM,WAAW,GACf,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACzC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC;QACpC,MAAM,IAAI,GAAG,IAAA,cAAI,EAAA,GAAG,wBAAc,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,GAAG,CAAC;QAClE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;IAC5C,CAAC,CAAC,IAAI,EAAE,CAAC;IAEX,uBAAuB;IACvB,MAAM,IAAI,GAAe,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QACzD,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,GAAG,CAAC;QACnG,MAAM,IAAI,GAAG,IAAA,cAAI,EAAA,GAAG,yBAAe,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,GAAG,CAAC;QAC3E,MAAM,IAAI,GAAG,IAAA,cAAI,EAAA;QACb,4BAAkB;WACf,aAAa;WACb,UAAU;WACV,cAAc;WACd,eAAe;UAChB,GAAG,CAAC,cAAc;;KAEvB,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,kBAAkB;IAClB,MAAM,WAAW,GAAe,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC1D,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QAC5C,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;QACtD,MAAM,IAAI,GAAG,IAAA,cAAI,EAAA,GAAG,8BAAoB,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,KAAK,aAAa,GAAG,CAAC;QAC3F,MAAM,IAAI,GAAG,IAAA,cAAI,EAAA,GAAG,2BAAiB,IAAI,CAAC;QAC1C,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,GAAG;QACH,OAAO;QACP,IAAI;QACJ,GAAG;QACH,OAAO;QACP,YAAY;QACZ,YAAY;QACZ,GAAG;QACH,OAAO;QACP,GAAG;QACH,OAAO;QACP,OAAO;QACP,WAAW;QACX,IAAI;QACJ,WAAW;KACZ,CAAC,IAAI,EAAE,CAAC;AACX,CAAC;AAED,qFAAqF;AACrF,SAAS,sBAAsB,CAC7B,KAAmF;IAEnF,MAAM,UAAU,GACd,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC;IAC3G,OAAO,CAAC,KAAK,CAAC,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;AACjD,CAAC;AAED,SAAS,cAAc,CAAC,OAAgB;IACtC,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAClC,CAAC;AAED,SAAS,cAAc,CAAC,OAAgB;IACtC,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;AACvC,CAAC;AAED,SAAS,gBAAgB,CAAC,OAAgB;IACxC,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC;AACzC,CAAC;AAED,SAAS,WAAW,CAAC,OAAgB;IACnC,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;AACpC,CAAC;AAED,oEAAoE;AACpE,SAAS,YAAY,CAAC,OAA2B;IAC/C,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AACxC,CAAC;AAED,SAAgB,SAAS,CAAC,MAAc;IACtC,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;QACtB,KAAK,iBAAiB,CAAC;QACvB,KAAK,eAAe,CAAC;QACrB,KAAK,SAAS;YACZ,OAAO,QAAQ,CAAC;QAClB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB;YACE,OAAO,IAAA,mBAAW,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"generateEntityCodegenFile.js","names":[],"sources":["../src/generateEntityCodegenFile.ts"],"sourcesContent":["import { camelCase, pascalCase } from \"change-case\";\nimport pluralize from \"pluralize\";\nimport { type Code, code, imp, joinCode } from \"ts-poet\";\n\nimport { type Config } from \"./config.ts\";\nimport { type ParsedDoc, buildJSDocBlock, generatedTag } from \"./docs/index.ts\";\nimport {\n type DbMetadata,\n type Entity,\n type EntityDbMetadata,\n type EnumField,\n type ManyToOneField,\n type PgEnumField,\n type PolymorphicField,\n type PrimitiveField,\n type PrimitiveTypescriptType,\n} from \"./EntityDbMetadata.ts\";\nimport { type ScopeMember } from \"./findEntityScopes.ts\";\nimport { getStiEntities } from \"./inheritance.ts\";\nimport { keywords } from \"./keywords.ts\";\nimport {\n BaseEntity,\n BooleanFilter,\n BooleanGraphQLFilter,\n Changes,\n Collection,\n ConfigApi,\n DeepPartialOrNull,\n EntityFilter,\n EntityGraphQLFilter,\n EntityManager,\n EntityMetadata,\n EnumCollection,\n FieldsOf,\n FilterOf,\n Flavor,\n GraphQLFilterOf,\n IdOf,\n JsonPayload,\n LargeCollection,\n LazyField,\n Lens,\n LoadHint,\n Loaded,\n ManyToOneReference,\n MaybeAbstractEntityConstructor,\n OneToOneReference,\n OptsOf,\n OrderBy,\n PartialOrNull,\n PolymorphicReference,\n ProjectEntity,\n ReactiveField,\n ReactiveManyToMany,\n ReactiveManyToManyOtherSide,\n ReactiveReference,\n ReadOnlyCollection,\n RelationsOf,\n SSAssert,\n Scope,\n TaggedId,\n ToJsonHint,\n ValueFilter,\n ValueGraphQLFilter,\n Zod,\n cannotBeUpdated,\n failNoIdYet,\n getField,\n hasEnumCollection,\n hasLargeMany,\n hasLargeManyToMany,\n hasLazyField,\n hasMany,\n hasManyToMany,\n hasOne,\n hasOnePolymorphic,\n hasOneToOne,\n hasReactiveManyToManyOtherSide,\n hasRecursiveChildren,\n hasRecursiveM2m,\n hasRecursiveParents,\n isEntity,\n isLoaded,\n loadLens,\n mustBeSubType,\n newChangesProxy,\n newRequiredLazyFieldRule,\n newRequiredRule,\n newScopeFn,\n nowUTC,\n setField,\n setOpts,\n toIdOf,\n toJSON,\n updatePartial,\n} from \"./symbols.ts\";\nimport { tsdocComments } from \"./tsdoc.ts\";\nimport { assertNever, fail, uncapitalize } from \"./utils.ts\";\n\nconst { plural } = pluralize;\n\nexport interface ColumnMetaData {\n fieldType: PrimitiveTypescriptType;\n}\n\n// A local type just for tracking abstract vs. concrete relations\ntype Relation =\n // I.e. `abstract ReactiveReference` that the user must implement\n | { kind: \"abstract\"; fieldName: string; line: Code; comment?: string }\n // I.e. a `get author(): ManyToOne<...>`\n | { kind: \"concrete\"; fieldName: string; decl: Code; init: Code; comment?: string }\n // I.e. a `get author(): { super.author as ... }`\n | { kind: \"super\"; fieldName: string; decl: Code; comment?: string };\n\n/** Creates the base class with the boilerplate annotations. */\nexport function generateEntityCodegenFile(\n config: Config,\n dbMeta: DbMetadata,\n meta: EntityDbMetadata,\n scopeMembers: ScopeMember[] = [],\n docs?: ParsedDoc,\n): Code {\n const { entitiesByName: metasByName } = dbMeta;\n const { entity, tagName } = meta;\n const entityName = entity.name;\n\n // Per-field `.md` docs to inject as JSDocs on the codegen'd getters/relations (empty if docs are off)\n const fieldDocs = docs?.fields ?? {};\n\n // Avoid using `do` as a variable name b/c it's a reserved keyword\n const varName = keywords.includes(tagName) ? uncapitalize(entityName) : tagName;\n\n const primitives = createPrimitives(meta, entity, fieldDocs); // Add the primitives\n primitives.push(...createRegularEnums(meta, entity, fieldDocs)); // Add ManyToOne enums\n primitives.push(...createArrayEnums(meta, fieldDocs)); // Add integer[] enums\n primitives.push(...createPgEnums(meta, fieldDocs)); // Add native enums\n const relations = createRelations(config, meta, entity);\n\n const configName = `${camelCase(entityName)}Config`;\n const scopeFnName = `${camelCase(entityName)}Scope`;\n const metadata = imp(`${camelCase(entityName)}Meta@./entities.ts`);\n\n const contextType = config.contextType ? imp(`t:${config.contextType}`) : \"{}\";\n const factoryMethod = imp(`new${entity.name}@./entities.ts`);\n\n // If we're not tagged-strings, detag on the way out of id\n const idMaybeCode =\n config.idType === \"tagged-string\"\n ? code`return this.idTaggedMaybe;`\n : code`return ${toIdOf}(${metadata}, this.idTaggedMaybe);`;\n const idType = getIdType(config);\n\n const maybeSoftDeleteMethods = meta.deletedAt\n ? code`\n get isSoftDeletedEntity(): boolean {\n return this.${meta.deletedAt.fieldName} !== undefined;\n }\n\n softDelete(): void {\n if (this.isSoftDeletedEntity) return;\n this.${meta.deletedAt.fieldName} = ${nowUTCCall(config, meta.deletedAt)};\n }\n `\n : \"\";\n\n // Set up the codegen artifacts to extend from the base type if necessary\n const baseEntity = dbMeta.entities.find((e) => e.name === meta.baseClassName);\n const subEntities = dbMeta.entities.filter((e) => e.baseClassName === meta.name);\n const base = baseEntity?.entity.typeSymbol ?? code`${BaseEntity}<${EntityManager}, ${idType}>`;\n const maybeBaseFields = baseEntity\n ? code`extends ${imp(\"t:\" + baseEntity.entity.fieldsName + \"@./entities.ts\")}`\n : \"\";\n const maybeBaseOpts = baseEntity ? code`extends ${baseEntity.entity.optsType}` : \"\";\n const maybeBaseIdOpts = baseEntity\n ? code`extends ${imp(\"t:\" + baseEntity.entity.idsOptsName + \"@./entities.ts\")}`\n : \"\";\n const maybeBaseFilter = baseEntity\n ? code`extends ${imp(\"t:\" + baseEntity.entity.filterName + \"@./entities.ts\")}`\n : \"\";\n const maybeBaseGqlFilter = baseEntity\n ? code`extends ${imp(\"t:\" + baseEntity.entity.graphqlFilterName + \"@./entities.ts\")}`\n : \"\";\n const maybeBaseOrder = baseEntity ? code`extends ${baseEntity.entity.orderType}` : \"\";\n const maybePreventBaseTypeInstantiation = meta.abstract\n ? code`\n if (this.constructor === ${entity.type} && !(em as any).fakeInstance) {\n throw new Error(\\`${entity.type} must be instantiated via a subtype\\`);\n }`\n : \"\";\n\n let maybeOtherTypeChanges;\n if (subEntities.length > 0) {\n maybeOtherTypeChanges = joinCode(\n // Pass `K = keyof Publisher | keyof SmallPublisher | keyof LargePublisher` to `changes` so that\n // our subtypes can have `SmallPublisher.changes(): Changes<SmallPublisher>` be covariant, which\n // will break if it adds a key to `Changes.fields` that `Publisher.changes()` does not include.\n //\n // type A1 = { foo: 1 | 2 };\n // type A2 = { foo: 1 | 2 | 3 };\n // type A3 = A2 extends A1 ? 1 : 2;\n //\n // A3 will be 2 because the extra 3 breaks code written against A1.foo.\n //\n // So essentially we're pre-emptively our subtypes \"3\".\n [\n code`, `,\n ...[meta, ...subEntities].map(\n (e) => code`keyof (${FieldsOf}<${e.entity.type}> & ${RelationsOf}<${e.entity.type}>)`,\n ),\n ],\n { on: \"|\" },\n );\n } else {\n maybeOtherTypeChanges = \"\";\n }\n\n let maybeOtherLoaded;\n if (baseEntity) {\n maybeOtherLoaded = code`| ${baseEntity.entity.type}`;\n } else {\n maybeOtherLoaded = \"\";\n }\n\n return code`\n export type ${entity.idName} = ${Flavor}<${idType}, \"${baseEntity ? baseEntity.name : entityName}\">;\n\n ${generatePolymorphicTypes(meta)}\n\n export interface ${entity.fieldsName} ${maybeBaseFields} {\n ${generateFieldsType(meta, idType)}\n }\n\n export interface ${entity.optsName} ${maybeBaseOpts} {\n ${generateOptsFields(meta)}\n }\n\n export interface ${entity.idsOptsName} ${maybeBaseIdOpts} {\n ${generateOptIdsFields(meta)}\n }\n\n export interface ${entity.filterName} ${maybeBaseFilter} {\n ${generateFilterFields(metasByName, meta)}\n }\n\n export interface ${entity.graphqlFilterName} ${maybeBaseGqlFilter} {\n ${generateGraphQLFilterFields(metasByName, meta)}\n }\n\n export interface ${entity.orderName} ${maybeBaseOrder} {\n ${generateOrderFields(meta)}\n }\n\n export interface ${entity.factoryExtrasName} {\n ${generateFactoryExtrasType(meta)}\n }\n\n export interface ${entity.scopesName} {\n ${scopeMembers.map((member) => code`${member.name}: ${member.type};`)}\n }\n\n export type ${entity.scopeName} = ${Scope}<${entity.type}, ${entity.scopesName}>;\n\n export const ${configName} = new ${ConfigApi}<${entity.type}, ${contextType}>();\n\n export const ${scopeFnName} = ${newScopeFn}<${entity.type}, ${entity.scopeName}>(\"${entityName}\");\n\n ${generateDefaultValidationRules(dbMeta, meta, configName)}\n ${generateDefaultValues(config, meta, configName)};\n\n declare module \"joist-core\" {\n interface TypeMap {\n ${entityName}: {\n entityType: ${entityName};\n filterType: ${entity.filterName};\n gqlFilterType: ${entity.graphqlFilterName};\n orderType: ${entity.orderName};\n optsType: ${entity.optsName};\n fieldsType: ${entity.fieldsName};\n optIdsType: ${entity.idsOptsName};\n factoryExtrasType: ${entity.factoryExtrasName};\n factoryOptsType: Parameters<typeof ${factoryMethod}>[1];\n };\n }\n }\n\n export abstract class ${entityName}Codegen extends ${base} implements ${ProjectEntity} {\n static readonly tagName = \"${tagName}\";\n static readonly metadata: ${EntityMetadata}<${entity.type}>;\n\n declare readonly __type: {\n ${baseEntity ? `0: \"${baseEntity.name}\",` : \"\"}\n ${baseEntity ? 1 : 0}: \"${entityName}\", \n };\n\n ${relations\n .filter((r) => r.kind === \"abstract\")\n .map((r) => {\n return code`${relationDocBlock(fieldDocs, r.fieldName, entityName)}${r.line}${maybeComment(r.comment)}`;\n })}\n ${relations\n .filter((r) => r.kind === \"concrete\")\n .map((r) => {\n return code`${relationDocBlock(fieldDocs, r.fieldName, entityName)}readonly ${r.fieldName}: ${r.decl} = ${r.init};${maybeComment(r.comment)}`;\n })}\n ${relations\n .filter((r) => r.kind === \"super\")\n .map((r) => {\n return code`${relationDocBlock(fieldDocs, r.fieldName, entityName)}declare readonly ${r.fieldName}: ${r.decl};${maybeComment(r.comment)}`;\n })}\n\n get id(): ${entity.idName} {\n return this.idMaybe || ${failNoIdYet}(\"${entityName}\");\n }\n\n get idMaybe(): ${entity.idName} | undefined {\n ${idMaybeCode}\n }\n\n get idTagged(): ${TaggedId} {\n return this.idTaggedMaybe || ${failNoIdYet}(\"${entityName}\");\n }\n\n get idTaggedMaybe(): ${TaggedId} | undefined {\n return ${getField}(this, \"id\");\n }\n\n ${primitives} \n\n ${tsdocComments.entity.setPartial}\n set(opts: Partial<${entity.optsName}>): void {\n ${setOpts}(this as any as ${entityName}, opts);\n }\n\n ${tsdocComments.entity.setPartial}\n setPartial(opts: ${PartialOrNull}<${entity.optsName}>): void {\n ${setOpts}(this as any as ${entityName}, opts as ${OptsOf}<${entityName}>, { partial: true });\n }\n\n ${tsdocComments.entity.setDeepPartial}\n setDeepPartial(opts: ${DeepPartialOrNull}<${entityName}>): Promise<void> {\n return ${updatePartial}(this as any as ${entityName}, opts);\n }\n\n ${tsdocComments.entity.changes}\n get changes(): ${Changes}<${entityName}${maybeOtherTypeChanges}> {\n return ${newChangesProxy}(this) as any;\n }\n\n ${maybeSoftDeleteMethods}\n\n ${tsdocComments.entity.load}\n load<U, V>(fn: (lens: ${Lens}<${entity.type}>) => ${Lens}<U, V>, opts: { sql?: boolean } = {}): Promise<V> {\n return ${loadLens}(this as any as ${entityName}, fn, opts);\n }\n\n ${tsdocComments.entity.populate}\n populate<const H extends ${LoadHint}<${entityName}>>(hint: H): Promise<${Loaded}<${entityName}, H>>;\n populate<const H extends ${LoadHint}<${entityName}>>(opts: { hint: H, forceReload?: boolean }): Promise<${Loaded}<${entityName}, H>>;\n populate<const H extends ${LoadHint}<${entityName}>, V>(hint: H, fn: (${varName}: Loaded<${entityName}, H>) => V): Promise<V>;\n populate<const H extends ${LoadHint}<${entityName}>, V>(opts: { hint: H, forceReload?: boolean }, fn: (${varName}: Loaded<${entityName}, H>) => V): Promise<V>;\n populate<const H extends ${LoadHint}<${entityName}>, V>(hintOrOpts: any, fn?: (${varName}: Loaded<${entityName}, H>) => V): Promise<${Loaded}<${entityName}, H> | V> {\n return this.em.populate(this as any as ${entityName}, hintOrOpts, fn);\n }\n\n ${tsdocComments.entity.isLoaded}\n isLoaded<const H extends ${LoadHint}<${entityName}>>(hint: H): this is ${Loaded}<${entityName}${maybeOtherLoaded}, H> {\n return ${isLoaded}(this as any as ${entityName}, hint);\n }\n\n ${tsdocComments.entity.toJSON}\n toJSON(): object;\n toJSON<const H extends ${ToJsonHint}<${entityName}>>(hint: H): Promise<${JsonPayload}<${entityName}, H>>;\n toJSON(hint?: any): object {\n return !hint || typeof hint === \"string\" ? super.toJSON() : ${toJSON}(this, hint);\n }\n }\n `;\n}\n\nfunction fieldHasDefaultValue(field: PrimitiveField | EnumField | PgEnumField): boolean {\n let { columnDefault } = field;\n // If there's no default at all, return false\n if (columnDefault === null) {\n return false;\n }\n // Even though default is defined as a `number | boolean | string | null`, in reality pg-structure\n // only ever returns a `string | null`, so we handle that here\n columnDefault = columnDefault.toString();\n const fieldType = field.kind === \"primitive\" ? field.fieldType : \"number\";\n // Try to validate that we actually got a primitive value and not arbitrary SQL\n return (\n (fieldType === \"number\" && !isNaN(parseInt(columnDefault))) ||\n (fieldType === \"bigint\" && !isNaN(parseInt(columnDefault))) ||\n (fieldType === \"string\" && /^'.*'$/.test(columnDefault)) ||\n (fieldType === \"boolean\" && [\"true\", \"false\"].includes(columnDefault))\n );\n}\n\nfunction generatePolymorphicTypes(meta: EntityDbMetadata) {\n return meta.polymorphics.flatMap((pf) => [\n code`export type ${pf.fieldType} = ${pf.components.map((c) => code`| ${c.otherEntity.type}`)};`,\n code`export function get${pf.fieldType}Constructors(): ${MaybeAbstractEntityConstructor}<${pf.fieldType}>[] {\n return [${pf.components.map((c) => code`${c.otherEntity.typeSymbol},`)}];\n }`,\n code`export function is${pf.fieldType}(maybeEntity: unknown): maybeEntity is ${pf.fieldType} {\n return ${isEntity}(maybeEntity) && get${pf.fieldType}Constructors().some((type) => maybeEntity instanceof type);\n }`,\n ]);\n}\n\nfunction generateDefaultValues(config: Config, meta: EntityDbMetadata, configName: string): Code[] {\n // Skip sync defaults b/c we'll just stomp the getter; leave async in case they're RQFs\n // where the row must fundamentally be inserted with a dummy value before the real value is calced.\n function notSync(field: PrimitiveField | EnumField): boolean {\n return \"derived\" in field && field.derived !== \"sync\";\n }\n\n const primitives = meta.primitives\n .filter((field) => fieldHasDefaultValue(field))\n .filter(notSync)\n .map(({ fieldName, columnDefault }) => {\n return code`${configName}.setDefault(\"${fieldName}\", ${columnDefault});`;\n });\n const pgEnums = meta.pgEnums\n .filter((field) => !!field.columnDefault)\n .map(({ fieldName, columnDefault }) => {\n return code`${configName}.setDefault(\"${fieldName}\", ${columnDefault});`;\n });\n const enums = meta.enums\n .filter((field) => !!field.columnDefault && !field.isArray)\n .filter(notSync)\n .map(({ fieldName, columnDefault, enumRows, enumType, columnName }) => {\n const defaultRow =\n enumRows.find((r) => r.id === Number(columnDefault)) ||\n fail(`Invalid default value ${columnDefault} for ${meta.tableName}.${columnName}`);\n return code`${configName}.setDefault(\"${fieldName}\", ${enumType}.${pascalCase(defaultRow.code)});`;\n });\n return [...primitives, ...enums, ...pgEnums];\n}\n\nfunction generateDefaultValidationRules(db: DbMetadata, meta: EntityDbMetadata, configName: string): Code[] {\n // Add required rules for all not-null columns\n const fields = [...meta.primitives, ...meta.enums, ...meta.manyToOnes, ...meta.polymorphics];\n const rules = fields\n .filter((p) => p.notNull)\n .map((p) => {\n const { fieldName } = p;\n const isReactive = \"derived\" in p && p.derived === \"async\";\n if (\"lazy\" in p && p.lazy) {\n // Lazy columns use a rule that won't force-load (or falsely fail) an unloaded value on a persisted entity\n return code`${configName}.addRule(${newRequiredLazyFieldRule}(\"${fieldName}\"));`;\n } else if (isReactive) {\n return code`${configName}.addRule(\"${fieldName}\", ${newRequiredRule}(\"${fieldName}\"));`;\n } else {\n return code`${configName}.addRule(${newRequiredRule}(\"${fieldName}\"));`;\n }\n });\n // Add STI discriminator cannot change\n if (meta.stiDiscriminatorField) {\n const field = meta.enums.find((e) => e.fieldName === meta.stiDiscriminatorField) ?? fail(\"STI field not found\");\n rules.push(code`${configName}.addRule(${cannotBeUpdated}(\"${field.fieldName}\"));`);\n }\n // Add STI type must match\n const stiEntities = getStiEntities(db.entities);\n if (stiEntities.size > 0) {\n for (const m2o of meta.manyToOnes) {\n // The `m2o.otherEntity` may already be pointing at the subtype, but stiEntities has subtypes in it as well...\n const target = stiEntities.get(m2o.otherEntity.name);\n if (target && m2o.otherEntity.name !== target.base.name) {\n rules.push(code`${configName}.addRule(\"${m2o.fieldName}\", ${mustBeSubType}(\"${m2o.fieldName}\"));`);\n }\n }\n }\n // Add subtype specialization must match\n if (meta.baseType) {\n meta.manyToOnes\n .filter((m2o) =>\n meta.baseType?.manyToOnes?.find(\n (o) => o.fieldName === m2o.fieldName && o.otherEntity.name !== m2o.otherEntity.name,\n ),\n )\n .forEach((m2o) => {\n rules.push(code`${configName}.addRule(\"${m2o.fieldName}\", ${mustBeSubType}(\"${m2o.fieldName}\"));`);\n });\n }\n return rules;\n}\n\n// Make our opts type\nfunction generateOptsFields(meta: EntityDbMetadata): Code[] {\n const primitives = meta.primitives.map((field) => {\n const { fieldName, fieldType, notNull, derived } = field;\n if (derived) return code``;\n return code`${fieldName}${maybeOptionalOrDefault(field)}: ${fieldType}${maybeUnionNull(notNull)};`;\n });\n const enums = meta.enums.map((field) => {\n const { fieldName, enumType, notNull, isArray, derived } = field;\n if (meta.stiDiscriminatorField === fieldName || derived) {\n // Don't include the discriminator as an opt b/c we'll infer it from the instance type\n return code``;\n } else if (isArray) {\n // Arrays are always optional and we'll default to `[]`\n return code`${fieldName}?: ${enumType}[];`;\n } else {\n return code`${fieldName}${maybeOptionalOrDefault(field)}: ${enumType}${maybeUnionNull(notNull)};`;\n }\n });\n const pgEnums = meta.pgEnums.map((field) => {\n const { fieldName, enumType, notNull } = field;\n return code`${fieldName}${maybeOptionalOrDefault(field)}: ${enumType}${maybeUnionNull(notNull)};`;\n });\n const m2o = meta.manyToOnes\n .filter(({ derived }) => !derived) // Skip ReactiveReferences (derived m2o)\n // If a `group: { subType: SmallPublisherGroup }` is specializing this relation, that's\n // fine for most things, but not the `SmallPublisherOpts`, b/c it will break the contravariance\n // of `Publisher.setOpts` and `SmallPublisher.setOpts`\n .filter(({ fieldName }) => !meta.baseType?.manyToOnes.find((o) => o.fieldName === fieldName))\n .map((field) => {\n const { fieldName, otherEntity, notNull } = field;\n const maybeNull = maybeUnionNull(notNull);\n return code`${fieldName}${maybeOptionalOrDefault(field)}: ${otherEntity.type} | ${otherEntity.idType} ${maybeNull};`;\n });\n const o2o = meta.oneToOnes.map(({ fieldName, otherEntity }) => {\n return code`${fieldName}?: ${otherEntity.type} | null;`;\n });\n const o2m = meta.oneToManys.map(({ fieldName, otherEntity }) => {\n return code`${fieldName}?: ${otherEntity.type}[];`;\n });\n const m2m = meta.manyToManys\n .filter(({ derived }) => !derived) // Skip ReactiveManyToManys\n .map(({ fieldName, otherEntity }) => {\n return code`${fieldName}?: ${otherEntity.type}[];`;\n });\n const m2mEnum = meta.manyToManyEnums.map(({ fieldName, enumType }) => {\n return code`${fieldName}?: ${enumType}[];`;\n });\n const polys = meta.polymorphics.map((field) => {\n const { fieldName, notNull, fieldType } = field;\n return code`${fieldName}${maybeOptionalOrDefault(field)}: ${fieldType};`;\n });\n return [...primitives, ...enums, ...pgEnums, ...m2o, ...polys, ...o2o, ...o2m, ...m2m, ...m2mEnum];\n}\n\n// Make our fields type\nfunction generateFieldsType(meta: EntityDbMetadata, idType: \"string\" | \"number\"): Code[] {\n const id = code`id: { kind: \"primitive\"; type: ${idType}; unique: ${true}; nullable: never };`;\n const primitives = meta.primitives.map((field) => {\n const { fieldName, fieldType, notNull, unique, derived } = field;\n return code`${fieldName}: { kind: \"primitive\"; type: ${fieldType}; unique: ${unique}; nullable: ${undefinedOrNever(\n notNull,\n )}, derived: ${derived !== false} };`;\n });\n const enums = meta.enums.map((field) => {\n const { fieldName, enumType, notNull, isArray } = field;\n if (isArray) {\n // Arrays are always optional and we'll default to `[]`\n return code`${fieldName}: { kind: \"enum\"; type: ${enumType}[]; nullable: never };`;\n } else {\n return code`${fieldName}: { kind: \"enum\"; type: ${enumType}; nullable: ${undefinedOrNever(notNull)} };`;\n }\n });\n const pgEnums = meta.pgEnums.map(({ fieldName, enumType, notNull }) => {\n const nullable = undefinedOrNever(notNull);\n return code`${fieldName}: { kind: \"enum\"; type: ${enumType}; nullable: ${nullable}; native: true };`;\n });\n const m2o = meta.manyToOnes.map(({ fieldName, otherEntity, notNull, derived }) => {\n return code`${fieldName}: { kind: \"m2o\"; type: ${otherEntity.type}; nullable: ${undefinedOrNever(\n notNull,\n )}, derived: ${derived !== false} };`;\n });\n const polys = meta.polymorphics.map(({ fieldName, notNull, fieldType }) => {\n return code`${fieldName}: { kind: \"poly\"; type: ${fieldType}; nullable: ${undefinedOrNever(notNull)} };`;\n });\n const m2m = meta.manyToManys.map(({ fieldName, otherEntity }) => {\n return code`${fieldName}: { kind: \"m2m\"; type: ${otherEntity.type} };`;\n });\n const m2mEnum = meta.manyToManyEnums.map(({ fieldName, enumType }) => {\n return code`${fieldName}: { kind: \"m2mEnum\"; type: ${enumType} };`;\n });\n const o2m = meta.oneToManys.map(({ fieldName, otherEntity }) => {\n return code`${fieldName}: { kind: \"o2m\"; type: ${otherEntity.type} };`;\n });\n const lo2m = meta.largeOneToManys.map(({ fieldName, otherEntity }) => {\n return code`${fieldName}: { kind: \"o2m\"; type: ${otherEntity.type} };`;\n });\n return [id, ...primitives, ...enums, ...pgEnums, ...m2o, ...polys, ...m2m, ...m2mEnum, ...o2m, ...lo2m];\n}\n\n// We know the OptIds types are only used in partials, so we make everything optional.\n// This especially needs to be the case b/c both `book: ...` and `bookId: ...` will be\n// in the partial type and of course the caller will only be setting one.\nfunction generateOptIdsFields(meta: EntityDbMetadata): Code[] {\n const m2o = meta.manyToOnes\n .filter(({ derived }) => !derived) // Skip ReactiveReferences\n .map(({ fieldName, otherEntity }) => {\n return code`${fieldName}Id?: ${otherEntity.idType} | null;`;\n });\n const o2o = meta.oneToOnes.map(({ fieldName, otherEntity }) => {\n return code`${fieldName}Id?: ${otherEntity.idType} | null;`;\n });\n const o2m = meta.oneToManys.map(({ singularName, otherEntity }) => {\n return code`${singularName}Ids?: ${otherEntity.idType}[] | null;`;\n });\n const m2m = meta.manyToManys\n .filter(({ derived }) => !derived) // Skip ReactiveManyToManys\n .map(({ singularName, otherEntity }) => {\n return code`${singularName}Ids?: ${otherEntity.idType}[] | null;`;\n });\n const polys = meta.polymorphics.map(({ fieldName, fieldType }) => {\n return code`${fieldName}Id?: ${IdOf}<${fieldType}> | null;`;\n });\n return [...m2o, ...polys, ...o2o, ...o2m, ...m2m];\n}\n\nfunction generateFilterFields(metasByName: Record<string, EntityDbMetadata>, meta: EntityDbMetadata): Code[] {\n // Always allow filtering on null to do \"child.id is null\" for detecting \"has no children\"\n const maybeId = meta.baseClassName ? [] : [code`id?: ${ValueFilter}<${meta.entity.idName}, never> | null;`];\n const primitives = meta.primitives.map(({ fieldName, fieldType, notNull }) => {\n if (fieldType === \"boolean\") {\n return code`${fieldName}?: ${BooleanFilter}<${nullOrNever(notNull)}>;`;\n } else {\n return code`${fieldName}?: ${ValueFilter}<${fieldType}, ${nullOrNever(notNull)}>;`;\n }\n });\n const enums = meta.enums.map(({ fieldName, enumType, notNull, isArray }) => {\n const maybeArray = isArray ? \"[]\" : \"\";\n return code`${fieldName}?: ${ValueFilter}<${enumType}${maybeArray}, ${nullOrNever(notNull)}>;`;\n });\n const pgEnums = meta.pgEnums.map(({ fieldName, enumType, notNull }) => {\n return code`${fieldName}?: ${ValueFilter}<${enumType}, ${nullOrNever(notNull)}>;`;\n });\n const m2o = meta.manyToOnes.flatMap(({ fieldName, otherEntity, notNull }) => {\n const otherMeta = metasByName[otherEntity.name] ?? fail(`Could not find metadata for ${otherEntity.name}`);\n return [\n code`${fieldName}?: ${EntityFilter}<${otherEntity.type}, ${otherEntity.idType}, ${FilterOf}<${\n otherEntity.type\n }>, ${nullOrNever(notNull)}>;`,\n ...otherMeta.subTypes.map((st) => {\n return code`${fieldName}${st.name}?: ${EntityFilter}<${st.entity.type}, ${st.entity.idType}, ${FilterOf}<${\n st.entity.type\n }>, ${nullOrNever(notNull)}>;`;\n }),\n ];\n });\n const o2o = meta.oneToOnes.map(({ fieldName, otherEntity }) => {\n return code`${fieldName}?: ${EntityFilter}<${otherEntity.type}, ${otherEntity.idType}, ${FilterOf}<${otherEntity.type}>, null | undefined>;`;\n });\n const o2m = meta.oneToManys.flatMap(({ fieldName, otherEntity, otherColumnNotNull }) => {\n const otherMeta = metasByName[otherEntity.name] ?? fail(`Could not find metadata for ${otherEntity.name}`);\n return [\n code`${fieldName}?: ${EntityFilter}<${otherEntity.type}, ${otherEntity.idType}, ${FilterOf}<${otherEntity.type}>, null | undefined>;`,\n ...otherMeta.subTypes.map((st) => {\n return code`${fieldName}${st.name}?: ${EntityFilter}<${st.entity.type}, ${st.entity.idType}, ${FilterOf}<${\n st.entity.type\n }>, ${nullOrNever(otherColumnNotNull)}>;`;\n }),\n ];\n });\n const m2m = meta.manyToManys.map(({ fieldName, otherEntity }) => {\n return code`${fieldName}?: ${EntityFilter}<${otherEntity.type}, ${otherEntity.idType}, ${FilterOf}<${otherEntity.type}>, null | undefined>;`;\n });\n // Enum m2m filters are membership filters, e.g. `{ logoColors: Color.Red }` / `{ logoColors: [Red, Green] }`.\n const m2mEnum = meta.manyToManyEnums.map(({ fieldName, enumType }) => {\n return code`${fieldName}?: ${ValueFilter}<${enumType}, null | undefined>;`;\n });\n const polys = meta.polymorphics.flatMap(({ fieldName, fieldType, components, notNull }) => {\n return [\n code`${fieldName}?: ${EntityFilter}<${fieldType}, ${IdOf}<${fieldType}>, never, ${nullOrNever(notNull)}>;`,\n ...components.map((comp) => {\n const { type } = comp.otherEntity;\n return code`${fieldName}${type}?: ${EntityFilter}<${type}, ${IdOf}<${type}>, ${FilterOf}<${type}>, null>;`;\n }),\n ];\n });\n return [...maybeId, ...primitives, ...enums, ...pgEnums, ...m2o, ...o2o, ...o2m, ...m2m, ...m2mEnum, ...polys];\n}\n\nfunction generateGraphQLFilterFields(metasByName: Record<string, EntityDbMetadata>, meta: EntityDbMetadata): Code[] {\n const maybeId = meta.baseClassName ? [] : [code`id?: ${ValueGraphQLFilter}<${meta.entity.idName}>;`];\n const primitives = meta.primitives.map(({ fieldName, fieldType }) => {\n if (fieldType === \"boolean\") {\n return code`${fieldName}?: ${BooleanGraphQLFilter};`;\n } else {\n return code`${fieldName}?: ${ValueGraphQLFilter}<${fieldType}>;`;\n }\n });\n const enums = meta.enums.map(({ fieldName, enumType, isArray }) => {\n const maybeArray = isArray ? \"[]\" : \"\";\n return code`${fieldName}?: ${ValueGraphQLFilter}<${enumType}${maybeArray}>;`;\n });\n const pgEnums = meta.pgEnums.map(({ fieldName, enumType }) => {\n return code`${fieldName}?: ${ValueGraphQLFilter}<${enumType}>;`;\n });\n const m2o = meta.manyToOnes.flatMap(({ fieldName, otherEntity, notNull }) => {\n const otherMeta = metasByName[otherEntity.name];\n return [\n code`${fieldName}?: ${EntityGraphQLFilter}<${otherEntity.type}, ${otherEntity.idType}, ${GraphQLFilterOf}<${\n otherEntity.type\n }>, ${nullOrNever(notNull)}>;`,\n code`${fieldName}Id?: ${ValueGraphQLFilter}<${otherEntity.idType}>;`,\n ...otherMeta.subTypes.map((st) => {\n return code`${fieldName}${st.name}?: ${EntityGraphQLFilter}<${st.entity.type}, ${st.entity.idType}, ${GraphQLFilterOf}<${\n st.entity.type\n }>, ${nullOrNever(notNull)}>;`;\n }),\n ];\n });\n const o2o = meta.oneToOnes.map(({ fieldName, otherEntity }) => {\n return code`${fieldName}?: ${EntityGraphQLFilter}<${otherEntity.type}, ${otherEntity.idType}, ${GraphQLFilterOf}<${otherEntity.type}>, null | undefined>;`;\n });\n const o2m = meta.oneToManys.flatMap(({ fieldName, otherEntity, otherColumnNotNull }) => {\n const otherMeta = metasByName[otherEntity.name] ?? fail(`Could not find metadata for ${otherEntity.name}`);\n return [\n code`${fieldName}?: ${EntityGraphQLFilter}<${otherEntity.type}, ${otherEntity.idType}, ${GraphQLFilterOf}<${otherEntity.type}>, null | undefined>;`,\n ...otherMeta.subTypes.map((st) => {\n return code`${fieldName}${st.name}?: ${EntityGraphQLFilter}<${st.entity.type}, ${st.entity.idType}, ${GraphQLFilterOf}<${\n st.entity.type\n }>, ${nullOrNever(otherColumnNotNull)}>;`;\n }),\n ];\n });\n const m2m = meta.manyToManys.map(({ fieldName, otherEntity }) => {\n return code`${fieldName}?: ${EntityGraphQLFilter}<${otherEntity.type}, ${otherEntity.idType}, ${GraphQLFilterOf}<${otherEntity.type}>, null | undefined>;`;\n });\n const m2mEnum = meta.manyToManyEnums.map(({ fieldName, enumType }) => {\n return code`${fieldName}?: ${ValueGraphQLFilter}<${enumType}>;`;\n });\n const polys = meta.polymorphics.flatMap(({ fieldName, fieldType, components, notNull }) => {\n return [\n code`${fieldName}?: ${EntityGraphQLFilter}<${fieldType}, ${IdOf}<${fieldType}>, never, ${nullOrNever(notNull)}>;`,\n code`${fieldName}Id?: ${ValueGraphQLFilter}<${IdOf}<${fieldType}>>;`,\n ...components.map((comp) => {\n const { type } = comp.otherEntity;\n return code`${fieldName}${type}?: ${EntityGraphQLFilter}<${type}, ${IdOf}<${type}>, ${FilterOf}<${type}>, null>;`;\n }),\n ];\n });\n return [...maybeId, ...primitives, ...enums, ...pgEnums, ...m2o, ...o2o, ...o2m, ...m2m, ...m2mEnum, ...polys];\n}\n\nfunction generateOrderFields(meta: EntityDbMetadata): Code[] {\n const maybeId = meta.baseClassName ? [] : [code`id?: ${OrderBy};`];\n const primitives = meta.primitives.map(({ fieldName }) => {\n return code`${fieldName}?: ${OrderBy};`;\n });\n const enums = meta.enums.map(({ fieldName }) => {\n return code`${fieldName}?: ${OrderBy};`;\n });\n const pgEnums = meta.pgEnums.map(({ fieldName }) => {\n return code`${fieldName}?: ${OrderBy};`;\n });\n const m2o = meta.manyToOnes.map(({ fieldName, otherEntity }) => {\n return code`${fieldName}?: ${otherEntity.orderType};`;\n });\n return [...maybeId, ...primitives, ...enums, ...pgEnums, ...m2o];\n}\n\nfunction generateFactoryExtrasType(meta: EntityDbMetadata): Code[] {\n function withName(fieldName: string): string {\n return `with${fieldName[0].toUpperCase() + fieldName.substring(1)}`;\n }\n const primitives = meta.primitives\n .filter((f) => f.derived === \"async\")\n .map((field) => {\n const { fieldName, fieldType, notNull } = field;\n return code`${withName(fieldName)}?: ${fieldType}${maybeUnionNull(notNull)};`;\n });\n const enums = meta.enums\n .filter((f) => f.derived === \"async\")\n .map((field) => {\n const { fieldName, enumType, notNull, isArray } = field;\n if (isArray) {\n return code`${withName(fieldName)}?: ${enumType}[];`;\n } else {\n return code`${withName(fieldName)}?: ${enumType}${maybeUnionNull(notNull)};`;\n }\n });\n return [...primitives, ...enums];\n}\n\nfunction createPrimitives(meta: EntityDbMetadata, entity: Entity, fieldDocs: Record<string, string>) {\n const primitives = meta.primitives.map((p) => {\n const { fieldName, fieldType, notNull } = p;\n const maybeOptional = notNull ? \"\" : \" | undefined\";\n\n // `lazy` columns are emitted as `LazyField` relations by `createLazyFields`, not as getters/setters\n if (p.lazy) return code``;\n\n let getter: Code;\n if (p.derived === \"async\") {\n getter = code`\n abstract readonly ${fieldName}: ${ReactiveField}<${entity.name}, ${p.fieldType}${maybeOptional}>;\n `;\n } else if (p.derived === \"sync\") {\n getter = code`\n abstract get ${fieldName}(): ${fieldType}${maybeOptional};\n `;\n } else if (p.zodSchema) {\n getter = code`\n get ${fieldName}(): ${Zod}.output<typeof ${p.zodSchema}>${maybeOptional} {\n return ${getField}(this, \"${fieldName}\");\n }\n `;\n } else {\n getter = code`\n get ${fieldName}(): ${fieldType}${maybeOptional} {\n return ${getField}(this, \"${fieldName}\");\n }\n `;\n }\n\n let setter: Code | string;\n // ...technically we should be checking a list of JS keywords\n const paramName = keywords.includes(fieldName) ? \"value\" : fieldName;\n if (p.protected) {\n // TODO Allow making the getter to be protected as well. And so probably remove it\n // from the Opts as well. Wonder how that works for required protected fields?\n //\n // We have to use a method of `set${fieldName}` because TS enforces getters/setters to have\n // same access level and currently we're leaving the getter as public.\n setter = code`\n protected set${pascalCase(fieldName)}(${paramName}: ${fieldType}${maybeOptional}) {\n ${setField}(this, \"${fieldName}\", ${paramName});\n }\n `;\n } else if (p.derived) {\n setter = \"\";\n } else if (p.superstruct) {\n // We use `value` as the param name to not potentially conflict with the\n // name of the imported superstruct const that is passed to assert.\n setter = code`\n set ${fieldName}(value: ${fieldType}${maybeOptional}) {\n if (value) {\n ${SSAssert}(value, ${p.superstruct});\n }\n ${setField}(this, \"${fieldName}\", value);\n }\n `;\n } else if (p.zodSchema) {\n // We use `value` as the param name to not potentially conflict with the\n // name of the imported zod schema that is passed to parse.\n setter = code`\n set ${fieldName}(value: ${Zod}.input<typeof ${p.zodSchema}>${maybeOptional}) {\n if (value) {\n ${setField}(this, \"${fieldName}\", ${p.zodSchema}.parse(value));\n } else {\n ${setField}(this, \"${fieldName}\", value);\n }\n }\n `;\n } else {\n setter = code`\n set ${fieldName}(${paramName}: ${fieldType}${maybeOptional}) {\n ${setField}(this, \"${fieldName}\", ${paramName});\n }\n `;\n }\n\n return code`${fieldDocBlock(fieldDocs, fieldName, entity.name)}${getter} ${setter}`;\n });\n return primitives;\n}\n\nfunction createRegularEnums(meta: EntityDbMetadata, entity: Entity, fieldDocs: Record<string, string>) {\n return meta.enums\n .filter((e) => !e.isArray)\n .flatMap((e) => {\n const { fieldName, enumType, enumDetailType, enumDetailsType, notNull, enumRows, derived } = e;\n const maybeOptional = notNull ? \"\" : \" | undefined\";\n const getByCode = code`${enumDetailType}.getByCode(this.${fieldName})`;\n\n let getter: Code;\n if (derived === \"async\") {\n getter = code`\n abstract readonly ${fieldName}: ${ReactiveField}<${entity.name}, ${enumType}${maybeOptional}>;\n `;\n } else if (derived === \"sync\") {\n getter = code`\n abstract get ${fieldName}(): ${enumType}${maybeOptional};\n `;\n } else {\n getter = code`\n get ${fieldName}(): ${enumType}${maybeOptional} {\n return ${getField}(this, \"${fieldName}\");\n }\n\n get ${fieldName}Details(): ${enumDetailsType}${maybeOptional} {\n return ${notNull ? getByCode : code`this.${fieldName} ? ${getByCode} : undefined`};\n }\n `;\n }\n\n let setter: Code;\n if (derived) {\n setter = code``;\n } else {\n setter = code`\n set ${fieldName}(${fieldName}: ${enumType}${maybeOptional}) {\n ${setField}(this, \"${fieldName}\", ${fieldName});\n }\n `;\n }\n\n const codes = new Set(enumRows.map((r) => r.code));\n const shouldPrefixAccessors = meta.enums\n .filter((other) => other !== e)\n .some((other) => other.enumRows.some((r) => codes.has(r.code)));\n\n const accessors = enumRows.map(\n (row) => code`\n get is${shouldPrefixAccessors ? pascalCase(fieldName) : \"\"}${pascalCase(row.code)}(): boolean {\n return ${getField}(this, \"${fieldName}\") === ${enumType}.${pascalCase(row.code)};\n }\n `,\n );\n return [code`${fieldDocBlock(fieldDocs, fieldName, entity.name)}${getter}`, setter, ...accessors];\n });\n}\n\nfunction createArrayEnums(meta: EntityDbMetadata, fieldDocs: Record<string, string>) {\n return meta.enums\n .filter((e) => e.isArray)\n .flatMap((e) => {\n const { fieldName, enumType, enumDetailType, enumDetailsType, enumRows } = e;\n const getter = code`\n get ${fieldName}(): ${enumType}[] {\n return ${getField}(this, \"${fieldName}\") || [];\n }\n\n get ${fieldName}Details(): ${enumDetailsType}[] {\n return this.${fieldName}.map(code => ${enumDetailType}.getByCode(code));\n }\n `;\n const setter = code`\n set ${fieldName}(${fieldName}: ${enumType}[]) {\n ${setField}(this, \"${fieldName}\", ${fieldName});\n }\n `;\n\n const codes = new Set(enumRows.map((r) => r.code));\n const shouldPrefixAccessors = meta.enums\n .filter((other) => other !== e)\n .some((other) => other.enumRows.some((r) => codes.has(r.code)));\n\n const accessors = enumRows.map(\n (row) => code`\n get is${shouldPrefixAccessors ? pascalCase(fieldName) : \"\"}${pascalCase(row.code)}(): boolean {\n return this.${fieldName}.includes(${enumType}.${pascalCase(row.code)});\n }\n `,\n );\n return [code`${fieldDocBlock(fieldDocs, fieldName, meta.entity.name)}${getter}`, setter, ...accessors];\n });\n}\n\nfunction createPgEnums(meta: EntityDbMetadata, fieldDocs: Record<string, string>) {\n return meta.pgEnums.flatMap((e) => {\n const { fieldName, enumType, enumValues, notNull } = e;\n const maybeOptional = notNull ? \"\" : \" | undefined\";\n\n const getter = code`\n get ${fieldName}(): ${enumType}${maybeOptional} {\n return ${getField}(this, \"${fieldName}\");\n }\n `;\n const setter = code`\n set ${fieldName}(${fieldName}: ${enumType}${maybeOptional}) {\n ${setField}(this, \"${fieldName}\", ${fieldName});\n }\n `;\n\n const codes = new Set(enumValues);\n const shouldPrefixAccessors = meta.pgEnums\n .filter((other) => other !== e)\n .some((other) => other.enumValues.some((r) => codes.has(r)));\n\n const accessors = enumValues.map(\n (row) => code`\n get is${shouldPrefixAccessors ? pascalCase(fieldName) : \"\"}${pascalCase(row)}(): boolean {\n return this.${fieldName} === ${enumType}.${pascalCase(row)};\n }\n `,\n );\n return [code`${fieldDocBlock(fieldDocs, fieldName, meta.entity.name)}${getter}`, setter, ...accessors];\n });\n}\n\nfunction createRelations(config: Config, meta: EntityDbMetadata, entity: Entity): Relation[] {\n // Add ManyToOne entities\n const m2o: Relation[] = meta.manyToOnes.map((m2o) => {\n const { fieldName, otherEntity, otherFieldName, notNull } = m2o;\n const maybeOptional = notNull ? \"never\" : \"undefined\";\n if (m2o.derived === \"async\") {\n const line = code`abstract readonly ${fieldName}: ${ReactiveReference}<${entity.name}, ${otherEntity.type}, ${maybeOptional}>;`;\n return { kind: \"abstract\", fieldName, line } as const;\n }\n const decl = code`${ManyToOneReference}<${entity.type}, ${otherEntity.type}, ${maybeOptional}>`;\n const init = code`${hasOne}()`;\n return { kind: \"concrete\", fieldName, decl, init };\n });\n // Specialize\n const m2oBase: Relation[] =\n meta.baseType?.manyToOnes\n // Skip m2os that are already specialized to a different otherEntity, i.e. `SmallPublisher.group: SmallPublisherGroup`\n .filter((m2o) => !meta.manyToOnes.find((o) => o.fieldName === m2o.fieldName))\n // Don't specialize hasReactiveReferences b/c they're fields, not getters\n .filter((m2o) => m2o.derived !== \"async\")\n .map((m2o) => {\n const { fieldName, otherEntity, notNull } = m2o;\n const maybeOptional = notNull ? \"never\" : \"undefined\";\n const decl = code`${ManyToOneReference}<${entity.type}, ${otherEntity.type}, ${maybeOptional}>`;\n return { kind: \"super\", fieldName, decl };\n }) ?? [];\n\n // Add any recursive ManyToOne entities\n const m2oRecursive: Relation[] = meta.manyToOnes\n .filter((m2o) => m2o.otherEntity.name === meta.name)\n // Allow disabling recursive relations\n .filter(\n (m2o) =>\n // STI subtypes don't have their own key in config.entities (stripped by stripStiPlaceholders),\n // so look up the base class name to find skipRecursiveRelations config\n !(\n config.entities[meta.inheritanceType == \"sti\" && meta.baseClassName ? meta.baseClassName : meta.name]\n ?.relations?.[m2o.fieldName]?.skipRecursiveRelations === true\n ),\n )\n // Skip ReactiveReferences because they don't have an `other` side for us to use\n .filter((m2o) => !m2o.derived)\n .flatMap((m2o) => {\n const { fieldName: m2oName, otherFieldName, otherEntity } = m2o;\n const parentsField = `${plural(m2oName)}Recursive`;\n const maybeOneToOne = meta.oneToOnes.find((o2o) => o2o.fieldName === otherFieldName);\n const childrenField = maybeOneToOne ? `${plural(otherFieldName)}Recursive` : `${otherFieldName}Recursive`;\n return [\n {\n kind: \"concrete\",\n fieldName: parentsField,\n decl: code`${ReadOnlyCollection}<${entity.type}, ${otherEntity.type}>`,\n init: code`${hasRecursiveParents}(\"${m2oName}\", \"${childrenField}\")`,\n },\n {\n kind: \"concrete\",\n fieldName: childrenField,\n decl: code`${ReadOnlyCollection}<${entity.type}, ${otherEntity.type}>`,\n init: code`${hasRecursiveChildren}(\"${otherFieldName}\", \"${parentsField}\")`,\n },\n ];\n });\n\n // Add any recursive ManyToMany entities (self-referential m2m)\n const m2mRecursive: Relation[] = meta.manyToManys\n .filter((m2m) => m2m.otherEntity.name === meta.name)\n .filter((m2m) => !m2m.derived)\n // STI subtypes don't have their own key in config.entities (stripped by stripStiPlaceholders),\n // so look up the base class name to find skipRecursiveRelations config\n .filter(\n (m2m) =>\n !(\n config.entities[meta.inheritanceType == \"sti\" && meta.baseClassName ? meta.baseClassName : meta.name]\n ?.relations?.[m2m.fieldName]?.skipRecursiveRelations === true\n ),\n )\n .map((m2m) => {\n const { fieldName, otherFieldName, otherEntity } = m2m;\n return {\n kind: \"concrete\",\n fieldName: `${fieldName}Recursive`,\n decl: code`${ReadOnlyCollection}<${entity.type}, ${otherEntity.type}>`,\n init: code`${hasRecursiveM2m}(\"${fieldName}\", \"${otherFieldName}Recursive\")`,\n };\n });\n\n // Add OneToMany\n const o2m: Relation[] = meta.oneToManys.map((o2m) => {\n const { fieldName, otherEntity } = o2m;\n const decl = code`${Collection}<${entity.type}, ${otherEntity.type}>`;\n const init = code`${hasMany}()`;\n return { kind: \"concrete\", fieldName, decl, init };\n });\n // Specialize\n const o2mBase: Relation[] =\n meta.baseType?.oneToManys\n // Skip o2ms that are already specialized to a different otherEntity, i.e. `SmallPublisherGroup.publishers: SmallPublisher`\n .filter((o2m) => !meta.oneToManys.find((o) => o.fieldName === o2m.fieldName))\n .map((o2m) => {\n const { fieldName, otherEntity } = o2m;\n const decl = code`${Collection}<${entity.type}, ${otherEntity.type}>`;\n return { kind: \"super\", fieldName, decl };\n }) ?? [];\n\n // Add large OneToMany\n const lo2m: Relation[] = meta.largeOneToManys.map((o2m) => {\n const { fieldName, otherEntity } = o2m;\n const decl = code`${LargeCollection}<${entity.type}, ${otherEntity.type}>`;\n const init = code`${hasLargeMany}()`;\n return { kind: \"concrete\", fieldName, decl, init };\n });\n\n // Add OneToOne\n const o2o: Relation[] = meta.oneToOnes.map((o2o) => {\n const { fieldName, otherEntity } = o2o;\n const decl = code`${OneToOneReference}<${entity.type}, ${otherEntity.type}>`;\n const init = code`${hasOneToOne}()`;\n return { kind: \"concrete\", fieldName, decl, init };\n });\n // Specialize\n const o2oBase: Relation[] =\n meta.baseType?.oneToOnes.map((o2o) => {\n const { fieldName, otherEntity } = o2o;\n const decl = code`${OneToOneReference}<${entity.type}, ${otherEntity.type}>`;\n return { kind: \"super\", fieldName, decl };\n }) ?? [];\n\n // Add ManyToMany\n const m2m: Relation[] = meta.manyToManys.map((m2m) => {\n const { fieldName, otherEntity } = m2m;\n const comment = `// ${m2m.joinTableName} ${m2m.columnName} ${m2m.otherColumnName}`;\n if (m2m.derived === \"async\") {\n const line = code`abstract readonly ${fieldName}: ${ReactiveManyToMany}<${entity.name}, ${otherEntity.type}>;`;\n return { kind: \"abstract\", fieldName, line, comment } as const;\n } else if (m2m.derived === \"otherSide\") {\n const decl = code`${ReactiveManyToManyOtherSide}<${entity.type}, ${otherEntity.type}>`;\n const init = code`${hasReactiveManyToManyOtherSide}()`;\n return { kind: \"concrete\", fieldName, decl, init, comment };\n } else if (!m2m.derived) {\n const decl = code`${Collection}<${entity.type}, ${otherEntity.type}>`;\n const init = code`${hasManyToMany}()`;\n return { kind: \"concrete\", fieldName, decl, init, comment };\n } else {\n assertNever(m2m.derived);\n }\n });\n // Specialize\n const m2mBase: Relation[] =\n meta.baseType?.manyToManys\n // Don't specialize hasReactiveManyToMany or hasReactiveManyToManyOtherSide b/c they're fields, not getters\n .filter((m2m) => !m2m.derived)\n .map((m2m) => {\n const { fieldName, otherEntity } = m2m;\n const decl = code`${Collection}<${entity.type}, ${otherEntity.type}>`;\n return { kind: \"super\", fieldName, decl };\n }) ?? [];\n\n // Add enum-backed ManyToMany (i.e. `Publisher.logoColors`)\n const m2mEnum: Relation[] = meta.manyToManyEnums.map((m2m) => {\n const { fieldName, enumType } = m2m;\n const comment = `// ${m2m.joinTableName} ${m2m.columnName} ${m2m.otherColumnName}`;\n const decl = code`${EnumCollection}<${entity.type}, ${enumType}>`;\n const init = code`${hasEnumCollection}()`;\n return { kind: \"concrete\", fieldName, decl, init, comment };\n });\n const m2mEnumBase: Relation[] =\n meta.baseType?.manyToManyEnums.map((m2m) => {\n const { fieldName, enumType } = m2m;\n const decl = code`${EnumCollection}<${entity.type}, ${enumType}>`;\n return { kind: \"super\", fieldName, decl };\n }) ?? [];\n\n // Add large ManyToMany\n const lm2m: Relation[] = meta.largeManyToManys.map((m2m) => {\n const { joinTableName, fieldName, columnName, otherEntity, otherFieldName, otherColumnName } = m2m;\n const decl = code`${LargeCollection}<${entity.type}, ${otherEntity.type}>`;\n const init = code`\n ${hasLargeManyToMany}(\n \"${joinTableName}\",\n \"${columnName}\",\n \"${otherFieldName}\",\n \"${otherColumnName}\",\n ${m2m.hasJoinTableId},\n );\n `;\n return { kind: \"concrete\", fieldName, decl, init };\n });\n\n // Add Polymorphic\n const polymorphic: Relation[] = meta.polymorphics.map((p) => {\n const { fieldName, notNull, fieldType } = p;\n const maybeOptional = notNull ? \"never\" : \"undefined\";\n const decl = code`${PolymorphicReference}<${entity.type}, ${fieldType}, ${maybeOptional}>`;\n const init = code`${hasOnePolymorphic}()`;\n return { kind: \"concrete\", fieldName, decl, init };\n });\n\n // Add `lazy` primitives, which are exposed as `LazyField`s instead of getters/setters\n const lazy: Relation[] = meta.primitives\n .filter((p) => p.lazy)\n .map((p) => {\n const { fieldName, fieldType, notNull } = p;\n const maybeOptional = notNull ? \"\" : \" | undefined\";\n const decl = code`${LazyField}<${entity.type}, ${fieldType}${maybeOptional}>`;\n const init = code`${hasLazyField}()`;\n return { kind: \"concrete\", fieldName, decl, init };\n });\n\n return [\n o2m,\n o2mBase,\n lo2m,\n m2o,\n m2oBase,\n m2oRecursive,\n m2mRecursive,\n o2o,\n o2oBase,\n m2m,\n m2mBase,\n m2mEnum,\n m2mEnumBase,\n lm2m,\n polymorphic,\n lazy,\n ].flat();\n}\n\n/** Makes the field required if there is a `NOT NULL` and no db-or-config default. */\nfunction maybeOptionalOrDefault(\n field: PrimitiveField | EnumField | PgEnumField | ManyToOneField | PolymorphicField,\n): string {\n const hasDefault =\n (field.kind !== \"m2o\" && field.kind !== \"poly\" && fieldHasDefaultValue(field)) || field.hasConfigDefault;\n return !field.notNull || hasDefault ? \"?\" : \"\";\n}\n\nfunction maybeUnionNull(notNull: boolean): string {\n return notNull ? \"\" : \" | null\";\n}\n\nfunction maybeUndefined(notNull: boolean): string {\n return notNull ? \"\" : \" | undefined\";\n}\n\nfunction undefinedOrNever(notNull: boolean): string {\n return notNull ? \"never\" : \"undefined\";\n}\n\nfunction nullOrNever(notNull: boolean): string {\n return notNull ? \"never\" : \"null\";\n}\n\n/** Returns the nowUTC call for the deleted-at field's generated timestamp type. */\nfunction nowUTCCall(config: Config, field: PrimitiveField): Code {\n if (!config.temporal) return code`${nowUTC}()`;\n switch (field.columnType) {\n case \"date\":\n return code`${nowUTC}(\"plainDate\")`;\n case \"timestamp without time zone\":\n return code`${nowUTC}(\"plainDateTime\")`;\n case \"timestamp with time zone\":\n return code`${nowUTC}(\"zonedDateTime\")`;\n default:\n return fail(`Unsupported deleted-at column type ${field.columnType}`);\n }\n}\n\n/** Prefixes the comment with a newline, so it gets its own line. */\nfunction maybeComment(comment: string | undefined): string {\n return comment ? ` ${comment}\\n` : \"\";\n}\n\n/**\n * Renders a field's `.md` doc (plus its `@generated` tag) as a bare JSDoc block, or `\"\"` if undocumented.\n *\n * Reuses the same {@link buildJSDocBlock} formatter the `.md` sync uses for hand-written `Entity.ts`\n * members. Used directly before a getter template (which supplies its own leading newline), so the\n * JSDoc lands immediately above the getter with no intervening blank line.\n */\nfunction fieldDocBlock(fieldDocs: Record<string, string>, fieldName: string, entityName: string): string {\n const doc = fieldDocs[fieldName];\n return doc ? buildJSDocBlock(`${doc}\\n${generatedTag(entityName)}`, 0) : \"\";\n}\n\n/** Like {@link fieldDocBlock} but wrapped in newlines, i.e. for inline `readonly x = ...` relation decls. */\nfunction relationDocBlock(fieldDocs: Record<string, string>, fieldName: string, entityName: string): string {\n const block = fieldDocBlock(fieldDocs, fieldName, entityName);\n return block ? `\\n${block}\\n` : \"\";\n}\n\nexport function getIdType(config: Config) {\n switch (config.idType) {\n case \"untagged-string\":\n case \"tagged-string\":\n case undefined:\n return \"string\";\n case \"number\":\n return \"number\";\n default:\n return assertNever(config.idType);\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
require("./config.cjs");
|
|
3
|
+
require("./EntityDbMetadata.cjs");
|
|
4
|
+
let ts_poet = require("ts-poet");
|
|
5
|
+
//#region src/generateEntityFile.ts
|
|
6
|
+
/** Creates the placeholder file for our per-entity custom business logic in. */
|
|
7
|
+
function generateEntityFile(config, meta) {
|
|
8
|
+
const entityName = meta.entity.name;
|
|
9
|
+
const codegenClass = (0, ts_poet.imp)(`${entityName}Codegen@./entities.ts`);
|
|
10
|
+
const esmExt = config.esm ? config.allowImportingTsExtensions ? ".ts" : ".js" : "";
|
|
11
|
+
return ts_poet.code`
|
|
12
|
+
import { ${meta.entity.configConst.symbol} as config } from "./entities${esmExt}";
|
|
13
|
+
|
|
14
|
+
export class ${entityName} extends ${codegenClass} {}
|
|
15
|
+
|
|
16
|
+
// remove once you have actual rules/hooks
|
|
17
|
+
config.placeholder();
|
|
18
|
+
`;
|
|
19
|
+
}
|
|
20
|
+
//#endregion
|
|
21
|
+
exports.generateEntityFile = generateEntityFile;
|
|
22
|
+
|
|
23
|
+
//# sourceMappingURL=generateEntityFile.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateEntityFile.cjs","names":["imp"],"sources":["../src/generateEntityFile.ts"],"sourcesContent":["import { type Code, code, imp } from \"ts-poet\";\n\nimport { type Config } from \"./config.ts\";\nimport { type EntityDbMetadata } from \"./EntityDbMetadata.ts\";\n\n/** Creates the placeholder file for our per-entity custom business logic in. */\nexport function generateEntityFile(config: Config, meta: EntityDbMetadata): Code {\n const entityName = meta.entity.name;\n const codegenClass = imp(`${entityName}Codegen@./entities.ts`);\n const esmExt = config.esm ? (config.allowImportingTsExtensions ? \".ts\" : \".js\") : \"\";\n\n return code`\n import { ${meta.entity.configConst.symbol} as config } from \"./entities${esmExt}\";\n\n export class ${entityName} extends ${codegenClass} {}\n\n // remove once you have actual rules/hooks\n config.placeholder();\n `;\n}\n"],"mappings":";;;;;;AAMA,SAAgB,mBAAmB,QAAgB,MAA8B;CAC/E,MAAM,aAAa,KAAK,OAAO;CAC/B,MAAM,gBAAA,GAAeA,QAAAA,IAAAA,CAAI,GAAG,WAAW,sBAAsB;CAC7D,MAAM,SAAS,OAAO,MAAO,OAAO,6BAA6B,QAAQ,QAAS;CAElF,OAAO,QAAA,IAAI;eACE,KAAK,OAAO,YAAY,OAAO,+BAA+B,OAAO;;mBAEjE,WAAW,WAAW,aAAa;;;;;AAKtD"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Config } from "./config.cjs";
|
|
2
|
+
import { EntityDbMetadata } from "./EntityDbMetadata.cjs";
|
|
3
|
+
import { Code } from "ts-poet";
|
|
4
|
+
//#region src/generateEntityFile.d.ts
|
|
5
|
+
/** Creates the placeholder file for our per-entity custom business logic in. */
|
|
6
|
+
declare function generateEntityFile(config: Config, meta: EntityDbMetadata): Code;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { generateEntityFile };
|
|
9
|
+
//# sourceMappingURL=generateEntityFile.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateEntityFile.d.cts","names":[],"sources":["../src/generateEntityFile.ts"],"mappings":";;;;;iBAMgB,mBAAmB,QAAQ,QAAQ,MAAM,mBAAmB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Config } from "./config.mjs";
|
|
2
|
+
import { EntityDbMetadata } from "./EntityDbMetadata.mjs";
|
|
3
|
+
import { Code } from "ts-poet";
|
|
4
|
+
//#region src/generateEntityFile.d.ts
|
|
5
|
+
/** Creates the placeholder file for our per-entity custom business logic in. */
|
|
6
|
+
declare function generateEntityFile(config: Config, meta: EntityDbMetadata): Code;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { generateEntityFile };
|
|
9
|
+
//# sourceMappingURL=generateEntityFile.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateEntityFile.d.mts","names":[],"sources":["../src/generateEntityFile.ts"],"mappings":";;;;;iBAMgB,mBAAmB,QAAQ,QAAQ,MAAM,mBAAmB"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import "./config.js";
|
|
2
|
+
import "./EntityDbMetadata.js";
|
|
3
|
+
import { code, imp } from "ts-poet";
|
|
4
|
+
//#region src/generateEntityFile.ts
|
|
5
5
|
/** Creates the placeholder file for our per-entity custom business logic in. */
|
|
6
6
|
function generateEntityFile(config, meta) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
const entityName = meta.entity.name;
|
|
8
|
+
const codegenClass = imp(`${entityName}Codegen@./entities.ts`);
|
|
9
|
+
const esmExt = config.esm ? config.allowImportingTsExtensions ? ".ts" : ".js" : "";
|
|
10
|
+
return code`
|
|
11
11
|
import { ${meta.entity.configConst.symbol} as config } from "./entities${esmExt}";
|
|
12
12
|
|
|
13
13
|
export class ${entityName} extends ${codegenClass} {}
|
|
@@ -16,4 +16,7 @@ function generateEntityFile(config, meta) {
|
|
|
16
16
|
config.placeholder();
|
|
17
17
|
`;
|
|
18
18
|
}
|
|
19
|
+
//#endregion
|
|
20
|
+
export { generateEntityFile };
|
|
21
|
+
|
|
19
22
|
//# sourceMappingURL=generateEntityFile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateEntityFile.js","
|
|
1
|
+
{"version":3,"file":"generateEntityFile.js","names":[],"sources":["../src/generateEntityFile.ts"],"sourcesContent":["import { type Code, code, imp } from \"ts-poet\";\n\nimport { type Config } from \"./config.ts\";\nimport { type EntityDbMetadata } from \"./EntityDbMetadata.ts\";\n\n/** Creates the placeholder file for our per-entity custom business logic in. */\nexport function generateEntityFile(config: Config, meta: EntityDbMetadata): Code {\n const entityName = meta.entity.name;\n const codegenClass = imp(`${entityName}Codegen@./entities.ts`);\n const esmExt = config.esm ? (config.allowImportingTsExtensions ? \".ts\" : \".js\") : \"\";\n\n return code`\n import { ${meta.entity.configConst.symbol} as config } from \"./entities${esmExt}\";\n\n export class ${entityName} extends ${codegenClass} {}\n\n // remove once you have actual rules/hooks\n config.placeholder();\n `;\n}\n"],"mappings":";;;;;AAMA,SAAgB,mBAAmB,QAAgB,MAA8B;CAC/E,MAAM,aAAa,KAAK,OAAO;CAC/B,MAAM,eAAe,IAAI,GAAG,WAAW,sBAAsB;CAC7D,MAAM,SAAS,OAAO,MAAO,OAAO,6BAA6B,QAAQ,QAAS;CAElF,OAAO,IAAI;eACE,KAAK,OAAO,YAAY,OAAO,+BAA+B,OAAO;;mBAEjE,WAAW,WAAW,aAAa;;;;;AAKtD"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
require("./config.cjs");
|
|
3
|
+
require("./EntityDbMetadata.cjs");
|
|
4
|
+
let ts_poet = require("ts-poet");
|
|
5
|
+
//#region src/generateEntityTestFile.ts
|
|
6
|
+
/** Creates the placeholder file for our entity's test. */
|
|
7
|
+
function generateEntityTestFile(config, meta) {
|
|
8
|
+
const entityName = meta.entity.name;
|
|
9
|
+
const esmExt = config.esm ? config.allowImportingTsExtensions ? ".ts" : ".js" : "";
|
|
10
|
+
return ts_poet.code`
|
|
11
|
+
import { new${entityName} } from "./entities${esmExt}";
|
|
12
|
+
|
|
13
|
+
describe("${entityName}", () => {
|
|
14
|
+
it("works", async () => {
|
|
15
|
+
const em = newEntityManager();
|
|
16
|
+
new${entityName}(em);
|
|
17
|
+
await em.flush();
|
|
18
|
+
});
|
|
19
|
+
});
|
|
20
|
+
`;
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
exports.generateEntityTestFile = generateEntityTestFile;
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=generateEntityTestFile.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateEntityTestFile.cjs","names":[],"sources":["../src/generateEntityTestFile.ts"],"sourcesContent":["import { type Code, code } from \"ts-poet\";\n\nimport { type Config } from \"./config.ts\";\nimport { type EntityDbMetadata } from \"./EntityDbMetadata.ts\";\n\n/** Creates the placeholder file for our entity's test. */\nexport function generateEntityTestFile(config: Config, meta: EntityDbMetadata): Code {\n const entityName = meta.entity.name;\n const esmExt = config.esm ? (config.allowImportingTsExtensions ? \".ts\" : \".js\") : \"\";\n return code`\n import { new${entityName} } from \"./entities${esmExt}\";\n\n describe(\"${entityName}\", () => {\n it(\"works\", async () => {\n const em = newEntityManager();\n new${entityName}(em);\n await em.flush();\n });\n });\n `;\n}\n"],"mappings":";;;;;;AAMA,SAAgB,uBAAuB,QAAgB,MAA8B;CACnF,MAAM,aAAa,KAAK,OAAO;CAC/B,MAAM,SAAS,OAAO,MAAO,OAAO,6BAA6B,QAAQ,QAAS;CAClF,OAAO,QAAA,IAAI;kBACK,WAAW,qBAAqB,OAAO;;gBAEzC,WAAW;;;aAGd,WAAW;;;;;AAKxB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Config } from "./config.cjs";
|
|
2
|
+
import { EntityDbMetadata } from "./EntityDbMetadata.cjs";
|
|
3
|
+
import { Code } from "ts-poet";
|
|
4
|
+
//#region src/generateEntityTestFile.d.ts
|
|
5
|
+
/** Creates the placeholder file for our entity's test. */
|
|
6
|
+
declare function generateEntityTestFile(config: Config, meta: EntityDbMetadata): Code;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { generateEntityTestFile };
|
|
9
|
+
//# sourceMappingURL=generateEntityTestFile.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateEntityTestFile.d.cts","names":[],"sources":["../src/generateEntityTestFile.ts"],"mappings":";;;;;iBAMgB,uBAAuB,QAAQ,QAAQ,MAAM,mBAAmB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Config } from "./config.mjs";
|
|
2
|
+
import { EntityDbMetadata } from "./EntityDbMetadata.mjs";
|
|
3
|
+
import { Code } from "ts-poet";
|
|
4
|
+
//#region src/generateEntityTestFile.d.ts
|
|
5
|
+
/** Creates the placeholder file for our entity's test. */
|
|
6
|
+
declare function generateEntityTestFile(config: Config, meta: EntityDbMetadata): Code;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { generateEntityTestFile };
|
|
9
|
+
//# sourceMappingURL=generateEntityTestFile.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateEntityTestFile.d.mts","names":[],"sources":["../src/generateEntityTestFile.ts"],"mappings":";;;;;iBAMgB,uBAAuB,QAAQ,QAAQ,MAAM,mBAAmB"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import "./config.js";
|
|
2
|
+
import "./EntityDbMetadata.js";
|
|
3
|
+
import { code } from "ts-poet";
|
|
4
|
+
//#region src/generateEntityTestFile.ts
|
|
5
5
|
/** Creates the placeholder file for our entity's test. */
|
|
6
6
|
function generateEntityTestFile(config, meta) {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
const entityName = meta.entity.name;
|
|
8
|
+
const esmExt = config.esm ? config.allowImportingTsExtensions ? ".ts" : ".js" : "";
|
|
9
|
+
return code`
|
|
10
10
|
import { new${entityName} } from "./entities${esmExt}";
|
|
11
11
|
|
|
12
12
|
describe("${entityName}", () => {
|
|
@@ -18,4 +18,7 @@ function generateEntityTestFile(config, meta) {
|
|
|
18
18
|
});
|
|
19
19
|
`;
|
|
20
20
|
}
|
|
21
|
+
//#endregion
|
|
22
|
+
export { generateEntityTestFile };
|
|
23
|
+
|
|
21
24
|
//# sourceMappingURL=generateEntityTestFile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateEntityTestFile.js","
|
|
1
|
+
{"version":3,"file":"generateEntityTestFile.js","names":[],"sources":["../src/generateEntityTestFile.ts"],"sourcesContent":["import { type Code, code } from \"ts-poet\";\n\nimport { type Config } from \"./config.ts\";\nimport { type EntityDbMetadata } from \"./EntityDbMetadata.ts\";\n\n/** Creates the placeholder file for our entity's test. */\nexport function generateEntityTestFile(config: Config, meta: EntityDbMetadata): Code {\n const entityName = meta.entity.name;\n const esmExt = config.esm ? (config.allowImportingTsExtensions ? \".ts\" : \".js\") : \"\";\n return code`\n import { new${entityName} } from \"./entities${esmExt}\";\n\n describe(\"${entityName}\", () => {\n it(\"works\", async () => {\n const em = newEntityManager();\n new${entityName}(em);\n await em.flush();\n });\n });\n `;\n}\n"],"mappings":";;;;;AAMA,SAAgB,uBAAuB,QAAgB,MAA8B;CACnF,MAAM,aAAa,KAAK,OAAO;CAC/B,MAAM,SAAS,OAAO,MAAO,OAAO,6BAA6B,QAAQ,QAAS;CAClF,OAAO,IAAI;kBACK,WAAW,qBAAqB,OAAO;;gBAEzC,WAAW;;;aAGd,WAAW;;;;;AAKxB"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_runtime = require("./_virtual/_rolldown/runtime.cjs");
|
|
3
|
+
require("./config.cjs");
|
|
4
|
+
const require_symbols = require("./symbols.cjs");
|
|
5
|
+
require("./index.cjs");
|
|
6
|
+
let change_case = require("change-case");
|
|
7
|
+
let pluralize = require("pluralize");
|
|
8
|
+
pluralize = require_runtime.__toESM(pluralize, 1);
|
|
9
|
+
let ts_poet = require("ts-poet");
|
|
10
|
+
//#region src/generateEnumFile.ts
|
|
11
|
+
function generateEnumFile(config, enumData, enumName) {
|
|
12
|
+
const { rows, extraPrimitives } = enumData;
|
|
13
|
+
const detailsName = `${enumName}Details`;
|
|
14
|
+
const idType = enumData.idType === "uuid" ? "string" : "number";
|
|
15
|
+
const detailsDefinition = [
|
|
16
|
+
`id: ${idType};`,
|
|
17
|
+
`code: ${enumName};`,
|
|
18
|
+
"name: string;",
|
|
19
|
+
...extraPrimitives.map((primitive) => {
|
|
20
|
+
const allValues = rows.map((r) => r[primitive.columnName]);
|
|
21
|
+
if (new Set(allValues).size === allValues.length) return `${primitive.fieldName}: ${primitive.fieldType === "string" ? `"${allValues.join("\" | \"")}"` : allValues.join(" | ")};`;
|
|
22
|
+
return `${primitive.fieldName}: ${primitive.fieldType};`;
|
|
23
|
+
})
|
|
24
|
+
].join(" ");
|
|
25
|
+
return ts_poet.code`
|
|
26
|
+
export enum ${enumName} {
|
|
27
|
+
${rows.map((row) => `${(0, change_case.pascalCase)(row.code)} = '${row.code}'`).join(",\n")}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export type ${detailsName} = {${detailsDefinition}};
|
|
31
|
+
|
|
32
|
+
const details: Record<${enumName}, ${detailsName}> = {
|
|
33
|
+
${rows.map((row) => {
|
|
34
|
+
const code = (0, change_case.pascalCase)(row.code);
|
|
35
|
+
const safeName = row.name.replace(/(["'])/g, "\\$1");
|
|
36
|
+
const extras = extraPrimitives.map((p) => `${p.fieldName}: ${JSON.stringify(row[p.columnName])}`).join(", ");
|
|
37
|
+
return `[${enumName}.${code}]: { id: ${enumData.idType === "uuid" ? `"${row.id}"` : row.id}, code: ${enumName}.${code}, name: '${safeName}', ${extras} }`;
|
|
38
|
+
}).join(",")}
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export const ${detailsName} = {
|
|
42
|
+
${rows.map((row) => `${(0, change_case.pascalCase)(row.code)}: details[${enumName}.${(0, change_case.pascalCase)(row.code)}]`).join(",")}
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
export const ${(0, pluralize.default)(enumName)}: ${require_symbols.EnumMetadata}<${enumName}, ${detailsName}, ${idType}> = {
|
|
46
|
+
name: "${enumName}",
|
|
47
|
+
|
|
48
|
+
getByCode(code: ${enumName}): ${detailsName} {
|
|
49
|
+
return details[code];
|
|
50
|
+
},
|
|
51
|
+
|
|
52
|
+
findByCode(code: string): ${detailsName} | undefined {
|
|
53
|
+
return details[code as ${enumName}];
|
|
54
|
+
},
|
|
55
|
+
|
|
56
|
+
findById(id: ${idType}): ${detailsName} | undefined {
|
|
57
|
+
return Object.values(details).find(d => d.id === id);
|
|
58
|
+
},
|
|
59
|
+
|
|
60
|
+
getValues(): ReadonlyArray<${enumName}> {
|
|
61
|
+
return Object.values(${enumName});
|
|
62
|
+
},
|
|
63
|
+
|
|
64
|
+
getDetails(): ReadonlyArray<${detailsName}> {
|
|
65
|
+
return Object.values(details);
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
`;
|
|
69
|
+
}
|
|
70
|
+
//#endregion
|
|
71
|
+
exports.generateEnumFile = generateEnumFile;
|
|
72
|
+
|
|
73
|
+
//# sourceMappingURL=generateEnumFile.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateEnumFile.cjs","names":["pascalCase","EnumMetadata"],"sources":["../src/generateEnumFile.ts"],"sourcesContent":["import { pascalCase } from \"change-case\";\nimport pluralize from \"pluralize\";\nimport { type Code, code } from \"ts-poet\";\n\nimport { type Config } from \"./config.ts\";\nimport { type EnumTableData } from \"./index.ts\";\nimport { EnumMetadata } from \"./symbols.ts\";\n\nexport function generateEnumFile(config: Config, enumData: EnumTableData, enumName: string): Code {\n const { rows, extraPrimitives } = enumData;\n const detailsName = `${enumName}Details`;\n const idType = enumData.idType === \"uuid\" ? \"string\" : \"number\";\n\n // Create the `const fooDetails = code -> literal` mapping\n const detailsDefinition = [\n `id: ${idType};`,\n `code: ${enumName};`,\n \"name: string;\",\n ...extraPrimitives.map((primitive) => {\n // If the extra primitive values are all unique, then allow the type be only that set of values. Otherwise, use `fieldType`\n const allValues = rows.map((r) => r[primitive.columnName]);\n const uniqueValues = new Set(allValues);\n if (uniqueValues.size === allValues.length) {\n return `${primitive.fieldName}: ${\n primitive.fieldType === \"string\" ? `\"${allValues.join('\" | \"')}\"` : allValues.join(\" | \")\n };`;\n }\n return `${primitive.fieldName}: ${primitive.fieldType};`;\n }),\n ].join(\" \");\n\n return code`\n export enum ${enumName} {\n ${rows.map((row) => `${pascalCase(row.code)} = '${row.code}'`).join(\",\\n\")}\n }\n\n export type ${detailsName} = {${detailsDefinition}};\n\n const details: Record<${enumName}, ${detailsName}> = {\n ${rows\n .map((row) => {\n const code = pascalCase(row.code);\n const safeName = row.name.replace(/([\"'])/g, \"\\\\$1\");\n const extras = extraPrimitives\n .map((p) => `${p.fieldName}: ${JSON.stringify((row as any)[p.columnName])}`)\n .join(\", \");\n const id = enumData.idType === \"uuid\" ? `\"${row.id}\"` : row.id;\n return `[${enumName}.${code}]: { id: ${id}, code: ${enumName}.${code}, name: '${safeName}', ${extras} }`;\n })\n .join(\",\")}\n };\n \n export const ${detailsName} = {\n ${rows.map((row) => `${pascalCase(row.code)}: details[${enumName}.${pascalCase(row.code)}]`).join(\",\")}\n };\n\n export const ${pluralize(enumName)}: ${EnumMetadata}<${enumName}, ${detailsName}, ${idType}> = {\n name: \"${enumName}\",\n\n getByCode(code: ${enumName}): ${detailsName} {\n return details[code];\n },\n\n findByCode(code: string): ${detailsName} | undefined {\n return details[code as ${enumName}];\n },\n\n findById(id: ${idType}): ${detailsName} | undefined {\n return Object.values(details).find(d => d.id === id);\n },\n\n getValues(): ReadonlyArray<${enumName}> {\n return Object.values(${enumName});\n },\n\n getDetails(): ReadonlyArray<${detailsName}> {\n return Object.values(details);\n },\n };\n `;\n}\n"],"mappings":";;;;;;;;;;AAQA,SAAgB,iBAAiB,QAAgB,UAAyB,UAAwB;CAChG,MAAM,EAAE,MAAM,oBAAoB;CAClC,MAAM,cAAc,GAAG,SAAS;CAChC,MAAM,SAAS,SAAS,WAAW,SAAS,WAAW;CAGvD,MAAM,oBAAoB;EACxB,OAAO,OAAO;EACd,SAAS,SAAS;EAClB;EACA,GAAG,gBAAgB,KAAK,cAAc;GAEpC,MAAM,YAAY,KAAK,KAAK,MAAM,EAAE,UAAU,WAAW;GAEzD,IAAI,IADqB,IAAI,SACd,CAAC,CAAC,SAAS,UAAU,QAClC,OAAO,GAAG,UAAU,UAAU,IAC5B,UAAU,cAAc,WAAW,IAAI,UAAU,KAAK,SAAO,EAAE,KAAK,UAAU,KAAK,KAAK,EACzF;GAEH,OAAO,GAAG,UAAU,UAAU,IAAI,UAAU,UAAU;EACxD,CAAC;CACH,CAAC,CAAC,KAAK,GAAG;CAEV,OAAO,QAAA,IAAI;kBACK,SAAS;QACnB,KAAK,KAAK,QAAQ,IAAA,GAAGA,YAAAA,WAAAA,CAAW,IAAI,IAAI,EAAE,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC,KAAK,KAAK,EAAE;;;kBAG/D,YAAY,MAAM,kBAAkB;;4BAE1B,SAAS,IAAI,YAAY;QAC7C,KACC,KAAK,QAAQ;EACZ,MAAM,QAAA,GAAOA,YAAAA,WAAAA,CAAW,IAAI,IAAI;EAChC,MAAM,WAAW,IAAI,KAAK,QAAQ,WAAW,MAAM;EACnD,MAAM,SAAS,gBACZ,KAAK,MAAM,GAAG,EAAE,UAAU,IAAI,KAAK,UAAW,IAAY,EAAE,WAAW,GAAG,CAAC,CAC3E,KAAK,IAAI;EAEZ,OAAO,IAAI,SAAS,GAAG,KAAK,WADjB,SAAS,WAAW,SAAS,IAAI,IAAI,GAAG,KAAK,IAAI,GAClB,UAAU,SAAS,GAAG,KAAK,WAAW,SAAS,KAAK,OAAO;CACvG,CAAC,CAAC,CACD,KAAK,GAAG,EAAE;;;mBAGA,YAAY;QACvB,KAAK,KAAK,QAAQ,IAAA,GAAGA,YAAAA,WAAAA,CAAW,IAAI,IAAI,EAAE,YAAY,SAAS,IAAA,GAAGA,YAAAA,WAAAA,CAAW,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE;;;oBAG1F,GAAA,UAAA,QAAA,CAAU,QAAQ,EAAE,IAAIC,gBAAAA,aAAa,GAAG,SAAS,IAAI,YAAY,IAAI,OAAO;eAChF,SAAS;;wBAEA,SAAS,KAAK,YAAY;;;;kCAIhB,YAAY;iCACb,SAAS;;;qBAGrB,OAAO,KAAK,YAAY;;;;mCAIV,SAAS;+BACb,SAAS;;;oCAGJ,YAAY;;;;;AAKhD"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Config } from "./config.cjs";
|
|
2
|
+
import "./index.cjs";
|
|
3
|
+
import { EnumTableData } from "./loadMetadata.cjs";
|
|
4
|
+
import { Code } from "ts-poet";
|
|
5
|
+
//#region src/generateEnumFile.d.ts
|
|
6
|
+
declare function generateEnumFile(config: Config, enumData: EnumTableData, enumName: string): Code;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { generateEnumFile };
|
|
9
|
+
//# sourceMappingURL=generateEnumFile.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generateEnumFile.d.cts","names":[],"sources":["../src/generateEnumFile.ts"],"mappings":";;;;;iBAQgB,iBAAiB,QAAQ,QAAQ,UAAU,eAAe,mBAAmB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Config } from "./config.mjs";
|
|
2
|
+
import "./index.mjs";
|
|
3
|
+
import { EnumTableData } from "./loadMetadata.mjs";
|
|
4
|
+
import { Code } from "ts-poet";
|
|
5
|
+
//#region src/generateEnumFile.d.ts
|
|
6
|
+
declare function generateEnumFile(config: Config, enumData: EnumTableData, enumName: string): Code;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { generateEnumFile };
|
|
9
|
+
//# sourceMappingURL=generateEnumFile.d.mts.map
|