@payloadcms/drizzle 3.7.0 → 3.7.1-canary.a7f8738

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.
Files changed (88) hide show
  1. package/dist/exports/postgres.d.ts +2 -0
  2. package/dist/exports/postgres.d.ts.map +1 -1
  3. package/dist/exports/postgres.js +2 -0
  4. package/dist/exports/postgres.js.map +1 -1
  5. package/dist/index.d.ts +3 -0
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +3 -0
  8. package/dist/index.js.map +1 -1
  9. package/dist/postgres/columnToCodeConverter.d.ts +3 -0
  10. package/dist/postgres/columnToCodeConverter.d.ts.map +1 -0
  11. package/dist/postgres/columnToCodeConverter.js +64 -0
  12. package/dist/postgres/columnToCodeConverter.js.map +1 -0
  13. package/dist/postgres/init.d.ts.map +1 -1
  14. package/dist/postgres/init.js +19 -84
  15. package/dist/postgres/init.js.map +1 -1
  16. package/dist/postgres/schema/buildDrizzleTable.d.ts +7 -0
  17. package/dist/postgres/schema/buildDrizzleTable.d.ts.map +1 -0
  18. package/dist/postgres/schema/buildDrizzleTable.js +110 -0
  19. package/dist/postgres/schema/buildDrizzleTable.js.map +1 -0
  20. package/dist/postgres/schema/setColumnID.d.ts +2 -10
  21. package/dist/postgres/schema/setColumnID.d.ts.map +1 -1
  22. package/dist/postgres/schema/setColumnID.js +21 -5
  23. package/dist/postgres/schema/setColumnID.js.map +1 -1
  24. package/dist/postgres/schema/withDefault.d.ts +2 -2
  25. package/dist/postgres/schema/withDefault.d.ts.map +1 -1
  26. package/dist/postgres/schema/withDefault.js +12 -3
  27. package/dist/postgres/schema/withDefault.js.map +1 -1
  28. package/dist/{postgres/schema → schema}/build.d.ts +12 -7
  29. package/dist/schema/build.d.ts.map +1 -0
  30. package/dist/schema/build.js +603 -0
  31. package/dist/schema/build.js.map +1 -0
  32. package/dist/schema/buildDrizzleRelations.d.ts +7 -0
  33. package/dist/schema/buildDrizzleRelations.d.ts.map +1 -0
  34. package/dist/schema/buildDrizzleRelations.js +23 -0
  35. package/dist/schema/buildDrizzleRelations.js.map +1 -0
  36. package/dist/schema/buildRawSchema.d.ts +9 -0
  37. package/dist/schema/buildRawSchema.d.ts.map +1 -0
  38. package/dist/schema/buildRawSchema.js +97 -0
  39. package/dist/schema/buildRawSchema.js.map +1 -0
  40. package/dist/schema/idToUUID.d.ts.map +1 -0
  41. package/dist/schema/idToUUID.js.map +1 -0
  42. package/dist/{postgres/schema → schema}/traverseFields.d.ts +9 -9
  43. package/dist/schema/traverseFields.d.ts.map +1 -0
  44. package/dist/{postgres/schema → schema}/traverseFields.js +338 -174
  45. package/dist/schema/traverseFields.js.map +1 -0
  46. package/dist/schema/withDefault.d.ts +4 -0
  47. package/dist/schema/withDefault.d.ts.map +1 -0
  48. package/dist/schema/withDefault.js +24 -0
  49. package/dist/schema/withDefault.js.map +1 -0
  50. package/dist/types.d.ts +92 -2
  51. package/dist/types.d.ts.map +1 -1
  52. package/dist/types.js.map +1 -1
  53. package/dist/utilities/createSchemaGenerator.d.ts +11 -0
  54. package/dist/utilities/createSchemaGenerator.d.ts.map +1 -0
  55. package/dist/utilities/createSchemaGenerator.js +216 -0
  56. package/dist/utilities/createSchemaGenerator.js.map +1 -0
  57. package/dist/utilities/executeSchemaHooks.js +1 -1
  58. package/dist/utilities/executeSchemaHooks.js.map +1 -1
  59. package/dist/utilities/validateExistingBlockIsIdentical.d.ts +3 -2
  60. package/dist/utilities/validateExistingBlockIsIdentical.d.ts.map +1 -1
  61. package/dist/utilities/validateExistingBlockIsIdentical.js +2 -2
  62. package/dist/utilities/validateExistingBlockIsIdentical.js.map +1 -1
  63. package/package.json +3 -3
  64. package/dist/postgres/createMigration.d.ts +0 -3
  65. package/dist/postgres/createMigration.d.ts.map +0 -1
  66. package/dist/postgres/createMigration.js +0 -91
  67. package/dist/postgres/createMigration.js.map +0 -1
  68. package/dist/postgres/getMigrationTemplate.d.ts +0 -4
  69. package/dist/postgres/getMigrationTemplate.d.ts.map +0 -1
  70. package/dist/postgres/getMigrationTemplate.js +0 -13
  71. package/dist/postgres/getMigrationTemplate.js.map +0 -1
  72. package/dist/postgres/schema/build.d.ts.map +0 -1
  73. package/dist/postgres/schema/build.js +0 -404
  74. package/dist/postgres/schema/build.js.map +0 -1
  75. package/dist/postgres/schema/createIndex.d.ts +0 -11
  76. package/dist/postgres/schema/createIndex.d.ts.map +0 -1
  77. package/dist/postgres/schema/createIndex.js +0 -20
  78. package/dist/postgres/schema/createIndex.js.map +0 -1
  79. package/dist/postgres/schema/idToUUID.d.ts.map +0 -1
  80. package/dist/postgres/schema/idToUUID.js.map +0 -1
  81. package/dist/postgres/schema/parentIDColumnMap.d.ts +0 -4
  82. package/dist/postgres/schema/parentIDColumnMap.d.ts.map +0 -1
  83. package/dist/postgres/schema/parentIDColumnMap.js +0 -9
  84. package/dist/postgres/schema/parentIDColumnMap.js.map +0 -1
  85. package/dist/postgres/schema/traverseFields.d.ts.map +0 -1
  86. package/dist/postgres/schema/traverseFields.js.map +0 -1
  87. /package/dist/{postgres/schema → schema}/idToUUID.d.ts +0 -0
  88. /package/dist/{postgres/schema → schema}/idToUUID.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/schema/build.ts"],"sourcesContent":["import type { FlattenedField } from 'payload'\n\nimport toSnakeCase from 'to-snake-case'\n\nimport type {\n DrizzleAdapter,\n IDType,\n RawColumn,\n RawForeignKey,\n RawIndex,\n RawRelation,\n RawTable,\n RelationMap,\n SetColumnID,\n} from '../types.js'\n\nimport { createTableName } from '../createTableName.js'\nimport { buildIndexName } from '../utilities/buildIndexName.js'\nimport { traverseFields } from './traverseFields.js'\n\ntype Args = {\n adapter: DrizzleAdapter\n baseColumns?: Record<string, RawColumn>\n /**\n * After table is created, run these functions to add extra config to the table\n * ie. indexes, multiple columns, etc\n */\n baseForeignKeys?: Record<string, RawForeignKey>\n /**\n * After table is created, run these functions to add extra config to the table\n * ie. indexes, multiple columns, etc\n */\n baseIndexes?: Record<string, RawIndex>\n buildNumbers?: boolean\n buildRelationships?: boolean\n disableNotNull: boolean\n disableRelsTableUnique?: boolean\n disableUnique: boolean\n fields: FlattenedField[]\n rootRelationships?: Set<string>\n rootRelationsToBuild?: RelationMap\n rootTableIDColType?: IDType\n rootTableName?: string\n rootUniqueRelationships?: Set<string>\n setColumnID: SetColumnID\n tableName: string\n timestamps?: boolean\n versions: boolean\n /**\n * Tracks whether or not this table is built\n * from the result of a localized array or block field at some point\n */\n withinLocalizedArrayOrBlock?: boolean\n}\n\ntype Result = {\n hasLocalizedManyNumberField: boolean\n hasLocalizedManyTextField: boolean\n hasLocalizedRelationshipField: boolean\n hasManyNumberField: 'index' | boolean\n hasManyTextField: 'index' | boolean\n relationsToBuild: RelationMap\n}\n\nexport const buildTable = ({\n adapter,\n baseColumns = {},\n baseForeignKeys = {},\n baseIndexes = {},\n disableNotNull,\n disableRelsTableUnique = false,\n disableUnique = false,\n fields,\n rootRelationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName: incomingRootTableName,\n rootUniqueRelationships,\n setColumnID,\n tableName,\n timestamps,\n versions,\n withinLocalizedArrayOrBlock,\n}: Args): Result => {\n const isRoot = !incomingRootTableName\n const rootTableName = incomingRootTableName || tableName\n const columns: Record<string, RawColumn> = baseColumns\n const indexes: Record<string, RawIndex> = baseIndexes\n\n const localesColumns: Record<string, RawColumn> = {}\n const localesIndexes: Record<string, RawIndex> = {}\n let localesTable: RawTable\n let textsTable: RawTable\n let numbersTable: RawTable\n\n // Relationships to the base collection\n const relationships: Set<string> = rootRelationships || new Set()\n\n // Unique relationships to the base collection\n const uniqueRelationships: Set<string> = rootUniqueRelationships || new Set()\n\n let relationshipsTable: RawTable\n\n // Drizzle relations\n const relationsToBuild: RelationMap = new Map()\n\n const idColType: IDType = setColumnID({ adapter, columns, fields })\n\n const {\n hasLocalizedField,\n hasLocalizedManyNumberField,\n hasLocalizedManyTextField,\n hasLocalizedRelationshipField,\n hasManyNumberField,\n hasManyTextField,\n } = traverseFields({\n adapter,\n columns,\n disableNotNull,\n disableRelsTableUnique,\n disableUnique,\n fields,\n indexes,\n localesColumns,\n localesIndexes,\n newTableName: tableName,\n parentTableName: tableName,\n relationships,\n relationsToBuild,\n rootRelationsToBuild: rootRelationsToBuild || relationsToBuild,\n rootTableIDColType: rootTableIDColType || idColType,\n rootTableName,\n setColumnID,\n uniqueRelationships,\n versions,\n withinLocalizedArrayOrBlock,\n })\n\n // split the relationsToBuild by localized and non-localized\n const localizedRelations = new Map()\n const nonLocalizedRelations = new Map()\n\n relationsToBuild.forEach(({ type, localized, relationName, target }, key) => {\n const map = localized ? localizedRelations : nonLocalizedRelations\n map.set(key, { type, relationName, target })\n })\n\n if (timestamps) {\n columns.createdAt = {\n name: 'created_at',\n type: 'timestamp',\n defaultNow: true,\n mode: 'string',\n notNull: true,\n precision: 3,\n withTimezone: true,\n }\n\n columns.updatedAt = {\n name: 'updated_at',\n type: 'timestamp',\n defaultNow: true,\n mode: 'string',\n notNull: true,\n precision: 3,\n withTimezone: true,\n }\n }\n\n const table: RawTable = {\n name: tableName,\n columns,\n foreignKeys: baseForeignKeys,\n indexes,\n }\n\n adapter.rawTables[tableName] = table\n\n if (hasLocalizedField || localizedRelations.size) {\n const localeTableName = `${tableName}${adapter.localesSuffix}`\n localesColumns.id = {\n name: 'id',\n type: 'serial',\n primaryKey: true,\n }\n\n localesColumns._locale = {\n name: '_locale',\n type: 'enum',\n isLocale: true,\n notNull: true,\n }\n\n localesColumns._parentID = {\n name: '_parent_id',\n type: idColType,\n notNull: true,\n }\n\n localesIndexes._localeParent = {\n name: `${localeTableName}_locale_parent_id_unique`,\n on: ['_locale', '_parentID'],\n unique: true,\n }\n\n localesTable = {\n name: localeTableName,\n columns: localesColumns,\n foreignKeys: {\n _parentIdFk: {\n name: `${localeTableName}_parent_id_fk`,\n columns: ['_parentID'],\n foreignColumns: [\n {\n name: 'id',\n table: tableName,\n },\n ],\n onDelete: 'cascade',\n },\n },\n indexes: localesIndexes,\n }\n\n adapter.rawTables[localeTableName] = localesTable\n\n const localeRelations: Record<string, RawRelation> = {\n _parentID: {\n type: 'one',\n fields: [\n {\n name: '_parentID',\n table: localeTableName,\n },\n ],\n references: ['id'],\n relationName: '_locales',\n to: tableName,\n },\n }\n\n localizedRelations.forEach(({ type, target }, key) => {\n if (type === 'one') {\n localeRelations[key] = {\n type: 'one',\n fields: [\n {\n name: key,\n table: localeTableName,\n },\n ],\n references: ['id'],\n relationName: key,\n to: target,\n }\n }\n if (type === 'many') {\n localeRelations[key] = {\n type: 'many',\n relationName: key,\n to: target,\n }\n }\n })\n adapter.rawRelations[localeTableName] = localeRelations\n }\n\n if (isRoot) {\n if (hasManyTextField) {\n const textsTableName = `${rootTableName}_texts`\n\n const columns: Record<string, RawColumn> = {\n id: {\n name: 'id',\n type: 'serial',\n primaryKey: true,\n },\n order: {\n name: 'order',\n type: 'integer',\n notNull: true,\n },\n parent: {\n name: 'parent_id',\n type: idColType,\n notNull: true,\n },\n path: {\n name: 'path',\n type: 'varchar',\n\n notNull: true,\n },\n text: {\n name: 'text',\n type: 'varchar',\n },\n }\n\n if (hasLocalizedManyTextField) {\n columns.locale = {\n name: 'locale',\n type: 'enum',\n isLocale: true,\n }\n }\n\n const textsTableIndexes: Record<string, RawIndex> = {\n orderParentIdx: {\n name: `${textsTableName}_order_parent_idx`,\n on: ['order', 'parent'],\n },\n }\n\n if (hasManyTextField === 'index') {\n textsTableIndexes.text_idx = {\n name: `${textsTableName}_text_idx`,\n on: 'text',\n }\n }\n\n if (hasLocalizedManyTextField) {\n textsTableIndexes.localeParent = {\n name: `${textsTableName}_locale_parent`,\n on: ['locale', 'parent'],\n }\n }\n\n textsTable = {\n name: textsTableName,\n columns,\n foreignKeys: {\n parentFk: {\n name: `${textsTableName}_parent_fk`,\n columns: ['parent'],\n foreignColumns: [\n {\n name: 'id',\n table: tableName,\n },\n ],\n onDelete: 'cascade',\n },\n },\n indexes: textsTableIndexes,\n }\n\n adapter.rawTables[textsTableName] = textsTable\n\n adapter.rawRelations[textsTableName] = {\n parent: {\n type: 'one',\n fields: [\n {\n name: 'parent',\n table: textsTableName,\n },\n ],\n references: ['id'],\n relationName: '_texts',\n to: tableName,\n },\n }\n }\n\n if (hasManyNumberField) {\n const numbersTableName = `${rootTableName}_numbers`\n const columns: Record<string, RawColumn> = {\n id: {\n name: 'id',\n type: 'serial',\n primaryKey: true,\n },\n number: {\n name: 'number',\n type: 'numeric',\n },\n order: {\n name: 'order',\n type: 'integer',\n notNull: true,\n },\n parent: {\n name: 'parent_id',\n type: idColType,\n notNull: true,\n },\n path: {\n name: 'path',\n type: 'varchar',\n notNull: true,\n },\n }\n\n if (hasLocalizedManyNumberField) {\n columns.locale = {\n name: 'locale',\n type: 'enum',\n isLocale: true,\n }\n }\n\n const numbersTableIndexes: Record<string, RawIndex> = {\n orderParentIdx: { name: `${numbersTableName}_order_parent_idx`, on: ['order', 'parent'] },\n }\n\n if (hasManyNumberField === 'index') {\n numbersTableIndexes.numberIdx = {\n name: `${numbersTableName}_number_idx`,\n on: 'number',\n }\n }\n\n if (hasLocalizedManyNumberField) {\n numbersTableIndexes.localeParent = {\n name: `${numbersTableName}_locale_parent`,\n on: ['locale', 'parent'],\n }\n }\n\n numbersTable = {\n name: numbersTableName,\n columns,\n foreignKeys: {\n parentFk: {\n name: `${numbersTableName}_parent_fk`,\n columns: ['parent'],\n foreignColumns: [\n {\n name: 'id',\n table: tableName,\n },\n ],\n onDelete: 'cascade',\n },\n },\n indexes: numbersTableIndexes,\n }\n\n adapter.rawTables[numbersTableName] = numbersTable\n\n adapter.rawRelations[numbersTableName] = {\n parent: {\n type: 'one',\n fields: [\n {\n name: 'parent',\n table: numbersTableName,\n },\n ],\n references: ['id'],\n relationName: '_numbers',\n to: tableName,\n },\n }\n }\n\n if (relationships.size) {\n const relationshipColumns: Record<string, RawColumn> = {\n id: {\n name: 'id',\n type: 'serial',\n primaryKey: true,\n },\n order: {\n name: 'order',\n type: 'integer',\n },\n parent: {\n name: 'parent_id',\n type: idColType,\n notNull: true,\n },\n path: {\n name: 'path',\n type: 'varchar',\n notNull: true,\n },\n }\n\n if (hasLocalizedRelationshipField) {\n relationshipColumns.locale = {\n name: 'locale',\n type: 'enum',\n isLocale: true,\n }\n }\n\n const relationshipsTableName = `${tableName}${adapter.relationshipsSuffix}`\n\n const relationshipIndexes: Record<string, RawIndex> = {\n order: {\n name: `${relationshipsTableName}_order_idx`,\n on: 'order',\n },\n parentIdx: {\n name: `${relationshipsTableName}_parent_idx`,\n on: 'parent',\n },\n pathIdx: {\n name: `${relationshipsTableName}_path_idx`,\n on: 'path',\n },\n }\n\n if (hasLocalizedRelationshipField) {\n relationshipIndexes.localeIdx = {\n name: `${relationshipsTableName}_locale_idx`,\n on: 'locale',\n }\n }\n\n const relationshipForeignKeys: Record<string, RawForeignKey> = {\n parentFk: {\n name: `${relationshipsTableName}_parent_fk`,\n columns: ['parent'],\n foreignColumns: [\n {\n name: 'id',\n table: tableName,\n },\n ],\n onDelete: 'cascade',\n },\n }\n\n relationships.forEach((relationTo) => {\n const relationshipConfig = adapter.payload.collections[relationTo].config\n const formattedRelationTo = createTableName({\n adapter,\n config: relationshipConfig,\n throwValidationError: true,\n })\n let colType: 'integer' | 'numeric' | 'uuid' | 'varchar' =\n adapter.idType === 'uuid' ? 'uuid' : 'integer'\n const relatedCollectionCustomIDType =\n adapter.payload.collections[relationshipConfig.slug]?.customIDType\n\n if (relatedCollectionCustomIDType === 'number') {\n colType = 'numeric'\n }\n if (relatedCollectionCustomIDType === 'text') {\n colType = 'varchar'\n }\n\n const colName = `${relationTo}ID`\n\n relationshipColumns[colName] = {\n name: `${formattedRelationTo}_id`,\n type: colType,\n }\n\n relationshipForeignKeys[`${relationTo}IdFk`] = {\n name: `${relationshipsTableName}_${toSnakeCase(relationTo)}_fk`,\n columns: [colName],\n foreignColumns: [\n {\n name: 'id',\n table: formattedRelationTo,\n },\n ],\n onDelete: 'cascade',\n }\n\n const indexColumns = [colName]\n\n const unique = !disableUnique && uniqueRelationships.has(relationTo)\n\n if (unique) {\n indexColumns.push('path')\n }\n if (hasLocalizedRelationshipField) {\n indexColumns.push('locale')\n }\n\n const indexName = buildIndexName({\n name: `${relationshipsTableName}_${formattedRelationTo}_id`,\n adapter,\n })\n\n relationshipIndexes[indexName] = {\n name: indexName,\n on: indexColumns,\n unique,\n }\n })\n\n relationshipsTable = {\n name: relationshipsTableName,\n columns: relationshipColumns,\n foreignKeys: relationshipForeignKeys,\n indexes: relationshipIndexes,\n }\n\n adapter.rawTables[relationshipsTableName] = relationshipsTable\n\n const relationshipsTableRelations: Record<string, RawRelation> = {\n parent: {\n type: 'one',\n fields: [\n {\n name: 'parent',\n table: relationshipsTableName,\n },\n ],\n references: ['id'],\n relationName: '_rels',\n to: tableName,\n },\n }\n\n relationships.forEach((relationTo) => {\n const relatedTableName = createTableName({\n adapter,\n config: adapter.payload.collections[relationTo].config,\n throwValidationError: true,\n })\n const idColumnName = `${relationTo}ID`\n\n relationshipsTableRelations[idColumnName] = {\n type: 'one',\n fields: [\n {\n name: idColumnName,\n table: relationshipsTableName,\n },\n ],\n references: ['id'],\n relationName: relationTo,\n to: relatedTableName,\n }\n })\n adapter.rawRelations[relationshipsTableName] = relationshipsTableRelations\n }\n }\n\n const tableRelations: Record<string, RawRelation> = {}\n\n nonLocalizedRelations.forEach(({ type, relationName, target }, key) => {\n if (type === 'one') {\n tableRelations[key] = {\n type: 'one',\n fields: [\n {\n name: key,\n table: tableName,\n },\n ],\n references: ['id'],\n relationName: key,\n to: target,\n }\n }\n if (type === 'many') {\n tableRelations[key] = {\n type: 'many',\n relationName: relationName || key,\n to: target,\n }\n }\n })\n\n if (hasLocalizedField) {\n tableRelations._locales = {\n type: 'many',\n relationName: '_locales',\n to: localesTable.name,\n }\n }\n\n if (isRoot && textsTable) {\n tableRelations._texts = {\n type: 'many',\n relationName: '_texts',\n to: textsTable.name,\n }\n }\n\n if (isRoot && numbersTable) {\n tableRelations._numbers = {\n type: 'many',\n relationName: '_numbers',\n to: numbersTable.name,\n }\n }\n\n if (relationships.size && relationshipsTable) {\n tableRelations._rels = {\n type: 'many',\n relationName: '_rels',\n to: relationshipsTable.name,\n }\n }\n\n adapter.rawRelations[tableName] = tableRelations\n\n return {\n hasLocalizedManyNumberField,\n hasLocalizedManyTextField,\n hasLocalizedRelationshipField,\n hasManyNumberField,\n hasManyTextField,\n relationsToBuild,\n }\n}\n"],"names":["toSnakeCase","createTableName","buildIndexName","traverseFields","buildTable","adapter","baseColumns","baseForeignKeys","baseIndexes","disableNotNull","disableRelsTableUnique","disableUnique","fields","rootRelationships","rootRelationsToBuild","rootTableIDColType","rootTableName","incomingRootTableName","rootUniqueRelationships","setColumnID","tableName","timestamps","versions","withinLocalizedArrayOrBlock","isRoot","columns","indexes","localesColumns","localesIndexes","localesTable","textsTable","numbersTable","relationships","Set","uniqueRelationships","relationshipsTable","relationsToBuild","Map","idColType","hasLocalizedField","hasLocalizedManyNumberField","hasLocalizedManyTextField","hasLocalizedRelationshipField","hasManyNumberField","hasManyTextField","newTableName","parentTableName","localizedRelations","nonLocalizedRelations","forEach","type","localized","relationName","target","key","map","set","createdAt","name","defaultNow","mode","notNull","precision","withTimezone","updatedAt","table","foreignKeys","rawTables","size","localeTableName","localesSuffix","id","primaryKey","_locale","isLocale","_parentID","_localeParent","on","unique","_parentIdFk","foreignColumns","onDelete","localeRelations","references","to","rawRelations","textsTableName","order","parent","path","text","locale","textsTableIndexes","orderParentIdx","text_idx","localeParent","parentFk","numbersTableName","number","numbersTableIndexes","numberIdx","relationshipColumns","relationshipsTableName","relationshipsSuffix","relationshipIndexes","parentIdx","pathIdx","localeIdx","relationshipForeignKeys","relationTo","relationshipConfig","payload","collections","config","formattedRelationTo","throwValidationError","colType","idType","relatedCollectionCustomIDType","slug","customIDType","colName","indexColumns","has","push","indexName","relationshipsTableRelations","relatedTableName","idColumnName","tableRelations","_locales","_texts","_numbers","_rels"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { DrizzleAdapter, RawRelation } from '../types.js';
2
+ export declare const buildDrizzleRelations: ({ adapter, rawRelations, tableName, }: {
3
+ adapter: DrizzleAdapter;
4
+ rawRelations: Record<string, RawRelation>;
5
+ tableName: string;
6
+ }) => void;
7
+ //# sourceMappingURL=buildDrizzleRelations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildDrizzleRelations.d.ts","sourceRoot":"","sources":["../../src/schema/buildDrizzleRelations.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAE9D,eAAO,MAAM,qBAAqB,0CAI/B;IACD,OAAO,EAAE,cAAc,CAAA;IACvB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IACzC,SAAS,EAAE,MAAM,CAAA;CAClB,SA2BA,CAAA"}
@@ -0,0 +1,23 @@
1
+ import { relations } from 'drizzle-orm';
2
+ export const buildDrizzleRelations = ({ adapter, rawRelations, tableName })=>{
3
+ adapter.relations[`relations_${tableName}`] = relations(adapter.tables[tableName], ({ many, one })=>{
4
+ const result = {};
5
+ for(const key in rawRelations){
6
+ const relation = rawRelations[key];
7
+ if (relation.type === 'one') {
8
+ result[key] = one(adapter.tables[relation.to], {
9
+ fields: relation.fields.map((field)=>adapter.tables[field.table][field.name]),
10
+ references: relation.references.map((reference)=>adapter.tables[relation.to][reference]),
11
+ relationName: relation.relationName
12
+ });
13
+ } else {
14
+ result[key] = many(adapter.tables[relation.to], {
15
+ relationName: relation.relationName
16
+ });
17
+ }
18
+ }
19
+ return result;
20
+ });
21
+ };
22
+
23
+ //# sourceMappingURL=buildDrizzleRelations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/schema/buildDrizzleRelations.ts"],"sourcesContent":["import type { Relation } from 'drizzle-orm'\n\nimport { relations } from 'drizzle-orm'\n\nimport type { DrizzleAdapter, RawRelation } from '../types.js'\n\nexport const buildDrizzleRelations = ({\n adapter,\n rawRelations,\n tableName,\n}: {\n adapter: DrizzleAdapter\n rawRelations: Record<string, RawRelation>\n tableName: string\n}) => {\n adapter.relations[`relations_${tableName}`] = relations(\n adapter.tables[tableName],\n ({ many, one }) => {\n const result: Record<string, Relation<string>> = {}\n\n for (const key in rawRelations) {\n const relation = rawRelations[key]\n\n if (relation.type === 'one') {\n result[key] = one(adapter.tables[relation.to], {\n fields: relation.fields.map((field) => adapter.tables[field.table][field.name]) as any,\n references: relation.references.map(\n (reference) => adapter.tables[relation.to][reference],\n ),\n relationName: relation.relationName,\n })\n } else {\n result[key] = many(adapter.tables[relation.to], {\n relationName: relation.relationName,\n })\n }\n }\n\n return result\n },\n )\n}\n"],"names":["relations","buildDrizzleRelations","adapter","rawRelations","tableName","tables","many","one","result","key","relation","type","to","fields","map","field","table","name","references","reference","relationName"],"mappings":"AAEA,SAASA,SAAS,QAAQ,cAAa;AAIvC,OAAO,MAAMC,wBAAwB,CAAC,EACpCC,OAAO,EACPC,YAAY,EACZC,SAAS,EAKV;IACCF,QAAQF,SAAS,CAAC,CAAC,UAAU,EAAEI,WAAW,CAAC,GAAGJ,UAC5CE,QAAQG,MAAM,CAACD,UAAU,EACzB,CAAC,EAAEE,IAAI,EAAEC,GAAG,EAAE;QACZ,MAAMC,SAA2C,CAAC;QAElD,IAAK,MAAMC,OAAON,aAAc;YAC9B,MAAMO,WAAWP,YAAY,CAACM,IAAI;YAElC,IAAIC,SAASC,IAAI,KAAK,OAAO;gBAC3BH,MAAM,CAACC,IAAI,GAAGF,IAAIL,QAAQG,MAAM,CAACK,SAASE,EAAE,CAAC,EAAE;oBAC7CC,QAAQH,SAASG,MAAM,CAACC,GAAG,CAAC,CAACC,QAAUb,QAAQG,MAAM,CAACU,MAAMC,KAAK,CAAC,CAACD,MAAME,IAAI,CAAC;oBAC9EC,YAAYR,SAASQ,UAAU,CAACJ,GAAG,CACjC,CAACK,YAAcjB,QAAQG,MAAM,CAACK,SAASE,EAAE,CAAC,CAACO,UAAU;oBAEvDC,cAAcV,SAASU,YAAY;gBACrC;YACF,OAAO;gBACLZ,MAAM,CAACC,IAAI,GAAGH,KAAKJ,QAAQG,MAAM,CAACK,SAASE,EAAE,CAAC,EAAE;oBAC9CQ,cAAcV,SAASU,YAAY;gBACrC;YACF;QACF;QAEA,OAAOZ;IACT;AAEJ,EAAC"}
@@ -0,0 +1,9 @@
1
+ import type { DrizzleAdapter, SetColumnID } from '../types.js';
2
+ /**
3
+ * Builds abstract Payload SQL schema
4
+ */
5
+ export declare const buildRawSchema: ({ adapter, setColumnID, }: {
6
+ adapter: DrizzleAdapter;
7
+ setColumnID: SetColumnID;
8
+ }) => void;
9
+ //# sourceMappingURL=buildRawSchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildRawSchema.d.ts","sourceRoot":"","sources":["../../src/schema/buildRawSchema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAY,WAAW,EAAE,MAAM,aAAa,CAAA;AAKxE;;GAEG;AACH,eAAO,MAAM,cAAc,8BAGxB;IACD,OAAO,EAAE,cAAc,CAAA;IACvB,WAAW,EAAE,WAAW,CAAA;CACzB,SAsGA,CAAA"}
@@ -0,0 +1,97 @@
1
+ import { buildVersionCollectionFields, buildVersionGlobalFields } from 'payload';
2
+ import toSnakeCase from 'to-snake-case';
3
+ import { createTableName } from '../createTableName.js';
4
+ import { buildTable } from './build.js';
5
+ /**
6
+ * Builds abstract Payload SQL schema
7
+ */ export const buildRawSchema = ({ adapter, setColumnID })=>{
8
+ adapter.payload.config.collections.forEach((collection)=>{
9
+ createTableName({
10
+ adapter,
11
+ config: collection
12
+ });
13
+ if (collection.versions) {
14
+ createTableName({
15
+ adapter,
16
+ config: collection,
17
+ versions: true,
18
+ versionsCustomName: true
19
+ });
20
+ }
21
+ });
22
+ adapter.payload.config.collections.forEach((collection)=>{
23
+ const tableName = adapter.tableNameMap.get(toSnakeCase(collection.slug));
24
+ const config = adapter.payload.config;
25
+ const baseIndexes = {};
26
+ if (collection.upload.filenameCompoundIndex) {
27
+ const indexName = `${tableName}_filename_compound_idx`;
28
+ baseIndexes.filename_compound_index = {
29
+ name: indexName,
30
+ on: collection.upload.filenameCompoundIndex.map((f)=>f),
31
+ unique: true
32
+ };
33
+ }
34
+ buildTable({
35
+ adapter,
36
+ disableNotNull: !!collection?.versions?.drafts,
37
+ disableUnique: false,
38
+ fields: collection.flattenedFields,
39
+ setColumnID,
40
+ tableName,
41
+ timestamps: collection.timestamps,
42
+ versions: false
43
+ });
44
+ if (collection.versions) {
45
+ const versionsTableName = adapter.tableNameMap.get(`_${toSnakeCase(collection.slug)}${adapter.versionsSuffix}`);
46
+ const versionFields = buildVersionCollectionFields(config, collection, true);
47
+ buildTable({
48
+ adapter,
49
+ disableNotNull: !!collection.versions?.drafts,
50
+ disableUnique: true,
51
+ fields: versionFields,
52
+ setColumnID,
53
+ tableName: versionsTableName,
54
+ timestamps: true,
55
+ versions: true
56
+ });
57
+ }
58
+ });
59
+ adapter.payload.config.globals.forEach((global)=>{
60
+ const tableName = createTableName({
61
+ adapter,
62
+ config: global
63
+ });
64
+ buildTable({
65
+ adapter,
66
+ disableNotNull: !!global?.versions?.drafts,
67
+ disableUnique: false,
68
+ fields: global.flattenedFields,
69
+ setColumnID,
70
+ tableName,
71
+ timestamps: false,
72
+ versions: false
73
+ });
74
+ if (global.versions) {
75
+ const versionsTableName = createTableName({
76
+ adapter,
77
+ config: global,
78
+ versions: true,
79
+ versionsCustomName: true
80
+ });
81
+ const config = adapter.payload.config;
82
+ const versionFields = buildVersionGlobalFields(config, global, true);
83
+ buildTable({
84
+ adapter,
85
+ disableNotNull: !!global.versions?.drafts,
86
+ disableUnique: true,
87
+ fields: versionFields,
88
+ setColumnID,
89
+ tableName: versionsTableName,
90
+ timestamps: true,
91
+ versions: true
92
+ });
93
+ }
94
+ });
95
+ };
96
+
97
+ //# sourceMappingURL=buildRawSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/schema/buildRawSchema.ts"],"sourcesContent":["import { buildVersionCollectionFields, buildVersionGlobalFields } from 'payload'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter, RawIndex, SetColumnID } from '../types.js'\n\nimport { createTableName } from '../createTableName.js'\nimport { buildTable } from './build.js'\n\n/**\n * Builds abstract Payload SQL schema\n */\nexport const buildRawSchema = ({\n adapter,\n setColumnID,\n}: {\n adapter: DrizzleAdapter\n setColumnID: SetColumnID\n}) => {\n adapter.payload.config.collections.forEach((collection) => {\n createTableName({\n adapter,\n config: collection,\n })\n\n if (collection.versions) {\n createTableName({\n adapter,\n config: collection,\n versions: true,\n versionsCustomName: true,\n })\n }\n })\n\n adapter.payload.config.collections.forEach((collection) => {\n const tableName = adapter.tableNameMap.get(toSnakeCase(collection.slug))\n const config = adapter.payload.config\n\n const baseIndexes: Record<string, RawIndex> = {}\n\n if (collection.upload.filenameCompoundIndex) {\n const indexName = `${tableName}_filename_compound_idx`\n\n baseIndexes.filename_compound_index = {\n name: indexName,\n on: collection.upload.filenameCompoundIndex.map((f) => f),\n unique: true,\n }\n }\n\n buildTable({\n adapter,\n disableNotNull: !!collection?.versions?.drafts,\n disableUnique: false,\n fields: collection.flattenedFields,\n setColumnID,\n tableName,\n timestamps: collection.timestamps,\n versions: false,\n })\n\n if (collection.versions) {\n const versionsTableName = adapter.tableNameMap.get(\n `_${toSnakeCase(collection.slug)}${adapter.versionsSuffix}`,\n )\n const versionFields = buildVersionCollectionFields(config, collection, true)\n\n buildTable({\n adapter,\n disableNotNull: !!collection.versions?.drafts,\n disableUnique: true,\n fields: versionFields,\n setColumnID,\n tableName: versionsTableName,\n timestamps: true,\n versions: true,\n })\n }\n })\n\n adapter.payload.config.globals.forEach((global) => {\n const tableName = createTableName({\n adapter,\n config: global,\n })\n\n buildTable({\n adapter,\n disableNotNull: !!global?.versions?.drafts,\n disableUnique: false,\n fields: global.flattenedFields,\n setColumnID,\n tableName,\n timestamps: false,\n versions: false,\n })\n\n if (global.versions) {\n const versionsTableName = createTableName({\n adapter,\n config: global,\n versions: true,\n versionsCustomName: true,\n })\n const config = adapter.payload.config\n const versionFields = buildVersionGlobalFields(config, global, true)\n\n buildTable({\n adapter,\n disableNotNull: !!global.versions?.drafts,\n disableUnique: true,\n fields: versionFields,\n setColumnID,\n tableName: versionsTableName,\n timestamps: true,\n versions: true,\n })\n }\n })\n}\n"],"names":["buildVersionCollectionFields","buildVersionGlobalFields","toSnakeCase","createTableName","buildTable","buildRawSchema","adapter","setColumnID","payload","config","collections","forEach","collection","versions","versionsCustomName","tableName","tableNameMap","get","slug","baseIndexes","upload","filenameCompoundIndex","indexName","filename_compound_index","name","on","map","f","unique","disableNotNull","drafts","disableUnique","fields","flattenedFields","timestamps","versionsTableName","versionsSuffix","versionFields","globals","global"],"mappings":"AAAA,SAASA,4BAA4B,EAAEC,wBAAwB,QAAQ,UAAS;AAChF,OAAOC,iBAAiB,gBAAe;AAIvC,SAASC,eAAe,QAAQ,wBAAuB;AACvD,SAASC,UAAU,QAAQ,aAAY;AAEvC;;CAEC,GACD,OAAO,MAAMC,iBAAiB,CAAC,EAC7BC,OAAO,EACPC,WAAW,EAIZ;IACCD,QAAQE,OAAO,CAACC,MAAM,CAACC,WAAW,CAACC,OAAO,CAAC,CAACC;QAC1CT,gBAAgB;YACdG;YACAG,QAAQG;QACV;QAEA,IAAIA,WAAWC,QAAQ,EAAE;YACvBV,gBAAgB;gBACdG;gBACAG,QAAQG;gBACRC,UAAU;gBACVC,oBAAoB;YACtB;QACF;IACF;IAEAR,QAAQE,OAAO,CAACC,MAAM,CAACC,WAAW,CAACC,OAAO,CAAC,CAACC;QAC1C,MAAMG,YAAYT,QAAQU,YAAY,CAACC,GAAG,CAACf,YAAYU,WAAWM,IAAI;QACtE,MAAMT,SAASH,QAAQE,OAAO,CAACC,MAAM;QAErC,MAAMU,cAAwC,CAAC;QAE/C,IAAIP,WAAWQ,MAAM,CAACC,qBAAqB,EAAE;YAC3C,MAAMC,YAAY,GAAGP,UAAU,sBAAsB,CAAC;YAEtDI,YAAYI,uBAAuB,GAAG;gBACpCC,MAAMF;gBACNG,IAAIb,WAAWQ,MAAM,CAACC,qBAAqB,CAACK,GAAG,CAAC,CAACC,IAAMA;gBACvDC,QAAQ;YACV;QACF;QAEAxB,WAAW;YACTE;YACAuB,gBAAgB,CAAC,CAACjB,YAAYC,UAAUiB;YACxCC,eAAe;YACfC,QAAQpB,WAAWqB,eAAe;YAClC1B;YACAQ;YACAmB,YAAYtB,WAAWsB,UAAU;YACjCrB,UAAU;QACZ;QAEA,IAAID,WAAWC,QAAQ,EAAE;YACvB,MAAMsB,oBAAoB7B,QAAQU,YAAY,CAACC,GAAG,CAChD,CAAC,CAAC,EAAEf,YAAYU,WAAWM,IAAI,IAAIZ,QAAQ8B,cAAc,EAAE;YAE7D,MAAMC,gBAAgBrC,6BAA6BS,QAAQG,YAAY;YAEvER,WAAW;gBACTE;gBACAuB,gBAAgB,CAAC,CAACjB,WAAWC,QAAQ,EAAEiB;gBACvCC,eAAe;gBACfC,QAAQK;gBACR9B;gBACAQ,WAAWoB;gBACXD,YAAY;gBACZrB,UAAU;YACZ;QACF;IACF;IAEAP,QAAQE,OAAO,CAACC,MAAM,CAAC6B,OAAO,CAAC3B,OAAO,CAAC,CAAC4B;QACtC,MAAMxB,YAAYZ,gBAAgB;YAChCG;YACAG,QAAQ8B;QACV;QAEAnC,WAAW;YACTE;YACAuB,gBAAgB,CAAC,CAACU,QAAQ1B,UAAUiB;YACpCC,eAAe;YACfC,QAAQO,OAAON,eAAe;YAC9B1B;YACAQ;YACAmB,YAAY;YACZrB,UAAU;QACZ;QAEA,IAAI0B,OAAO1B,QAAQ,EAAE;YACnB,MAAMsB,oBAAoBhC,gBAAgB;gBACxCG;gBACAG,QAAQ8B;gBACR1B,UAAU;gBACVC,oBAAoB;YACtB;YACA,MAAML,SAASH,QAAQE,OAAO,CAACC,MAAM;YACrC,MAAM4B,gBAAgBpC,yBAAyBQ,QAAQ8B,QAAQ;YAE/DnC,WAAW;gBACTE;gBACAuB,gBAAgB,CAAC,CAACU,OAAO1B,QAAQ,EAAEiB;gBACnCC,eAAe;gBACfC,QAAQK;gBACR9B;gBACAQ,WAAWoB;gBACXD,YAAY;gBACZrB,UAAU;YACZ;QACF;IACF;AACF,EAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"idToUUID.d.ts","sourceRoot":"","sources":["../../src/schema/idToUUID.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C,eAAO,MAAM,QAAQ,WAAY,cAAc,EAAE,KAAG,cAAc,EAU9D,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/schema/idToUUID.ts"],"sourcesContent":["import type { FlattenedField } from 'payload'\n\nexport const idToUUID = (fields: FlattenedField[]): FlattenedField[] =>\n fields.map((field) => {\n if ('name' in field && field.name === 'id') {\n return {\n ...field,\n name: '_uuid',\n }\n }\n\n return field\n })\n"],"names":["idToUUID","fields","map","field","name"],"mappings":"AAEA,OAAO,MAAMA,WAAW,CAACC,SACvBA,OAAOC,GAAG,CAAC,CAACC;QACV,IAAI,UAAUA,SAASA,MAAMC,IAAI,KAAK,MAAM;YAC1C,OAAO;gBACL,GAAGD,KAAK;gBACRC,MAAM;YACR;QACF;QAEA,OAAOD;IACT,GAAE"}
@@ -1,26 +1,26 @@
1
- import type { IndexBuilder, PgColumnBuilder } from 'drizzle-orm/pg-core';
2
1
  import type { FlattenedField } from 'payload';
3
- import type { BasePostgresAdapter, GenericColumns, RelationMap } from '../types.js';
2
+ import type { DrizzleAdapter, IDType, RawColumn, RawIndex, RelationMap, SetColumnID } from '../types.js';
4
3
  type Args = {
5
- adapter: BasePostgresAdapter;
4
+ adapter: DrizzleAdapter;
6
5
  columnPrefix?: string;
7
- columns: Record<string, PgColumnBuilder>;
6
+ columns: Record<string, RawColumn>;
8
7
  disableNotNull: boolean;
9
8
  disableRelsTableUnique?: boolean;
10
9
  disableUnique?: boolean;
11
10
  fieldPrefix?: string;
12
11
  fields: FlattenedField[];
13
12
  forceLocalized?: boolean;
14
- indexes: Record<string, (cols: GenericColumns) => IndexBuilder>;
15
- localesColumns: Record<string, PgColumnBuilder>;
16
- localesIndexes: Record<string, (cols: GenericColumns) => IndexBuilder>;
13
+ indexes: Record<string, RawIndex>;
14
+ localesColumns: Record<string, RawColumn>;
15
+ localesIndexes: Record<string, RawIndex>;
17
16
  newTableName: string;
18
17
  parentTableName: string;
19
18
  relationships: Set<string>;
20
19
  relationsToBuild: RelationMap;
21
20
  rootRelationsToBuild?: RelationMap;
22
- rootTableIDColType: string;
21
+ rootTableIDColType: IDType;
23
22
  rootTableName: string;
23
+ setColumnID: SetColumnID;
24
24
  uniqueRelationships: Set<string>;
25
25
  versions: boolean;
26
26
  /**
@@ -37,6 +37,6 @@ type Result = {
37
37
  hasManyNumberField: 'index' | boolean;
38
38
  hasManyTextField: 'index' | boolean;
39
39
  };
40
- export declare const traverseFields: ({ adapter, columnPrefix, columns, disableNotNull, disableRelsTableUnique, disableUnique, fieldPrefix, fields, forceLocalized, indexes, localesColumns, localesIndexes, newTableName, parentTableName, relationships, relationsToBuild, rootRelationsToBuild, rootTableIDColType, rootTableName, uniqueRelationships, versions, withinLocalizedArrayOrBlock, }: Args) => Result;
40
+ export declare const traverseFields: ({ adapter, columnPrefix, columns, disableNotNull, disableRelsTableUnique, disableUnique, fieldPrefix, fields, forceLocalized, indexes, localesColumns, localesIndexes, newTableName, parentTableName, relationships, relationsToBuild, rootRelationsToBuild, rootTableIDColType, rootTableName, setColumnID, uniqueRelationships, versions, withinLocalizedArrayOrBlock, }: Args) => Result;
41
41
  export {};
42
42
  //# sourceMappingURL=traverseFields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../src/schema/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAM7C,OAAO,KAAK,EACV,cAAc,EACd,MAAM,EACN,SAAS,EAET,QAAQ,EAER,WAAW,EACX,WAAW,EACZ,MAAM,aAAa,CAAA;AAUpB,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,cAAc,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAClC,cAAc,EAAE,OAAO,CAAA;IACvB,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACjC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACzC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACxC,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1B,gBAAgB,EAAE,WAAW,CAAA;IAC7B,oBAAoB,CAAC,EAAE,WAAW,CAAA;IAClC,kBAAkB,EAAE,MAAM,CAAA;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,WAAW,CAAA;IACxB,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAChC,QAAQ,EAAE,OAAO,CAAA;IACjB;;;OAGG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAA;CACtC,CAAA;AAED,KAAK,MAAM,GAAG;IACZ,iBAAiB,EAAE,OAAO,CAAA;IAC1B,2BAA2B,EAAE,OAAO,CAAA;IACpC,yBAAyB,EAAE,OAAO,CAAA;IAClC,6BAA6B,EAAE,OAAO,CAAA;IACtC,kBAAkB,EAAE,OAAO,GAAG,OAAO,CAAA;IACrC,gBAAgB,EAAE,OAAO,GAAG,OAAO,CAAA;CACpC,CAAA;AAED,eAAO,MAAM,cAAc,+WAwBxB,IAAI,KAAG,MA+3BT,CAAA"}