@contember/client-content-generator 1.3.0-alpha.6 → 1.3.0-alpha.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"EntityTypeSchemaGenerator.cjs","sources":["../../src/EntityTypeSchemaGenerator.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { acceptEveryFieldVisitor, acceptFieldVisitor } from '@contember/schema-utils'\n\nexport class EntityTypeSchemaGenerator {\n\tgenerate(model: Model.Schema): string {\n\t\tlet code = ''\n\t\tfor (const enumName of Object.keys(model.enums)) {\n\t\t\tcode += `import type { ${enumName} } from './enums'\\n`\n\t\t}\n\n\t\tcode += `\nexport type JSONPrimitive = string | number | boolean | null\nexport type JSONValue = JSONPrimitive | JSONObject | JSONArray\nexport type JSONObject = { readonly [K in string]?: JSONValue }\nexport type JSONArray = readonly JSONValue[]\n\n`\n\n\t\tfor (const entity of Object.values(model.entities)) {\n\t\t\tcode += this.generateTypeEntityCode(model, entity)\n\t\t}\n\t\tcode += '\\n'\n\t\tcode += `export type ContemberClientEntities = {\\n`\n\t\tfor (const entity of Object.values(model.entities)) {\n\t\t\tcode += `\\t${entity.name}: ${entity.name}\\n`\n\t\t}\n\t\tcode += '}\\n\\n'\n\t\tcode += `export type ContemberClientSchema = {\\n`\n\t\tcode += '\\tentities: ContemberClientEntities\\n'\n\t\tcode += '}\\n'\n\t\treturn code\n\t}\n\n\tprivate generateTypeEntityCode(model: Model.Schema, entity: Model.Entity): string {\n\t\tlet code = `export type ${entity.name} = {\\n`\n\t\tcode += '\\tname: \\'' + entity.name + '\\'\\n'\n\t\tcode += '\\tunique:\\n'\n\t\tcode += this.formatUniqueFields(model, entity)\n\t\tlet columnsCode = ''\n\t\tlet hasOneCode = ''\n\t\tlet hasManyCode = ''\n\t\tacceptEveryFieldVisitor(model, entity, {\n\t\t\tvisitHasMany: ctx => {\n\t\t\t\thasManyCode += `\\t\\t${ctx.relation.name}: ${ctx.targetEntity.name}\\n`\n\t\t\t},\n\t\t\tvisitHasOne: ctx => {\n\t\t\t\thasOneCode += `\\t\\t${ctx.relation.name}: ${ctx.targetEntity.name}\\n`\n\t\t\t},\n\t\t\tvisitColumn: ctx => {\n\t\t\t\tcolumnsCode += `\\t\\t${ctx.column.name}: ${columnToTsType(ctx.column)}${ctx.column.nullable ? ` | null` : ''}\\n`\n\t\t\t},\n\t\t})\n\n\t\tcode += '\\tcolumns: {\\n'\n\t\tcode += columnsCode\n\t\tcode += '\\t}\\n'\n\t\tcode += '\\thasOne: {\\n'\n\t\tcode += hasOneCode\n\t\tcode += '\\t}\\n'\n\t\tcode += '\\thasMany: {\\n'\n\t\tcode += hasManyCode\n\t\tcode += '\\t}\\n'\n\t\tcode += '\\thasManyBy: {\\n'\n\t\tcode += this.formatReducedFields(model, entity)\n\t\tcode += '\\t}\\n'\n\t\tcode += '}\\n'\n\t\treturn code\n\t}\n\n\tprivate formatReducedFields(model: Model.Schema, entity: Model.Entity): string {\n\t\tlet code = ''\n\t\tacceptEveryFieldVisitor(model, entity, {\n\t\t\tvisitOneHasMany: ({ entity, relation, targetEntity, targetRelation }) => {\n\t\t\t\tif (!targetRelation) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tconst uniqueConstraints = getFieldsForUniqueWhere(model, targetEntity)\n\t\t\t\tconst composedUnique = uniqueConstraints\n\t\t\t\t\t.filter(fields => fields.length === 2) //todo support all uniques\n\t\t\t\t\t.filter(fields => fields.includes(targetRelation.name))\n\t\t\t\t\t.map(fields => fields.filter(it => it !== targetRelation.name))\n\t\t\t\t\t.map(fields => fields[0])\n\t\t\t\tconst singleUnique = uniqueConstraints\n\t\t\t\t\t.filter(fields => fields.length === 1 && fields[0] !== targetEntity.primary)\n\t\t\t\t\t.map(fields => fields[0])\n\t\t\t\t\t.filter(it => it !== targetRelation.name)\n\n\t\t\t\t;[...composedUnique, ...singleUnique].forEach(fieldName => {\n\t\t\t\t\tconst capitalizeFirstLetter = (value: string) => {\n\t\t\t\t\t\treturn value.charAt(0).toUpperCase() + value.slice(1)\n\t\t\t\t\t}\n\t\t\t\t\tconst name = `${relation.name}By${capitalizeFirstLetter(fieldName)}`\n\n\t\t\t\t\tconst targetUnique = targetEntity.fields[fieldName]\n\n\t\t\t\t\tcode += `\\t\\t${name}: { entity: ${targetEntity.name}; by: {${fieldName}: ${uniqueType(model, targetEntity, targetUnique)}} }\\n`\n\n\t\t\t\t})\n\t\t\t},\n\t\t\tvisitColumn: () => {\n\t\t\t},\n\t\t\tvisitManyHasManyInverse: () => {\n\t\t\t},\n\t\t\tvisitManyHasManyOwning: () => {\n\t\t\t},\n\t\t\tvisitManyHasOne: () => {\n\t\t\t},\n\t\t\tvisitOneHasOneInverse: () => {\n\t\t\t},\n\t\t\tvisitOneHasOneOwning: () => {\n\t\t\t},\n\t\t})\n\t\treturn code\n\t}\n\n\tprivate formatUniqueFields(model: Model.Schema, entity: Model.Entity): string {\n\t\tconst fields = getFieldsForUniqueWhere(model, entity)\n\t\tlet code = ''\n\t\tfor (const field of fields) {\n\t\t\tcode += '\\t\\t| { '\n\t\t\tcode += field.map(it => `${it}: ${uniqueType(model, entity, entity.fields[it])}`).join(', ')\n\t\t\tcode += ' }\\n'\n\t\t}\n\t\treturn code\n\t}\n}\n\n\nconst uniqueType = (model: Model.Schema, entity: Model.Entity, field: Model.AnyField): string => {\n\treturn acceptFieldVisitor(model, entity, field, {\n\t\tvisitColumn: ctx => {\n\t\t\treturn columnToTsType(ctx.column)\n\t\t},\n\t\tvisitRelation: ctx => {\n\t\t\treturn ctx.targetEntity.name + `['unique']`\n\t\t},\n\t})\n}\n\n\nconst columnToTsType = (column: Model.AnyColumn): string => {\n\tswitch (column.type) {\n\t\tcase Model.ColumnType.Enum:\n\t\t\treturn column.columnType\n\t\tcase Model.ColumnType.String:\n\t\t\treturn 'string'\n\t\tcase Model.ColumnType.Int:\n\t\t\treturn 'number'\n\t\tcase Model.ColumnType.Double:\n\t\t\treturn 'number'\n\t\tcase Model.ColumnType.Bool:\n\t\t\treturn 'boolean'\n\t\tcase Model.ColumnType.DateTime:\n\t\t\treturn 'string'\n\t\tcase Model.ColumnType.Date:\n\t\t\treturn 'string'\n\t\tcase Model.ColumnType.Json:\n\t\t\treturn 'JSONValue'\n\t\tcase Model.ColumnType.Uuid:\n\t\t\treturn 'string'\n\t\tdefault:\n\t\t\t((_: never) => {\n\t\t\t\tthrow new Error(`Unknown type ${_}`)\n\t\t\t})(column.type)\n\t}\n}\n\nconst getFieldsForUniqueWhere = (schema: Model.Schema, entity: Model.Entity): readonly (readonly string[])[] => {\n\tconst relations = Object.values(\n\t\tacceptEveryFieldVisitor<undefined | [string]>(schema, entity, {\n\t\t\tvisitColumn: () => undefined,\n\t\t\tvisitManyHasManyInverse: () => undefined,\n\t\t\tvisitManyHasManyOwning: () => undefined,\n\t\t\tvisitOneHasMany: ({ relation }) => [relation.name],\n\t\t\tvisitManyHasOne: () => undefined,\n\t\t\tvisitOneHasOneInverse: ({ relation }) => [relation.name],\n\t\t\tvisitOneHasOneOwning: ({ relation }) => [relation.name],\n\t\t}),\n\t).filter((it): it is [string] => !!it)\n\n\treturn [[entity.primary], ...Object.values(entity.unique).map(it => it.fields), ...relations]\n}\n"],"names":["acceptEveryFieldVisitor","entity","acceptFieldVisitor","Model","schema"],"mappings":"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"}
1
+ {"version":3,"file":"EntityTypeSchemaGenerator.cjs","sources":["../../src/EntityTypeSchemaGenerator.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { acceptEveryFieldVisitor, acceptFieldVisitor } from '@contember/schema-utils'\n\nexport class EntityTypeSchemaGenerator {\n\tgenerate(model: Model.Schema): string {\n\t\tlet code = ''\n\t\tfor (const enumName of Object.keys(model.enums)) {\n\t\t\tcode += `import type { ${enumName} } from './enums'\\n`\n\t\t}\n\n\t\tcode += `\nexport type JSONPrimitive = string | number | boolean | null\nexport type JSONValue = JSONPrimitive | JSONObject | JSONArray\nexport type JSONObject = { readonly [K in string]?: JSONValue }\nexport type JSONArray = readonly JSONValue[]\n\n`\n\n\t\tfor (const entity of Object.values(model.entities)) {\n\t\t\tcode += this.generateTypeEntityCode(model, entity)\n\t\t}\n\t\tcode += '\\n'\n\t\tcode += `export type ContemberClientEntities = {\\n`\n\t\tfor (const entity of Object.values(model.entities)) {\n\t\t\tcode += `\\t${entity.name}: ${entity.name}\\n`\n\t\t}\n\t\tcode += '}\\n\\n'\n\t\tcode += `export type ContemberClientSchema = {\\n`\n\t\tcode += '\\tentities: ContemberClientEntities\\n'\n\t\tcode += '}\\n'\n\t\treturn code\n\t}\n\n\tprivate generateTypeEntityCode(model: Model.Schema, entity: Model.Entity): string {\n\t\tlet code = `export type ${entity.name} = {\\n`\n\t\tcode += '\\tname: \\'' + entity.name + '\\'\\n'\n\t\tcode += '\\tunique:\\n'\n\t\tcode += this.formatUniqueFields(model, entity)\n\t\tlet columnsCode = ''\n\t\tlet hasOneCode = ''\n\t\tlet hasManyCode = ''\n\t\tacceptEveryFieldVisitor(model, entity, {\n\t\t\tvisitHasMany: ctx => {\n\t\t\t\thasManyCode += `\\t\\t${ctx.relation.name}: ${ctx.targetEntity.name}\\n`\n\t\t\t},\n\t\t\tvisitHasOne: ctx => {\n\t\t\t\thasOneCode += `\\t\\t${ctx.relation.name}: ${ctx.targetEntity.name}\\n`\n\t\t\t},\n\t\t\tvisitColumn: ctx => {\n\t\t\t\tcolumnsCode += `\\t\\t${ctx.column.name}: ${columnToTsType(ctx.column)}${ctx.column.nullable ? ` | null` : ''}\\n`\n\t\t\t},\n\t\t})\n\n\t\tcode += '\\tcolumns: {\\n'\n\t\tcode += columnsCode\n\t\tcode += '\\t}\\n'\n\t\tcode += '\\thasOne: {\\n'\n\t\tcode += hasOneCode\n\t\tcode += '\\t}\\n'\n\t\tcode += '\\thasMany: {\\n'\n\t\tcode += hasManyCode\n\t\tcode += '\\t}\\n'\n\t\tcode += '\\thasManyBy: {\\n'\n\t\tcode += this.formatReducedFields(model, entity)\n\t\tcode += '\\t}\\n'\n\t\tcode += '}\\n'\n\t\treturn code\n\t}\n\n\tprivate formatReducedFields(model: Model.Schema, entity: Model.Entity): string {\n\t\tlet code = ''\n\t\tacceptEveryFieldVisitor(model, entity, {\n\t\t\tvisitOneHasMany: ({ entity, relation, targetEntity, targetRelation }) => {\n\t\t\t\tif (!targetRelation) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tconst uniqueConstraints = getFieldsForUniqueWhere(model, targetEntity)\n\t\t\t\tconst composedUnique = uniqueConstraints\n\t\t\t\t\t.filter(fields => fields.length === 2) //todo support all uniques\n\t\t\t\t\t.filter(fields => fields.includes(targetRelation.name))\n\t\t\t\t\t.map(fields => fields.filter(it => it !== targetRelation.name))\n\t\t\t\t\t.map(fields => fields[0])\n\t\t\t\tconst singleUnique = uniqueConstraints\n\t\t\t\t\t.filter(fields => fields.length === 1 && fields[0] !== targetEntity.primary)\n\t\t\t\t\t.map(fields => fields[0])\n\t\t\t\t\t.filter(it => it !== targetRelation.name)\n\n\t\t\t\t;[...composedUnique, ...singleUnique].forEach(fieldName => {\n\t\t\t\t\tconst capitalizeFirstLetter = (value: string) => {\n\t\t\t\t\t\treturn value.charAt(0).toUpperCase() + value.slice(1)\n\t\t\t\t\t}\n\t\t\t\t\tconst name = `${relation.name}By${capitalizeFirstLetter(fieldName)}`\n\n\t\t\t\t\tconst targetUnique = targetEntity.fields[fieldName]\n\n\t\t\t\t\tcode += `\\t\\t${name}: { entity: ${targetEntity.name}; by: {${fieldName}: ${uniqueType(model, targetEntity, targetUnique)}} }\\n`\n\n\t\t\t\t})\n\t\t\t},\n\t\t\tvisitColumn: () => {\n\t\t\t},\n\t\t\tvisitManyHasManyInverse: () => {\n\t\t\t},\n\t\t\tvisitManyHasManyOwning: () => {\n\t\t\t},\n\t\t\tvisitManyHasOne: () => {\n\t\t\t},\n\t\t\tvisitOneHasOneInverse: () => {\n\t\t\t},\n\t\t\tvisitOneHasOneOwning: () => {\n\t\t\t},\n\t\t})\n\t\treturn code\n\t}\n\n\tprivate formatUniqueFields(model: Model.Schema, entity: Model.Entity): string {\n\t\tconst fields = getFieldsForUniqueWhere(model, entity)\n\t\tlet code = ''\n\t\tfor (const field of fields) {\n\t\t\tcode += '\\t\\t| { '\n\t\t\tcode += field.map(it => `${it}: ${uniqueType(model, entity, entity.fields[it])}`).join(', ')\n\t\t\tcode += ' }\\n'\n\t\t}\n\t\treturn code\n\t}\n}\n\n\nconst uniqueType = (model: Model.Schema, entity: Model.Entity, field: Model.AnyField): string => {\n\treturn acceptFieldVisitor(model, entity, field, {\n\t\tvisitColumn: ctx => {\n\t\t\treturn columnToTsType(ctx.column)\n\t\t},\n\t\tvisitRelation: ctx => {\n\t\t\treturn ctx.targetEntity.name + `['unique']`\n\t\t},\n\t})\n}\n\n\nconst columnToTsType = (column: Model.AnyColumn): string => {\n\tswitch (column.type) {\n\t\tcase Model.ColumnType.Enum:\n\t\t\treturn column.columnType\n\t\tcase Model.ColumnType.String:\n\t\t\treturn 'string'\n\t\tcase Model.ColumnType.Int:\n\t\t\treturn 'number'\n\t\tcase Model.ColumnType.Double:\n\t\t\treturn 'number'\n\t\tcase Model.ColumnType.Bool:\n\t\t\treturn 'boolean'\n\t\tcase Model.ColumnType.DateTime:\n\t\t\treturn 'string'\n\t\tcase Model.ColumnType.Date:\n\t\t\treturn 'string'\n\t\tcase Model.ColumnType.Json:\n\t\t\treturn 'JSONValue'\n\t\tcase Model.ColumnType.Uuid:\n\t\t\treturn 'string'\n\t\tdefault:\n\t\t\t((_: never) => {\n\t\t\t\tthrow new Error(`Unknown type ${_}`)\n\t\t\t})(column.type)\n\t}\n}\n\nconst getFieldsForUniqueWhere = (schema: Model.Schema, entity: Model.Entity): readonly (readonly string[])[] => {\n\tconst relations = Object.values(\n\t\tacceptEveryFieldVisitor<undefined | [string]>(schema, entity, {\n\t\t\tvisitColumn: () => undefined,\n\t\t\tvisitManyHasManyInverse: () => undefined,\n\t\t\tvisitManyHasManyOwning: () => undefined,\n\t\t\tvisitOneHasMany: ({ relation }) => [relation.name],\n\t\t\tvisitManyHasOne: () => undefined,\n\t\t\tvisitOneHasOneInverse: ({ relation }) => [relation.name],\n\t\t\tvisitOneHasOneOwning: ({ relation }) => [relation.name],\n\t\t}),\n\t).filter((it): it is [string] => !!it)\n\n\treturn [[entity.primary], ...Object.values(entity.unique).map(it => it.fields), ...relations]\n}\n"],"names":["acceptEveryFieldVisitor","entity","acceptFieldVisitor","Model","schema"],"mappings":";;;;AAGO,MAAM,0BAA0B;AAAA,EACtC,SAAS,OAA6B;AACrC,QAAI,OAAO;AACX,eAAW,YAAY,OAAO,KAAK,MAAM,KAAK,GAAG;AAChD,cAAQ,iBAAiB,QAAQ;AAAA;AAAA,IAClC;AAEQ,YAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQR,eAAW,UAAU,OAAO,OAAO,MAAM,QAAQ,GAAG;AAC3C,cAAA,KAAK,uBAAuB,OAAO,MAAM;AAAA,IAClD;AACQ,YAAA;AACA,YAAA;AAAA;AACR,eAAW,UAAU,OAAO,OAAO,MAAM,QAAQ,GAAG;AACnD,cAAQ,IAAK,OAAO,IAAI,KAAK,OAAO,IAAI;AAAA;AAAA,IACzC;AACQ,YAAA;AACA,YAAA;AAAA;AACA,YAAA;AACA,YAAA;AACD,WAAA;AAAA,EACR;AAAA,EAEQ,uBAAuB,OAAqB,QAA8B;AAC7E,QAAA,OAAO,eAAe,OAAO,IAAI;AAAA;AAC7B,YAAA,aAAe,OAAO,OAAO;AAC7B,YAAA;AACA,YAAA,KAAK,mBAAmB,OAAO,MAAM;AAC7C,QAAI,cAAc;AAClB,QAAI,aAAa;AACjB,QAAI,cAAc;AAClBA,gBAAA,wBAAwB,OAAO,QAAQ;AAAA,MACtC,cAAc,CAAO,QAAA;AACpB,uBAAe,KAAO,IAAI,SAAS,IAAI,KAAK,IAAI,aAAa,IAAI;AAAA;AAAA,MAClE;AAAA,MACA,aAAa,CAAO,QAAA;AACnB,sBAAc,KAAO,IAAI,SAAS,IAAI,KAAK,IAAI,aAAa,IAAI;AAAA;AAAA,MACjE;AAAA,MACA,aAAa,CAAO,QAAA;AACnB,uBAAe,KAAO,IAAI,OAAO,IAAI,KAAK,eAAe,IAAI,MAAM,CAAC,GAAG,IAAI,OAAO,WAAW,YAAY,EAAE;AAAA;AAAA,MAC5G;AAAA,IAAA,CACA;AAEO,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA,KAAK,oBAAoB,OAAO,MAAM;AACtC,YAAA;AACA,YAAA;AACD,WAAA;AAAA,EACR;AAAA,EAEQ,oBAAoB,OAAqB,QAA8B;AAC9E,QAAI,OAAO;AACXA,gBAAA,wBAAwB,OAAO,QAAQ;AAAA,MACtC,iBAAiB,CAAC,EAAE,QAAAC,SAAQ,UAAU,cAAc,qBAAqB;AACxE,YAAI,CAAC,gBAAgB;AACpB;AAAA,QACD;AACM,cAAA,oBAAoB,wBAAwB,OAAO,YAAY;AACrE,cAAM,iBAAiB,kBACrB,OAAO,CAAA,WAAU,OAAO,WAAW,CAAC,EACpC,OAAO,CAAA,WAAU,OAAO,SAAS,eAAe,IAAI,CAAC,EACrD,IAAI,CAAU,WAAA,OAAO,OAAO,CAAA,OAAM,OAAO,eAAe,IAAI,CAAC,EAC7D,IAAI,CAAU,WAAA,OAAO,CAAC,CAAC;AACnB,cAAA,eAAe,kBACnB,OAAO,CAAA,WAAU,OAAO,WAAW,KAAK,OAAO,CAAC,MAAM,aAAa,OAAO,EAC1E,IAAI,CAAU,WAAA,OAAO,CAAC,CAAC,EACvB,OAAO,CAAA,OAAM,OAAO,eAAe,IAAI;AAExC,SAAC,GAAG,gBAAgB,GAAG,YAAY,EAAE,QAAQ,CAAa,cAAA;AACpD,gBAAA,wBAAwB,CAAC,UAAkB;AACzC,mBAAA,MAAM,OAAO,CAAC,EAAE,gBAAgB,MAAM,MAAM,CAAC;AAAA,UAAA;AAErD,gBAAM,OAAO,GAAG,SAAS,IAAI,KAAK,sBAAsB,SAAS,CAAC;AAE5D,gBAAA,eAAe,aAAa,OAAO,SAAS;AAElD,kBAAQ,KAAO,IAAI,eAAe,aAAa,IAAI,UAAU,SAAS,KAAK,WAAW,OAAO,cAAc,YAAY,CAAC;AAAA;AAAA,QAAA,CAExH;AAAA,MACF;AAAA,MACA,aAAa,MAAM;AAAA,MACnB;AAAA,MACA,yBAAyB,MAAM;AAAA,MAC/B;AAAA,MACA,wBAAwB,MAAM;AAAA,MAC9B;AAAA,MACA,iBAAiB,MAAM;AAAA,MACvB;AAAA,MACA,uBAAuB,MAAM;AAAA,MAC7B;AAAA,MACA,sBAAsB,MAAM;AAAA,MAC5B;AAAA,IAAA,CACA;AACM,WAAA;AAAA,EACR;AAAA,EAEQ,mBAAmB,OAAqB,QAA8B;AACvE,UAAA,SAAS,wBAAwB,OAAO,MAAM;AACpD,QAAI,OAAO;AACX,eAAW,SAAS,QAAQ;AACnB,cAAA;AACR,cAAQ,MAAM,IAAI,CAAA,OAAM,GAAG,EAAE,KAAK,WAAW,OAAO,QAAQ,OAAO,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,IAAI;AACnF,cAAA;AAAA,IACT;AACO,WAAA;AAAA,EACR;AACD;AAGA,MAAM,aAAa,CAAC,OAAqB,QAAsB,UAAkC;AACzF,SAAAC,+BAAmB,OAAO,QAAQ,OAAO;AAAA,IAC/C,aAAa,CAAO,QAAA;AACZ,aAAA,eAAe,IAAI,MAAM;AAAA,IACjC;AAAA,IACA,eAAe,CAAO,QAAA;AACd,aAAA,IAAI,aAAa,OAAO;AAAA,IAChC;AAAA,EAAA,CACA;AACF;AAGA,MAAM,iBAAiB,CAAC,WAAoC;AAC3D,UAAQ,OAAO,MAAM;AAAA,IACpB,KAAKC,OAAAA,MAAM,WAAW;AACrB,aAAO,OAAO;AAAA,IACf,KAAKA,OAAAA,MAAM,WAAW;AACd,aAAA;AAAA,IACR,KAAKA,OAAAA,MAAM,WAAW;AACd,aAAA;AAAA,IACR,KAAKA,OAAAA,MAAM,WAAW;AACd,aAAA;AAAA,IACR,KAAKA,OAAAA,MAAM,WAAW;AACd,aAAA;AAAA,IACR,KAAKA,OAAAA,MAAM,WAAW;AACd,aAAA;AAAA,IACR,KAAKA,OAAAA,MAAM,WAAW;AACd,aAAA;AAAA,IACR,KAAKA,OAAAA,MAAM,WAAW;AACd,aAAA;AAAA,IACR,KAAKA,OAAAA,MAAM,WAAW;AACd,aAAA;AAAA,IACR;AACC,OAAC,CAAC,MAAa;AACd,cAAM,IAAI,MAAM,gBAAgB,CAAC,EAAE;AAAA,MAAA,GACjC,OAAO,IAAI;AAAA,EAChB;AACD;AAEA,MAAM,0BAA0B,CAACC,SAAsB,WAAyD;AAC/G,QAAM,YAAY,OAAO;AAAA,IACxBJ,YAAA,wBAA8CI,SAAQ,QAAQ;AAAA,MAC7D,aAAa,MAAM;AAAA,MACnB,yBAAyB,MAAM;AAAA,MAC/B,wBAAwB,MAAM;AAAA,MAC9B,iBAAiB,CAAC,EAAE,SAAe,MAAA,CAAC,SAAS,IAAI;AAAA,MACjD,iBAAiB,MAAM;AAAA,MACvB,uBAAuB,CAAC,EAAE,SAAe,MAAA,CAAC,SAAS,IAAI;AAAA,MACvD,sBAAsB,CAAC,EAAE,SAAe,MAAA,CAAC,SAAS,IAAI;AAAA,IAAA,CACtD;AAAA,IACA,OAAO,CAAC,OAAuB,CAAC,CAAC,EAAE;AAErC,SAAO,CAAC,CAAC,OAAO,OAAO,GAAG,GAAG,OAAO,OAAO,OAAO,MAAM,EAAE,IAAI,CAAA,OAAM,GAAG,MAAM,GAAG,GAAG,SAAS;AAC7F;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityTypeSchemaGenerator.js","sources":["../../src/EntityTypeSchemaGenerator.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { acceptEveryFieldVisitor, acceptFieldVisitor } from '@contember/schema-utils'\n\nexport class EntityTypeSchemaGenerator {\n\tgenerate(model: Model.Schema): string {\n\t\tlet code = ''\n\t\tfor (const enumName of Object.keys(model.enums)) {\n\t\t\tcode += `import type { ${enumName} } from './enums'\\n`\n\t\t}\n\n\t\tcode += `\nexport type JSONPrimitive = string | number | boolean | null\nexport type JSONValue = JSONPrimitive | JSONObject | JSONArray\nexport type JSONObject = { readonly [K in string]?: JSONValue }\nexport type JSONArray = readonly JSONValue[]\n\n`\n\n\t\tfor (const entity of Object.values(model.entities)) {\n\t\t\tcode += this.generateTypeEntityCode(model, entity)\n\t\t}\n\t\tcode += '\\n'\n\t\tcode += `export type ContemberClientEntities = {\\n`\n\t\tfor (const entity of Object.values(model.entities)) {\n\t\t\tcode += `\\t${entity.name}: ${entity.name}\\n`\n\t\t}\n\t\tcode += '}\\n\\n'\n\t\tcode += `export type ContemberClientSchema = {\\n`\n\t\tcode += '\\tentities: ContemberClientEntities\\n'\n\t\tcode += '}\\n'\n\t\treturn code\n\t}\n\n\tprivate generateTypeEntityCode(model: Model.Schema, entity: Model.Entity): string {\n\t\tlet code = `export type ${entity.name} = {\\n`\n\t\tcode += '\\tname: \\'' + entity.name + '\\'\\n'\n\t\tcode += '\\tunique:\\n'\n\t\tcode += this.formatUniqueFields(model, entity)\n\t\tlet columnsCode = ''\n\t\tlet hasOneCode = ''\n\t\tlet hasManyCode = ''\n\t\tacceptEveryFieldVisitor(model, entity, {\n\t\t\tvisitHasMany: ctx => {\n\t\t\t\thasManyCode += `\\t\\t${ctx.relation.name}: ${ctx.targetEntity.name}\\n`\n\t\t\t},\n\t\t\tvisitHasOne: ctx => {\n\t\t\t\thasOneCode += `\\t\\t${ctx.relation.name}: ${ctx.targetEntity.name}\\n`\n\t\t\t},\n\t\t\tvisitColumn: ctx => {\n\t\t\t\tcolumnsCode += `\\t\\t${ctx.column.name}: ${columnToTsType(ctx.column)}${ctx.column.nullable ? ` | null` : ''}\\n`\n\t\t\t},\n\t\t})\n\n\t\tcode += '\\tcolumns: {\\n'\n\t\tcode += columnsCode\n\t\tcode += '\\t}\\n'\n\t\tcode += '\\thasOne: {\\n'\n\t\tcode += hasOneCode\n\t\tcode += '\\t}\\n'\n\t\tcode += '\\thasMany: {\\n'\n\t\tcode += hasManyCode\n\t\tcode += '\\t}\\n'\n\t\tcode += '\\thasManyBy: {\\n'\n\t\tcode += this.formatReducedFields(model, entity)\n\t\tcode += '\\t}\\n'\n\t\tcode += '}\\n'\n\t\treturn code\n\t}\n\n\tprivate formatReducedFields(model: Model.Schema, entity: Model.Entity): string {\n\t\tlet code = ''\n\t\tacceptEveryFieldVisitor(model, entity, {\n\t\t\tvisitOneHasMany: ({ entity, relation, targetEntity, targetRelation }) => {\n\t\t\t\tif (!targetRelation) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tconst uniqueConstraints = getFieldsForUniqueWhere(model, targetEntity)\n\t\t\t\tconst composedUnique = uniqueConstraints\n\t\t\t\t\t.filter(fields => fields.length === 2) //todo support all uniques\n\t\t\t\t\t.filter(fields => fields.includes(targetRelation.name))\n\t\t\t\t\t.map(fields => fields.filter(it => it !== targetRelation.name))\n\t\t\t\t\t.map(fields => fields[0])\n\t\t\t\tconst singleUnique = uniqueConstraints\n\t\t\t\t\t.filter(fields => fields.length === 1 && fields[0] !== targetEntity.primary)\n\t\t\t\t\t.map(fields => fields[0])\n\t\t\t\t\t.filter(it => it !== targetRelation.name)\n\n\t\t\t\t;[...composedUnique, ...singleUnique].forEach(fieldName => {\n\t\t\t\t\tconst capitalizeFirstLetter = (value: string) => {\n\t\t\t\t\t\treturn value.charAt(0).toUpperCase() + value.slice(1)\n\t\t\t\t\t}\n\t\t\t\t\tconst name = `${relation.name}By${capitalizeFirstLetter(fieldName)}`\n\n\t\t\t\t\tconst targetUnique = targetEntity.fields[fieldName]\n\n\t\t\t\t\tcode += `\\t\\t${name}: { entity: ${targetEntity.name}; by: {${fieldName}: ${uniqueType(model, targetEntity, targetUnique)}} }\\n`\n\n\t\t\t\t})\n\t\t\t},\n\t\t\tvisitColumn: () => {\n\t\t\t},\n\t\t\tvisitManyHasManyInverse: () => {\n\t\t\t},\n\t\t\tvisitManyHasManyOwning: () => {\n\t\t\t},\n\t\t\tvisitManyHasOne: () => {\n\t\t\t},\n\t\t\tvisitOneHasOneInverse: () => {\n\t\t\t},\n\t\t\tvisitOneHasOneOwning: () => {\n\t\t\t},\n\t\t})\n\t\treturn code\n\t}\n\n\tprivate formatUniqueFields(model: Model.Schema, entity: Model.Entity): string {\n\t\tconst fields = getFieldsForUniqueWhere(model, entity)\n\t\tlet code = ''\n\t\tfor (const field of fields) {\n\t\t\tcode += '\\t\\t| { '\n\t\t\tcode += field.map(it => `${it}: ${uniqueType(model, entity, entity.fields[it])}`).join(', ')\n\t\t\tcode += ' }\\n'\n\t\t}\n\t\treturn code\n\t}\n}\n\n\nconst uniqueType = (model: Model.Schema, entity: Model.Entity, field: Model.AnyField): string => {\n\treturn acceptFieldVisitor(model, entity, field, {\n\t\tvisitColumn: ctx => {\n\t\t\treturn columnToTsType(ctx.column)\n\t\t},\n\t\tvisitRelation: ctx => {\n\t\t\treturn ctx.targetEntity.name + `['unique']`\n\t\t},\n\t})\n}\n\n\nconst columnToTsType = (column: Model.AnyColumn): string => {\n\tswitch (column.type) {\n\t\tcase Model.ColumnType.Enum:\n\t\t\treturn column.columnType\n\t\tcase Model.ColumnType.String:\n\t\t\treturn 'string'\n\t\tcase Model.ColumnType.Int:\n\t\t\treturn 'number'\n\t\tcase Model.ColumnType.Double:\n\t\t\treturn 'number'\n\t\tcase Model.ColumnType.Bool:\n\t\t\treturn 'boolean'\n\t\tcase Model.ColumnType.DateTime:\n\t\t\treturn 'string'\n\t\tcase Model.ColumnType.Date:\n\t\t\treturn 'string'\n\t\tcase Model.ColumnType.Json:\n\t\t\treturn 'JSONValue'\n\t\tcase Model.ColumnType.Uuid:\n\t\t\treturn 'string'\n\t\tdefault:\n\t\t\t((_: never) => {\n\t\t\t\tthrow new Error(`Unknown type ${_}`)\n\t\t\t})(column.type)\n\t}\n}\n\nconst getFieldsForUniqueWhere = (schema: Model.Schema, entity: Model.Entity): readonly (readonly string[])[] => {\n\tconst relations = Object.values(\n\t\tacceptEveryFieldVisitor<undefined | [string]>(schema, entity, {\n\t\t\tvisitColumn: () => undefined,\n\t\t\tvisitManyHasManyInverse: () => undefined,\n\t\t\tvisitManyHasManyOwning: () => undefined,\n\t\t\tvisitOneHasMany: ({ relation }) => [relation.name],\n\t\t\tvisitManyHasOne: () => undefined,\n\t\t\tvisitOneHasOneInverse: ({ relation }) => [relation.name],\n\t\t\tvisitOneHasOneOwning: ({ relation }) => [relation.name],\n\t\t}),\n\t).filter((it): it is [string] => !!it)\n\n\treturn [[entity.primary], ...Object.values(entity.unique).map(it => it.fields), ...relations]\n}\n"],"names":["entity"],"mappings":"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"}
1
+ {"version":3,"file":"EntityTypeSchemaGenerator.js","sources":["../../src/EntityTypeSchemaGenerator.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { acceptEveryFieldVisitor, acceptFieldVisitor } from '@contember/schema-utils'\n\nexport class EntityTypeSchemaGenerator {\n\tgenerate(model: Model.Schema): string {\n\t\tlet code = ''\n\t\tfor (const enumName of Object.keys(model.enums)) {\n\t\t\tcode += `import type { ${enumName} } from './enums'\\n`\n\t\t}\n\n\t\tcode += `\nexport type JSONPrimitive = string | number | boolean | null\nexport type JSONValue = JSONPrimitive | JSONObject | JSONArray\nexport type JSONObject = { readonly [K in string]?: JSONValue }\nexport type JSONArray = readonly JSONValue[]\n\n`\n\n\t\tfor (const entity of Object.values(model.entities)) {\n\t\t\tcode += this.generateTypeEntityCode(model, entity)\n\t\t}\n\t\tcode += '\\n'\n\t\tcode += `export type ContemberClientEntities = {\\n`\n\t\tfor (const entity of Object.values(model.entities)) {\n\t\t\tcode += `\\t${entity.name}: ${entity.name}\\n`\n\t\t}\n\t\tcode += '}\\n\\n'\n\t\tcode += `export type ContemberClientSchema = {\\n`\n\t\tcode += '\\tentities: ContemberClientEntities\\n'\n\t\tcode += '}\\n'\n\t\treturn code\n\t}\n\n\tprivate generateTypeEntityCode(model: Model.Schema, entity: Model.Entity): string {\n\t\tlet code = `export type ${entity.name} = {\\n`\n\t\tcode += '\\tname: \\'' + entity.name + '\\'\\n'\n\t\tcode += '\\tunique:\\n'\n\t\tcode += this.formatUniqueFields(model, entity)\n\t\tlet columnsCode = ''\n\t\tlet hasOneCode = ''\n\t\tlet hasManyCode = ''\n\t\tacceptEveryFieldVisitor(model, entity, {\n\t\t\tvisitHasMany: ctx => {\n\t\t\t\thasManyCode += `\\t\\t${ctx.relation.name}: ${ctx.targetEntity.name}\\n`\n\t\t\t},\n\t\t\tvisitHasOne: ctx => {\n\t\t\t\thasOneCode += `\\t\\t${ctx.relation.name}: ${ctx.targetEntity.name}\\n`\n\t\t\t},\n\t\t\tvisitColumn: ctx => {\n\t\t\t\tcolumnsCode += `\\t\\t${ctx.column.name}: ${columnToTsType(ctx.column)}${ctx.column.nullable ? ` | null` : ''}\\n`\n\t\t\t},\n\t\t})\n\n\t\tcode += '\\tcolumns: {\\n'\n\t\tcode += columnsCode\n\t\tcode += '\\t}\\n'\n\t\tcode += '\\thasOne: {\\n'\n\t\tcode += hasOneCode\n\t\tcode += '\\t}\\n'\n\t\tcode += '\\thasMany: {\\n'\n\t\tcode += hasManyCode\n\t\tcode += '\\t}\\n'\n\t\tcode += '\\thasManyBy: {\\n'\n\t\tcode += this.formatReducedFields(model, entity)\n\t\tcode += '\\t}\\n'\n\t\tcode += '}\\n'\n\t\treturn code\n\t}\n\n\tprivate formatReducedFields(model: Model.Schema, entity: Model.Entity): string {\n\t\tlet code = ''\n\t\tacceptEveryFieldVisitor(model, entity, {\n\t\t\tvisitOneHasMany: ({ entity, relation, targetEntity, targetRelation }) => {\n\t\t\t\tif (!targetRelation) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tconst uniqueConstraints = getFieldsForUniqueWhere(model, targetEntity)\n\t\t\t\tconst composedUnique = uniqueConstraints\n\t\t\t\t\t.filter(fields => fields.length === 2) //todo support all uniques\n\t\t\t\t\t.filter(fields => fields.includes(targetRelation.name))\n\t\t\t\t\t.map(fields => fields.filter(it => it !== targetRelation.name))\n\t\t\t\t\t.map(fields => fields[0])\n\t\t\t\tconst singleUnique = uniqueConstraints\n\t\t\t\t\t.filter(fields => fields.length === 1 && fields[0] !== targetEntity.primary)\n\t\t\t\t\t.map(fields => fields[0])\n\t\t\t\t\t.filter(it => it !== targetRelation.name)\n\n\t\t\t\t;[...composedUnique, ...singleUnique].forEach(fieldName => {\n\t\t\t\t\tconst capitalizeFirstLetter = (value: string) => {\n\t\t\t\t\t\treturn value.charAt(0).toUpperCase() + value.slice(1)\n\t\t\t\t\t}\n\t\t\t\t\tconst name = `${relation.name}By${capitalizeFirstLetter(fieldName)}`\n\n\t\t\t\t\tconst targetUnique = targetEntity.fields[fieldName]\n\n\t\t\t\t\tcode += `\\t\\t${name}: { entity: ${targetEntity.name}; by: {${fieldName}: ${uniqueType(model, targetEntity, targetUnique)}} }\\n`\n\n\t\t\t\t})\n\t\t\t},\n\t\t\tvisitColumn: () => {\n\t\t\t},\n\t\t\tvisitManyHasManyInverse: () => {\n\t\t\t},\n\t\t\tvisitManyHasManyOwning: () => {\n\t\t\t},\n\t\t\tvisitManyHasOne: () => {\n\t\t\t},\n\t\t\tvisitOneHasOneInverse: () => {\n\t\t\t},\n\t\t\tvisitOneHasOneOwning: () => {\n\t\t\t},\n\t\t})\n\t\treturn code\n\t}\n\n\tprivate formatUniqueFields(model: Model.Schema, entity: Model.Entity): string {\n\t\tconst fields = getFieldsForUniqueWhere(model, entity)\n\t\tlet code = ''\n\t\tfor (const field of fields) {\n\t\t\tcode += '\\t\\t| { '\n\t\t\tcode += field.map(it => `${it}: ${uniqueType(model, entity, entity.fields[it])}`).join(', ')\n\t\t\tcode += ' }\\n'\n\t\t}\n\t\treturn code\n\t}\n}\n\n\nconst uniqueType = (model: Model.Schema, entity: Model.Entity, field: Model.AnyField): string => {\n\treturn acceptFieldVisitor(model, entity, field, {\n\t\tvisitColumn: ctx => {\n\t\t\treturn columnToTsType(ctx.column)\n\t\t},\n\t\tvisitRelation: ctx => {\n\t\t\treturn ctx.targetEntity.name + `['unique']`\n\t\t},\n\t})\n}\n\n\nconst columnToTsType = (column: Model.AnyColumn): string => {\n\tswitch (column.type) {\n\t\tcase Model.ColumnType.Enum:\n\t\t\treturn column.columnType\n\t\tcase Model.ColumnType.String:\n\t\t\treturn 'string'\n\t\tcase Model.ColumnType.Int:\n\t\t\treturn 'number'\n\t\tcase Model.ColumnType.Double:\n\t\t\treturn 'number'\n\t\tcase Model.ColumnType.Bool:\n\t\t\treturn 'boolean'\n\t\tcase Model.ColumnType.DateTime:\n\t\t\treturn 'string'\n\t\tcase Model.ColumnType.Date:\n\t\t\treturn 'string'\n\t\tcase Model.ColumnType.Json:\n\t\t\treturn 'JSONValue'\n\t\tcase Model.ColumnType.Uuid:\n\t\t\treturn 'string'\n\t\tdefault:\n\t\t\t((_: never) => {\n\t\t\t\tthrow new Error(`Unknown type ${_}`)\n\t\t\t})(column.type)\n\t}\n}\n\nconst getFieldsForUniqueWhere = (schema: Model.Schema, entity: Model.Entity): readonly (readonly string[])[] => {\n\tconst relations = Object.values(\n\t\tacceptEveryFieldVisitor<undefined | [string]>(schema, entity, {\n\t\t\tvisitColumn: () => undefined,\n\t\t\tvisitManyHasManyInverse: () => undefined,\n\t\t\tvisitManyHasManyOwning: () => undefined,\n\t\t\tvisitOneHasMany: ({ relation }) => [relation.name],\n\t\t\tvisitManyHasOne: () => undefined,\n\t\t\tvisitOneHasOneInverse: ({ relation }) => [relation.name],\n\t\t\tvisitOneHasOneOwning: ({ relation }) => [relation.name],\n\t\t}),\n\t).filter((it): it is [string] => !!it)\n\n\treturn [[entity.primary], ...Object.values(entity.unique).map(it => it.fields), ...relations]\n}\n"],"names":["entity"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"EnumTypeSchemaGenerator.cjs","sources":["../../src/EnumTypeSchemaGenerator.ts"],"sourcesContent":["import { Model } from '@contember/schema'\n\nexport class EnumTypeSchemaGenerator {\n\tgenerate(model: Model.Schema): string {\n\t\tlet code = ''\n\t\tfor (const [enumName, values] of Object.entries(model.enums)) {\n\t\t\tcode += `export type ${enumName} = ${values.map(it => '\\n\\t | ' + JSON.stringify(it)).join('')}\\n`\n\t\t}\n\n\t\treturn code || 'export {}\\n'\n\t}\n}\n"],"names":[],"mappings":";;AAEO,MAAM,wBAAwB;AAAA,EACpC,SAAS,OAA6B;AACrC,QAAI,OAAO;AACA,eAAA,CAAC,UAAU,MAAM,KAAK,OAAO,QAAQ,MAAM,KAAK,GAAG;AAC7D,cAAQ,eAAe,cAAc,OAAO,IAAI,CAAM,OAAA,WAAY,KAAK,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE;AAAA;AAAA,IAC9F;AAEA,WAAO,QAAQ;AAAA,EAChB;AACD;;"}
1
+ {"version":3,"file":"EnumTypeSchemaGenerator.cjs","sources":["../../src/EnumTypeSchemaGenerator.ts"],"sourcesContent":["import { Model } from '@contember/schema'\n\nexport class EnumTypeSchemaGenerator {\n\tgenerate(model: Model.Schema): string {\n\t\tlet code = ''\n\t\tfor (const [enumName, values] of Object.entries(model.enums)) {\n\t\t\tcode += `export type ${enumName} = ${values.map(it => '\\n\\t | ' + JSON.stringify(it)).join('')}\\n`\n\t\t}\n\n\t\treturn code || 'export {}\\n'\n\t}\n}\n"],"names":[],"mappings":";;AAEO,MAAM,wBAAwB;AAAA,EACpC,SAAS,OAA6B;AACrC,QAAI,OAAO;AACA,eAAA,CAAC,UAAU,MAAM,KAAK,OAAO,QAAQ,MAAM,KAAK,GAAG;AAC7D,cAAQ,eAAe,QAAQ,MAAM,OAAO,IAAI,CAAM,OAAA,WAAY,KAAK,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;AAAA;AAAA,IAC/F;AAEA,WAAO,QAAQ;AAAA,EAChB;AACD;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"EnumTypeSchemaGenerator.js","sources":["../../src/EnumTypeSchemaGenerator.ts"],"sourcesContent":["import { Model } from '@contember/schema'\n\nexport class EnumTypeSchemaGenerator {\n\tgenerate(model: Model.Schema): string {\n\t\tlet code = ''\n\t\tfor (const [enumName, values] of Object.entries(model.enums)) {\n\t\t\tcode += `export type ${enumName} = ${values.map(it => '\\n\\t | ' + JSON.stringify(it)).join('')}\\n`\n\t\t}\n\n\t\treturn code || 'export {}\\n'\n\t}\n}\n"],"names":[],"mappings":"AAEO,MAAM,wBAAwB;AAAA,EACpC,SAAS,OAA6B;AACrC,QAAI,OAAO;AACA,eAAA,CAAC,UAAU,MAAM,KAAK,OAAO,QAAQ,MAAM,KAAK,GAAG;AAC7D,cAAQ,eAAe,cAAc,OAAO,IAAI,CAAM,OAAA,WAAY,KAAK,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE;AAAA;AAAA,IAC9F;AAEA,WAAO,QAAQ;AAAA,EAChB;AACD;"}
1
+ {"version":3,"file":"EnumTypeSchemaGenerator.js","sources":["../../src/EnumTypeSchemaGenerator.ts"],"sourcesContent":["import { Model } from '@contember/schema'\n\nexport class EnumTypeSchemaGenerator {\n\tgenerate(model: Model.Schema): string {\n\t\tlet code = ''\n\t\tfor (const [enumName, values] of Object.entries(model.enums)) {\n\t\t\tcode += `export type ${enumName} = ${values.map(it => '\\n\\t | ' + JSON.stringify(it)).join('')}\\n`\n\t\t}\n\n\t\treturn code || 'export {}\\n'\n\t}\n}\n"],"names":[],"mappings":"AAEO,MAAM,wBAAwB;AAAA,EACpC,SAAS,OAA6B;AACrC,QAAI,OAAO;AACA,eAAA,CAAC,UAAU,MAAM,KAAK,OAAO,QAAQ,MAAM,KAAK,GAAG;AAC7D,cAAQ,eAAe,QAAQ,MAAM,OAAO,IAAI,CAAM,OAAA,WAAY,KAAK,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;AAAA;AAAA,IAC/F;AAEA,WAAO,QAAQ;AAAA,EAChB;AACD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityTypeSchemaGenerator.cjs","sources":["../../src/EntityTypeSchemaGenerator.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { acceptEveryFieldVisitor, acceptFieldVisitor } from '@contember/schema-utils'\n\nexport class EntityTypeSchemaGenerator {\n\tgenerate(model: Model.Schema): string {\n\t\tlet code = ''\n\t\tfor (const enumName of Object.keys(model.enums)) {\n\t\t\tcode += `import type { ${enumName} } from './enums'\\n`\n\t\t}\n\n\t\tcode += `\nexport type JSONPrimitive = string | number | boolean | null\nexport type JSONValue = JSONPrimitive | JSONObject | JSONArray\nexport type JSONObject = { readonly [K in string]?: JSONValue }\nexport type JSONArray = readonly JSONValue[]\n\n`\n\n\t\tfor (const entity of Object.values(model.entities)) {\n\t\t\tcode += this.generateTypeEntityCode(model, entity)\n\t\t}\n\t\tcode += '\\n'\n\t\tcode += `export type ContemberClientEntities = {\\n`\n\t\tfor (const entity of Object.values(model.entities)) {\n\t\t\tcode += `\\t${entity.name}: ${entity.name}\\n`\n\t\t}\n\t\tcode += '}\\n\\n'\n\t\tcode += `export type ContemberClientSchema = {\\n`\n\t\tcode += '\\tentities: ContemberClientEntities\\n'\n\t\tcode += '}\\n'\n\t\treturn code\n\t}\n\n\tprivate generateTypeEntityCode(model: Model.Schema, entity: Model.Entity): string {\n\t\tlet code = `export type ${entity.name} = {\\n`\n\t\tcode += '\\tname: \\'' + entity.name + '\\'\\n'\n\t\tcode += '\\tunique:\\n'\n\t\tcode += this.formatUniqueFields(model, entity)\n\t\tlet columnsCode = ''\n\t\tlet hasOneCode = ''\n\t\tlet hasManyCode = ''\n\t\tacceptEveryFieldVisitor(model, entity, {\n\t\t\tvisitHasMany: ctx => {\n\t\t\t\thasManyCode += `\\t\\t${ctx.relation.name}: ${ctx.targetEntity.name}\\n`\n\t\t\t},\n\t\t\tvisitHasOne: ctx => {\n\t\t\t\thasOneCode += `\\t\\t${ctx.relation.name}: ${ctx.targetEntity.name}\\n`\n\t\t\t},\n\t\t\tvisitColumn: ctx => {\n\t\t\t\tcolumnsCode += `\\t\\t${ctx.column.name}: ${columnToTsType(ctx.column)}${ctx.column.nullable ? ` | null` : ''}\\n`\n\t\t\t},\n\t\t})\n\n\t\tcode += '\\tcolumns: {\\n'\n\t\tcode += columnsCode\n\t\tcode += '\\t}\\n'\n\t\tcode += '\\thasOne: {\\n'\n\t\tcode += hasOneCode\n\t\tcode += '\\t}\\n'\n\t\tcode += '\\thasMany: {\\n'\n\t\tcode += hasManyCode\n\t\tcode += '\\t}\\n'\n\t\tcode += '\\thasManyBy: {\\n'\n\t\tcode += this.formatReducedFields(model, entity)\n\t\tcode += '\\t}\\n'\n\t\tcode += '}\\n'\n\t\treturn code\n\t}\n\n\tprivate formatReducedFields(model: Model.Schema, entity: Model.Entity): string {\n\t\tlet code = ''\n\t\tacceptEveryFieldVisitor(model, entity, {\n\t\t\tvisitOneHasMany: ({ entity, relation, targetEntity, targetRelation }) => {\n\t\t\t\tif (!targetRelation) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tconst uniqueConstraints = getFieldsForUniqueWhere(model, targetEntity)\n\t\t\t\tconst composedUnique = uniqueConstraints\n\t\t\t\t\t.filter(fields => fields.length === 2) //todo support all uniques\n\t\t\t\t\t.filter(fields => fields.includes(targetRelation.name))\n\t\t\t\t\t.map(fields => fields.filter(it => it !== targetRelation.name))\n\t\t\t\t\t.map(fields => fields[0])\n\t\t\t\tconst singleUnique = uniqueConstraints\n\t\t\t\t\t.filter(fields => fields.length === 1 && fields[0] !== targetEntity.primary)\n\t\t\t\t\t.map(fields => fields[0])\n\t\t\t\t\t.filter(it => it !== targetRelation.name)\n\n\t\t\t\t;[...composedUnique, ...singleUnique].forEach(fieldName => {\n\t\t\t\t\tconst capitalizeFirstLetter = (value: string) => {\n\t\t\t\t\t\treturn value.charAt(0).toUpperCase() + value.slice(1)\n\t\t\t\t\t}\n\t\t\t\t\tconst name = `${relation.name}By${capitalizeFirstLetter(fieldName)}`\n\n\t\t\t\t\tconst targetUnique = targetEntity.fields[fieldName]\n\n\t\t\t\t\tcode += `\\t\\t${name}: { entity: ${targetEntity.name}; by: {${fieldName}: ${uniqueType(model, targetEntity, targetUnique)}} }\\n`\n\n\t\t\t\t})\n\t\t\t},\n\t\t\tvisitColumn: () => {\n\t\t\t},\n\t\t\tvisitManyHasManyInverse: () => {\n\t\t\t},\n\t\t\tvisitManyHasManyOwning: () => {\n\t\t\t},\n\t\t\tvisitManyHasOne: () => {\n\t\t\t},\n\t\t\tvisitOneHasOneInverse: () => {\n\t\t\t},\n\t\t\tvisitOneHasOneOwning: () => {\n\t\t\t},\n\t\t})\n\t\treturn code\n\t}\n\n\tprivate formatUniqueFields(model: Model.Schema, entity: Model.Entity): string {\n\t\tconst fields = getFieldsForUniqueWhere(model, entity)\n\t\tlet code = ''\n\t\tfor (const field of fields) {\n\t\t\tcode += '\\t\\t| { '\n\t\t\tcode += field.map(it => `${it}: ${uniqueType(model, entity, entity.fields[it])}`).join(', ')\n\t\t\tcode += ' }\\n'\n\t\t}\n\t\treturn code\n\t}\n}\n\n\nconst uniqueType = (model: Model.Schema, entity: Model.Entity, field: Model.AnyField): string => {\n\treturn acceptFieldVisitor(model, entity, field, {\n\t\tvisitColumn: ctx => {\n\t\t\treturn columnToTsType(ctx.column)\n\t\t},\n\t\tvisitRelation: ctx => {\n\t\t\treturn ctx.targetEntity.name + `['unique']`\n\t\t},\n\t})\n}\n\n\nconst columnToTsType = (column: Model.AnyColumn): string => {\n\tswitch (column.type) {\n\t\tcase Model.ColumnType.Enum:\n\t\t\treturn column.columnType\n\t\tcase Model.ColumnType.String:\n\t\t\treturn 'string'\n\t\tcase Model.ColumnType.Int:\n\t\t\treturn 'number'\n\t\tcase Model.ColumnType.Double:\n\t\t\treturn 'number'\n\t\tcase Model.ColumnType.Bool:\n\t\t\treturn 'boolean'\n\t\tcase Model.ColumnType.DateTime:\n\t\t\treturn 'string'\n\t\tcase Model.ColumnType.Date:\n\t\t\treturn 'string'\n\t\tcase Model.ColumnType.Json:\n\t\t\treturn 'JSONValue'\n\t\tcase Model.ColumnType.Uuid:\n\t\t\treturn 'string'\n\t\tdefault:\n\t\t\t((_: never) => {\n\t\t\t\tthrow new Error(`Unknown type ${_}`)\n\t\t\t})(column.type)\n\t}\n}\n\nconst getFieldsForUniqueWhere = (schema: Model.Schema, entity: Model.Entity): readonly (readonly string[])[] => {\n\tconst relations = Object.values(\n\t\tacceptEveryFieldVisitor<undefined | [string]>(schema, entity, {\n\t\t\tvisitColumn: () => undefined,\n\t\t\tvisitManyHasManyInverse: () => undefined,\n\t\t\tvisitManyHasManyOwning: () => undefined,\n\t\t\tvisitOneHasMany: ({ relation }) => [relation.name],\n\t\t\tvisitManyHasOne: () => undefined,\n\t\t\tvisitOneHasOneInverse: ({ relation }) => [relation.name],\n\t\t\tvisitOneHasOneOwning: ({ relation }) => [relation.name],\n\t\t}),\n\t).filter((it): it is [string] => !!it)\n\n\treturn [[entity.primary], ...Object.values(entity.unique).map(it => it.fields), ...relations]\n}\n"],"names":["acceptEveryFieldVisitor","entity","acceptFieldVisitor","Model","schema"],"mappings":"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"}
1
+ {"version":3,"file":"EntityTypeSchemaGenerator.cjs","sources":["../../src/EntityTypeSchemaGenerator.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { acceptEveryFieldVisitor, acceptFieldVisitor } from '@contember/schema-utils'\n\nexport class EntityTypeSchemaGenerator {\n\tgenerate(model: Model.Schema): string {\n\t\tlet code = ''\n\t\tfor (const enumName of Object.keys(model.enums)) {\n\t\t\tcode += `import type { ${enumName} } from './enums'\\n`\n\t\t}\n\n\t\tcode += `\nexport type JSONPrimitive = string | number | boolean | null\nexport type JSONValue = JSONPrimitive | JSONObject | JSONArray\nexport type JSONObject = { readonly [K in string]?: JSONValue }\nexport type JSONArray = readonly JSONValue[]\n\n`\n\n\t\tfor (const entity of Object.values(model.entities)) {\n\t\t\tcode += this.generateTypeEntityCode(model, entity)\n\t\t}\n\t\tcode += '\\n'\n\t\tcode += `export type ContemberClientEntities = {\\n`\n\t\tfor (const entity of Object.values(model.entities)) {\n\t\t\tcode += `\\t${entity.name}: ${entity.name}\\n`\n\t\t}\n\t\tcode += '}\\n\\n'\n\t\tcode += `export type ContemberClientSchema = {\\n`\n\t\tcode += '\\tentities: ContemberClientEntities\\n'\n\t\tcode += '}\\n'\n\t\treturn code\n\t}\n\n\tprivate generateTypeEntityCode(model: Model.Schema, entity: Model.Entity): string {\n\t\tlet code = `export type ${entity.name} = {\\n`\n\t\tcode += '\\tname: \\'' + entity.name + '\\'\\n'\n\t\tcode += '\\tunique:\\n'\n\t\tcode += this.formatUniqueFields(model, entity)\n\t\tlet columnsCode = ''\n\t\tlet hasOneCode = ''\n\t\tlet hasManyCode = ''\n\t\tacceptEveryFieldVisitor(model, entity, {\n\t\t\tvisitHasMany: ctx => {\n\t\t\t\thasManyCode += `\\t\\t${ctx.relation.name}: ${ctx.targetEntity.name}\\n`\n\t\t\t},\n\t\t\tvisitHasOne: ctx => {\n\t\t\t\thasOneCode += `\\t\\t${ctx.relation.name}: ${ctx.targetEntity.name}\\n`\n\t\t\t},\n\t\t\tvisitColumn: ctx => {\n\t\t\t\tcolumnsCode += `\\t\\t${ctx.column.name}: ${columnToTsType(ctx.column)}${ctx.column.nullable ? ` | null` : ''}\\n`\n\t\t\t},\n\t\t})\n\n\t\tcode += '\\tcolumns: {\\n'\n\t\tcode += columnsCode\n\t\tcode += '\\t}\\n'\n\t\tcode += '\\thasOne: {\\n'\n\t\tcode += hasOneCode\n\t\tcode += '\\t}\\n'\n\t\tcode += '\\thasMany: {\\n'\n\t\tcode += hasManyCode\n\t\tcode += '\\t}\\n'\n\t\tcode += '\\thasManyBy: {\\n'\n\t\tcode += this.formatReducedFields(model, entity)\n\t\tcode += '\\t}\\n'\n\t\tcode += '}\\n'\n\t\treturn code\n\t}\n\n\tprivate formatReducedFields(model: Model.Schema, entity: Model.Entity): string {\n\t\tlet code = ''\n\t\tacceptEveryFieldVisitor(model, entity, {\n\t\t\tvisitOneHasMany: ({ entity, relation, targetEntity, targetRelation }) => {\n\t\t\t\tif (!targetRelation) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tconst uniqueConstraints = getFieldsForUniqueWhere(model, targetEntity)\n\t\t\t\tconst composedUnique = uniqueConstraints\n\t\t\t\t\t.filter(fields => fields.length === 2) //todo support all uniques\n\t\t\t\t\t.filter(fields => fields.includes(targetRelation.name))\n\t\t\t\t\t.map(fields => fields.filter(it => it !== targetRelation.name))\n\t\t\t\t\t.map(fields => fields[0])\n\t\t\t\tconst singleUnique = uniqueConstraints\n\t\t\t\t\t.filter(fields => fields.length === 1 && fields[0] !== targetEntity.primary)\n\t\t\t\t\t.map(fields => fields[0])\n\t\t\t\t\t.filter(it => it !== targetRelation.name)\n\n\t\t\t\t;[...composedUnique, ...singleUnique].forEach(fieldName => {\n\t\t\t\t\tconst capitalizeFirstLetter = (value: string) => {\n\t\t\t\t\t\treturn value.charAt(0).toUpperCase() + value.slice(1)\n\t\t\t\t\t}\n\t\t\t\t\tconst name = `${relation.name}By${capitalizeFirstLetter(fieldName)}`\n\n\t\t\t\t\tconst targetUnique = targetEntity.fields[fieldName]\n\n\t\t\t\t\tcode += `\\t\\t${name}: { entity: ${targetEntity.name}; by: {${fieldName}: ${uniqueType(model, targetEntity, targetUnique)}} }\\n`\n\n\t\t\t\t})\n\t\t\t},\n\t\t\tvisitColumn: () => {\n\t\t\t},\n\t\t\tvisitManyHasManyInverse: () => {\n\t\t\t},\n\t\t\tvisitManyHasManyOwning: () => {\n\t\t\t},\n\t\t\tvisitManyHasOne: () => {\n\t\t\t},\n\t\t\tvisitOneHasOneInverse: () => {\n\t\t\t},\n\t\t\tvisitOneHasOneOwning: () => {\n\t\t\t},\n\t\t})\n\t\treturn code\n\t}\n\n\tprivate formatUniqueFields(model: Model.Schema, entity: Model.Entity): string {\n\t\tconst fields = getFieldsForUniqueWhere(model, entity)\n\t\tlet code = ''\n\t\tfor (const field of fields) {\n\t\t\tcode += '\\t\\t| { '\n\t\t\tcode += field.map(it => `${it}: ${uniqueType(model, entity, entity.fields[it])}`).join(', ')\n\t\t\tcode += ' }\\n'\n\t\t}\n\t\treturn code\n\t}\n}\n\n\nconst uniqueType = (model: Model.Schema, entity: Model.Entity, field: Model.AnyField): string => {\n\treturn acceptFieldVisitor(model, entity, field, {\n\t\tvisitColumn: ctx => {\n\t\t\treturn columnToTsType(ctx.column)\n\t\t},\n\t\tvisitRelation: ctx => {\n\t\t\treturn ctx.targetEntity.name + `['unique']`\n\t\t},\n\t})\n}\n\n\nconst columnToTsType = (column: Model.AnyColumn): string => {\n\tswitch (column.type) {\n\t\tcase Model.ColumnType.Enum:\n\t\t\treturn column.columnType\n\t\tcase Model.ColumnType.String:\n\t\t\treturn 'string'\n\t\tcase Model.ColumnType.Int:\n\t\t\treturn 'number'\n\t\tcase Model.ColumnType.Double:\n\t\t\treturn 'number'\n\t\tcase Model.ColumnType.Bool:\n\t\t\treturn 'boolean'\n\t\tcase Model.ColumnType.DateTime:\n\t\t\treturn 'string'\n\t\tcase Model.ColumnType.Date:\n\t\t\treturn 'string'\n\t\tcase Model.ColumnType.Json:\n\t\t\treturn 'JSONValue'\n\t\tcase Model.ColumnType.Uuid:\n\t\t\treturn 'string'\n\t\tdefault:\n\t\t\t((_: never) => {\n\t\t\t\tthrow new Error(`Unknown type ${_}`)\n\t\t\t})(column.type)\n\t}\n}\n\nconst getFieldsForUniqueWhere = (schema: Model.Schema, entity: Model.Entity): readonly (readonly string[])[] => {\n\tconst relations = Object.values(\n\t\tacceptEveryFieldVisitor<undefined | [string]>(schema, entity, {\n\t\t\tvisitColumn: () => undefined,\n\t\t\tvisitManyHasManyInverse: () => undefined,\n\t\t\tvisitManyHasManyOwning: () => undefined,\n\t\t\tvisitOneHasMany: ({ relation }) => [relation.name],\n\t\t\tvisitManyHasOne: () => undefined,\n\t\t\tvisitOneHasOneInverse: ({ relation }) => [relation.name],\n\t\t\tvisitOneHasOneOwning: ({ relation }) => [relation.name],\n\t\t}),\n\t).filter((it): it is [string] => !!it)\n\n\treturn [[entity.primary], ...Object.values(entity.unique).map(it => it.fields), ...relations]\n}\n"],"names":["acceptEveryFieldVisitor","entity","acceptFieldVisitor","Model","schema"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"EntityTypeSchemaGenerator.js","sources":["../../src/EntityTypeSchemaGenerator.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { acceptEveryFieldVisitor, acceptFieldVisitor } from '@contember/schema-utils'\n\nexport class EntityTypeSchemaGenerator {\n\tgenerate(model: Model.Schema): string {\n\t\tlet code = ''\n\t\tfor (const enumName of Object.keys(model.enums)) {\n\t\t\tcode += `import type { ${enumName} } from './enums'\\n`\n\t\t}\n\n\t\tcode += `\nexport type JSONPrimitive = string | number | boolean | null\nexport type JSONValue = JSONPrimitive | JSONObject | JSONArray\nexport type JSONObject = { readonly [K in string]?: JSONValue }\nexport type JSONArray = readonly JSONValue[]\n\n`\n\n\t\tfor (const entity of Object.values(model.entities)) {\n\t\t\tcode += this.generateTypeEntityCode(model, entity)\n\t\t}\n\t\tcode += '\\n'\n\t\tcode += `export type ContemberClientEntities = {\\n`\n\t\tfor (const entity of Object.values(model.entities)) {\n\t\t\tcode += `\\t${entity.name}: ${entity.name}\\n`\n\t\t}\n\t\tcode += '}\\n\\n'\n\t\tcode += `export type ContemberClientSchema = {\\n`\n\t\tcode += '\\tentities: ContemberClientEntities\\n'\n\t\tcode += '}\\n'\n\t\treturn code\n\t}\n\n\tprivate generateTypeEntityCode(model: Model.Schema, entity: Model.Entity): string {\n\t\tlet code = `export type ${entity.name} = {\\n`\n\t\tcode += '\\tname: \\'' + entity.name + '\\'\\n'\n\t\tcode += '\\tunique:\\n'\n\t\tcode += this.formatUniqueFields(model, entity)\n\t\tlet columnsCode = ''\n\t\tlet hasOneCode = ''\n\t\tlet hasManyCode = ''\n\t\tacceptEveryFieldVisitor(model, entity, {\n\t\t\tvisitHasMany: ctx => {\n\t\t\t\thasManyCode += `\\t\\t${ctx.relation.name}: ${ctx.targetEntity.name}\\n`\n\t\t\t},\n\t\t\tvisitHasOne: ctx => {\n\t\t\t\thasOneCode += `\\t\\t${ctx.relation.name}: ${ctx.targetEntity.name}\\n`\n\t\t\t},\n\t\t\tvisitColumn: ctx => {\n\t\t\t\tcolumnsCode += `\\t\\t${ctx.column.name}: ${columnToTsType(ctx.column)}${ctx.column.nullable ? ` | null` : ''}\\n`\n\t\t\t},\n\t\t})\n\n\t\tcode += '\\tcolumns: {\\n'\n\t\tcode += columnsCode\n\t\tcode += '\\t}\\n'\n\t\tcode += '\\thasOne: {\\n'\n\t\tcode += hasOneCode\n\t\tcode += '\\t}\\n'\n\t\tcode += '\\thasMany: {\\n'\n\t\tcode += hasManyCode\n\t\tcode += '\\t}\\n'\n\t\tcode += '\\thasManyBy: {\\n'\n\t\tcode += this.formatReducedFields(model, entity)\n\t\tcode += '\\t}\\n'\n\t\tcode += '}\\n'\n\t\treturn code\n\t}\n\n\tprivate formatReducedFields(model: Model.Schema, entity: Model.Entity): string {\n\t\tlet code = ''\n\t\tacceptEveryFieldVisitor(model, entity, {\n\t\t\tvisitOneHasMany: ({ entity, relation, targetEntity, targetRelation }) => {\n\t\t\t\tif (!targetRelation) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tconst uniqueConstraints = getFieldsForUniqueWhere(model, targetEntity)\n\t\t\t\tconst composedUnique = uniqueConstraints\n\t\t\t\t\t.filter(fields => fields.length === 2) //todo support all uniques\n\t\t\t\t\t.filter(fields => fields.includes(targetRelation.name))\n\t\t\t\t\t.map(fields => fields.filter(it => it !== targetRelation.name))\n\t\t\t\t\t.map(fields => fields[0])\n\t\t\t\tconst singleUnique = uniqueConstraints\n\t\t\t\t\t.filter(fields => fields.length === 1 && fields[0] !== targetEntity.primary)\n\t\t\t\t\t.map(fields => fields[0])\n\t\t\t\t\t.filter(it => it !== targetRelation.name)\n\n\t\t\t\t;[...composedUnique, ...singleUnique].forEach(fieldName => {\n\t\t\t\t\tconst capitalizeFirstLetter = (value: string) => {\n\t\t\t\t\t\treturn value.charAt(0).toUpperCase() + value.slice(1)\n\t\t\t\t\t}\n\t\t\t\t\tconst name = `${relation.name}By${capitalizeFirstLetter(fieldName)}`\n\n\t\t\t\t\tconst targetUnique = targetEntity.fields[fieldName]\n\n\t\t\t\t\tcode += `\\t\\t${name}: { entity: ${targetEntity.name}; by: {${fieldName}: ${uniqueType(model, targetEntity, targetUnique)}} }\\n`\n\n\t\t\t\t})\n\t\t\t},\n\t\t\tvisitColumn: () => {\n\t\t\t},\n\t\t\tvisitManyHasManyInverse: () => {\n\t\t\t},\n\t\t\tvisitManyHasManyOwning: () => {\n\t\t\t},\n\t\t\tvisitManyHasOne: () => {\n\t\t\t},\n\t\t\tvisitOneHasOneInverse: () => {\n\t\t\t},\n\t\t\tvisitOneHasOneOwning: () => {\n\t\t\t},\n\t\t})\n\t\treturn code\n\t}\n\n\tprivate formatUniqueFields(model: Model.Schema, entity: Model.Entity): string {\n\t\tconst fields = getFieldsForUniqueWhere(model, entity)\n\t\tlet code = ''\n\t\tfor (const field of fields) {\n\t\t\tcode += '\\t\\t| { '\n\t\t\tcode += field.map(it => `${it}: ${uniqueType(model, entity, entity.fields[it])}`).join(', ')\n\t\t\tcode += ' }\\n'\n\t\t}\n\t\treturn code\n\t}\n}\n\n\nconst uniqueType = (model: Model.Schema, entity: Model.Entity, field: Model.AnyField): string => {\n\treturn acceptFieldVisitor(model, entity, field, {\n\t\tvisitColumn: ctx => {\n\t\t\treturn columnToTsType(ctx.column)\n\t\t},\n\t\tvisitRelation: ctx => {\n\t\t\treturn ctx.targetEntity.name + `['unique']`\n\t\t},\n\t})\n}\n\n\nconst columnToTsType = (column: Model.AnyColumn): string => {\n\tswitch (column.type) {\n\t\tcase Model.ColumnType.Enum:\n\t\t\treturn column.columnType\n\t\tcase Model.ColumnType.String:\n\t\t\treturn 'string'\n\t\tcase Model.ColumnType.Int:\n\t\t\treturn 'number'\n\t\tcase Model.ColumnType.Double:\n\t\t\treturn 'number'\n\t\tcase Model.ColumnType.Bool:\n\t\t\treturn 'boolean'\n\t\tcase Model.ColumnType.DateTime:\n\t\t\treturn 'string'\n\t\tcase Model.ColumnType.Date:\n\t\t\treturn 'string'\n\t\tcase Model.ColumnType.Json:\n\t\t\treturn 'JSONValue'\n\t\tcase Model.ColumnType.Uuid:\n\t\t\treturn 'string'\n\t\tdefault:\n\t\t\t((_: never) => {\n\t\t\t\tthrow new Error(`Unknown type ${_}`)\n\t\t\t})(column.type)\n\t}\n}\n\nconst getFieldsForUniqueWhere = (schema: Model.Schema, entity: Model.Entity): readonly (readonly string[])[] => {\n\tconst relations = Object.values(\n\t\tacceptEveryFieldVisitor<undefined | [string]>(schema, entity, {\n\t\t\tvisitColumn: () => undefined,\n\t\t\tvisitManyHasManyInverse: () => undefined,\n\t\t\tvisitManyHasManyOwning: () => undefined,\n\t\t\tvisitOneHasMany: ({ relation }) => [relation.name],\n\t\t\tvisitManyHasOne: () => undefined,\n\t\t\tvisitOneHasOneInverse: ({ relation }) => [relation.name],\n\t\t\tvisitOneHasOneOwning: ({ relation }) => [relation.name],\n\t\t}),\n\t).filter((it): it is [string] => !!it)\n\n\treturn [[entity.primary], ...Object.values(entity.unique).map(it => it.fields), ...relations]\n}\n"],"names":["entity"],"mappings":"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"}
1
+ {"version":3,"file":"EntityTypeSchemaGenerator.js","sources":["../../src/EntityTypeSchemaGenerator.ts"],"sourcesContent":["import { Model } from '@contember/schema'\nimport { acceptEveryFieldVisitor, acceptFieldVisitor } from '@contember/schema-utils'\n\nexport class EntityTypeSchemaGenerator {\n\tgenerate(model: Model.Schema): string {\n\t\tlet code = ''\n\t\tfor (const enumName of Object.keys(model.enums)) {\n\t\t\tcode += `import type { ${enumName} } from './enums'\\n`\n\t\t}\n\n\t\tcode += `\nexport type JSONPrimitive = string | number | boolean | null\nexport type JSONValue = JSONPrimitive | JSONObject | JSONArray\nexport type JSONObject = { readonly [K in string]?: JSONValue }\nexport type JSONArray = readonly JSONValue[]\n\n`\n\n\t\tfor (const entity of Object.values(model.entities)) {\n\t\t\tcode += this.generateTypeEntityCode(model, entity)\n\t\t}\n\t\tcode += '\\n'\n\t\tcode += `export type ContemberClientEntities = {\\n`\n\t\tfor (const entity of Object.values(model.entities)) {\n\t\t\tcode += `\\t${entity.name}: ${entity.name}\\n`\n\t\t}\n\t\tcode += '}\\n\\n'\n\t\tcode += `export type ContemberClientSchema = {\\n`\n\t\tcode += '\\tentities: ContemberClientEntities\\n'\n\t\tcode += '}\\n'\n\t\treturn code\n\t}\n\n\tprivate generateTypeEntityCode(model: Model.Schema, entity: Model.Entity): string {\n\t\tlet code = `export type ${entity.name} = {\\n`\n\t\tcode += '\\tname: \\'' + entity.name + '\\'\\n'\n\t\tcode += '\\tunique:\\n'\n\t\tcode += this.formatUniqueFields(model, entity)\n\t\tlet columnsCode = ''\n\t\tlet hasOneCode = ''\n\t\tlet hasManyCode = ''\n\t\tacceptEveryFieldVisitor(model, entity, {\n\t\t\tvisitHasMany: ctx => {\n\t\t\t\thasManyCode += `\\t\\t${ctx.relation.name}: ${ctx.targetEntity.name}\\n`\n\t\t\t},\n\t\t\tvisitHasOne: ctx => {\n\t\t\t\thasOneCode += `\\t\\t${ctx.relation.name}: ${ctx.targetEntity.name}\\n`\n\t\t\t},\n\t\t\tvisitColumn: ctx => {\n\t\t\t\tcolumnsCode += `\\t\\t${ctx.column.name}: ${columnToTsType(ctx.column)}${ctx.column.nullable ? ` | null` : ''}\\n`\n\t\t\t},\n\t\t})\n\n\t\tcode += '\\tcolumns: {\\n'\n\t\tcode += columnsCode\n\t\tcode += '\\t}\\n'\n\t\tcode += '\\thasOne: {\\n'\n\t\tcode += hasOneCode\n\t\tcode += '\\t}\\n'\n\t\tcode += '\\thasMany: {\\n'\n\t\tcode += hasManyCode\n\t\tcode += '\\t}\\n'\n\t\tcode += '\\thasManyBy: {\\n'\n\t\tcode += this.formatReducedFields(model, entity)\n\t\tcode += '\\t}\\n'\n\t\tcode += '}\\n'\n\t\treturn code\n\t}\n\n\tprivate formatReducedFields(model: Model.Schema, entity: Model.Entity): string {\n\t\tlet code = ''\n\t\tacceptEveryFieldVisitor(model, entity, {\n\t\t\tvisitOneHasMany: ({ entity, relation, targetEntity, targetRelation }) => {\n\t\t\t\tif (!targetRelation) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tconst uniqueConstraints = getFieldsForUniqueWhere(model, targetEntity)\n\t\t\t\tconst composedUnique = uniqueConstraints\n\t\t\t\t\t.filter(fields => fields.length === 2) //todo support all uniques\n\t\t\t\t\t.filter(fields => fields.includes(targetRelation.name))\n\t\t\t\t\t.map(fields => fields.filter(it => it !== targetRelation.name))\n\t\t\t\t\t.map(fields => fields[0])\n\t\t\t\tconst singleUnique = uniqueConstraints\n\t\t\t\t\t.filter(fields => fields.length === 1 && fields[0] !== targetEntity.primary)\n\t\t\t\t\t.map(fields => fields[0])\n\t\t\t\t\t.filter(it => it !== targetRelation.name)\n\n\t\t\t\t;[...composedUnique, ...singleUnique].forEach(fieldName => {\n\t\t\t\t\tconst capitalizeFirstLetter = (value: string) => {\n\t\t\t\t\t\treturn value.charAt(0).toUpperCase() + value.slice(1)\n\t\t\t\t\t}\n\t\t\t\t\tconst name = `${relation.name}By${capitalizeFirstLetter(fieldName)}`\n\n\t\t\t\t\tconst targetUnique = targetEntity.fields[fieldName]\n\n\t\t\t\t\tcode += `\\t\\t${name}: { entity: ${targetEntity.name}; by: {${fieldName}: ${uniqueType(model, targetEntity, targetUnique)}} }\\n`\n\n\t\t\t\t})\n\t\t\t},\n\t\t\tvisitColumn: () => {\n\t\t\t},\n\t\t\tvisitManyHasManyInverse: () => {\n\t\t\t},\n\t\t\tvisitManyHasManyOwning: () => {\n\t\t\t},\n\t\t\tvisitManyHasOne: () => {\n\t\t\t},\n\t\t\tvisitOneHasOneInverse: () => {\n\t\t\t},\n\t\t\tvisitOneHasOneOwning: () => {\n\t\t\t},\n\t\t})\n\t\treturn code\n\t}\n\n\tprivate formatUniqueFields(model: Model.Schema, entity: Model.Entity): string {\n\t\tconst fields = getFieldsForUniqueWhere(model, entity)\n\t\tlet code = ''\n\t\tfor (const field of fields) {\n\t\t\tcode += '\\t\\t| { '\n\t\t\tcode += field.map(it => `${it}: ${uniqueType(model, entity, entity.fields[it])}`).join(', ')\n\t\t\tcode += ' }\\n'\n\t\t}\n\t\treturn code\n\t}\n}\n\n\nconst uniqueType = (model: Model.Schema, entity: Model.Entity, field: Model.AnyField): string => {\n\treturn acceptFieldVisitor(model, entity, field, {\n\t\tvisitColumn: ctx => {\n\t\t\treturn columnToTsType(ctx.column)\n\t\t},\n\t\tvisitRelation: ctx => {\n\t\t\treturn ctx.targetEntity.name + `['unique']`\n\t\t},\n\t})\n}\n\n\nconst columnToTsType = (column: Model.AnyColumn): string => {\n\tswitch (column.type) {\n\t\tcase Model.ColumnType.Enum:\n\t\t\treturn column.columnType\n\t\tcase Model.ColumnType.String:\n\t\t\treturn 'string'\n\t\tcase Model.ColumnType.Int:\n\t\t\treturn 'number'\n\t\tcase Model.ColumnType.Double:\n\t\t\treturn 'number'\n\t\tcase Model.ColumnType.Bool:\n\t\t\treturn 'boolean'\n\t\tcase Model.ColumnType.DateTime:\n\t\t\treturn 'string'\n\t\tcase Model.ColumnType.Date:\n\t\t\treturn 'string'\n\t\tcase Model.ColumnType.Json:\n\t\t\treturn 'JSONValue'\n\t\tcase Model.ColumnType.Uuid:\n\t\t\treturn 'string'\n\t\tdefault:\n\t\t\t((_: never) => {\n\t\t\t\tthrow new Error(`Unknown type ${_}`)\n\t\t\t})(column.type)\n\t}\n}\n\nconst getFieldsForUniqueWhere = (schema: Model.Schema, entity: Model.Entity): readonly (readonly string[])[] => {\n\tconst relations = Object.values(\n\t\tacceptEveryFieldVisitor<undefined | [string]>(schema, entity, {\n\t\t\tvisitColumn: () => undefined,\n\t\t\tvisitManyHasManyInverse: () => undefined,\n\t\t\tvisitManyHasManyOwning: () => undefined,\n\t\t\tvisitOneHasMany: ({ relation }) => [relation.name],\n\t\t\tvisitManyHasOne: () => undefined,\n\t\t\tvisitOneHasOneInverse: ({ relation }) => [relation.name],\n\t\t\tvisitOneHasOneOwning: ({ relation }) => [relation.name],\n\t\t}),\n\t).filter((it): it is [string] => !!it)\n\n\treturn [[entity.primary], ...Object.values(entity.unique).map(it => it.fields), ...relations]\n}\n"],"names":["entity"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"EnumTypeSchemaGenerator.cjs","sources":["../../src/EnumTypeSchemaGenerator.ts"],"sourcesContent":["import { Model } from '@contember/schema'\n\nexport class EnumTypeSchemaGenerator {\n\tgenerate(model: Model.Schema): string {\n\t\tlet code = ''\n\t\tfor (const [enumName, values] of Object.entries(model.enums)) {\n\t\t\tcode += `export type ${enumName} = ${values.map(it => '\\n\\t | ' + JSON.stringify(it)).join('')}\\n`\n\t\t}\n\n\t\treturn code || 'export {}\\n'\n\t}\n}\n"],"names":[],"mappings":";;AAEO,MAAM,wBAAwB;AAAA,EACpC,SAAS,OAA6B;AACrC,QAAI,OAAO;AACA,eAAA,CAAC,UAAU,MAAM,KAAK,OAAO,QAAQ,MAAM,KAAK,GAAG;AAC7D,cAAQ,eAAe,cAAc,OAAO,IAAI,CAAM,OAAA,WAAY,KAAK,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE;AAAA;AAAA,IAC9F;AAEA,WAAO,QAAQ;AAAA,EAChB;AACD;;"}
1
+ {"version":3,"file":"EnumTypeSchemaGenerator.cjs","sources":["../../src/EnumTypeSchemaGenerator.ts"],"sourcesContent":["import { Model } from '@contember/schema'\n\nexport class EnumTypeSchemaGenerator {\n\tgenerate(model: Model.Schema): string {\n\t\tlet code = ''\n\t\tfor (const [enumName, values] of Object.entries(model.enums)) {\n\t\t\tcode += `export type ${enumName} = ${values.map(it => '\\n\\t | ' + JSON.stringify(it)).join('')}\\n`\n\t\t}\n\n\t\treturn code || 'export {}\\n'\n\t}\n}\n"],"names":[],"mappings":";;AAEO,MAAM,wBAAwB;AAAA,EACpC,SAAS,OAA6B;AACrC,QAAI,OAAO;AACA,eAAA,CAAC,UAAU,MAAM,KAAK,OAAO,QAAQ,MAAM,KAAK,GAAG;AAC7D,cAAQ,eAAe,QAAQ,MAAM,OAAO,IAAI,CAAM,OAAA,WAAY,KAAK,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;AAAA;AAAA,IAC/F;AAEA,WAAO,QAAQ;AAAA,EAChB;AACD;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"EnumTypeSchemaGenerator.js","sources":["../../src/EnumTypeSchemaGenerator.ts"],"sourcesContent":["import { Model } from '@contember/schema'\n\nexport class EnumTypeSchemaGenerator {\n\tgenerate(model: Model.Schema): string {\n\t\tlet code = ''\n\t\tfor (const [enumName, values] of Object.entries(model.enums)) {\n\t\t\tcode += `export type ${enumName} = ${values.map(it => '\\n\\t | ' + JSON.stringify(it)).join('')}\\n`\n\t\t}\n\n\t\treturn code || 'export {}\\n'\n\t}\n}\n"],"names":[],"mappings":"AAEO,MAAM,wBAAwB;AAAA,EACpC,SAAS,OAA6B;AACrC,QAAI,OAAO;AACA,eAAA,CAAC,UAAU,MAAM,KAAK,OAAO,QAAQ,MAAM,KAAK,GAAG;AAC7D,cAAQ,eAAe,cAAc,OAAO,IAAI,CAAM,OAAA,WAAY,KAAK,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE;AAAA;AAAA,IAC9F;AAEA,WAAO,QAAQ;AAAA,EAChB;AACD;"}
1
+ {"version":3,"file":"EnumTypeSchemaGenerator.js","sources":["../../src/EnumTypeSchemaGenerator.ts"],"sourcesContent":["import { Model } from '@contember/schema'\n\nexport class EnumTypeSchemaGenerator {\n\tgenerate(model: Model.Schema): string {\n\t\tlet code = ''\n\t\tfor (const [enumName, values] of Object.entries(model.enums)) {\n\t\t\tcode += `export type ${enumName} = ${values.map(it => '\\n\\t | ' + JSON.stringify(it)).join('')}\\n`\n\t\t}\n\n\t\treturn code || 'export {}\\n'\n\t}\n}\n"],"names":[],"mappings":"AAEO,MAAM,wBAAwB;AAAA,EACpC,SAAS,OAA6B;AACrC,QAAI,OAAO;AACA,eAAA,CAAC,UAAU,MAAM,KAAK,OAAO,QAAQ,MAAM,KAAK,GAAG;AAC7D,cAAQ,eAAe,QAAQ,MAAM,OAAO,IAAI,CAAM,OAAA,WAAY,KAAK,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;AAAA;AAAA,IAC/F;AAEA,WAAO,QAAQ;AAAA,EAChB;AACD;"}
@@ -1 +1 @@
1
- {"program":{"fileNames":["../../../../node_modules/typescript/lib/lib.es5.d.ts","../../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../../node_modules/typescript/lib/lib.es2023.d.ts","../../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../../node_modules/typescript/lib/lib.dom.d.ts","../../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../../node_modules/@types/react/ts5.0/global.d.ts","../../../../node_modules/@types/react/node_modules/csstype/index.d.ts","../../../../node_modules/@types/prop-types/index.d.ts","../../../../node_modules/@types/scheduler/tracing.d.ts","../../../../node_modules/@types/react/ts5.0/index.d.ts","../../../../node_modules/@types/react/ts5.0/jsx-runtime.d.ts","../../../../node_modules/@contember/schema/dist/src/schema/value.d.ts","../../../../node_modules/@contember/schema/dist/src/schema/input.d.ts","../../../../node_modules/@contember/schema/dist/src/schema/json.d.ts","../../../../node_modules/@contember/schema/dist/src/schema/acl.d.ts","../../../../node_modules/@contember/schema/dist/src/schema/actions.d.ts","../../../../node_modules/@contember/schema/dist/src/schema/model.d.ts","../../../../node_modules/@contember/schema/dist/src/schema/result.d.ts","../../../../node_modules/@contember/schema/dist/src/schema/validation.d.ts","../../../../node_modules/@contember/schema/dist/src/schema/settings.d.ts","../../../../node_modules/@contember/schema/dist/src/ProjectRole.d.ts","../../../../node_modules/@contember/schema/dist/src/index.d.ts","../../src/EnumTypeSchemaGenerator.ts","../../../../node_modules/@contember/typesafe/dist/src/index.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/model/modelUtils.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/model/resolveDefaultColumnType.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/model/NamingConventions.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/model/index.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/definition-generator/TsDefinitionGenerator.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/definition-generator/DefinitionNamingConventions.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/definition-generator/AclDefinitionCodeGenerator.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/definition-generator/DefinitionCodeGenerator.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/definition-generator/index.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/SchemaDatabaseMetadata.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/lax/schema.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/lax/LaxSchemaConverter.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/lax/index.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/acl/AllowAllPermissionFactory.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/acl/PredicateDefinitionProcessor.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/acl/schemaUtils.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/acl/index.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/dataUtils.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/validation/errors.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/validation/AclValidator.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/validation/ModelValidator.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/validation/ValidationValidator.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/validation/SchemaValidator.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/validation/MembershipResolver.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/validation/index.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/schemaNormalizer.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/schemaFilter.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/utils/assertNever.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/utils/isIt.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/utils/deepCompare.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/utils/index.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/index.d.ts","../../src/EntityTypeSchemaGenerator.ts","../../../graphql-client/dist/types/GraphQlClientRequestOptions.d.ts","../../../graphql-client/dist/types/GraphQlClient.d.ts","../../../graphql-client/dist/types/GraphQlClientError.d.ts","../../../graphql-client/dist/types/index.d.ts","../../../client-content/dist/types/types/Schema.d.ts","../../../client-content/dist/types/types/Input.d.ts","../../../client-content/dist/types/types/Result.d.ts","../../../client-content/dist/types/types/index.d.ts","../../../graphql-builder/dist/types/nodes/GraphQlFragmentSpread.d.ts","../../../graphql-builder/dist/types/nodes/GraphQlInlineFragment.d.ts","../../../graphql-builder/dist/types/nodes/GraphQlField.d.ts","../../../graphql-builder/dist/types/nodes/GraphQlFragment.d.ts","../../../graphql-builder/dist/types/nodes/index.d.ts","../../../graphql-builder/dist/types/GraphQlQueryPrinter.d.ts","../../../graphql-builder/dist/types/index.d.ts","../../../client-content/dist/types/nodes/ContentEntitySelection.d.ts","../../../client-content/dist/types/nodes/ContentOperation.d.ts","../../../client-content/dist/types/nodes/TypedEntitySelection.d.ts","../../../client-content/dist/types/nodes/index.d.ts","../../../client-content/dist/types/ContentClient.d.ts","../../../client-content/dist/types/ContentQueryBuilder.d.ts","../../../client-content/dist/types/TypedContentQueryBuilder.d.ts","../../../client-content/dist/types/index.d.ts","../../src/NameSchemaGenerator.ts","../../src/ContemberClientGenerator.ts","../../src/generate.ts","../../src/index.ts","../../../../node_modules/@types/node/assert.d.ts","../../../../node_modules/@types/node/assert/strict.d.ts","../../../../node_modules/buffer/index.d.ts","../../../../node_modules/undici-types/header.d.ts","../../../../node_modules/undici-types/readable.d.ts","../../../../node_modules/undici-types/file.d.ts","../../../../node_modules/undici-types/fetch.d.ts","../../../../node_modules/undici-types/formdata.d.ts","../../../../node_modules/undici-types/connector.d.ts","../../../../node_modules/undici-types/client.d.ts","../../../../node_modules/undici-types/errors.d.ts","../../../../node_modules/undici-types/dispatcher.d.ts","../../../../node_modules/undici-types/global-dispatcher.d.ts","../../../../node_modules/undici-types/global-origin.d.ts","../../../../node_modules/undici-types/pool-stats.d.ts","../../../../node_modules/undici-types/pool.d.ts","../../../../node_modules/undici-types/handlers.d.ts","../../../../node_modules/undici-types/balanced-pool.d.ts","../../../../node_modules/undici-types/agent.d.ts","../../../../node_modules/undici-types/mock-interceptor.d.ts","../../../../node_modules/undici-types/mock-agent.d.ts","../../../../node_modules/undici-types/mock-client.d.ts","../../../../node_modules/undici-types/mock-pool.d.ts","../../../../node_modules/undici-types/mock-errors.d.ts","../../../../node_modules/undici-types/proxy-agent.d.ts","../../../../node_modules/undici-types/api.d.ts","../../../../node_modules/undici-types/cookies.d.ts","../../../../node_modules/undici-types/patch.d.ts","../../../../node_modules/undici-types/filereader.d.ts","../../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../../node_modules/undici-types/websocket.d.ts","../../../../node_modules/undici-types/content-type.d.ts","../../../../node_modules/undici-types/cache.d.ts","../../../../node_modules/undici-types/interceptors.d.ts","../../../../node_modules/undici-types/index.d.ts","../../../../node_modules/@types/node/globals.d.ts","../../../../node_modules/@types/node/async_hooks.d.ts","../../../../node_modules/@types/node/buffer.d.ts","../../../../node_modules/@types/node/child_process.d.ts","../../../../node_modules/@types/node/cluster.d.ts","../../../../node_modules/@types/node/console.d.ts","../../../../node_modules/@types/node/constants.d.ts","../../../../node_modules/@types/node/crypto.d.ts","../../../../node_modules/@types/node/dgram.d.ts","../../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../../node_modules/@types/node/dns.d.ts","../../../../node_modules/@types/node/dns/promises.d.ts","../../../../node_modules/@types/node/domain.d.ts","../../../../node_modules/@types/node/dom-events.d.ts","../../../../node_modules/@types/node/events.d.ts","../../../../node_modules/@types/node/fs.d.ts","../../../../node_modules/@types/node/fs/promises.d.ts","../../../../node_modules/@types/node/http.d.ts","../../../../node_modules/@types/node/http2.d.ts","../../../../node_modules/@types/node/https.d.ts","../../../../node_modules/@types/node/inspector.d.ts","../../../../node_modules/@types/node/module.d.ts","../../../../node_modules/@types/node/net.d.ts","../../../../node_modules/@types/node/os.d.ts","../../../../node_modules/@types/node/path.d.ts","../../../../node_modules/@types/node/perf_hooks.d.ts","../../../../node_modules/@types/node/process.d.ts","../../../../node_modules/@types/node/punycode.d.ts","../../../../node_modules/@types/node/querystring.d.ts","../../../../node_modules/@types/node/readline.d.ts","../../../../node_modules/@types/node/readline/promises.d.ts","../../../../node_modules/@types/node/repl.d.ts","../../../../node_modules/@types/node/stream.d.ts","../../../../node_modules/@types/node/stream/promises.d.ts","../../../../node_modules/@types/node/stream/consumers.d.ts","../../../../node_modules/@types/node/stream/web.d.ts","../../../../node_modules/@types/node/string_decoder.d.ts","../../../../node_modules/@types/node/test.d.ts","../../../../node_modules/@types/node/timers.d.ts","../../../../node_modules/@types/node/timers/promises.d.ts","../../../../node_modules/@types/node/tls.d.ts","../../../../node_modules/@types/node/trace_events.d.ts","../../../../node_modules/@types/node/tty.d.ts","../../../../node_modules/@types/node/url.d.ts","../../../../node_modules/@types/node/util.d.ts","../../../../node_modules/@types/node/v8.d.ts","../../../../node_modules/@types/node/vm.d.ts","../../../../node_modules/@types/node/wasi.d.ts","../../../../node_modules/@types/node/worker_threads.d.ts","../../../../node_modules/@types/node/zlib.d.ts","../../../../node_modules/@types/node/globals.global.d.ts","../../../../node_modules/@types/node/index.d.ts"],"fileInfos":[{"version":"6a6b471e7e43e15ef6f8fe617a22ce4ecb0e34efa6c3dfcfe7cebd392bcca9d2","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","dc48272d7c333ccf58034c0026162576b7d50ea0e69c3b9292f803fc20720fd5","27147504487dc1159369da4f4da8a26406364624fa9bc3db632f7d94a5bae2c3","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","f4e736d6c8d69ae5b3ab0ddfcaa3dc365c3e76909d6660af5b4e979b3934ac20","eeeb3aca31fbadef8b82502484499dfd1757204799a6f5b33116201c810676ec",{"version":"fcd3ecc9f764f06f4d5c467677f4f117f6abf49dee6716283aa204ff1162498b","affectsGlobalScope":true},{"version":"9a60b92bca4c1257db03b349d58e63e4868cfc0d1c8d0ba60c2dbc63f4e6c9f6","affectsGlobalScope":true},{"version":"f296963760430fb65b4e5d91f0ed770a91c6e77455bacf8fa23a1501654ede0e","affectsGlobalScope":true},{"version":"5114a95689b63f96b957e00216bc04baf9e1a1782aa4d8ee7e5e9acbf768e301","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"ab22100fdd0d24cfc2cc59d0a00fc8cf449830d9c4030dc54390a46bd562e929","affectsGlobalScope":true},{"version":"f7bd636ae3a4623c503359ada74510c4005df5b36de7f23e1db8a5c543fd176b","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"0c20f4d2358eb679e4ae8a4432bdd96c857a2960fd6800b21ec4008ec59d60ea","affectsGlobalScope":true},{"version":"36ae84ccc0633f7c0787bc6108386c8b773e95d3b052d9464a99cd9b8795fbec","affectsGlobalScope":true},{"version":"82d0d8e269b9eeac02c3bd1c9e884e85d483fcb2cd168bccd6bc54df663da031","affectsGlobalScope":true},{"version":"b8deab98702588840be73d67f02412a2d45a417a3c097b2e96f7f3a42ac483d1","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"376d554d042fb409cb55b5cbaf0b2b4b7e669619493c5d18d5fa8bd67273f82a","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"c4138a3dd7cd6cf1f363ca0f905554e8d81b45844feea17786cdf1626cb8ea06","affectsGlobalScope":true},{"version":"6ff3e2452b055d8f0ec026511c6582b55d935675af67cdb67dd1dc671e8065df","affectsGlobalScope":true},{"version":"03de17b810f426a2f47396b0b99b53a82c1b60e9cba7a7edda47f9bb077882f4","affectsGlobalScope":true},{"version":"8184c6ddf48f0c98429326b428478ecc6143c27f79b79e85740f17e6feb090f1","affectsGlobalScope":true},{"version":"261c4d2cf86ac5a89ad3fb3fafed74cbb6f2f7c1d139b0540933df567d64a6ca","affectsGlobalScope":true},{"version":"6af1425e9973f4924fca986636ac19a0cf9909a7e0d9d3009c349e6244e957b6","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"15a630d6817718a2ddd7088c4f83e4673fde19fa992d2eae2cf51132a302a5d3","affectsGlobalScope":true},{"version":"b7e9f95a7387e3f66be0ed6db43600c49cec33a3900437ce2fd350d9b7cb16f2","affectsGlobalScope":true},{"version":"01e0ee7e1f661acedb08b51f8a9b7d7f959e9cdb6441360f06522cc3aea1bf2e","affectsGlobalScope":true},{"version":"ac17a97f816d53d9dd79b0d235e1c0ed54a8cc6a0677e9a3d61efb480b2a3e4e","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"9cc66b0513ad41cb5f5372cca86ef83a0d37d1c1017580b7dace3ea5661836df","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"709efdae0cb5df5f49376cde61daacc95cdd44ae4671da13a540da5088bf3f30","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"61ed9b6d07af959e745fb11f9593ecd743b279418cc8a99448ea3cd5f3b3eb22","affectsGlobalScope":true},{"version":"038a2f66a34ee7a9c2fbc3584c8ab43dff2995f8c68e3f566f4c300d2175e31e","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"f5c92f2c27b06c1a41b88f6db8299205aee52c2a2943f7ed29bd585977f254e8","affectsGlobalScope":true},{"version":"b7feb7967c6c6003e11f49efa8f5de989484e0a6ba2e5a6c41b55f8b8bd85dba","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"b9ea5778ff8b50d7c04c9890170db34c26a5358cccba36844fe319f50a43a61a","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"25de46552b782d43cb7284df22fe2a265de387cf0248b747a7a1b647d81861f6","affectsGlobalScope":true},{"version":"307c8b7ebbd7f23a92b73a4c6c0a697beca05b06b036c23a34553e5fe65e4fdc","affectsGlobalScope":true},{"version":"189c0703923150aa30673fa3de411346d727cc44a11c75d05d7cf9ef095daa22","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},{"version":"49a253ec027e56c55c7450a0c331cfe96212b3d1cc215b1710ba94a083404cf3","affectsGlobalScope":true},"1c29793071152b207c01ea1954e343be9a44d85234447b2b236acae9e709a383","6a386ff939f180ae8ef064699d8b7b6e62bc2731a62d7fbf5e02589383838dea","f5a8b384f182b3851cec3596ccc96cb7464f8d3469f48c74bf2befb782a19de5",{"version":"278fe30e638dad09488d130287c728f99f61cb315ed86b70c36040e4311f9cf5","affectsGlobalScope":true},"af7fd2870746deed40e130fc0a3966de74e8f52a97ec114d0fbb35876ab05ca9","3ae62be455efcb1874e7fd1f30f2bb83144757d2f349ceb0c6523bb9f7f7a860","be0f711ade459d8e51739f8544a565bc7d2ea56a9dda7ef6d5edd9d864737276","b1296831e111197bd9ebd73f0d15ad0fe2e11fcc51a6302edb23ffd93794db36","5610e8177b34fa50394973f3faba06fd5268b1264a2f4f7daaa71fee1194a94d","4dc29833bfcaa8597097a99fd486d72a0de9c38bb7a6dcd1dadb70e1b9c17282","9869fe612661e4bb3a63b339b3a0d0cdbb6c9e85dd4a59209c86383179e3fbd9","f42116e2e8ad600dc90bdf8ceade9dcf593c35812d8aaba9c03a3f1dbb87330e","dff2fee737ebe5174f549c9f28e114c0cabac4b5fe4e364654465ba528979ba4","86c9954d4c0c270f2952a8695b90fbf4a58210deae10911be98b6c31b84cc8db","466df547af9cf3861658b08baf3ecbd41c0eaad2101378fadfa54ab24db103e6","66b37de2f4b108cf4467570730a30cac8aa7d9ec94a0e335825c9192c1188094",{"version":"eca5cad3e8e191ea65e1486cdfb95565082734046f86c27323498bf43079438c","signature":"f0b0d83cf814e2d1f3cbe11a382f307774f4527d4c5c97cb37a9d7d96958ac60"},"b4bd6b53c9d607ed4f59eb7d79a763046defa80788c4ad6eb673d16f2199dfcd","de78748abf34d4d974f5fc95c30941f065cd23dbf704c439cf9dfcca5b68afd4","1208b368dc1c1e92d8fcbd3eac3f37dfea25672dc37134cce620455559e4da96","fb76be343c21f4e9dc23ddbb69f7a4a81dab90e9586c303668081dd3b4e30e58","daa9330eda367a2de8034fe1c11a387f25c1fb9c7b1a694facda6114bb22fef0","6c8f26d28cdb6bd0edc2d9d5b7040654b84776e85b2fb2da9ff5d23de67ff17c","bd25f7cb1c87f89392b2e5c6ed6846c4acc016e959783f1bc2d1c529b804492c","dc0b794be4f93caea87286e4f8a1b9bb1c8f2d6b26f35a3ea9f366b0b13478b6","2fa776928692b8d0cf9363ee7fd815b1539f207c91cae851639623e923174ae7","1120c659d2214c93367b3d93336d28a3ab1a45fccecd0ba3599ea99a20295af3","3e11c76fc81fb9414c55542be7681ca763d6f37343f188beaa8ed6aadfe0151d","d0419cdfd43aa71487c9ff6359a2d14d3949148cf6cf914255f9d8259e047d65","9dfd6d6aa56e7f5ab521b038c35b8c42fbf789abe3316cd917cebc5e9117d7e0","9ac8296db617c4ae910ee4b618bb78bb130cdfca956ad8c4502e8d3283381c99","aa03a6771a194845f7d08c94a5927aaf0b67d0c0c4d9ab06167c1d36eda18f2b","2e3f3ef49948c5ddaa9bc1187af0cefb685b8cc529460264548c434de625f5bc","7777d96bf1dd9d4a21853f1db7f8ac76b362f1534a882692c9fc8f7b3850dcab","8da1c5a41069f9cbcae8690056768f4d315ee9e020d3162fd1703013cf8c0325","1c7e479e7b890df91d2d214032f2a68f4478540edc5c3d99d01089a2dd8ff64b","1ab55d65db2bc181e91481b6ce92a2285eda09ccfea566f047c055d2ff0cb03c","d5bb605f28707fe26e7c87836418abc6fba7679cf5ee99a49ecf532c93846bf9","e9124ac92fb22b3e867d40dc8d9c1d9d1502fa69b3611d05ace7258be72f9777","a29fee10a827a80f5c211a21e5513185349ba264ea8b04a382a451982e23b294","5d995618ca866cf7530564278835f281c3fa9712952da777270edf3f438d80a0","3fa52693f21eed67e1bd50be0d25c7055d326580d78ceef9cca0c287e224656e","05ebf96323766ec1a492a055ada17f8e540142335b9467e1f430023c40f4592d","8b9c51e573464bff3b83adf232405f01a87447d1266b1a1a93a02fe3b713b588","8cf3d80aa530218e59750d58f63922099c102514ff34255480cc5ba24099711d","a95c25e1f9146dd90f7cb36c7e306a25a67bdef1eaae7319a60d2f9d3ff66804","0b95dcf0d66f6827416dc96a036abfe5748d96e4f05f91a2f6ee423455a6a178","c51e163a5110087ff0e59381f117d97fd23d275a80aa9c7bb4c7a58f52a3943a","b7f4d30efff05ede0b6358ded8aedefb29802ed4cf6fbd16e3921f9cf76780ae","7e247903f0d259ce44f34601207961982a4a6ef877a8cd04356dcad4c21a7c67",{"version":"cd802f8c2a3218ebf7a068e923c3ce7c3fcfa7b0f774aa1ea2384e7badab412e","signature":"360b9a2f734bdda3c3877cd6e5dd92fae9f3e914cf2c14d935dc8c9cc29ff4ce"},"8c56ed339fb7ea09a933aae91daa038e669730da6b6d422275d0a7e5293b46a7","711255f9dda18a35389ec1e3fa8ebe6e906e67902550afad96b0ac6c5a5de327","4d023a0827a63ad5e6b498f92830d79e40e6fd487ed6b7c6fc2528eb9b3c0937","e17fbde86ef68adc663fff12c63cce11175482b3f108afd90fa3c11754afe6c6","aae8862b104ce076ea1b097bc886c37b33a338efeb9960157f4725fdb5a5862b","1f17acf9613ec0789322f68d2c26f5c3f46a2e82bbe00d3264373ea1ae045ffc","f289c5204b0819632486cefeec845a20a7a9c769180fb6bede63b0d7f24839d2","feaceef383869ce3addd7d620c89fa6ff1d5753f7b451cffb1e926998df2b5e4","34e5c5b2be8aa1b3f75ccd21529ae8b9163f510dbdabae4caae3fec3010cc33b","45fb3525f5c652416e54f91bd8378464d41e22b0ccc108de7db918cf8e92ffd3","e2402a646d4471b0985495b6bfca6c9c731d335195bf206e8c982d8ca362692f","08d34fcbf615950f6d3dd6858437159f0c0af08d5af645ec415ebfeaeacf3bd0","13ce162c8088b92a985e41a2ddf61cbb191101c280214a74dd9e8d2fd3c9c905","d2689735d2498972d6f02fbaff989b1fa500b5a140af7e7c08a15fbc36c1d3d3","4b47e095287cc1351b5fa9c5112d1d2d255bd8916ce76347225837b244e97ed5","f104ff2c22b3c0919c63450b8b77fa227d183a47eed6ef54203ec40678674cb5","06c1e22ce1921cfd383c800f9e191972c5dfaca8996cca54d85c4b4cb41db49d","217866763d14f5c35e7613c29767c4b12debbfe01eec434a79ff7444fadedbbc","6c7327831239ec38e57c18eb15c5b191aa258ada0528de8dc93092efcba20896","3c4de8d194c64b484827151ff14582884166268c345cbb13f9c19e4be3912f54","ea924fbabda99a62bb4cde7f6a01048597027815366db11bff03c08ed576fed8","5e8c7ad4619cc15007aa5bc3f4e1a30cb01540c14beaa609fb8d17d21acaceba","f202558a35a4093e2eb6a5a2aa9f517f883dc3b949a350c9b36906f8c1a3e20a",{"version":"3ba31b0ae95aeb5491f764222294fe55d7599567c149854dbf999db97b5bb7af","signature":"d5efb5060898d1f076715772c3480d4ce727be55e2167fb299bd6556ae70eeae"},{"version":"6eea1cd7302667f74cf05794d56316644f2a94156c43f39ab56940c2ed9ac50c","signature":"64fc8e10187e3facc023e41fafcd45a40b767a607e41270184e0585efe894d81"},{"version":"64e1f5a6a5cfade16c82633c77b44d9598e756132ed72ce104245d69bae178e4","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"675668049a0b4175aa1ad4fd80c751267db0053152755a7fac646eef592c3882","signature":"5cb53013b1adc504c16bed8523675d1efdeab8e7b22cd9a880d1d074cd5357e4"},"3846d0dcf468a1d1a07e6d00eaa37ec542956fb5fe0357590a6407af20d2ff90","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1",{"version":"4d719cfab49ae4045d15cb6bed0f38ad3d7d6eb7f277d2603502a0f862ca3182","affectsGlobalScope":true},"39b1a50d543770780b0409a4caacb87f3ff1d510aedfeb7dc06ed44188256f89",{"version":"b6a4a51bc749ad882c33d98563ff5a94716ca884bfde949a8c97bad530e4ee2c","affectsGlobalScope":true},"16b872cf5432818bdbf405428b4a1d77bb2a7ab908e8bd6609f9a541cea92f81","fe39ceafa361b6d339b518936275eff89a77e7dfe92f2efa5fb97abf9a95ca49",{"version":"4009dd21843fe4a62d1d97b584a2937ca9f045df6fbd65c8b264d8dd04b656fd","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","c9e6ea53a25729dbb5b5bb6960db4387df2f8e88add9cbf36b6ff590481134f9","3e95e6310d49db6d575ac6c2896c02761426aa5aab0b18169f971151c709b770","7eb0662b995994db248290a0f0a1d8ed685991a162ff9eb4dee36f099cccd0d9","bea5c9fc0843a6961411ab4a04df856a8372448bc0d180da0c3a054ff31044b8","715873cecbfcebb49f293f0521bd0955d6298486e2eeb9c7bbf5e9f20a6ed152","c6cf9428f45f3d78b07df7d7aab1569994c177d36549e3a962f952d89f026bc4",{"version":"2c71199d1fc83bf17636ad5bf63a945633406b7b94887612bba4ef027c662b3e","affectsGlobalScope":true},{"version":"6c7b9d2139abd8f2e83ed8fa018c3799ab3187755a6665621feb6e93d3429ac3","affectsGlobalScope":true},"a019c9782ea4e21c83881c780cebce8ad86e3f78122619336eacbd87e47fe674","021ca24be8eb8c46f99b4e03ebf872931f590c9b07b88d715c68bd30495b6c44","5899ab1898582115c432cccef063298f75477bf2cebe5473360043fddd67bcc6","6b97f4106d72ae6b4ebf4e46d2fe90f4d04dd04b3dbff6e294572440a428209d","e3baa0c5780c2c805ec33a999722a2f740b572eb3746fd0a5f93a0a5c3dbf7f6","48fedd2f8549a2ae7e62f30fdb015779c2a7b536760730c5269406cd3d17cab2",{"version":"e492737de7f023b47ff14ca54b9635ba3dcd64816ed3316c9f3a784cf5897173","affectsGlobalScope":true},"c874bfffe38a94b129077eaba4e26575972d545d5d04cd64e90c02d2c029ead6","f5ce35485541e817c2d4105d3eb78e3e538bbb009515ed014694363fa3e94ceb","323506ce173f7f865f42f493885ee3dacd18db6359ea1141d57676d3781ce10c",{"version":"bd88055918cf8bf30ad7c9269177f7ebeafd4c5f0d28919edccd1c1d24f7e73c","affectsGlobalScope":true},{"version":"0900d10c17bae29648b266c0ae7cef0c95ebb2a1d81541b833833ed0996ac85a","affectsGlobalScope":true},"ea3ab3727cd6c222d94003ecafa30e8550c61eadcdabbf59514aee76e86211a5","d3cdd41693c5ed6bec4f1a1c399d9501372b14bd341bc46eedacf2854c5df5a7","2de7a21c92226fb8abbeed7a0a9bd8aa6d37e4c68a8c7ff7938c644267e9fcc1","6d6070c5c81ba0bfe58988c69e3ba3149fc86421fd383f253aeb071cbf29cd41","48dab0d6e633b8052e7eaa0efb0bb3d58a733777b248765eafcb0b0349439834","6e4b2642721462bf62d19593770659f268a6ca1e9fd15543747efb3ac471cee3","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","cdaaf046791d7d588f28f32197c5d6acc43343e62540a67eed194c9c20535fdc","4b1ff655bd8edd879dd4f04f15338ce0109f58ccb424165d44fa07e7ea39c4bf",{"version":"6fa3d3f427475a5d21fed826d6457e7f9ee3a0abeb3124fc41f385f112368d2e","affectsGlobalScope":true},{"version":"300f8e9de0b0c3482be3e749462b6ebc3dab8a316801f1da0def94aed0cd2018","affectsGlobalScope":true},"4e228e78c1e9b0a75c70588d59288f63a6258e8b1fe4a67b0c53fe03461421d9","9dee6f8fc3554cbb111713d2ff809b4e5dfda42b04d1ee647c15abcf9c80dc9b","76a89af04f2ba1807309320dab5169c0d1243b80738b4a2005989e40a136733e","c045b664abf3fc2a4750fa96117ab2735e4ed45ddd571b2a6a91b9917e231a02",{"version":"ca619678b887ae262316673b55bb358c517593d3b6b96c1271972716c699da32","affectsGlobalScope":true},{"version":"40ed27386f21a739bd0d2e2cfed563760588f2aeaa7ad149c1bf1454a7ec743a","affectsGlobalScope":true},"d1ef1d8516286380fd0a6f498f1650d374a8cb5f03d91633b6124e4fb8fb131d","04f1ad42872f8b20c70b54161c4d799aac3020e55bf4553be22fb6851b445389","8bc733ffd630d49d495663bfecf590281c8f5412b33657430ab471b558206705",{"version":"6a4a80787c57c10b3ea8314c80d9cc6e1deb99d20adca16106a337825f582420","affectsGlobalScope":true},"f2b9440f98d6f94c8105883a2b65aee2fce0248f71f41beafd0a80636f3a565d",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"b510d0a18e3db42ac9765d26711083ec1e8b4e21caaca6dc4d25ae6e8623f447"],"root":[79,113,[137,140]],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"experimentalDecorators":true,"jsx":4,"module":99,"noEmitOnError":true,"noImplicitOverride":true,"outDir":"./","skipLibCheck":true,"sourceMap":true,"strict":true,"target":7,"useDefineForClassFields":true},"fileIdsList":[[220],[78,220],[94,95,96,220],[78,86,220],[78,84,86,87,220],[78,84,220],[85,86,87,88,220],[78,80,84,89,90,93,97,98,105,106,107,111,220],[78,84,91,220],[91,92,220],[80,220],[81,82,83,220],[108,109,110,220],[78,99,220],[99,100,101,102,103,104,220],[68,69,70,71,72,73,74,75,76,77,220],[69,70,220],[70,220],[68,220],[69,220],[141,220],[177,220],[178,183,211,220],[179,190,191,198,208,219,220],[179,180,190,198,220],[181,220],[182,183,191,199,220],[183,208,216,220],[184,186,190,198,220],[185,220],[186,187,220],[190,220],[188,190,220],[177,190,220],[190,191,192,208,219,220],[190,191,192,205,208,211,220],[175,220,224],[186,190,193,198,208,219,220],[190,191,193,194,198,208,216,219,220],[193,195,208,216,219,220],[141,142,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226],[190,196,220],[197,219,220,224],[186,190,198,208,220],[199,220],[200,220],[177,201,220],[202,218,220,224],[203,220],[204,220],[190,205,206,220],[205,207,220,222],[178,190,208,209,210,211,220],[178,208,210,220],[208,209,220],[211,220],[212,220],[177,208,220],[190,214,215,220],[214,215,220],[183,198,208,216,220],[217,220],[198,218,220],[178,193,204,219,220],[183,220],[208,220,221],[197,220,222],[220,223],[178,183,190,192,201,208,219,220,222,224],[208,220,225],[62,63,64,65,220],[66,220],[152,156,219,220],[152,208,219,220],[147,220],[149,152,216,219,220],[198,216,220],[220,227],[147,220,227],[149,152,198,219,220],[144,145,148,151,178,190,208,219,220],[144,150,220],[148,152,178,211,219,220,227],[178,220,227],[168,178,220,227],[146,147,220,227],[152,220],[146,147,148,149,150,151,152,153,154,156,157,158,159,160,161,162,163,164,165,166,167,169,170,171,172,173,174,220],[152,159,160,220],[150,152,160,161,220],[151,220],[144,147,152,220],[152,156,160,161,220],[156,220],[150,152,155,219,220],[144,149,150,152,156,159,220],[178,208,220],[147,152,168,178,220,224,227],[67,78,79,113,137,220],[67,78,112,220],[67,78,220],[67,78,112,136,220],[67,138,192,200,220],[67,79,113,137,138,220],[117,132,220],[78,121,132,220],[121,132,134,220],[121,132,133,134,135,220],[78,121,128,220],[128,220],[118,121,220],[129,130,131,220],[78,118,220],[118,119,120,220],[78,126,220],[126,127,220],[78,122,123,220],[124,220],[122,123,124,125,220],[114,220],[114,115,116,220],[78,79,113,137],[78],[78,136],[79,113,137,138]],"referencedMap":[[90,1],[94,2],[95,2],[97,3],[96,2],[98,2],[87,4],[88,5],[86,1],[85,6],[89,7],[112,8],[92,9],[93,10],[91,11],[83,1],[84,12],[81,2],[82,2],[107,2],[106,2],[108,1],[110,1],[111,13],[109,1],[100,14],[104,2],[101,14],[103,14],[102,14],[99,1],[105,15],[77,1],[78,16],[71,17],[72,18],[69,19],[70,1],[73,20],[74,19],[76,1],[75,18],[68,1],[80,1],[141,21],[142,21],[177,22],[178,23],[179,24],[180,25],[181,26],[182,27],[183,28],[184,29],[185,30],[186,31],[187,31],[189,32],[188,33],[190,34],[191,35],[192,36],[176,37],[226,1],[193,38],[194,39],[195,40],[227,41],[196,42],[197,43],[198,44],[199,45],[200,46],[201,47],[202,48],[203,49],[204,50],[205,51],[206,51],[207,52],[208,53],[210,54],[209,55],[211,56],[212,57],[213,58],[214,59],[215,60],[216,61],[217,62],[218,63],[219,64],[220,65],[221,66],[222,67],[223,68],[224,69],[225,70],[64,1],[63,1],[62,1],[66,71],[67,72],[65,1],[143,1],[60,1],[61,1],[12,1],[13,1],[15,1],[14,1],[2,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[22,1],[23,1],[3,1],[4,1],[27,1],[24,1],[25,1],[26,1],[28,1],[29,1],[30,1],[5,1],[31,1],[32,1],[33,1],[34,1],[6,1],[38,1],[35,1],[36,1],[37,1],[39,1],[7,1],[40,1],[45,1],[46,1],[41,1],[42,1],[43,1],[44,1],[8,1],[50,1],[47,1],[48,1],[49,1],[51,1],[9,1],[52,1],[53,1],[54,1],[57,1],[55,1],[56,1],[58,1],[10,1],[1,1],[11,1],[59,1],[159,73],[166,74],[158,73],[173,75],[150,76],[149,77],[172,78],[167,79],[170,80],[152,81],[151,82],[147,83],[146,84],[169,85],[148,86],[153,87],[154,1],[157,87],[144,1],[175,88],[174,87],[161,89],[162,90],[164,91],[160,92],[163,93],[168,78],[155,94],[156,95],[165,96],[145,97],[171,98],[138,99],[113,100],[79,101],[137,102],[139,103],[140,104],[133,105],[134,106],[135,107],[136,108],[129,109],[130,110],[131,111],[132,112],[119,113],[120,2],[118,2],[121,114],[127,115],[128,116],[124,117],[125,118],[122,1],[123,118],[126,119],[115,120],[116,1],[114,1],[117,121]],"exportedModulesMap":[[90,1],[94,2],[95,2],[97,3],[96,2],[98,2],[87,4],[88,5],[86,1],[85,6],[89,7],[112,8],[92,9],[93,10],[91,11],[83,1],[84,12],[81,2],[82,2],[107,2],[106,2],[108,1],[110,1],[111,13],[109,1],[100,14],[104,2],[101,14],[103,14],[102,14],[99,1],[105,15],[77,1],[78,16],[71,17],[72,18],[69,19],[70,1],[73,20],[74,19],[76,1],[75,18],[68,1],[80,1],[141,21],[142,21],[177,22],[178,23],[179,24],[180,25],[181,26],[182,27],[183,28],[184,29],[185,30],[186,31],[187,31],[189,32],[188,33],[190,34],[191,35],[192,36],[176,37],[226,1],[193,38],[194,39],[195,40],[227,41],[196,42],[197,43],[198,44],[199,45],[200,46],[201,47],[202,48],[203,49],[204,50],[205,51],[206,51],[207,52],[208,53],[210,54],[209,55],[211,56],[212,57],[213,58],[214,59],[215,60],[216,61],[217,62],[218,63],[219,64],[220,65],[221,66],[222,67],[223,68],[224,69],[225,70],[64,1],[63,1],[62,1],[66,71],[67,72],[65,1],[143,1],[60,1],[61,1],[12,1],[13,1],[15,1],[14,1],[2,1],[16,1],[17,1],[18,1],[19,1],[20,1],[21,1],[22,1],[23,1],[3,1],[4,1],[27,1],[24,1],[25,1],[26,1],[28,1],[29,1],[30,1],[5,1],[31,1],[32,1],[33,1],[34,1],[6,1],[38,1],[35,1],[36,1],[37,1],[39,1],[7,1],[40,1],[45,1],[46,1],[41,1],[42,1],[43,1],[44,1],[8,1],[50,1],[47,1],[48,1],[49,1],[51,1],[9,1],[52,1],[53,1],[54,1],[57,1],[55,1],[56,1],[58,1],[10,1],[1,1],[11,1],[59,1],[159,73],[166,74],[158,73],[173,75],[150,76],[149,77],[172,78],[167,79],[170,80],[152,81],[151,82],[147,83],[146,84],[169,85],[148,86],[153,87],[154,1],[157,87],[144,1],[175,88],[174,87],[161,89],[162,90],[164,91],[160,92],[163,93],[168,78],[155,94],[156,95],[165,96],[145,97],[171,98],[138,122],[113,123],[79,123],[137,124],[140,125],[133,105],[134,106],[135,107],[136,108],[129,109],[130,110],[131,111],[132,112],[119,113],[120,2],[118,2],[121,114],[127,115],[128,116],[124,117],[125,118],[122,1],[123,118],[126,119],[115,120],[116,1],[114,1],[117,121]],"semanticDiagnosticsPerFile":[90,94,95,97,96,98,87,88,86,85,89,112,92,93,91,83,84,81,82,107,106,108,110,111,109,100,104,101,103,102,99,105,77,78,71,72,69,70,73,74,76,75,68,80,141,142,177,178,179,180,181,182,183,184,185,186,187,189,188,190,191,192,176,226,193,194,195,227,196,197,198,199,200,201,202,203,204,205,206,207,208,210,209,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,64,63,62,66,67,65,143,60,61,12,13,15,14,2,16,17,18,19,20,21,22,23,3,4,27,24,25,26,28,29,30,5,31,32,33,34,6,38,35,36,37,39,7,40,45,46,41,42,43,44,8,50,47,48,49,51,9,52,53,54,57,55,56,58,10,1,11,59,159,166,158,173,150,149,172,167,170,152,151,147,146,169,148,153,154,157,144,175,174,161,162,164,160,163,168,155,156,165,145,171,138,113,79,137,139,140,133,134,135,136,129,130,131,132,119,120,118,121,127,128,124,125,122,123,126,115,116,114,117],"latestChangedDtsFile":"./index.d.ts"},"version":"5.0.4"}
1
+ {"program":{"fileNames":["../../../../node_modules/typescript/lib/lib.es5.d.ts","../../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../../node_modules/typescript/lib/lib.es2022.d.ts","../../../../node_modules/typescript/lib/lib.es2023.d.ts","../../../../node_modules/typescript/lib/lib.esnext.d.ts","../../../../node_modules/typescript/lib/lib.dom.d.ts","../../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../../node_modules/typescript/lib/lib.es2017.date.d.ts","../../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../../../node_modules/typescript/lib/lib.es2023.collection.d.ts","../../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../../../node_modules/typescript/lib/lib.esnext.disposable.d.ts","../../../../node_modules/typescript/lib/lib.esnext.decorators.d.ts","../../../../node_modules/typescript/lib/lib.decorators.d.ts","../../../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","../../../../node_modules/@types/react/global.d.ts","../../../../node_modules/csstype/index.d.ts","../../../../node_modules/@types/prop-types/index.d.ts","../../../../node_modules/@types/scheduler/tracing.d.ts","../../../../node_modules/@types/react/index.d.ts","../../../../node_modules/@types/react/jsx-runtime.d.ts","../../../../node_modules/@contember/schema/dist/src/schema/value.d.ts","../../../../node_modules/@contember/schema/dist/src/schema/input.d.ts","../../../../node_modules/@contember/schema/dist/src/schema/json.d.ts","../../../../node_modules/@contember/schema/dist/src/schema/acl.d.ts","../../../../node_modules/@contember/schema/dist/src/schema/actions.d.ts","../../../../node_modules/@contember/schema/dist/src/schema/model.d.ts","../../../../node_modules/@contember/schema/dist/src/schema/result.d.ts","../../../../node_modules/@contember/schema/dist/src/schema/validation.d.ts","../../../../node_modules/@contember/schema/dist/src/schema/settings.d.ts","../../../../node_modules/@contember/schema/dist/src/ProjectRole.d.ts","../../../../node_modules/@contember/schema/dist/src/index.d.ts","../../src/EnumTypeSchemaGenerator.ts","../../../../node_modules/@contember/typesafe/dist/src/index.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/model/modelUtils.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/model/resolveDefaultColumnType.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/model/NamingConventions.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/model/index.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/definition-generator/TsDefinitionGenerator.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/definition-generator/DefinitionNamingConventions.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/definition-generator/AclDefinitionCodeGenerator.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/definition-generator/DefinitionCodeGenerator.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/definition-generator/index.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/SchemaDatabaseMetadata.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/lax/schema.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/lax/LaxSchemaConverter.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/lax/index.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/acl/AllowAllPermissionFactory.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/acl/PredicateDefinitionProcessor.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/acl/schemaUtils.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/acl/index.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/dataUtils.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/validation/errors.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/validation/AclValidator.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/validation/ModelValidator.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/validation/ValidationValidator.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/validation/SchemaValidator.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/validation/MembershipResolver.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/validation/index.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/schemaNormalizer.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/schemaFilter.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/utils/assertNever.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/utils/isIt.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/utils/deepCompare.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/utils/index.d.ts","../../../../node_modules/@contember/schema-utils/dist/src/index.d.ts","../../src/EntityTypeSchemaGenerator.ts","../../../graphql-client/dist/types/GraphQlClientRequestOptions.d.ts","../../../graphql-client/dist/types/GraphQlClient.d.ts","../../../graphql-client/dist/types/GraphQlClientError.d.ts","../../../graphql-client/dist/types/index.d.ts","../../../client-content/dist/types/types/Schema.d.ts","../../../client-content/dist/types/types/Input.d.ts","../../../client-content/dist/types/types/Result.d.ts","../../../client-content/dist/types/types/index.d.ts","../../../graphql-builder/dist/types/nodes/GraphQlFragmentSpread.d.ts","../../../graphql-builder/dist/types/nodes/GraphQlInlineFragment.d.ts","../../../graphql-builder/dist/types/nodes/GraphQlField.d.ts","../../../graphql-builder/dist/types/nodes/GraphQlFragment.d.ts","../../../graphql-builder/dist/types/nodes/index.d.ts","../../../graphql-builder/dist/types/GraphQlQueryPrinter.d.ts","../../../graphql-builder/dist/types/index.d.ts","../../../client-content/dist/types/nodes/ContentEntitySelection.d.ts","../../../client-content/dist/types/nodes/ContentOperation.d.ts","../../../client-content/dist/types/nodes/TypedEntitySelection.d.ts","../../../client-content/dist/types/nodes/index.d.ts","../../../client-content/dist/types/ContentClient.d.ts","../../../client-content/dist/types/ContentQueryBuilder.d.ts","../../../client-content/dist/types/TypedContentQueryBuilder.d.ts","../../../client-content/dist/types/index.d.ts","../../src/NameSchemaGenerator.ts","../../src/ContemberClientGenerator.ts","../../src/generate.ts","../../src/index.ts","../../../../node_modules/@types/node/assert.d.ts","../../../../node_modules/@types/node/assert/strict.d.ts","../../../../node_modules/buffer/index.d.ts","../../../../node_modules/undici-types/header.d.ts","../../../../node_modules/undici-types/readable.d.ts","../../../../node_modules/undici-types/file.d.ts","../../../../node_modules/undici-types/fetch.d.ts","../../../../node_modules/undici-types/formdata.d.ts","../../../../node_modules/undici-types/connector.d.ts","../../../../node_modules/undici-types/client.d.ts","../../../../node_modules/undici-types/errors.d.ts","../../../../node_modules/undici-types/dispatcher.d.ts","../../../../node_modules/undici-types/global-dispatcher.d.ts","../../../../node_modules/undici-types/global-origin.d.ts","../../../../node_modules/undici-types/pool-stats.d.ts","../../../../node_modules/undici-types/pool.d.ts","../../../../node_modules/undici-types/handlers.d.ts","../../../../node_modules/undici-types/balanced-pool.d.ts","../../../../node_modules/undici-types/agent.d.ts","../../../../node_modules/undici-types/mock-interceptor.d.ts","../../../../node_modules/undici-types/mock-agent.d.ts","../../../../node_modules/undici-types/mock-client.d.ts","../../../../node_modules/undici-types/mock-pool.d.ts","../../../../node_modules/undici-types/mock-errors.d.ts","../../../../node_modules/undici-types/proxy-agent.d.ts","../../../../node_modules/undici-types/api.d.ts","../../../../node_modules/undici-types/cookies.d.ts","../../../../node_modules/undici-types/patch.d.ts","../../../../node_modules/undici-types/filereader.d.ts","../../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../../node_modules/undici-types/websocket.d.ts","../../../../node_modules/undici-types/content-type.d.ts","../../../../node_modules/undici-types/cache.d.ts","../../../../node_modules/undici-types/interceptors.d.ts","../../../../node_modules/undici-types/index.d.ts","../../../../node_modules/@types/node/globals.d.ts","../../../../node_modules/@types/node/async_hooks.d.ts","../../../../node_modules/@types/node/buffer.d.ts","../../../../node_modules/@types/node/child_process.d.ts","../../../../node_modules/@types/node/cluster.d.ts","../../../../node_modules/@types/node/console.d.ts","../../../../node_modules/@types/node/constants.d.ts","../../../../node_modules/@types/node/crypto.d.ts","../../../../node_modules/@types/node/dgram.d.ts","../../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../../node_modules/@types/node/dns.d.ts","../../../../node_modules/@types/node/dns/promises.d.ts","../../../../node_modules/@types/node/domain.d.ts","../../../../node_modules/@types/node/dom-events.d.ts","../../../../node_modules/@types/node/events.d.ts","../../../../node_modules/@types/node/fs.d.ts","../../../../node_modules/@types/node/fs/promises.d.ts","../../../../node_modules/@types/node/http.d.ts","../../../../node_modules/@types/node/http2.d.ts","../../../../node_modules/@types/node/https.d.ts","../../../../node_modules/@types/node/inspector.d.ts","../../../../node_modules/@types/node/module.d.ts","../../../../node_modules/@types/node/net.d.ts","../../../../node_modules/@types/node/os.d.ts","../../../../node_modules/@types/node/path.d.ts","../../../../node_modules/@types/node/perf_hooks.d.ts","../../../../node_modules/@types/node/process.d.ts","../../../../node_modules/@types/node/punycode.d.ts","../../../../node_modules/@types/node/querystring.d.ts","../../../../node_modules/@types/node/readline.d.ts","../../../../node_modules/@types/node/readline/promises.d.ts","../../../../node_modules/@types/node/repl.d.ts","../../../../node_modules/@types/node/stream.d.ts","../../../../node_modules/@types/node/stream/promises.d.ts","../../../../node_modules/@types/node/stream/consumers.d.ts","../../../../node_modules/@types/node/stream/web.d.ts","../../../../node_modules/@types/node/string_decoder.d.ts","../../../../node_modules/@types/node/test.d.ts","../../../../node_modules/@types/node/timers.d.ts","../../../../node_modules/@types/node/timers/promises.d.ts","../../../../node_modules/@types/node/tls.d.ts","../../../../node_modules/@types/node/trace_events.d.ts","../../../../node_modules/@types/node/tty.d.ts","../../../../node_modules/@types/node/url.d.ts","../../../../node_modules/@types/node/util.d.ts","../../../../node_modules/@types/node/v8.d.ts","../../../../node_modules/@types/node/vm.d.ts","../../../../node_modules/@types/node/wasi.d.ts","../../../../node_modules/@types/node/worker_threads.d.ts","../../../../node_modules/@types/node/zlib.d.ts","../../../../node_modules/@types/node/globals.global.d.ts","../../../../node_modules/@types/node/index.d.ts"],"fileInfos":[{"version":"f33e5332b24c3773e930e212cbb8b6867c8ba3ec4492064ea78e55a524d57450","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","26f2f787e82c4222710f3b676b4d83eb5ad0a72fa7b746f03449e7a026ce5073","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","1c0cdb8dc619bc549c3e5020643e7cf7ae7940058e8c7e5aefa5871b6d86f44b","bed7b7ba0eb5a160b69af72814b4dde371968e40b6c5e73d3a9f7bee407d158c",{"version":"21e41a76098aa7a191028256e52a726baafd45a925ea5cf0222eb430c96c1d83","affectsGlobalScope":true},{"version":"35299ae4a62086698444a5aaee27fc7aa377c68cbb90b441c9ace246ffd05c97","affectsGlobalScope":true},{"version":"138fb588d26538783b78d1e3b2c2cc12d55840b97bf5e08bca7f7a174fbe2f17","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"e0275cd0e42990dc3a16f0b7c8bca3efe87f1c8ad404f80c6db1c7c0b828c59f","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"49ed889be54031e1044af0ad2c603d627b8bda8b50c1a68435fe85583901d072","affectsGlobalScope":true},{"version":"e93d098658ce4f0c8a0779e6cab91d0259efb88a318137f686ad76f8410ca270","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"acae90d417bee324b1372813b5a00829d31c7eb670d299cd7f8f9a648ac05688","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"51e547984877a62227042850456de71a5c45e7fe86b7c975c6e68896c86fa23b","affectsGlobalScope":true},{"version":"62a4966981264d1f04c44eb0f4b5bdc3d81c1a54725608861e44755aa24ad6a5","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true},{"version":"86a34c7a13de9cabc43161348f663624b56871ed80986e41d214932ddd8d6719","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"caccc56c72713969e1cfe5c3d44e5bab151544d9d2b373d7dbe5a1e4166652be","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"08a58483392df5fcc1db57d782e87734f77ae9eab42516028acbfe46f29a3ef7","affectsGlobalScope":true},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true},{"version":"13f6e6380c78e15e140243dc4be2fa546c287c6d61f4729bc2dd7cf449605471","affectsGlobalScope":true},{"version":"4350e5922fecd4bedda2964d69c213a1436349d0b8d260dd902795f5b94dc74b","affectsGlobalScope":true},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},{"version":"0bd5e7096c7bc02bf70b2cc017fc45ef489cb19bd2f32a71af39ff5787f1b56a","affectsGlobalScope":true},"8a8eb4ebffd85e589a1cc7c178e291626c359543403d58c9cd22b81fab5b1fb9","6a386ff939f180ae8ef064699d8b7b6e62bc2731a62d7fbf5e02589383838dea","f5a8b384f182b3851cec3596ccc96cb7464f8d3469f48c74bf2befb782a19de5",{"version":"369b91cb44fdb8a8fa15de2bd6c28a7abfe6cc16d483ea42291cc7b1efff88d4","affectsGlobalScope":true},"2879a055439b6c0c0132a1467120a0f85b56b5d735c973ad235acd958b1b5345","3ae62be455efcb1874e7fd1f30f2bb83144757d2f349ceb0c6523bb9f7f7a860","be0f711ade459d8e51739f8544a565bc7d2ea56a9dda7ef6d5edd9d864737276","b1296831e111197bd9ebd73f0d15ad0fe2e11fcc51a6302edb23ffd93794db36","5610e8177b34fa50394973f3faba06fd5268b1264a2f4f7daaa71fee1194a94d","4dc29833bfcaa8597097a99fd486d72a0de9c38bb7a6dcd1dadb70e1b9c17282","9869fe612661e4bb3a63b339b3a0d0cdbb6c9e85dd4a59209c86383179e3fbd9","f42116e2e8ad600dc90bdf8ceade9dcf593c35812d8aaba9c03a3f1dbb87330e","dff2fee737ebe5174f549c9f28e114c0cabac4b5fe4e364654465ba528979ba4","86c9954d4c0c270f2952a8695b90fbf4a58210deae10911be98b6c31b84cc8db","466df547af9cf3861658b08baf3ecbd41c0eaad2101378fadfa54ab24db103e6","66b37de2f4b108cf4467570730a30cac8aa7d9ec94a0e335825c9192c1188094",{"version":"eca5cad3e8e191ea65e1486cdfb95565082734046f86c27323498bf43079438c","signature":"f0b0d83cf814e2d1f3cbe11a382f307774f4527d4c5c97cb37a9d7d96958ac60"},"b4bd6b53c9d607ed4f59eb7d79a763046defa80788c4ad6eb673d16f2199dfcd","de78748abf34d4d974f5fc95c30941f065cd23dbf704c439cf9dfcca5b68afd4","1208b368dc1c1e92d8fcbd3eac3f37dfea25672dc37134cce620455559e4da96","fb76be343c21f4e9dc23ddbb69f7a4a81dab90e9586c303668081dd3b4e30e58","daa9330eda367a2de8034fe1c11a387f25c1fb9c7b1a694facda6114bb22fef0","6c8f26d28cdb6bd0edc2d9d5b7040654b84776e85b2fb2da9ff5d23de67ff17c","bd25f7cb1c87f89392b2e5c6ed6846c4acc016e959783f1bc2d1c529b804492c","dc0b794be4f93caea87286e4f8a1b9bb1c8f2d6b26f35a3ea9f366b0b13478b6","2fa776928692b8d0cf9363ee7fd815b1539f207c91cae851639623e923174ae7","1120c659d2214c93367b3d93336d28a3ab1a45fccecd0ba3599ea99a20295af3","3e11c76fc81fb9414c55542be7681ca763d6f37343f188beaa8ed6aadfe0151d","d0419cdfd43aa71487c9ff6359a2d14d3949148cf6cf914255f9d8259e047d65","9dfd6d6aa56e7f5ab521b038c35b8c42fbf789abe3316cd917cebc5e9117d7e0","9ac8296db617c4ae910ee4b618bb78bb130cdfca956ad8c4502e8d3283381c99","aa03a6771a194845f7d08c94a5927aaf0b67d0c0c4d9ab06167c1d36eda18f2b","2e3f3ef49948c5ddaa9bc1187af0cefb685b8cc529460264548c434de625f5bc","7777d96bf1dd9d4a21853f1db7f8ac76b362f1534a882692c9fc8f7b3850dcab","8da1c5a41069f9cbcae8690056768f4d315ee9e020d3162fd1703013cf8c0325","1c7e479e7b890df91d2d214032f2a68f4478540edc5c3d99d01089a2dd8ff64b","1ab55d65db2bc181e91481b6ce92a2285eda09ccfea566f047c055d2ff0cb03c","d5bb605f28707fe26e7c87836418abc6fba7679cf5ee99a49ecf532c93846bf9","e9124ac92fb22b3e867d40dc8d9c1d9d1502fa69b3611d05ace7258be72f9777","a29fee10a827a80f5c211a21e5513185349ba264ea8b04a382a451982e23b294","5d995618ca866cf7530564278835f281c3fa9712952da777270edf3f438d80a0","3fa52693f21eed67e1bd50be0d25c7055d326580d78ceef9cca0c287e224656e","05ebf96323766ec1a492a055ada17f8e540142335b9467e1f430023c40f4592d","8b9c51e573464bff3b83adf232405f01a87447d1266b1a1a93a02fe3b713b588","8cf3d80aa530218e59750d58f63922099c102514ff34255480cc5ba24099711d","a95c25e1f9146dd90f7cb36c7e306a25a67bdef1eaae7319a60d2f9d3ff66804","0b95dcf0d66f6827416dc96a036abfe5748d96e4f05f91a2f6ee423455a6a178","c51e163a5110087ff0e59381f117d97fd23d275a80aa9c7bb4c7a58f52a3943a","b7f4d30efff05ede0b6358ded8aedefb29802ed4cf6fbd16e3921f9cf76780ae","7e247903f0d259ce44f34601207961982a4a6ef877a8cd04356dcad4c21a7c67",{"version":"cd802f8c2a3218ebf7a068e923c3ce7c3fcfa7b0f774aa1ea2384e7badab412e","signature":"360b9a2f734bdda3c3877cd6e5dd92fae9f3e914cf2c14d935dc8c9cc29ff4ce"},"8c56ed339fb7ea09a933aae91daa038e669730da6b6d422275d0a7e5293b46a7","711255f9dda18a35389ec1e3fa8ebe6e906e67902550afad96b0ac6c5a5de327","4d023a0827a63ad5e6b498f92830d79e40e6fd487ed6b7c6fc2528eb9b3c0937","e17fbde86ef68adc663fff12c63cce11175482b3f108afd90fa3c11754afe6c6","aae8862b104ce076ea1b097bc886c37b33a338efeb9960157f4725fdb5a5862b","1f17acf9613ec0789322f68d2c26f5c3f46a2e82bbe00d3264373ea1ae045ffc","f289c5204b0819632486cefeec845a20a7a9c769180fb6bede63b0d7f24839d2","feaceef383869ce3addd7d620c89fa6ff1d5753f7b451cffb1e926998df2b5e4","34e5c5b2be8aa1b3f75ccd21529ae8b9163f510dbdabae4caae3fec3010cc33b","45fb3525f5c652416e54f91bd8378464d41e22b0ccc108de7db918cf8e92ffd3","e2402a646d4471b0985495b6bfca6c9c731d335195bf206e8c982d8ca362692f","08d34fcbf615950f6d3dd6858437159f0c0af08d5af645ec415ebfeaeacf3bd0","13ce162c8088b92a985e41a2ddf61cbb191101c280214a74dd9e8d2fd3c9c905","d2689735d2498972d6f02fbaff989b1fa500b5a140af7e7c08a15fbc36c1d3d3","4b47e095287cc1351b5fa9c5112d1d2d255bd8916ce76347225837b244e97ed5","f104ff2c22b3c0919c63450b8b77fa227d183a47eed6ef54203ec40678674cb5","06c1e22ce1921cfd383c800f9e191972c5dfaca8996cca54d85c4b4cb41db49d","217866763d14f5c35e7613c29767c4b12debbfe01eec434a79ff7444fadedbbc","6c7327831239ec38e57c18eb15c5b191aa258ada0528de8dc93092efcba20896","3c4de8d194c64b484827151ff14582884166268c345cbb13f9c19e4be3912f54","ea924fbabda99a62bb4cde7f6a01048597027815366db11bff03c08ed576fed8","5e8c7ad4619cc15007aa5bc3f4e1a30cb01540c14beaa609fb8d17d21acaceba","f202558a35a4093e2eb6a5a2aa9f517f883dc3b949a350c9b36906f8c1a3e20a",{"version":"3ba31b0ae95aeb5491f764222294fe55d7599567c149854dbf999db97b5bb7af","signature":"d5efb5060898d1f076715772c3480d4ce727be55e2167fb299bd6556ae70eeae"},{"version":"6eea1cd7302667f74cf05794d56316644f2a94156c43f39ab56940c2ed9ac50c","signature":"64fc8e10187e3facc023e41fafcd45a40b767a607e41270184e0585efe894d81"},{"version":"64e1f5a6a5cfade16c82633c77b44d9598e756132ed72ce104245d69bae178e4","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"675668049a0b4175aa1ad4fd80c751267db0053152755a7fac646eef592c3882","signature":"5cb53013b1adc504c16bed8523675d1efdeab8e7b22cd9a880d1d074cd5357e4"},"efc7d584a33fe3422847783d228f315c4cd1afe74bd7cf8e3f0e4c1125129fef","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1",{"version":"a14ed46fa3f5ffc7a8336b497cd07b45c2084213aaca933a22443fcb2eef0d07","affectsGlobalScope":true},"cce1f5f86974c1e916ec4a8cab6eec9aa8e31e8148845bf07fbaa8e1d97b1a2c",{"version":"185282b122cbca820c297a02a57b89cf5967ab43e220e3e174d872d3f9a94d2c","affectsGlobalScope":true},"16d74fe4d8e183344d3beb15d48b123c5980ff32ff0cc8c3b96614ddcdf9b239","7b43160a49cf2c6082da0465876c4a0b164e160b81187caeb0a6ca7a281e85ba",{"version":"41fb2a1c108fbf46609ce5a451b7ec78eb9b5ada95fd5b94643e4b26397de0b3","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","e8968b394e4365588f8f89cfff86435258cf10062585c1d2224627ab92acda22","285e512c7a0db217a0599e18c462d565fa35be4a5153dd7b80bee88c83e83ddf","b5b719a47968cd61a6f83f437236bb6fe22a39223b6620da81ef89f5d7a78fb7","8806ae97308ef26363bd7ec8071bca4d07fb575f905ee3d8a91aff226df6d618","af5bf1db6f1804fb0069039ae77a05d60133c77a2158d9635ea27b6bb2828a8f","b7fe70be794e13d1b7940e318b8770cd1fb3eced7707805318a2e3aaac2c3e9e",{"version":"2c71199d1fc83bf17636ad5bf63a945633406b7b94887612bba4ef027c662b3e","affectsGlobalScope":true},{"version":"7ae9dc7dbb58cd843065639707815df85c044babaa0947116f97bdb824d07204","affectsGlobalScope":true},"7aae1df2053572c2cfc2089a77847aadbb38eedbaa837a846c6a49fb37c6e5bd","313a0b063f5188037db113509de1b934a0e286f14e9479af24fada241435e707","1f758340b027b18ae8773ac3d33a60648a2af49eaae9e4fde18d0a0dd608642c","87ef1a23caa071b07157c72077fa42b86d30568f9dc9e31eed24d5d14fc30ba8","396a8939b5e177542bdf9b5262b4eee85d29851b2d57681fa9d7eae30e225830","21773f5ac69ddf5a05636ba1f50b5239f4f2d27e4420db147fc2f76a5ae598ac",{"version":"dea4c00820d4fac5e530d4842aed2fb20d6744d75a674b95502cbd433f88bcb0","affectsGlobalScope":true},"a5fe4cc622c3bf8e09ababde5f4096ceac53163eefcd95e9cd53f062ff9bb67a","45b1053e691c5af9bfe85060a3e1542835f8d84a7e6e2e77ca305251eda0cb3c","0f05c06ff6196958d76b865ae17245b52d8fe01773626ac3c43214a2458ea7b7",{"version":"0d832a0650a74aafc276cb3f7bb26bde2e2270a6f87e6c871a64122e9203079b","affectsGlobalScope":true},{"version":"c6f3869f12bb5c3bb8ecd0b050ea20342b89b944eae18d313cde6b0ccc0925d7","affectsGlobalScope":true},"8abd0566d2854c4bd1c5e48e05df5c74927187f1541e6770001d9637ac41542e","d742ed2db6d5425b3b6ac5fb1f2e4b1ed2ae74fbeee8d0030d852121a4b05d2f","d8dba11dc34d50cb4202de5effa9a1b296d7a2f4a029eec871f894bddfb6430d","8b71dd18e7e63b6f991b511a201fad7c3bf8d1e0dd98acb5e3d844f335a73634","01d8e1419c84affad359cc240b2b551fb9812b450b4d3d456b64cda8102d4f60","8221b00f271cf7f535a8eeec03b0f80f0929c7a16116e2d2df089b41066de69b","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","f8c87b19eae111f8720b0345ab301af8d81add39621b63614dfc2d15fd6f140a","831c22d257717bf2cbb03afe9c4bcffc5ccb8a2074344d4238bf16d3a857bb12",{"version":"2225100373ca3d63bcc7f206e1177152d2e2161285a0bd83c8374db1503a0d1f","affectsGlobalScope":true},{"version":"7052b7b0c3829df3b4985bab2fd74531074b4835d5a7b263b75c82f0916ad62f","affectsGlobalScope":true},"aa34c3aa493d1c699601027c441b9664547c3024f9dbab1639df7701d63d18fa","eefcdf86cefff36e5d87de36a3638ab5f7d16c2b68932be4a72c14bb924e43c1","7c651f8dce91a927ab62925e73f190763574c46098f2b11fb8ddc1b147a6709a","7440ab60f4cb031812940cc38166b8bb6fbf2540cfe599f87c41c08011f0c1df",{"version":"4d0405568cf6e0ff36a4861c4a77e641366feaefa751600b0a4d12a5e8f730a8","affectsGlobalScope":true},{"version":"f5b5dc128973498b75f52b1b8c2d5f8629869104899733ae485100c2309b4c12","affectsGlobalScope":true},"e393915d3dc385e69c0e2390739c87b2d296a610662eb0b1cb85224e55992250","79bad8541d5779c85e82a9fb119c1fe06af77a71cc40f869d62ad379473d4b75","4a34b074b11c3597fb2ff890bc8f1484375b3b80793ab01f974534808d5777c7",{"version":"629d20681ca284d9e38c0a019f647108f5fe02f9c59ac164d56f5694fc3faf4d","affectsGlobalScope":true},"e7dbf5716d76846c7522e910896c5747b6df1abd538fee8f5291bdc843461795",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"b510d0a18e3db42ac9765d26711083ec1e8b4e21caaca6dc4d25ae6e8623f447"],"root":[83,117,[141,144]],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"experimentalDecorators":true,"jsx":4,"module":99,"noEmitOnError":true,"noImplicitOverride":true,"outDir":"./","skipLibCheck":true,"sourceMap":true,"strict":true,"target":7,"useDefineForClassFields":true},"fileIdsList":[[82],[98,99,100],[82,90],[82,88,90,91],[82,88],[89,90,91,92],[82,84,88,93,94,97,101,102,109,110,111,115],[82,88,95],[95,96],[84],[85,86,87],[112,113,114],[82,103],[103,104,105,106,107,108],[72,73,74,75,76,77,78,79,80,81],[73,74],[74],[72],[73],[145],[181],[182,187,215],[183,194,195,202,212,223],[183,184,194,202],[185,224],[186,187,195,203],[187,212,220],[188,190,194,202],[189],[190,191],[194],[192,194],[181,194],[194,195,196,212,223],[194,195,196,209,212,215],[179,182,228],[190,194,197,202,212,223],[194,195,197,198,202,212,220,223],[197,199,212,220,223],[145,146,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230],[194,200],[201,223,228],[190,194,202,212],[203],[204],[181,205],[206,222,228],[207],[208],[194,209,210],[209,211,224,226],[182,194,212,213,214,215],[182,212,214],[212,213],[215],[216],[181,212],[194,218,219],[218,219],[187,202,212,220],[221],[202,222],[182,197,208,223],[187,224],[212,225],[201,226],[227],[182,187,194,196,205,212,223,226,228],[212,229],[66,67,68,69],[70],[156,160,223],[156,212,223],[151],[153,156,220,223],[202,220],[231],[151,231],[153,156,202,223],[148,149,152,155,182,194,212,223],[148,154],[152,156,182,215,223,231],[182,231],[172,182,231],[150,151,231],[156],[150,151,152,153,154,155,156,157,158,160,161,162,163,164,165,166,167,168,169,170,171,173,174,175,176,177,178],[156,163,164],[154,156,164,165],[155],[148,151,156],[156,160,164,165],[160],[154,156,159,223],[148,153,154,156,160,163],[182,212],[151,156,172,182,228,231],[71,82,83,117,141],[71,82,116],[71,82],[71,82,116,140],[71,142,196,204],[71,83,117,141,142],[121,136],[82,125,136],[125,136,138],[125,136,137,138,139],[82,125,132],[132],[122,125],[133,134,135],[82,122],[122,123,124],[82,130],[130,131],[82,126,127],[128],[126,127,128,129],[118],[118,119,120],[82,83,117,141],[82,140],[83,117,141,142]],"referencedMap":[[98,1],[99,1],[101,2],[100,1],[102,1],[91,3],[92,4],[89,5],[93,6],[116,7],[96,8],[97,9],[95,10],[88,11],[85,1],[86,1],[111,1],[110,1],[115,12],[104,13],[108,1],[105,13],[107,13],[106,13],[109,14],[82,15],[75,16],[76,17],[73,18],[77,19],[78,18],[79,17],[145,20],[146,20],[181,21],[182,22],[183,23],[184,24],[185,25],[186,26],[187,27],[188,28],[189,29],[190,30],[191,30],[193,31],[192,32],[194,33],[195,34],[196,35],[180,36],[197,37],[198,38],[199,39],[231,40],[200,41],[201,42],[202,43],[203,44],[204,45],[205,46],[206,47],[207,48],[208,49],[209,50],[210,50],[211,51],[212,52],[214,53],[213,54],[215,55],[216,56],[217,57],[218,58],[219,59],[220,60],[221,61],[222,62],[223,63],[224,64],[225,65],[226,66],[227,67],[228,68],[229,69],[70,70],[71,71],[163,72],[170,73],[162,72],[177,74],[154,75],[153,76],[176,77],[171,78],[174,79],[156,80],[155,81],[151,82],[150,83],[173,84],[152,85],[157,86],[161,86],[179,87],[178,86],[165,88],[166,89],[168,90],[164,91],[167,92],[172,77],[159,93],[160,94],[169,95],[149,96],[175,97],[142,98],[117,99],[83,100],[141,101],[143,102],[144,103],[137,104],[138,105],[139,106],[140,107],[133,108],[134,109],[135,110],[136,111],[123,112],[124,1],[122,1],[125,113],[131,114],[132,115],[128,116],[129,117],[127,117],[130,118],[119,119],[121,120]],"exportedModulesMap":[[98,1],[99,1],[101,2],[100,1],[102,1],[91,3],[92,4],[89,5],[93,6],[116,7],[96,8],[97,9],[95,10],[88,11],[85,1],[86,1],[111,1],[110,1],[115,12],[104,13],[108,1],[105,13],[107,13],[106,13],[109,14],[82,15],[75,16],[76,17],[73,18],[77,19],[78,18],[79,17],[145,20],[146,20],[181,21],[182,22],[183,23],[184,24],[185,25],[186,26],[187,27],[188,28],[189,29],[190,30],[191,30],[193,31],[192,32],[194,33],[195,34],[196,35],[180,36],[197,37],[198,38],[199,39],[231,40],[200,41],[201,42],[202,43],[203,44],[204,45],[205,46],[206,47],[207,48],[208,49],[209,50],[210,50],[211,51],[212,52],[214,53],[213,54],[215,55],[216,56],[217,57],[218,58],[219,59],[220,60],[221,61],[222,62],[223,63],[224,64],[225,65],[226,66],[227,67],[228,68],[229,69],[70,70],[71,71],[163,72],[170,73],[162,72],[177,74],[154,75],[153,76],[176,77],[171,78],[174,79],[156,80],[155,81],[151,82],[150,83],[173,84],[152,85],[157,86],[161,86],[179,87],[178,86],[165,88],[166,89],[168,90],[164,91],[167,92],[172,77],[159,93],[160,94],[169,95],[149,96],[175,97],[142,121],[117,1],[83,1],[141,122],[144,123],[137,104],[138,105],[139,106],[140,107],[133,108],[134,109],[135,110],[136,111],[123,112],[124,1],[122,1],[125,113],[131,114],[132,115],[128,116],[129,117],[127,117],[130,118],[119,119],[121,120]],"semanticDiagnosticsPerFile":[94,98,99,101,100,102,91,92,90,89,93,116,96,97,95,87,88,85,86,111,110,112,114,115,113,104,108,105,107,106,103,109,81,82,75,76,73,74,77,78,80,79,72,84,145,146,181,182,183,184,185,186,187,188,189,190,191,193,192,194,195,196,180,230,197,198,199,231,200,201,202,203,204,205,206,207,208,209,210,211,212,214,213,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,68,66,70,71,69,147,67,64,65,12,13,15,14,2,16,17,18,19,20,21,22,23,3,4,24,28,25,26,27,29,30,31,5,32,33,34,35,6,39,36,37,38,40,7,41,46,47,42,43,44,45,8,51,48,49,50,52,9,53,54,55,58,56,57,59,60,10,1,11,63,62,61,163,170,162,177,154,153,176,171,174,156,155,151,150,173,152,157,158,161,148,179,178,165,166,168,164,167,172,159,160,169,149,175,142,117,83,141,143,144,137,138,139,140,133,134,135,136,123,124,122,125,131,132,128,129,126,127,130,119,120,118,121],"latestChangedDtsFile":"./index.d.ts"},"version":"5.3.3"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@contember/client-content-generator",
3
3
  "license": "Apache-2.0",
4
- "version": "1.3.0-alpha.6",
4
+ "version": "1.3.0-alpha.8",
5
5
  "type": "module",
6
6
  "sideEffects": false,
7
7
  "main": "./dist/production/index.js",
@@ -38,13 +38,13 @@
38
38
  "test": "vitest"
39
39
  },
40
40
  "dependencies": {
41
- "@contember/client-content": "1.3.0-alpha.6",
41
+ "@contember/client-content": "1.3.0-alpha.8",
42
42
  "@contember/schema": "^1.3.6",
43
43
  "@contember/schema-utils": "^1.3.6"
44
44
  },
45
45
  "devDependencies": {
46
46
  "@contember/schema-definition": "^1.3.6",
47
- "@types/node": "^18"
47
+ "@types/node": "^20.10.5"
48
48
  },
49
49
  "repository": {
50
50
  "type": "git",