@payloadcms/drizzle 3.39.0-canary.7 → 3.39.0-internal.1c212c9

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 (104) hide show
  1. package/dist/count.js +1 -1
  2. package/dist/count.js.map +1 -1
  3. package/dist/countGlobalVersions.js +1 -1
  4. package/dist/countGlobalVersions.js.map +1 -1
  5. package/dist/countVersions.js +1 -1
  6. package/dist/countVersions.js.map +1 -1
  7. package/dist/createGlobal.js +2 -2
  8. package/dist/createGlobal.js.map +1 -1
  9. package/dist/createGlobalVersion.d.ts +1 -1
  10. package/dist/createGlobalVersion.d.ts.map +1 -1
  11. package/dist/createGlobalVersion.js +3 -3
  12. package/dist/createGlobalVersion.js.map +1 -1
  13. package/dist/createVersion.d.ts +1 -1
  14. package/dist/createVersion.d.ts.map +1 -1
  15. package/dist/createVersion.js +1 -1
  16. package/dist/createVersion.js.map +1 -1
  17. package/dist/deleteOne.js +1 -1
  18. package/dist/deleteOne.js.map +1 -1
  19. package/dist/find/findMany.js +1 -1
  20. package/dist/find/findMany.js.map +1 -1
  21. package/dist/find/traverseFields.d.ts.map +1 -1
  22. package/dist/find/traverseFields.js +3 -4
  23. package/dist/find/traverseFields.js.map +1 -1
  24. package/dist/index.d.ts +1 -1
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +1 -1
  27. package/dist/index.js.map +1 -1
  28. package/dist/postgres/predefinedMigrations/v2-v3/fetchAndResave/traverseFields.d.ts.map +1 -1
  29. package/dist/postgres/predefinedMigrations/v2-v3/fetchAndResave/traverseFields.js.map +1 -1
  30. package/dist/queries/buildOrderBy.d.ts.map +1 -1
  31. package/dist/queries/buildOrderBy.js +2 -11
  32. package/dist/queries/buildOrderBy.js.map +1 -1
  33. package/dist/queries/buildQuery.d.ts +2 -2
  34. package/dist/queries/buildQuery.d.ts.map +1 -1
  35. package/dist/queries/buildQuery.js +2 -1
  36. package/dist/queries/buildQuery.js.map +1 -1
  37. package/dist/queries/getTableColumnFromPath.d.ts.map +1 -1
  38. package/dist/queries/getTableColumnFromPath.js +3 -4
  39. package/dist/queries/getTableColumnFromPath.js.map +1 -1
  40. package/dist/queries/operatorMap.d.ts +2 -2
  41. package/dist/queries/operatorMap.d.ts.map +1 -1
  42. package/dist/queries/operatorMap.js.map +1 -1
  43. package/dist/queries/selectDistinct.d.ts.map +1 -1
  44. package/dist/queries/selectDistinct.js.map +1 -1
  45. package/dist/schema/build.d.ts +1 -2
  46. package/dist/schema/build.d.ts.map +1 -1
  47. package/dist/schema/build.js +1 -2
  48. package/dist/schema/build.js.map +1 -1
  49. package/dist/schema/buildRawSchema.d.ts.map +1 -1
  50. package/dist/schema/buildRawSchema.js +0 -4
  51. package/dist/schema/buildRawSchema.js.map +1 -1
  52. package/dist/schema/traverseFields.d.ts +1 -2
  53. package/dist/schema/traverseFields.d.ts.map +1 -1
  54. package/dist/schema/traverseFields.js +14 -26
  55. package/dist/schema/traverseFields.js.map +1 -1
  56. package/dist/transactions/commitTransaction.js +1 -1
  57. package/dist/transactions/commitTransaction.js.map +1 -1
  58. package/dist/transform/read/index.d.ts.map +1 -1
  59. package/dist/transform/read/index.js.map +1 -1
  60. package/dist/transform/read/traverseFields.d.ts.map +1 -1
  61. package/dist/transform/read/traverseFields.js +5 -3
  62. package/dist/transform/read/traverseFields.js.map +1 -1
  63. package/dist/transform/write/blocks.d.ts.map +1 -1
  64. package/dist/transform/write/blocks.js +5 -6
  65. package/dist/transform/write/blocks.js.map +1 -1
  66. package/dist/transform/write/relationships.js +1 -1
  67. package/dist/transform/write/relationships.js.map +1 -1
  68. package/dist/transform/write/traverseFields.d.ts.map +1 -1
  69. package/dist/transform/write/traverseFields.js +1 -3
  70. package/dist/transform/write/traverseFields.js.map +1 -1
  71. package/dist/transform/write/types.d.ts +1 -1
  72. package/dist/transform/write/types.js.map +1 -1
  73. package/dist/updateGlobal.d.ts +1 -1
  74. package/dist/updateGlobal.d.ts.map +1 -1
  75. package/dist/updateGlobal.js +3 -3
  76. package/dist/updateGlobal.js.map +1 -1
  77. package/dist/updateGlobalVersion.d.ts +1 -1
  78. package/dist/updateGlobalVersion.d.ts.map +1 -1
  79. package/dist/updateGlobalVersion.js +4 -4
  80. package/dist/updateGlobalVersion.js.map +1 -1
  81. package/dist/updateMany.js +1 -1
  82. package/dist/updateMany.js.map +1 -1
  83. package/dist/updateOne.js +1 -1
  84. package/dist/updateOne.js.map +1 -1
  85. package/dist/updateVersion.d.ts +1 -1
  86. package/dist/updateVersion.d.ts.map +1 -1
  87. package/dist/updateVersion.js +4 -4
  88. package/dist/updateVersion.js.map +1 -1
  89. package/dist/upsertRow/index.d.ts.map +1 -1
  90. package/dist/upsertRow/index.js +16 -14
  91. package/dist/upsertRow/index.js.map +1 -1
  92. package/dist/upsertRow/insertArrays.js +1 -1
  93. package/dist/upsertRow/insertArrays.js.map +1 -1
  94. package/dist/upsertRow/types.d.ts +1 -1
  95. package/dist/upsertRow/types.d.ts.map +1 -1
  96. package/dist/upsertRow/types.js.map +1 -1
  97. package/dist/utilities/createBlocksMap.d.ts.map +1 -1
  98. package/dist/utilities/createBlocksMap.js +1 -5
  99. package/dist/utilities/createBlocksMap.js.map +1 -1
  100. package/dist/utilities/validateExistingBlockIsIdentical.d.ts +2 -8
  101. package/dist/utilities/validateExistingBlockIsIdentical.d.ts.map +1 -1
  102. package/dist/utilities/validateExistingBlockIsIdentical.js +5 -14
  103. package/dist/utilities/validateExistingBlockIsIdentical.js.map +1 -1
  104. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schema/traverseFields.ts"],"sourcesContent":["import type { FlattenedField } from 'payload'\n\nimport { InvalidConfiguration } from 'payload'\nimport {\n fieldAffectsData,\n fieldIsVirtual,\n fieldShouldBeLocalized,\n optionIsObject,\n} from 'payload/shared'\nimport toSnakeCase from 'to-snake-case'\n\nimport type {\n DrizzleAdapter,\n IDType,\n RawColumn,\n RawForeignKey,\n RawIndex,\n RawRelation,\n RelationMap,\n SetColumnID,\n} from '../types.js'\n\nimport { createTableName } from '../createTableName.js'\nimport { buildIndexName } from '../utilities/buildIndexName.js'\nimport { getArrayRelationName } from '../utilities/getArrayRelationName.js'\nimport { hasLocalesTable } from '../utilities/hasLocalesTable.js'\nimport {\n InternalBlockTableNameIndex,\n setInternalBlockIndex,\n validateExistingBlockIsIdentical,\n} from '../utilities/validateExistingBlockIsIdentical.js'\nimport { buildTable } from './build.js'\nimport { idToUUID } from './idToUUID.js'\nimport { withDefault } from './withDefault.js'\n\ntype Args = {\n adapter: DrizzleAdapter\n blocksTableNameMap: Record<string, number>\n columnPrefix?: string\n columns: Record<string, RawColumn>\n disableNotNull: boolean\n disableRelsTableUnique?: boolean\n disableUnique?: boolean\n fieldPrefix?: string\n fields: FlattenedField[]\n forceLocalized?: boolean\n indexes: Record<string, RawIndex>\n localesColumns: Record<string, RawColumn>\n localesIndexes: Record<string, RawIndex>\n newTableName: string\n parentIsLocalized: boolean\n parentTableName: string\n relationships: Set<string>\n relationsToBuild: RelationMap\n rootRelationsToBuild?: RelationMap\n rootTableIDColType: IDType\n rootTableName: string\n setColumnID: SetColumnID\n uniqueRelationships: Set<string>\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 hasLocalizedField: boolean\n hasLocalizedManyNumberField: boolean\n hasLocalizedManyTextField: boolean\n hasLocalizedRelationshipField: boolean\n hasManyNumberField: 'index' | boolean\n hasManyTextField: 'index' | boolean\n}\n\nexport const traverseFields = ({\n adapter,\n blocksTableNameMap,\n columnPrefix,\n columns,\n disableNotNull,\n disableRelsTableUnique,\n disableUnique = false,\n fieldPrefix,\n fields,\n forceLocalized,\n indexes,\n localesColumns,\n localesIndexes,\n newTableName,\n parentIsLocalized,\n parentTableName,\n relationships,\n relationsToBuild,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n setColumnID,\n uniqueRelationships,\n versions,\n withinLocalizedArrayOrBlock,\n}: Args): Result => {\n const throwValidationError = true\n let hasLocalizedField = false\n let hasLocalizedRelationshipField = false\n let hasManyTextField: 'index' | boolean = false\n let hasLocalizedManyTextField = false\n let hasManyNumberField: 'index' | boolean = false\n let hasLocalizedManyNumberField = false\n\n let parentIDColType: IDType = 'integer'\n\n const idColumn = columns.id\n\n if (idColumn && ['numeric', 'text', 'uuid', 'varchar'].includes(idColumn.type)) {\n parentIDColType = idColumn.type as IDType\n }\n\n fields.forEach((field) => {\n if ('name' in field && field.name === 'id') {\n return\n }\n if (fieldIsVirtual(field)) {\n return\n }\n\n let targetTable = columns\n let targetIndexes = indexes\n\n const columnName = `${columnPrefix || ''}${field.name[0] === '_' ? '_' : ''}${toSnakeCase(\n field.name,\n )}`\n const fieldName = `${fieldPrefix?.replace('.', '_') || ''}${field.name}`\n\n const isFieldLocalized = fieldShouldBeLocalized({ field, parentIsLocalized })\n\n // If field is localized,\n // add the column to the locale table instead of main table\n if (\n adapter.payload.config.localization &&\n (isFieldLocalized || forceLocalized) &&\n field.type !== 'array' &&\n field.type !== 'blocks' &&\n (('hasMany' in field && field.hasMany !== true) || !('hasMany' in field))\n ) {\n hasLocalizedField = true\n targetTable = localesColumns\n targetIndexes = localesIndexes\n }\n\n if (\n (field.unique || field.index || ['relationship', 'upload'].includes(field.type)) &&\n !['array', 'blocks', 'group'].includes(field.type) &&\n !('hasMany' in field && field.hasMany === true) &&\n !('relationTo' in field && Array.isArray(field.relationTo))\n ) {\n const unique = disableUnique !== true && field.unique\n if (unique) {\n const constraintValue = `${fieldPrefix || ''}${field.name}`\n if (!adapter.fieldConstraints?.[rootTableName]) {\n adapter.fieldConstraints[rootTableName] = {}\n }\n adapter.fieldConstraints[rootTableName][`${columnName}_idx`] = constraintValue\n }\n\n const indexName = buildIndexName({ name: `${newTableName}_${columnName}`, adapter })\n\n targetIndexes[indexName] = {\n name: indexName,\n on: isFieldLocalized ? [fieldName, '_locale'] : fieldName,\n unique,\n }\n }\n\n switch (field.type) {\n case 'array': {\n const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull\n\n const arrayTableName = createTableName({\n adapter,\n config: field,\n parentTableName: newTableName,\n prefix: `${newTableName}_`,\n throwValidationError,\n versionsCustomName: versions,\n })\n\n const baseColumns: Record<string, RawColumn> = {\n _order: {\n name: '_order',\n type: 'integer',\n notNull: true,\n },\n _parentID: {\n name: '_parent_id',\n type: parentIDColType,\n notNull: true,\n },\n }\n\n const baseIndexes: Record<string, RawIndex> = {\n _orderIdx: {\n name: `${arrayTableName}_order_idx`,\n on: ['_order'],\n },\n _parentIDIdx: {\n name: `${arrayTableName}_parent_id_idx`,\n on: '_parentID',\n },\n }\n\n const baseForeignKeys: Record<string, RawForeignKey> = {\n _parentIDFk: {\n name: `${arrayTableName}_parent_id_fk`,\n columns: ['_parentID'],\n foreignColumns: [\n {\n name: 'id',\n table: parentTableName,\n },\n ],\n onDelete: 'cascade',\n },\n }\n\n const isLocalized =\n Boolean(isFieldLocalized && adapter.payload.config.localization) ||\n withinLocalizedArrayOrBlock ||\n forceLocalized\n\n if (isLocalized) {\n baseColumns._locale = {\n name: '_locale',\n type: 'enum',\n locale: true,\n notNull: true,\n }\n\n baseIndexes._localeIdx = {\n name: `${arrayTableName}_locale_idx`,\n on: '_locale',\n }\n }\n\n const {\n hasLocalizedManyNumberField: subHasLocalizedManyNumberField,\n hasLocalizedManyTextField: subHasLocalizedManyTextField,\n hasLocalizedRelationshipField: subHasLocalizedRelationshipField,\n hasManyNumberField: subHasManyNumberField,\n hasManyTextField: subHasManyTextField,\n relationsToBuild: subRelationsToBuild,\n } = buildTable({\n adapter,\n baseColumns,\n baseForeignKeys,\n baseIndexes,\n blocksTableNameMap,\n disableNotNull: disableNotNullFromHere,\n disableRelsTableUnique: true,\n disableUnique,\n fields: disableUnique ? idToUUID(field.flattenedFields) : field.flattenedFields,\n parentIsLocalized: parentIsLocalized || field.localized,\n rootRelationships: relationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n rootUniqueRelationships: uniqueRelationships,\n setColumnID,\n tableName: arrayTableName,\n versions,\n withinLocalizedArrayOrBlock: isLocalized,\n })\n\n if (subHasLocalizedManyNumberField) {\n hasLocalizedManyNumberField = subHasLocalizedManyNumberField\n }\n\n if (subHasLocalizedRelationshipField) {\n hasLocalizedRelationshipField = subHasLocalizedRelationshipField\n }\n\n if (subHasLocalizedManyTextField) {\n hasLocalizedManyTextField = subHasLocalizedManyTextField\n }\n\n if (subHasManyTextField) {\n if (!hasManyTextField || subHasManyTextField === 'index') {\n hasManyTextField = subHasManyTextField\n }\n }\n if (subHasManyNumberField) {\n if (!hasManyNumberField || subHasManyNumberField === 'index') {\n hasManyNumberField = subHasManyNumberField\n }\n }\n\n const relationName = getArrayRelationName({\n field,\n path: fieldName,\n tableName: arrayTableName,\n })\n\n relationsToBuild.set(relationName, {\n type: 'many',\n // arrays have their own localized table, independent of the base table.\n localized: false,\n target: arrayTableName,\n })\n\n const arrayRelations: Record<string, RawRelation> = {\n _parentID: {\n type: 'one',\n fields: [\n {\n name: '_parentID',\n table: arrayTableName,\n },\n ],\n references: ['id'],\n relationName,\n to: parentTableName,\n },\n }\n\n if (\n hasLocalesTable({\n fields: field.fields,\n parentIsLocalized: parentIsLocalized || field.localized,\n })\n ) {\n arrayRelations._locales = {\n type: 'many',\n relationName: '_locales',\n to: `${arrayTableName}${adapter.localesSuffix}`,\n }\n }\n\n subRelationsToBuild.forEach(({ type, localized, target }, key) => {\n if (type === 'one') {\n const arrayWithLocalized = localized\n ? `${arrayTableName}${adapter.localesSuffix}`\n : arrayTableName\n\n arrayRelations[key] = {\n type: 'one',\n fields: [\n {\n name: key,\n table: arrayWithLocalized,\n },\n ],\n references: ['id'],\n relationName: key,\n to: target,\n }\n }\n\n if (type === 'many') {\n arrayRelations[key] = {\n type: 'many',\n relationName: key,\n to: target,\n }\n }\n })\n\n adapter.rawRelations[arrayTableName] = arrayRelations\n\n break\n }\n case 'blocks': {\n const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull\n\n ;(field.blockReferences ?? field.blocks).forEach((_block) => {\n const block = typeof _block === 'string' ? adapter.payload.blocks[_block] : _block\n\n let blockTableName = createTableName({\n adapter,\n config: block,\n parentTableName: rootTableName,\n prefix: `${rootTableName}_blocks_`,\n throwValidationError,\n versionsCustomName: versions,\n })\n\n if (typeof blocksTableNameMap[blockTableName] === 'undefined') {\n blocksTableNameMap[blockTableName] = 1\n } else if (\n !validateExistingBlockIsIdentical({\n block,\n localized: field.localized,\n rootTableName,\n table: adapter.rawTables[blockTableName],\n tableLocales: adapter.rawTables[`${blockTableName}${adapter.localesSuffix}`],\n })\n ) {\n blocksTableNameMap[blockTableName]++\n setInternalBlockIndex(block, blocksTableNameMap[blockTableName])\n blockTableName = `${blockTableName}_${blocksTableNameMap[blockTableName]}`\n }\n let relationName = `_blocks_${block.slug}`\n if (typeof block[InternalBlockTableNameIndex] !== 'undefined') {\n relationName = `_blocks_${block.slug}_${block[InternalBlockTableNameIndex]}`\n }\n\n if (!adapter.rawTables[blockTableName]) {\n const baseColumns: Record<string, RawColumn> = {\n _order: {\n name: '_order',\n type: 'integer',\n notNull: true,\n },\n _parentID: {\n name: '_parent_id',\n type: rootTableIDColType,\n notNull: true,\n },\n _path: {\n name: '_path',\n type: 'text',\n notNull: true,\n },\n }\n\n const baseIndexes: Record<string, RawIndex> = {\n _orderIdx: {\n name: `${blockTableName}_order_idx`,\n on: '_order',\n },\n _parentIDIdx: {\n name: `${blockTableName}_parent_id_idx`,\n on: ['_parentID'],\n },\n _pathIdx: {\n name: `${blockTableName}_path_idx`,\n on: '_path',\n },\n }\n\n const baseForeignKeys: Record<string, RawForeignKey> = {\n _parentIdFk: {\n name: `${blockTableName}_parent_id_fk`,\n columns: ['_parentID'],\n foreignColumns: [\n {\n name: 'id',\n table: rootTableName,\n },\n ],\n onDelete: 'cascade',\n },\n }\n\n const isLocalized =\n Boolean(isFieldLocalized && adapter.payload.config.localization) ||\n withinLocalizedArrayOrBlock ||\n forceLocalized\n\n if (isLocalized) {\n baseColumns._locale = {\n name: '_locale',\n type: 'enum',\n locale: true,\n notNull: true,\n }\n\n baseIndexes._localeIdx = {\n name: `${blockTableName}_locale_idx`,\n on: '_locale',\n }\n }\n\n const {\n hasLocalizedManyNumberField: subHasLocalizedManyNumberField,\n hasLocalizedManyTextField: subHasLocalizedManyTextField,\n hasLocalizedRelationshipField: subHasLocalizedRelationshipField,\n hasManyNumberField: subHasManyNumberField,\n hasManyTextField: subHasManyTextField,\n relationsToBuild: subRelationsToBuild,\n } = buildTable({\n adapter,\n baseColumns,\n baseForeignKeys,\n baseIndexes,\n blocksTableNameMap,\n disableNotNull: disableNotNullFromHere,\n disableRelsTableUnique: true,\n disableUnique,\n fields: disableUnique ? idToUUID(block.flattenedFields) : block.flattenedFields,\n parentIsLocalized: parentIsLocalized || field.localized,\n rootRelationships: relationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n rootUniqueRelationships: uniqueRelationships,\n setColumnID,\n tableName: blockTableName,\n versions,\n withinLocalizedArrayOrBlock: isLocalized,\n })\n\n if (subHasLocalizedManyNumberField) {\n hasLocalizedManyNumberField = subHasLocalizedManyNumberField\n }\n\n if (subHasLocalizedRelationshipField) {\n hasLocalizedRelationshipField = subHasLocalizedRelationshipField\n }\n\n if (subHasLocalizedManyTextField) {\n hasLocalizedManyTextField = subHasLocalizedManyTextField\n }\n\n if (subHasManyTextField) {\n if (!hasManyTextField || subHasManyTextField === 'index') {\n hasManyTextField = subHasManyTextField\n }\n }\n\n if (subHasManyNumberField) {\n if (!hasManyNumberField || subHasManyNumberField === 'index') {\n hasManyNumberField = subHasManyNumberField\n }\n }\n\n const blockRelations: Record<string, RawRelation> = {\n _parentID: {\n type: 'one',\n fields: [\n {\n name: '_parentID',\n table: blockTableName,\n },\n ],\n references: ['id'],\n relationName,\n to: rootTableName,\n },\n }\n\n if (\n hasLocalesTable({\n fields: block.fields,\n parentIsLocalized: parentIsLocalized || field.localized,\n })\n ) {\n blockRelations._locales = {\n type: 'many',\n relationName: '_locales',\n to: `${blockTableName}${adapter.localesSuffix}`,\n }\n }\n\n subRelationsToBuild.forEach(({ type, localized, target }, key) => {\n if (type === 'one') {\n const blockWithLocalized = localized\n ? `${blockTableName}${adapter.localesSuffix}`\n : blockTableName\n\n blockRelations[key] = {\n type: 'one',\n fields: [\n {\n name: key,\n table: blockWithLocalized,\n },\n ],\n references: ['id'],\n relationName: key,\n to: target,\n }\n }\n\n if (type === 'many') {\n blockRelations[key] = {\n type: 'many',\n relationName: key,\n to: target,\n }\n }\n })\n\n adapter.rawRelations[blockTableName] = blockRelations\n }\n\n // blocks relationships are defined from the collection or globals table down to the block, bypassing any subBlocks\n rootRelationsToBuild.set(relationName, {\n type: 'many',\n // blocks are not localized on the parent table\n localized: false,\n target: blockTableName,\n })\n })\n\n break\n }\n case 'checkbox': {\n targetTable[fieldName] = withDefault(\n {\n name: columnName,\n type: 'boolean',\n },\n field,\n )\n\n break\n }\n\n case 'code':\n case 'email':\n case 'textarea': {\n targetTable[fieldName] = withDefault(\n {\n name: columnName,\n type: 'varchar',\n },\n field,\n )\n\n break\n }\n\n case 'date': {\n targetTable[fieldName] = withDefault(\n {\n name: columnName,\n type: 'timestamp',\n mode: 'string',\n precision: 3,\n withTimezone: true,\n },\n field,\n )\n\n break\n }\n\n case 'group':\n case 'tab': {\n const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull\n\n const {\n hasLocalizedField: groupHasLocalizedField,\n hasLocalizedManyNumberField: groupHasLocalizedManyNumberField,\n hasLocalizedManyTextField: groupHasLocalizedManyTextField,\n hasLocalizedRelationshipField: groupHasLocalizedRelationshipField,\n hasManyNumberField: groupHasManyNumberField,\n hasManyTextField: groupHasManyTextField,\n } = traverseFields({\n adapter,\n blocksTableNameMap,\n columnPrefix: `${columnName}_`,\n columns,\n disableNotNull: disableNotNullFromHere,\n disableUnique,\n fieldPrefix: `${fieldName}.`,\n fields: field.flattenedFields,\n forceLocalized: isFieldLocalized,\n indexes,\n localesColumns,\n localesIndexes,\n newTableName: `${parentTableName}_${columnName}`,\n parentIsLocalized: parentIsLocalized || field.localized,\n parentTableName,\n relationships,\n relationsToBuild,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n setColumnID,\n uniqueRelationships,\n versions,\n withinLocalizedArrayOrBlock: withinLocalizedArrayOrBlock || isFieldLocalized,\n })\n\n if (groupHasLocalizedField) {\n hasLocalizedField = true\n }\n if (groupHasLocalizedRelationshipField) {\n hasLocalizedRelationshipField = true\n }\n if (groupHasManyTextField) {\n hasManyTextField = true\n }\n if (groupHasLocalizedManyTextField) {\n hasLocalizedManyTextField = true\n }\n if (groupHasManyNumberField) {\n hasManyNumberField = true\n }\n if (groupHasLocalizedManyNumberField) {\n hasLocalizedManyNumberField = true\n }\n break\n }\n\n case 'json':\n case 'richText': {\n targetTable[fieldName] = withDefault(\n {\n name: columnName,\n type: 'jsonb',\n },\n field,\n )\n\n break\n }\n\n case 'number': {\n if (field.hasMany) {\n const isLocalized =\n Boolean(isFieldLocalized && adapter.payload.config.localization) ||\n withinLocalizedArrayOrBlock ||\n forceLocalized\n\n if (isLocalized) {\n hasLocalizedManyNumberField = true\n }\n\n if (field.index) {\n hasManyNumberField = 'index'\n } else if (!hasManyNumberField) {\n hasManyNumberField = true\n }\n\n if (field.unique) {\n throw new InvalidConfiguration(\n 'Unique is not supported in Postgres for hasMany number fields.',\n )\n }\n } else {\n targetTable[fieldName] = withDefault(\n {\n name: columnName,\n type: 'numeric',\n },\n field,\n )\n }\n\n break\n }\n\n case 'point': {\n targetTable[fieldName] = withDefault(\n {\n name: columnName,\n type: 'geometry',\n },\n field,\n )\n\n break\n }\n\n case 'radio':\n case 'select': {\n const enumName = createTableName({\n adapter,\n config: field,\n parentTableName: newTableName,\n prefix: `enum_${newTableName}_`,\n target: 'enumName',\n throwValidationError,\n })\n\n const options = field.options.map((option) => {\n if (optionIsObject(option)) {\n return option.value\n }\n\n return option\n })\n\n if (field.type === 'select' && field.hasMany) {\n const selectTableName = createTableName({\n adapter,\n config: field,\n parentTableName: newTableName,\n prefix: `${newTableName}_`,\n throwValidationError,\n versionsCustomName: versions,\n })\n\n const baseColumns: Record<string, RawColumn> = {\n order: {\n name: 'order',\n type: 'integer',\n notNull: true,\n },\n parent: {\n name: 'parent_id',\n type: parentIDColType,\n notNull: true,\n },\n value: {\n name: 'value',\n type: 'enum',\n enumName: createTableName({\n adapter,\n config: field,\n parentTableName: newTableName,\n prefix: `enum_${newTableName}_`,\n target: 'enumName',\n throwValidationError,\n }),\n options,\n },\n }\n\n const baseIndexes: Record<string, RawIndex> = {\n orderIdx: {\n name: `${selectTableName}_order_idx`,\n on: 'order',\n },\n parentIdx: {\n name: `${selectTableName}_parent_idx`,\n on: 'parent',\n },\n }\n\n const baseForeignKeys: Record<string, RawForeignKey> = {\n parentFk: {\n name: `${selectTableName}_parent_fk`,\n columns: ['parent'],\n foreignColumns: [\n {\n name: 'id',\n table: parentTableName,\n },\n ],\n onDelete: 'cascade',\n },\n }\n\n const isLocalized =\n Boolean(isFieldLocalized && adapter.payload.config.localization) ||\n withinLocalizedArrayOrBlock ||\n forceLocalized\n\n if (isLocalized) {\n baseColumns.locale = {\n name: 'locale',\n type: 'enum',\n locale: true,\n notNull: true,\n }\n\n baseIndexes.localeIdx = {\n name: `${selectTableName}_locale_idx`,\n on: 'locale',\n }\n }\n\n if (field.index) {\n baseIndexes.value = {\n name: `${selectTableName}_value_idx`,\n on: 'value',\n }\n }\n\n buildTable({\n adapter,\n baseColumns,\n baseForeignKeys,\n baseIndexes,\n blocksTableNameMap,\n disableNotNull,\n disableUnique,\n fields: [],\n parentIsLocalized: parentIsLocalized || field.localized,\n rootTableName,\n setColumnID,\n tableName: selectTableName,\n versions,\n })\n\n relationsToBuild.set(fieldName, {\n type: 'many',\n // selects have their own localized table, independent of the base table.\n localized: false,\n target: selectTableName,\n })\n\n adapter.rawRelations[selectTableName] = {\n parent: {\n type: 'one',\n fields: [\n {\n name: 'parent',\n table: selectTableName,\n },\n ],\n references: ['id'],\n relationName: fieldName,\n to: parentTableName,\n },\n }\n } else {\n targetTable[fieldName] = withDefault(\n {\n name: columnName,\n type: 'enum',\n enumName,\n options,\n },\n field,\n )\n }\n break\n }\n\n case 'relationship':\n case 'upload':\n if (Array.isArray(field.relationTo)) {\n field.relationTo.forEach((relation) => {\n relationships.add(relation)\n if (field.unique && !disableUnique && !disableRelsTableUnique) {\n uniqueRelationships.add(relation)\n }\n })\n } else if (field.hasMany) {\n relationships.add(field.relationTo)\n if (field.unique && !disableUnique && !disableRelsTableUnique) {\n uniqueRelationships.add(field.relationTo)\n }\n } else {\n // simple relationships get a column on the targetTable with a foreign key to the relationTo table\n const relationshipConfig = adapter.payload.collections[field.relationTo].config\n\n const tableName = adapter.tableNameMap.get(toSnakeCase(field.relationTo))\n\n // get the id type of the related collection\n let colType: IDType = adapter.idType === 'uuid' ? 'uuid' : 'integer'\n const relatedCollectionCustomID = relationshipConfig.fields.find(\n (field) => fieldAffectsData(field) && field.name === 'id',\n )\n if (relatedCollectionCustomID?.type === 'number') {\n colType = 'numeric'\n }\n if (relatedCollectionCustomID?.type === 'text') {\n colType = 'varchar'\n }\n\n // make the foreign key column for relationship using the correct id column type\n targetTable[fieldName] = {\n name: `${columnName}_id`,\n type: colType,\n reference: {\n name: 'id',\n onDelete: 'set null',\n table: tableName,\n },\n }\n\n // add relationship to table\n relationsToBuild.set(fieldName, {\n type: 'one',\n localized: adapter.payload.config.localization && (isFieldLocalized || forceLocalized),\n target: tableName,\n })\n\n // add notNull when not required\n if (!disableNotNull && field.required && !field.admin?.condition) {\n targetTable[fieldName].notNull = true\n }\n break\n }\n\n if (\n Boolean(isFieldLocalized && adapter.payload.config.localization) ||\n withinLocalizedArrayOrBlock\n ) {\n hasLocalizedRelationshipField = true\n }\n\n break\n\n case 'text': {\n if (field.hasMany) {\n const isLocalized =\n Boolean(isFieldLocalized && adapter.payload.config.localization) ||\n withinLocalizedArrayOrBlock ||\n forceLocalized\n\n if (isLocalized) {\n hasLocalizedManyTextField = true\n }\n\n if (field.index) {\n hasManyTextField = 'index'\n } else if (!hasManyTextField) {\n hasManyTextField = true\n }\n\n if (field.unique) {\n throw new InvalidConfiguration(\n 'Unique is not supported in Postgres for hasMany text fields.',\n )\n }\n } else {\n targetTable[fieldName] = withDefault(\n {\n name: columnName,\n type: 'varchar',\n },\n field,\n )\n }\n break\n }\n\n default:\n break\n }\n\n const condition = field.admin && field.admin.condition\n\n if (\n !disableNotNull &&\n targetTable[fieldName] &&\n 'required' in field &&\n field.required &&\n !condition\n ) {\n targetTable[fieldName].notNull = true\n }\n })\n\n return {\n hasLocalizedField,\n hasLocalizedManyNumberField,\n hasLocalizedManyTextField,\n hasLocalizedRelationshipField,\n hasManyNumberField,\n hasManyTextField,\n }\n}\n"],"names":["InvalidConfiguration","fieldAffectsData","fieldIsVirtual","fieldShouldBeLocalized","optionIsObject","toSnakeCase","createTableName","buildIndexName","getArrayRelationName","hasLocalesTable","InternalBlockTableNameIndex","setInternalBlockIndex","validateExistingBlockIsIdentical","buildTable","idToUUID","withDefault","traverseFields","adapter","blocksTableNameMap","columnPrefix","columns","disableNotNull","disableRelsTableUnique","disableUnique","fieldPrefix","fields","forceLocalized","indexes","localesColumns","localesIndexes","newTableName","parentIsLocalized","parentTableName","relationships","relationsToBuild","rootRelationsToBuild","rootTableIDColType","rootTableName","setColumnID","uniqueRelationships","versions","withinLocalizedArrayOrBlock","throwValidationError","hasLocalizedField","hasLocalizedRelationshipField","hasManyTextField","hasLocalizedManyTextField","hasManyNumberField","hasLocalizedManyNumberField","parentIDColType","idColumn","id","includes","type","forEach","field","name","targetTable","targetIndexes","columnName","fieldName","replace","isFieldLocalized","payload","config","localization","hasMany","unique","index","Array","isArray","relationTo","constraintValue","fieldConstraints","indexName","on","disableNotNullFromHere","Boolean","admin","condition","arrayTableName","prefix","versionsCustomName","baseColumns","_order","notNull","_parentID","baseIndexes","_orderIdx","_parentIDIdx","baseForeignKeys","_parentIDFk","foreignColumns","table","onDelete","isLocalized","_locale","locale","_localeIdx","subHasLocalizedManyNumberField","subHasLocalizedManyTextField","subHasLocalizedRelationshipField","subHasManyNumberField","subHasManyTextField","subRelationsToBuild","flattenedFields","localized","rootRelationships","rootUniqueRelationships","tableName","relationName","path","set","target","arrayRelations","references","to","_locales","localesSuffix","key","arrayWithLocalized","rawRelations","blockReferences","blocks","_block","block","blockTableName","rawTables","tableLocales","slug","_path","_pathIdx","_parentIdFk","blockRelations","blockWithLocalized","mode","precision","withTimezone","groupHasLocalizedField","groupHasLocalizedManyNumberField","groupHasLocalizedManyTextField","groupHasLocalizedRelationshipField","groupHasManyNumberField","groupHasManyTextField","enumName","options","map","option","value","selectTableName","order","parent","orderIdx","parentIdx","parentFk","localeIdx","relation","add","relationshipConfig","collections","tableNameMap","get","colType","idType","relatedCollectionCustomID","find","reference","required"],"mappings":"AAEA,SAASA,oBAAoB,QAAQ,UAAS;AAC9C,SACEC,gBAAgB,EAChBC,cAAc,EACdC,sBAAsB,EACtBC,cAAc,QACT,iBAAgB;AACvB,OAAOC,iBAAiB,gBAAe;AAavC,SAASC,eAAe,QAAQ,wBAAuB;AACvD,SAASC,cAAc,QAAQ,iCAAgC;AAC/D,SAASC,oBAAoB,QAAQ,uCAAsC;AAC3E,SAASC,eAAe,QAAQ,kCAAiC;AACjE,SACEC,2BAA2B,EAC3BC,qBAAqB,EACrBC,gCAAgC,QAC3B,mDAAkD;AACzD,SAASC,UAAU,QAAQ,aAAY;AACvC,SAASC,QAAQ,QAAQ,gBAAe;AACxC,SAASC,WAAW,QAAQ,mBAAkB;AA2C9C,OAAO,MAAMC,iBAAiB,CAAC,EAC7BC,OAAO,EACPC,kBAAkB,EAClBC,YAAY,EACZC,OAAO,EACPC,cAAc,EACdC,sBAAsB,EACtBC,gBAAgB,KAAK,EACrBC,WAAW,EACXC,MAAM,EACNC,cAAc,EACdC,OAAO,EACPC,cAAc,EACdC,cAAc,EACdC,YAAY,EACZC,iBAAiB,EACjBC,eAAe,EACfC,aAAa,EACbC,gBAAgB,EAChBC,oBAAoB,EACpBC,kBAAkB,EAClBC,aAAa,EACbC,WAAW,EACXC,mBAAmB,EACnBC,QAAQ,EACRC,2BAA2B,EACtB;IACL,MAAMC,uBAAuB;IAC7B,IAAIC,oBAAoB;IACxB,IAAIC,gCAAgC;IACpC,IAAIC,mBAAsC;IAC1C,IAAIC,4BAA4B;IAChC,IAAIC,qBAAwC;IAC5C,IAAIC,8BAA8B;IAElC,IAAIC,kBAA0B;IAE9B,MAAMC,WAAW9B,QAAQ+B,EAAE;IAE3B,IAAID,YAAY;QAAC;QAAW;QAAQ;QAAQ;KAAU,CAACE,QAAQ,CAACF,SAASG,IAAI,GAAG;QAC9EJ,kBAAkBC,SAASG,IAAI;IACjC;IAEA5B,OAAO6B,OAAO,CAAC,CAACC;QACd,IAAI,UAAUA,SAASA,MAAMC,IAAI,KAAK,MAAM;YAC1C;QACF;QACA,IAAItD,eAAeqD,QAAQ;YACzB;QACF;QAEA,IAAIE,cAAcrC;QAClB,IAAIsC,gBAAgB/B;QAEpB,MAAMgC,aAAa,GAAGxC,gBAAgB,KAAKoC,MAAMC,IAAI,CAAC,EAAE,KAAK,MAAM,MAAM,KAAKnD,YAC5EkD,MAAMC,IAAI,GACT;QACH,MAAMI,YAAY,GAAGpC,aAAaqC,QAAQ,KAAK,QAAQ,KAAKN,MAAMC,IAAI,EAAE;QAExE,MAAMM,mBAAmB3D,uBAAuB;YAAEoD;YAAOxB;QAAkB;QAE3E,yBAAyB;QACzB,2DAA2D;QAC3D,IACEd,QAAQ8C,OAAO,CAACC,MAAM,CAACC,YAAY,IAClCH,CAAAA,oBAAoBpC,cAAa,KAClC6B,MAAMF,IAAI,KAAK,WACfE,MAAMF,IAAI,KAAK,YACd,CAAA,AAAC,aAAaE,SAASA,MAAMW,OAAO,KAAK,QAAS,CAAE,CAAA,aAAaX,KAAI,CAAC,GACvE;YACAZ,oBAAoB;YACpBc,cAAc7B;YACd8B,gBAAgB7B;QAClB;QAEA,IACE,AAAC0B,CAAAA,MAAMY,MAAM,IAAIZ,MAAMa,KAAK,IAAI;YAAC;YAAgB;SAAS,CAAChB,QAAQ,CAACG,MAAMF,IAAI,CAAA,KAC9E,CAAC;YAAC;YAAS;YAAU;SAAQ,CAACD,QAAQ,CAACG,MAAMF,IAAI,KACjD,CAAE,CAAA,aAAaE,SAASA,MAAMW,OAAO,KAAK,IAAG,KAC7C,CAAE,CAAA,gBAAgBX,SAASc,MAAMC,OAAO,CAACf,MAAMgB,UAAU,CAAA,GACzD;YACA,MAAMJ,SAAS5C,kBAAkB,QAAQgC,MAAMY,MAAM;YACrD,IAAIA,QAAQ;gBACV,MAAMK,kBAAkB,GAAGhD,eAAe,KAAK+B,MAAMC,IAAI,EAAE;gBAC3D,IAAI,CAACvC,QAAQwD,gBAAgB,EAAE,CAACpC,cAAc,EAAE;oBAC9CpB,QAAQwD,gBAAgB,CAACpC,cAAc,GAAG,CAAC;gBAC7C;gBACApB,QAAQwD,gBAAgB,CAACpC,cAAc,CAAC,GAAGsB,WAAW,IAAI,CAAC,CAAC,GAAGa;YACjE;YAEA,MAAME,YAAYnE,eAAe;gBAAEiD,MAAM,GAAG1B,aAAa,CAAC,EAAE6B,YAAY;gBAAE1C;YAAQ;YAElFyC,aAAa,CAACgB,UAAU,GAAG;gBACzBlB,MAAMkB;gBACNC,IAAIb,mBAAmB;oBAACF;oBAAW;iBAAU,GAAGA;gBAChDO;YACF;QACF;QAEA,OAAQZ,MAAMF,IAAI;YAChB,KAAK;gBAAS;oBACZ,MAAMuB,yBAAyBC,QAAQtB,MAAMuB,KAAK,EAAEC,cAAc1D;oBAElE,MAAM2D,iBAAiB1E,gBAAgB;wBACrCW;wBACA+C,QAAQT;wBACRvB,iBAAiBF;wBACjBmD,QAAQ,GAAGnD,aAAa,CAAC,CAAC;wBAC1BY;wBACAwC,oBAAoB1C;oBACtB;oBAEA,MAAM2C,cAAyC;wBAC7CC,QAAQ;4BACN5B,MAAM;4BACNH,MAAM;4BACNgC,SAAS;wBACX;wBACAC,WAAW;4BACT9B,MAAM;4BACNH,MAAMJ;4BACNoC,SAAS;wBACX;oBACF;oBAEA,MAAME,cAAwC;wBAC5CC,WAAW;4BACThC,MAAM,GAAGwB,eAAe,UAAU,CAAC;4BACnCL,IAAI;gCAAC;6BAAS;wBAChB;wBACAc,cAAc;4BACZjC,MAAM,GAAGwB,eAAe,cAAc,CAAC;4BACvCL,IAAI;wBACN;oBACF;oBAEA,MAAMe,kBAAiD;wBACrDC,aAAa;4BACXnC,MAAM,GAAGwB,eAAe,aAAa,CAAC;4BACtC5D,SAAS;gCAAC;6BAAY;4BACtBwE,gBAAgB;gCACd;oCACEpC,MAAM;oCACNqC,OAAO7D;gCACT;6BACD;4BACD8D,UAAU;wBACZ;oBACF;oBAEA,MAAMC,cACJlB,QAAQf,oBAAoB7C,QAAQ8C,OAAO,CAACC,MAAM,CAACC,YAAY,KAC/DxB,+BACAf;oBAEF,IAAIqE,aAAa;wBACfZ,YAAYa,OAAO,GAAG;4BACpBxC,MAAM;4BACNH,MAAM;4BACN4C,QAAQ;4BACRZ,SAAS;wBACX;wBAEAE,YAAYW,UAAU,GAAG;4BACvB1C,MAAM,GAAGwB,eAAe,WAAW,CAAC;4BACpCL,IAAI;wBACN;oBACF;oBAEA,MAAM,EACJ3B,6BAA6BmD,8BAA8B,EAC3DrD,2BAA2BsD,4BAA4B,EACvDxD,+BAA+ByD,gCAAgC,EAC/DtD,oBAAoBuD,qBAAqB,EACzCzD,kBAAkB0D,mBAAmB,EACrCrE,kBAAkBsE,mBAAmB,EACtC,GAAG3F,WAAW;wBACbI;wBACAkE;wBACAO;wBACAH;wBACArE;wBACAG,gBAAgBuD;wBAChBtD,wBAAwB;wBACxBC;wBACAE,QAAQF,gBAAgBT,SAASyC,MAAMkD,eAAe,IAAIlD,MAAMkD,eAAe;wBAC/E1E,mBAAmBA,qBAAqBwB,MAAMmD,SAAS;wBACvDC,mBAAmB1E;wBACnBE;wBACAC;wBACAC;wBACAuE,yBAAyBrE;wBACzBD;wBACAuE,WAAW7B;wBACXxC;wBACAC,6BAA6BsD;oBAC/B;oBAEA,IAAII,gCAAgC;wBAClCnD,8BAA8BmD;oBAChC;oBAEA,IAAIE,kCAAkC;wBACpCzD,gCAAgCyD;oBAClC;oBAEA,IAAID,8BAA8B;wBAChCtD,4BAA4BsD;oBAC9B;oBAEA,IAAIG,qBAAqB;wBACvB,IAAI,CAAC1D,oBAAoB0D,wBAAwB,SAAS;4BACxD1D,mBAAmB0D;wBACrB;oBACF;oBACA,IAAID,uBAAuB;wBACzB,IAAI,CAACvD,sBAAsBuD,0BAA0B,SAAS;4BAC5DvD,qBAAqBuD;wBACvB;oBACF;oBAEA,MAAMQ,eAAetG,qBAAqB;wBACxC+C;wBACAwD,MAAMnD;wBACNiD,WAAW7B;oBACb;oBAEA9C,iBAAiB8E,GAAG,CAACF,cAAc;wBACjCzD,MAAM;wBACN,wEAAwE;wBACxEqD,WAAW;wBACXO,QAAQjC;oBACV;oBAEA,MAAMkC,iBAA8C;wBAClD5B,WAAW;4BACTjC,MAAM;4BACN5B,QAAQ;gCACN;oCACE+B,MAAM;oCACNqC,OAAOb;gCACT;6BACD;4BACDmC,YAAY;gCAAC;6BAAK;4BAClBL;4BACAM,IAAIpF;wBACN;oBACF;oBAEA,IACEvB,gBAAgB;wBACdgB,QAAQ8B,MAAM9B,MAAM;wBACpBM,mBAAmBA,qBAAqBwB,MAAMmD,SAAS;oBACzD,IACA;wBACAQ,eAAeG,QAAQ,GAAG;4BACxBhE,MAAM;4BACNyD,cAAc;4BACdM,IAAI,GAAGpC,iBAAiB/D,QAAQqG,aAAa,EAAE;wBACjD;oBACF;oBAEAd,oBAAoBlD,OAAO,CAAC,CAAC,EAAED,IAAI,EAAEqD,SAAS,EAAEO,MAAM,EAAE,EAAEM;wBACxD,IAAIlE,SAAS,OAAO;4BAClB,MAAMmE,qBAAqBd,YACvB,GAAG1B,iBAAiB/D,QAAQqG,aAAa,EAAE,GAC3CtC;4BAEJkC,cAAc,CAACK,IAAI,GAAG;gCACpBlE,MAAM;gCACN5B,QAAQ;oCACN;wCACE+B,MAAM+D;wCACN1B,OAAO2B;oCACT;iCACD;gCACDL,YAAY;oCAAC;iCAAK;gCAClBL,cAAcS;gCACdH,IAAIH;4BACN;wBACF;wBAEA,IAAI5D,SAAS,QAAQ;4BACnB6D,cAAc,CAACK,IAAI,GAAG;gCACpBlE,MAAM;gCACNyD,cAAcS;gCACdH,IAAIH;4BACN;wBACF;oBACF;oBAEAhG,QAAQwG,YAAY,CAACzC,eAAe,GAAGkC;oBAEvC;gBACF;YACA,KAAK;gBAAU;oBACb,MAAMtC,yBAAyBC,QAAQtB,MAAMuB,KAAK,EAAEC,cAAc1D;oBAEhEkC,CAAAA,MAAMmE,eAAe,IAAInE,MAAMoE,MAAM,AAAD,EAAGrE,OAAO,CAAC,CAACsE;wBAChD,MAAMC,QAAQ,OAAOD,WAAW,WAAW3G,QAAQ8C,OAAO,CAAC4D,MAAM,CAACC,OAAO,GAAGA;wBAE5E,IAAIE,iBAAiBxH,gBAAgB;4BACnCW;4BACA+C,QAAQ6D;4BACR7F,iBAAiBK;4BACjB4C,QAAQ,GAAG5C,cAAc,QAAQ,CAAC;4BAClCK;4BACAwC,oBAAoB1C;wBACtB;wBAEA,IAAI,OAAOtB,kBAAkB,CAAC4G,eAAe,KAAK,aAAa;4BAC7D5G,kBAAkB,CAAC4G,eAAe,GAAG;wBACvC,OAAO,IACL,CAAClH,iCAAiC;4BAChCiH;4BACAnB,WAAWnD,MAAMmD,SAAS;4BAC1BrE;4BACAwD,OAAO5E,QAAQ8G,SAAS,CAACD,eAAe;4BACxCE,cAAc/G,QAAQ8G,SAAS,CAAC,GAAGD,iBAAiB7G,QAAQqG,aAAa,EAAE,CAAC;wBAC9E,IACA;4BACApG,kBAAkB,CAAC4G,eAAe;4BAClCnH,sBAAsBkH,OAAO3G,kBAAkB,CAAC4G,eAAe;4BAC/DA,iBAAiB,GAAGA,eAAe,CAAC,EAAE5G,kBAAkB,CAAC4G,eAAe,EAAE;wBAC5E;wBACA,IAAIhB,eAAe,CAAC,QAAQ,EAAEe,MAAMI,IAAI,EAAE;wBAC1C,IAAI,OAAOJ,KAAK,CAACnH,4BAA4B,KAAK,aAAa;4BAC7DoG,eAAe,CAAC,QAAQ,EAAEe,MAAMI,IAAI,CAAC,CAAC,EAAEJ,KAAK,CAACnH,4BAA4B,EAAE;wBAC9E;wBAEA,IAAI,CAACO,QAAQ8G,SAAS,CAACD,eAAe,EAAE;4BACtC,MAAM3C,cAAyC;gCAC7CC,QAAQ;oCACN5B,MAAM;oCACNH,MAAM;oCACNgC,SAAS;gCACX;gCACAC,WAAW;oCACT9B,MAAM;oCACNH,MAAMjB;oCACNiD,SAAS;gCACX;gCACA6C,OAAO;oCACL1E,MAAM;oCACNH,MAAM;oCACNgC,SAAS;gCACX;4BACF;4BAEA,MAAME,cAAwC;gCAC5CC,WAAW;oCACThC,MAAM,GAAGsE,eAAe,UAAU,CAAC;oCACnCnD,IAAI;gCACN;gCACAc,cAAc;oCACZjC,MAAM,GAAGsE,eAAe,cAAc,CAAC;oCACvCnD,IAAI;wCAAC;qCAAY;gCACnB;gCACAwD,UAAU;oCACR3E,MAAM,GAAGsE,eAAe,SAAS,CAAC;oCAClCnD,IAAI;gCACN;4BACF;4BAEA,MAAMe,kBAAiD;gCACrD0C,aAAa;oCACX5E,MAAM,GAAGsE,eAAe,aAAa,CAAC;oCACtC1G,SAAS;wCAAC;qCAAY;oCACtBwE,gBAAgB;wCACd;4CACEpC,MAAM;4CACNqC,OAAOxD;wCACT;qCACD;oCACDyD,UAAU;gCACZ;4BACF;4BAEA,MAAMC,cACJlB,QAAQf,oBAAoB7C,QAAQ8C,OAAO,CAACC,MAAM,CAACC,YAAY,KAC/DxB,+BACAf;4BAEF,IAAIqE,aAAa;gCACfZ,YAAYa,OAAO,GAAG;oCACpBxC,MAAM;oCACNH,MAAM;oCACN4C,QAAQ;oCACRZ,SAAS;gCACX;gCAEAE,YAAYW,UAAU,GAAG;oCACvB1C,MAAM,GAAGsE,eAAe,WAAW,CAAC;oCACpCnD,IAAI;gCACN;4BACF;4BAEA,MAAM,EACJ3B,6BAA6BmD,8BAA8B,EAC3DrD,2BAA2BsD,4BAA4B,EACvDxD,+BAA+ByD,gCAAgC,EAC/DtD,oBAAoBuD,qBAAqB,EACzCzD,kBAAkB0D,mBAAmB,EACrCrE,kBAAkBsE,mBAAmB,EACtC,GAAG3F,WAAW;gCACbI;gCACAkE;gCACAO;gCACAH;gCACArE;gCACAG,gBAAgBuD;gCAChBtD,wBAAwB;gCACxBC;gCACAE,QAAQF,gBAAgBT,SAAS+G,MAAMpB,eAAe,IAAIoB,MAAMpB,eAAe;gCAC/E1E,mBAAmBA,qBAAqBwB,MAAMmD,SAAS;gCACvDC,mBAAmB1E;gCACnBE;gCACAC;gCACAC;gCACAuE,yBAAyBrE;gCACzBD;gCACAuE,WAAWiB;gCACXtF;gCACAC,6BAA6BsD;4BAC/B;4BAEA,IAAII,gCAAgC;gCAClCnD,8BAA8BmD;4BAChC;4BAEA,IAAIE,kCAAkC;gCACpCzD,gCAAgCyD;4BAClC;4BAEA,IAAID,8BAA8B;gCAChCtD,4BAA4BsD;4BAC9B;4BAEA,IAAIG,qBAAqB;gCACvB,IAAI,CAAC1D,oBAAoB0D,wBAAwB,SAAS;oCACxD1D,mBAAmB0D;gCACrB;4BACF;4BAEA,IAAID,uBAAuB;gCACzB,IAAI,CAACvD,sBAAsBuD,0BAA0B,SAAS;oCAC5DvD,qBAAqBuD;gCACvB;4BACF;4BAEA,MAAM+B,iBAA8C;gCAClD/C,WAAW;oCACTjC,MAAM;oCACN5B,QAAQ;wCACN;4CACE+B,MAAM;4CACNqC,OAAOiC;wCACT;qCACD;oCACDX,YAAY;wCAAC;qCAAK;oCAClBL;oCACAM,IAAI/E;gCACN;4BACF;4BAEA,IACE5B,gBAAgB;gCACdgB,QAAQoG,MAAMpG,MAAM;gCACpBM,mBAAmBA,qBAAqBwB,MAAMmD,SAAS;4BACzD,IACA;gCACA2B,eAAehB,QAAQ,GAAG;oCACxBhE,MAAM;oCACNyD,cAAc;oCACdM,IAAI,GAAGU,iBAAiB7G,QAAQqG,aAAa,EAAE;gCACjD;4BACF;4BAEAd,oBAAoBlD,OAAO,CAAC,CAAC,EAAED,IAAI,EAAEqD,SAAS,EAAEO,MAAM,EAAE,EAAEM;gCACxD,IAAIlE,SAAS,OAAO;oCAClB,MAAMiF,qBAAqB5B,YACvB,GAAGoB,iBAAiB7G,QAAQqG,aAAa,EAAE,GAC3CQ;oCAEJO,cAAc,CAACd,IAAI,GAAG;wCACpBlE,MAAM;wCACN5B,QAAQ;4CACN;gDACE+B,MAAM+D;gDACN1B,OAAOyC;4CACT;yCACD;wCACDnB,YAAY;4CAAC;yCAAK;wCAClBL,cAAcS;wCACdH,IAAIH;oCACN;gCACF;gCAEA,IAAI5D,SAAS,QAAQ;oCACnBgF,cAAc,CAACd,IAAI,GAAG;wCACpBlE,MAAM;wCACNyD,cAAcS;wCACdH,IAAIH;oCACN;gCACF;4BACF;4BAEAhG,QAAQwG,YAAY,CAACK,eAAe,GAAGO;wBACzC;wBAEA,mHAAmH;wBACnHlG,qBAAqB6E,GAAG,CAACF,cAAc;4BACrCzD,MAAM;4BACN,+CAA+C;4BAC/CqD,WAAW;4BACXO,QAAQa;wBACV;oBACF;oBAEA;gBACF;YACA,KAAK;gBAAY;oBACfrE,WAAW,CAACG,UAAU,GAAG7C,YACvB;wBACEyC,MAAMG;wBACNN,MAAM;oBACR,GACAE;oBAGF;gBACF;YAEA,KAAK;YACL,KAAK;YACL,KAAK;gBAAY;oBACfE,WAAW,CAACG,UAAU,GAAG7C,YACvB;wBACEyC,MAAMG;wBACNN,MAAM;oBACR,GACAE;oBAGF;gBACF;YAEA,KAAK;gBAAQ;oBACXE,WAAW,CAACG,UAAU,GAAG7C,YACvB;wBACEyC,MAAMG;wBACNN,MAAM;wBACNkF,MAAM;wBACNC,WAAW;wBACXC,cAAc;oBAChB,GACAlF;oBAGF;gBACF;YAEA,KAAK;YACL,KAAK;gBAAO;oBACV,MAAMqB,yBAAyBC,QAAQtB,MAAMuB,KAAK,EAAEC,cAAc1D;oBAElE,MAAM,EACJsB,mBAAmB+F,sBAAsB,EACzC1F,6BAA6B2F,gCAAgC,EAC7D7F,2BAA2B8F,8BAA8B,EACzDhG,+BAA+BiG,kCAAkC,EACjE9F,oBAAoB+F,uBAAuB,EAC3CjG,kBAAkBkG,qBAAqB,EACxC,GAAG/H,eAAe;wBACjBC;wBACAC;wBACAC,cAAc,GAAGwC,WAAW,CAAC,CAAC;wBAC9BvC;wBACAC,gBAAgBuD;wBAChBrD;wBACAC,aAAa,GAAGoC,UAAU,CAAC,CAAC;wBAC5BnC,QAAQ8B,MAAMkD,eAAe;wBAC7B/E,gBAAgBoC;wBAChBnC;wBACAC;wBACAC;wBACAC,cAAc,GAAGE,gBAAgB,CAAC,EAAE2B,YAAY;wBAChD5B,mBAAmBA,qBAAqBwB,MAAMmD,SAAS;wBACvD1E;wBACAC;wBACAC;wBACAC;wBACAC;wBACAC;wBACAC;wBACAC;wBACAC;wBACAC,6BAA6BA,+BAA+BqB;oBAC9D;oBAEA,IAAI4E,wBAAwB;wBAC1B/F,oBAAoB;oBACtB;oBACA,IAAIkG,oCAAoC;wBACtCjG,gCAAgC;oBAClC;oBACA,IAAImG,uBAAuB;wBACzBlG,mBAAmB;oBACrB;oBACA,IAAI+F,gCAAgC;wBAClC9F,4BAA4B;oBAC9B;oBACA,IAAIgG,yBAAyB;wBAC3B/F,qBAAqB;oBACvB;oBACA,IAAI4F,kCAAkC;wBACpC3F,8BAA8B;oBAChC;oBACA;gBACF;YAEA,KAAK;YACL,KAAK;gBAAY;oBACfS,WAAW,CAACG,UAAU,GAAG7C,YACvB;wBACEyC,MAAMG;wBACNN,MAAM;oBACR,GACAE;oBAGF;gBACF;YAEA,KAAK;gBAAU;oBACb,IAAIA,MAAMW,OAAO,EAAE;wBACjB,MAAM6B,cACJlB,QAAQf,oBAAoB7C,QAAQ8C,OAAO,CAACC,MAAM,CAACC,YAAY,KAC/DxB,+BACAf;wBAEF,IAAIqE,aAAa;4BACf/C,8BAA8B;wBAChC;wBAEA,IAAIO,MAAMa,KAAK,EAAE;4BACfrB,qBAAqB;wBACvB,OAAO,IAAI,CAACA,oBAAoB;4BAC9BA,qBAAqB;wBACvB;wBAEA,IAAIQ,MAAMY,MAAM,EAAE;4BAChB,MAAM,IAAInE,qBACR;wBAEJ;oBACF,OAAO;wBACLyD,WAAW,CAACG,UAAU,GAAG7C,YACvB;4BACEyC,MAAMG;4BACNN,MAAM;wBACR,GACAE;oBAEJ;oBAEA;gBACF;YAEA,KAAK;gBAAS;oBACZE,WAAW,CAACG,UAAU,GAAG7C,YACvB;wBACEyC,MAAMG;wBACNN,MAAM;oBACR,GACAE;oBAGF;gBACF;YAEA,KAAK;YACL,KAAK;gBAAU;oBACb,MAAMyF,WAAW1I,gBAAgB;wBAC/BW;wBACA+C,QAAQT;wBACRvB,iBAAiBF;wBACjBmD,QAAQ,CAAC,KAAK,EAAEnD,aAAa,CAAC,CAAC;wBAC/BmF,QAAQ;wBACRvE;oBACF;oBAEA,MAAMuG,UAAU1F,MAAM0F,OAAO,CAACC,GAAG,CAAC,CAACC;wBACjC,IAAI/I,eAAe+I,SAAS;4BAC1B,OAAOA,OAAOC,KAAK;wBACrB;wBAEA,OAAOD;oBACT;oBAEA,IAAI5F,MAAMF,IAAI,KAAK,YAAYE,MAAMW,OAAO,EAAE;wBAC5C,MAAMmF,kBAAkB/I,gBAAgB;4BACtCW;4BACA+C,QAAQT;4BACRvB,iBAAiBF;4BACjBmD,QAAQ,GAAGnD,aAAa,CAAC,CAAC;4BAC1BY;4BACAwC,oBAAoB1C;wBACtB;wBAEA,MAAM2C,cAAyC;4BAC7CmE,OAAO;gCACL9F,MAAM;gCACNH,MAAM;gCACNgC,SAAS;4BACX;4BACAkE,QAAQ;gCACN/F,MAAM;gCACNH,MAAMJ;gCACNoC,SAAS;4BACX;4BACA+D,OAAO;gCACL5F,MAAM;gCACNH,MAAM;gCACN2F,UAAU1I,gBAAgB;oCACxBW;oCACA+C,QAAQT;oCACRvB,iBAAiBF;oCACjBmD,QAAQ,CAAC,KAAK,EAAEnD,aAAa,CAAC,CAAC;oCAC/BmF,QAAQ;oCACRvE;gCACF;gCACAuG;4BACF;wBACF;wBAEA,MAAM1D,cAAwC;4BAC5CiE,UAAU;gCACRhG,MAAM,GAAG6F,gBAAgB,UAAU,CAAC;gCACpC1E,IAAI;4BACN;4BACA8E,WAAW;gCACTjG,MAAM,GAAG6F,gBAAgB,WAAW,CAAC;gCACrC1E,IAAI;4BACN;wBACF;wBAEA,MAAMe,kBAAiD;4BACrDgE,UAAU;gCACRlG,MAAM,GAAG6F,gBAAgB,UAAU,CAAC;gCACpCjI,SAAS;oCAAC;iCAAS;gCACnBwE,gBAAgB;oCACd;wCACEpC,MAAM;wCACNqC,OAAO7D;oCACT;iCACD;gCACD8D,UAAU;4BACZ;wBACF;wBAEA,MAAMC,cACJlB,QAAQf,oBAAoB7C,QAAQ8C,OAAO,CAACC,MAAM,CAACC,YAAY,KAC/DxB,+BACAf;wBAEF,IAAIqE,aAAa;4BACfZ,YAAYc,MAAM,GAAG;gCACnBzC,MAAM;gCACNH,MAAM;gCACN4C,QAAQ;gCACRZ,SAAS;4BACX;4BAEAE,YAAYoE,SAAS,GAAG;gCACtBnG,MAAM,GAAG6F,gBAAgB,WAAW,CAAC;gCACrC1E,IAAI;4BACN;wBACF;wBAEA,IAAIpB,MAAMa,KAAK,EAAE;4BACfmB,YAAY6D,KAAK,GAAG;gCAClB5F,MAAM,GAAG6F,gBAAgB,UAAU,CAAC;gCACpC1E,IAAI;4BACN;wBACF;wBAEA9D,WAAW;4BACTI;4BACAkE;4BACAO;4BACAH;4BACArE;4BACAG;4BACAE;4BACAE,QAAQ,EAAE;4BACVM,mBAAmBA,qBAAqBwB,MAAMmD,SAAS;4BACvDrE;4BACAC;4BACAuE,WAAWwC;4BACX7G;wBACF;wBAEAN,iBAAiB8E,GAAG,CAACpD,WAAW;4BAC9BP,MAAM;4BACN,yEAAyE;4BACzEqD,WAAW;4BACXO,QAAQoC;wBACV;wBAEApI,QAAQwG,YAAY,CAAC4B,gBAAgB,GAAG;4BACtCE,QAAQ;gCACNlG,MAAM;gCACN5B,QAAQ;oCACN;wCACE+B,MAAM;wCACNqC,OAAOwD;oCACT;iCACD;gCACDlC,YAAY;oCAAC;iCAAK;gCAClBL,cAAclD;gCACdwD,IAAIpF;4BACN;wBACF;oBACF,OAAO;wBACLyB,WAAW,CAACG,UAAU,GAAG7C,YACvB;4BACEyC,MAAMG;4BACNN,MAAM;4BACN2F;4BACAC;wBACF,GACA1F;oBAEJ;oBACA;gBACF;YAEA,KAAK;YACL,KAAK;gBACH,IAAIc,MAAMC,OAAO,CAACf,MAAMgB,UAAU,GAAG;oBACnChB,MAAMgB,UAAU,CAACjB,OAAO,CAAC,CAACsG;wBACxB3H,cAAc4H,GAAG,CAACD;wBAClB,IAAIrG,MAAMY,MAAM,IAAI,CAAC5C,iBAAiB,CAACD,wBAAwB;4BAC7DiB,oBAAoBsH,GAAG,CAACD;wBAC1B;oBACF;gBACF,OAAO,IAAIrG,MAAMW,OAAO,EAAE;oBACxBjC,cAAc4H,GAAG,CAACtG,MAAMgB,UAAU;oBAClC,IAAIhB,MAAMY,MAAM,IAAI,CAAC5C,iBAAiB,CAACD,wBAAwB;wBAC7DiB,oBAAoBsH,GAAG,CAACtG,MAAMgB,UAAU;oBAC1C;gBACF,OAAO;oBACL,kGAAkG;oBAClG,MAAMuF,qBAAqB7I,QAAQ8C,OAAO,CAACgG,WAAW,CAACxG,MAAMgB,UAAU,CAAC,CAACP,MAAM;oBAE/E,MAAM6C,YAAY5F,QAAQ+I,YAAY,CAACC,GAAG,CAAC5J,YAAYkD,MAAMgB,UAAU;oBAEvE,4CAA4C;oBAC5C,IAAI2F,UAAkBjJ,QAAQkJ,MAAM,KAAK,SAAS,SAAS;oBAC3D,MAAMC,4BAA4BN,mBAAmBrI,MAAM,CAAC4I,IAAI,CAC9D,CAAC9G,QAAUtD,iBAAiBsD,UAAUA,MAAMC,IAAI,KAAK;oBAEvD,IAAI4G,2BAA2B/G,SAAS,UAAU;wBAChD6G,UAAU;oBACZ;oBACA,IAAIE,2BAA2B/G,SAAS,QAAQ;wBAC9C6G,UAAU;oBACZ;oBAEA,gFAAgF;oBAChFzG,WAAW,CAACG,UAAU,GAAG;wBACvBJ,MAAM,GAAGG,WAAW,GAAG,CAAC;wBACxBN,MAAM6G;wBACNI,WAAW;4BACT9G,MAAM;4BACNsC,UAAU;4BACVD,OAAOgB;wBACT;oBACF;oBAEA,4BAA4B;oBAC5B3E,iBAAiB8E,GAAG,CAACpD,WAAW;wBAC9BP,MAAM;wBACNqD,WAAWzF,QAAQ8C,OAAO,CAACC,MAAM,CAACC,YAAY,IAAKH,CAAAA,oBAAoBpC,cAAa;wBACpFuF,QAAQJ;oBACV;oBAEA,gCAAgC;oBAChC,IAAI,CAACxF,kBAAkBkC,MAAMgH,QAAQ,IAAI,CAAChH,MAAMuB,KAAK,EAAEC,WAAW;wBAChEtB,WAAW,CAACG,UAAU,CAACyB,OAAO,GAAG;oBACnC;oBACA;gBACF;gBAEA,IACER,QAAQf,oBAAoB7C,QAAQ8C,OAAO,CAACC,MAAM,CAACC,YAAY,KAC/DxB,6BACA;oBACAG,gCAAgC;gBAClC;gBAEA;YAEF,KAAK;gBAAQ;oBACX,IAAIW,MAAMW,OAAO,EAAE;wBACjB,MAAM6B,cACJlB,QAAQf,oBAAoB7C,QAAQ8C,OAAO,CAACC,MAAM,CAACC,YAAY,KAC/DxB,+BACAf;wBAEF,IAAIqE,aAAa;4BACfjD,4BAA4B;wBAC9B;wBAEA,IAAIS,MAAMa,KAAK,EAAE;4BACfvB,mBAAmB;wBACrB,OAAO,IAAI,CAACA,kBAAkB;4BAC5BA,mBAAmB;wBACrB;wBAEA,IAAIU,MAAMY,MAAM,EAAE;4BAChB,MAAM,IAAInE,qBACR;wBAEJ;oBACF,OAAO;wBACLyD,WAAW,CAACG,UAAU,GAAG7C,YACvB;4BACEyC,MAAMG;4BACNN,MAAM;wBACR,GACAE;oBAEJ;oBACA;gBACF;YAEA;gBACE;QACJ;QAEA,MAAMwB,YAAYxB,MAAMuB,KAAK,IAAIvB,MAAMuB,KAAK,CAACC,SAAS;QAEtD,IACE,CAAC1D,kBACDoC,WAAW,CAACG,UAAU,IACtB,cAAcL,SACdA,MAAMgH,QAAQ,IACd,CAACxF,WACD;YACAtB,WAAW,CAACG,UAAU,CAACyB,OAAO,GAAG;QACnC;IACF;IAEA,OAAO;QACL1C;QACAK;QACAF;QACAF;QACAG;QACAF;IACF;AACF,EAAC"}
1
+ {"version":3,"sources":["../../src/schema/traverseFields.ts"],"sourcesContent":["import type { CompoundIndex, FlattenedField } from 'payload'\n\nimport { InvalidConfiguration } from 'payload'\nimport {\n array,\n fieldAffectsData,\n fieldIsVirtual,\n fieldShouldBeLocalized,\n optionIsObject,\n} from 'payload/shared'\nimport toSnakeCase from 'to-snake-case'\n\nimport type {\n DrizzleAdapter,\n IDType,\n RawColumn,\n RawForeignKey,\n RawIndex,\n RawRelation,\n RelationMap,\n SetColumnID,\n} from '../types.js'\n\nimport { createTableName } from '../createTableName.js'\nimport { buildIndexName } from '../utilities/buildIndexName.js'\nimport { getArrayRelationName } from '../utilities/getArrayRelationName.js'\nimport { hasLocalesTable } from '../utilities/hasLocalesTable.js'\nimport { validateExistingBlockIsIdentical } from '../utilities/validateExistingBlockIsIdentical.js'\nimport { buildTable } from './build.js'\nimport { idToUUID } from './idToUUID.js'\nimport { withDefault } from './withDefault.js'\n\ntype Args = {\n adapter: DrizzleAdapter\n columnPrefix?: string\n columns: Record<string, RawColumn>\n disableNotNull: boolean\n disableRelsTableUnique?: boolean\n disableUnique?: boolean\n fieldPrefix?: string\n fields: FlattenedField[]\n forceLocalized?: boolean\n indexes: Record<string, RawIndex>\n localesColumns: Record<string, RawColumn>\n localesIndexes: Record<string, RawIndex>\n newTableName: string\n parentIsLocalized: boolean\n parentTableName: string\n relationships: Set<string>\n relationsToBuild: RelationMap\n rootRelationsToBuild?: RelationMap\n rootTableIDColType: IDType\n rootTableName: string\n setColumnID: SetColumnID\n uniqueRelationships: Set<string>\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 hasLocalizedField: boolean\n hasLocalizedManyNumberField: boolean\n hasLocalizedManyTextField: boolean\n hasLocalizedRelationshipField: boolean\n hasManyNumberField: 'index' | boolean\n hasManyTextField: 'index' | boolean\n}\n\nexport const traverseFields = ({\n adapter,\n columnPrefix,\n columns,\n disableNotNull,\n disableRelsTableUnique,\n disableUnique = false,\n fieldPrefix,\n fields,\n forceLocalized,\n indexes,\n localesColumns,\n localesIndexes,\n newTableName,\n parentIsLocalized,\n parentTableName,\n relationships,\n relationsToBuild,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n setColumnID,\n uniqueRelationships,\n versions,\n withinLocalizedArrayOrBlock,\n}: Args): Result => {\n const throwValidationError = true\n let hasLocalizedField = false\n let hasLocalizedRelationshipField = false\n let hasManyTextField: 'index' | boolean = false\n let hasLocalizedManyTextField = false\n let hasManyNumberField: 'index' | boolean = false\n let hasLocalizedManyNumberField = false\n\n let parentIDColType: IDType = 'integer'\n\n const idColumn = columns.id\n\n if (idColumn && ['numeric', 'text', 'uuid', 'varchar'].includes(idColumn.type)) {\n parentIDColType = idColumn.type as IDType\n }\n\n fields.forEach((field) => {\n if ('name' in field && field.name === 'id') {\n return\n }\n if (fieldIsVirtual(field)) {\n return\n }\n\n let targetTable = columns\n let targetIndexes = indexes\n\n const columnName = `${columnPrefix || ''}${field.name[0] === '_' ? '_' : ''}${toSnakeCase(\n field.name,\n )}`\n const fieldName = `${fieldPrefix?.replace('.', '_') || ''}${field.name}`\n\n const isFieldLocalized = fieldShouldBeLocalized({ field, parentIsLocalized })\n\n // If field is localized,\n // add the column to the locale table instead of main table\n if (\n adapter.payload.config.localization &&\n (isFieldLocalized || forceLocalized) &&\n field.type !== 'array' &&\n field.type !== 'blocks' &&\n (('hasMany' in field && field.hasMany !== true) || !('hasMany' in field))\n ) {\n hasLocalizedField = true\n targetTable = localesColumns\n targetIndexes = localesIndexes\n }\n\n if (\n (field.unique || field.index || ['relationship', 'upload'].includes(field.type)) &&\n !['array', 'blocks', 'group'].includes(field.type) &&\n !('hasMany' in field && field.hasMany === true) &&\n !('relationTo' in field && Array.isArray(field.relationTo))\n ) {\n const unique = disableUnique !== true && field.unique\n if (unique) {\n const constraintValue = `${fieldPrefix || ''}${field.name}`\n if (!adapter.fieldConstraints?.[rootTableName]) {\n adapter.fieldConstraints[rootTableName] = {}\n }\n adapter.fieldConstraints[rootTableName][`${columnName}_idx`] = constraintValue\n }\n\n const indexName = buildIndexName({ name: `${newTableName}_${columnName}`, adapter })\n\n targetIndexes[indexName] = {\n name: indexName,\n on: isFieldLocalized ? [fieldName, '_locale'] : fieldName,\n unique,\n }\n }\n\n switch (field.type) {\n case 'array': {\n const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull\n\n const arrayTableName = createTableName({\n adapter,\n config: field,\n parentTableName: newTableName,\n prefix: `${newTableName}_`,\n throwValidationError,\n versionsCustomName: versions,\n })\n\n const baseColumns: Record<string, RawColumn> = {\n _order: {\n name: '_order',\n type: 'integer',\n notNull: true,\n },\n _parentID: {\n name: '_parent_id',\n type: parentIDColType,\n notNull: true,\n },\n }\n\n const baseIndexes: Record<string, RawIndex> = {\n _orderIdx: {\n name: `${arrayTableName}_order_idx`,\n on: ['_order'],\n },\n _parentIDIdx: {\n name: `${arrayTableName}_parent_id_idx`,\n on: '_parentID',\n },\n }\n\n const baseForeignKeys: Record<string, RawForeignKey> = {\n _parentIDFk: {\n name: `${arrayTableName}_parent_id_fk`,\n columns: ['_parentID'],\n foreignColumns: [\n {\n name: 'id',\n table: parentTableName,\n },\n ],\n onDelete: 'cascade',\n },\n }\n\n const isLocalized =\n Boolean(isFieldLocalized && adapter.payload.config.localization) ||\n withinLocalizedArrayOrBlock ||\n forceLocalized\n\n if (isLocalized) {\n baseColumns._locale = {\n name: '_locale',\n type: 'enum',\n locale: true,\n notNull: true,\n }\n\n baseIndexes._localeIdx = {\n name: `${arrayTableName}_locale_idx`,\n on: '_locale',\n }\n }\n\n const {\n hasLocalizedManyNumberField: subHasLocalizedManyNumberField,\n hasLocalizedManyTextField: subHasLocalizedManyTextField,\n hasLocalizedRelationshipField: subHasLocalizedRelationshipField,\n hasManyNumberField: subHasManyNumberField,\n hasManyTextField: subHasManyTextField,\n relationsToBuild: subRelationsToBuild,\n } = buildTable({\n adapter,\n baseColumns,\n baseForeignKeys,\n baseIndexes,\n disableNotNull: disableNotNullFromHere,\n disableRelsTableUnique: true,\n disableUnique,\n fields: disableUnique ? idToUUID(field.flattenedFields) : field.flattenedFields,\n parentIsLocalized: parentIsLocalized || field.localized,\n rootRelationships: relationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n rootUniqueRelationships: uniqueRelationships,\n setColumnID,\n tableName: arrayTableName,\n versions,\n withinLocalizedArrayOrBlock: isLocalized,\n })\n\n if (subHasLocalizedManyNumberField) {\n hasLocalizedManyNumberField = subHasLocalizedManyNumberField\n }\n\n if (subHasLocalizedRelationshipField) {\n hasLocalizedRelationshipField = subHasLocalizedRelationshipField\n }\n\n if (subHasLocalizedManyTextField) {\n hasLocalizedManyTextField = subHasLocalizedManyTextField\n }\n\n if (subHasManyTextField) {\n if (!hasManyTextField || subHasManyTextField === 'index') {\n hasManyTextField = subHasManyTextField\n }\n }\n if (subHasManyNumberField) {\n if (!hasManyNumberField || subHasManyNumberField === 'index') {\n hasManyNumberField = subHasManyNumberField\n }\n }\n\n const relationName = getArrayRelationName({\n field,\n path: fieldName,\n tableName: arrayTableName,\n })\n\n relationsToBuild.set(relationName, {\n type: 'many',\n // arrays have their own localized table, independent of the base table.\n localized: false,\n target: arrayTableName,\n })\n\n const arrayRelations: Record<string, RawRelation> = {\n _parentID: {\n type: 'one',\n fields: [\n {\n name: '_parentID',\n table: arrayTableName,\n },\n ],\n references: ['id'],\n relationName,\n to: parentTableName,\n },\n }\n\n if (\n hasLocalesTable({\n fields: field.fields,\n parentIsLocalized: parentIsLocalized || field.localized,\n })\n ) {\n arrayRelations._locales = {\n type: 'many',\n relationName: '_locales',\n to: `${arrayTableName}${adapter.localesSuffix}`,\n }\n }\n\n subRelationsToBuild.forEach(({ type, localized, target }, key) => {\n if (type === 'one') {\n const arrayWithLocalized = localized\n ? `${arrayTableName}${adapter.localesSuffix}`\n : arrayTableName\n\n arrayRelations[key] = {\n type: 'one',\n fields: [\n {\n name: key,\n table: arrayWithLocalized,\n },\n ],\n references: ['id'],\n relationName: key,\n to: target,\n }\n }\n\n if (type === 'many') {\n arrayRelations[key] = {\n type: 'many',\n relationName: key,\n to: target,\n }\n }\n })\n\n adapter.rawRelations[arrayTableName] = arrayRelations\n\n break\n }\n case 'blocks': {\n const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull\n\n ;(field.blockReferences ?? field.blocks).forEach((_block) => {\n const block = typeof _block === 'string' ? adapter.payload.blocks[_block] : _block\n\n const blockTableName = createTableName({\n adapter,\n config: block,\n parentTableName: rootTableName,\n prefix: `${rootTableName}_blocks_`,\n throwValidationError,\n versionsCustomName: versions,\n })\n if (!adapter.rawTables[blockTableName]) {\n const baseColumns: Record<string, RawColumn> = {\n _order: {\n name: '_order',\n type: 'integer',\n notNull: true,\n },\n _parentID: {\n name: '_parent_id',\n type: rootTableIDColType,\n notNull: true,\n },\n _path: {\n name: '_path',\n type: 'text',\n notNull: true,\n },\n }\n\n const baseIndexes: Record<string, RawIndex> = {\n _orderIdx: {\n name: `${blockTableName}_order_idx`,\n on: '_order',\n },\n _parentIDIdx: {\n name: `${blockTableName}_parent_id_idx`,\n on: ['_parentID'],\n },\n _pathIdx: {\n name: `${blockTableName}_path_idx`,\n on: '_path',\n },\n }\n\n const baseForeignKeys: Record<string, RawForeignKey> = {\n _parentIdFk: {\n name: `${blockTableName}_parent_id_fk`,\n columns: ['_parentID'],\n foreignColumns: [\n {\n name: 'id',\n table: rootTableName,\n },\n ],\n onDelete: 'cascade',\n },\n }\n\n const isLocalized =\n Boolean(isFieldLocalized && adapter.payload.config.localization) ||\n withinLocalizedArrayOrBlock ||\n forceLocalized\n\n if (isLocalized) {\n baseColumns._locale = {\n name: '_locale',\n type: 'enum',\n locale: true,\n notNull: true,\n }\n\n baseIndexes._localeIdx = {\n name: `${blockTableName}_locale_idx`,\n on: '_locale',\n }\n }\n\n const {\n hasLocalizedManyNumberField: subHasLocalizedManyNumberField,\n hasLocalizedManyTextField: subHasLocalizedManyTextField,\n hasLocalizedRelationshipField: subHasLocalizedRelationshipField,\n hasManyNumberField: subHasManyNumberField,\n hasManyTextField: subHasManyTextField,\n relationsToBuild: subRelationsToBuild,\n } = buildTable({\n adapter,\n baseColumns,\n baseForeignKeys,\n baseIndexes,\n disableNotNull: disableNotNullFromHere,\n disableRelsTableUnique: true,\n disableUnique,\n fields: disableUnique ? idToUUID(block.flattenedFields) : block.flattenedFields,\n parentIsLocalized: parentIsLocalized || field.localized,\n rootRelationships: relationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n rootUniqueRelationships: uniqueRelationships,\n setColumnID,\n tableName: blockTableName,\n versions,\n withinLocalizedArrayOrBlock: isLocalized,\n })\n\n if (subHasLocalizedManyNumberField) {\n hasLocalizedManyNumberField = subHasLocalizedManyNumberField\n }\n\n if (subHasLocalizedRelationshipField) {\n hasLocalizedRelationshipField = subHasLocalizedRelationshipField\n }\n\n if (subHasLocalizedManyTextField) {\n hasLocalizedManyTextField = subHasLocalizedManyTextField\n }\n\n if (subHasManyTextField) {\n if (!hasManyTextField || subHasManyTextField === 'index') {\n hasManyTextField = subHasManyTextField\n }\n }\n\n if (subHasManyNumberField) {\n if (!hasManyNumberField || subHasManyNumberField === 'index') {\n hasManyNumberField = subHasManyNumberField\n }\n }\n\n const blockRelations: Record<string, RawRelation> = {\n _parentID: {\n type: 'one',\n fields: [\n {\n name: '_parentID',\n table: blockTableName,\n },\n ],\n references: ['id'],\n relationName: `_blocks_${block.slug}`,\n to: rootTableName,\n },\n }\n\n if (\n hasLocalesTable({\n fields: block.fields,\n parentIsLocalized: parentIsLocalized || field.localized,\n })\n ) {\n blockRelations._locales = {\n type: 'many',\n relationName: '_locales',\n to: `${blockTableName}${adapter.localesSuffix}`,\n }\n }\n\n subRelationsToBuild.forEach(({ type, localized, target }, key) => {\n if (type === 'one') {\n const blockWithLocalized = localized\n ? `${blockTableName}${adapter.localesSuffix}`\n : blockTableName\n\n blockRelations[key] = {\n type: 'one',\n fields: [\n {\n name: key,\n table: blockWithLocalized,\n },\n ],\n references: ['id'],\n relationName: key,\n to: target,\n }\n }\n\n if (type === 'many') {\n blockRelations[key] = {\n type: 'many',\n relationName: key,\n to: target,\n }\n }\n })\n\n adapter.rawRelations[blockTableName] = blockRelations\n } else if (process.env.NODE_ENV !== 'production' && !versions) {\n validateExistingBlockIsIdentical({\n block,\n localized: field.localized,\n parentIsLocalized: parentIsLocalized || field.localized,\n rootTableName,\n table: adapter.rawTables[blockTableName],\n tableLocales: adapter.rawTables[`${blockTableName}${adapter.localesSuffix}`],\n })\n }\n // blocks relationships are defined from the collection or globals table down to the block, bypassing any subBlocks\n rootRelationsToBuild.set(`_blocks_${block.slug}`, {\n type: 'many',\n // blocks are not localized on the parent table\n localized: false,\n target: blockTableName,\n })\n })\n\n break\n }\n case 'checkbox': {\n targetTable[fieldName] = withDefault(\n {\n name: columnName,\n type: 'boolean',\n },\n field,\n )\n\n break\n }\n\n case 'code':\n case 'email':\n case 'textarea': {\n targetTable[fieldName] = withDefault(\n {\n name: columnName,\n type: 'varchar',\n },\n field,\n )\n\n break\n }\n\n case 'date': {\n targetTable[fieldName] = withDefault(\n {\n name: columnName,\n type: 'timestamp',\n mode: 'string',\n precision: 3,\n withTimezone: true,\n },\n field,\n )\n\n break\n }\n\n case 'group':\n case 'tab': {\n const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull\n\n const {\n hasLocalizedField: groupHasLocalizedField,\n hasLocalizedManyNumberField: groupHasLocalizedManyNumberField,\n hasLocalizedManyTextField: groupHasLocalizedManyTextField,\n hasLocalizedRelationshipField: groupHasLocalizedRelationshipField,\n hasManyNumberField: groupHasManyNumberField,\n hasManyTextField: groupHasManyTextField,\n } = traverseFields({\n adapter,\n columnPrefix: `${columnName}_`,\n columns,\n disableNotNull: disableNotNullFromHere,\n disableUnique,\n fieldPrefix: `${fieldName}.`,\n fields: field.flattenedFields,\n forceLocalized: isFieldLocalized,\n indexes,\n localesColumns,\n localesIndexes,\n newTableName: `${parentTableName}_${columnName}`,\n parentIsLocalized: parentIsLocalized || field.localized,\n parentTableName,\n relationships,\n relationsToBuild,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n setColumnID,\n uniqueRelationships,\n versions,\n withinLocalizedArrayOrBlock: withinLocalizedArrayOrBlock || isFieldLocalized,\n })\n\n if (groupHasLocalizedField) {\n hasLocalizedField = true\n }\n if (groupHasLocalizedRelationshipField) {\n hasLocalizedRelationshipField = true\n }\n if (groupHasManyTextField) {\n hasManyTextField = true\n }\n if (groupHasLocalizedManyTextField) {\n hasLocalizedManyTextField = true\n }\n if (groupHasManyNumberField) {\n hasManyNumberField = true\n }\n if (groupHasLocalizedManyNumberField) {\n hasLocalizedManyNumberField = true\n }\n break\n }\n\n case 'json':\n case 'richText': {\n targetTable[fieldName] = withDefault(\n {\n name: columnName,\n type: 'jsonb',\n },\n field,\n )\n\n break\n }\n\n case 'number': {\n if (field.hasMany) {\n const isLocalized =\n Boolean(isFieldLocalized && adapter.payload.config.localization) ||\n withinLocalizedArrayOrBlock ||\n forceLocalized\n\n if (isLocalized) {\n hasLocalizedManyNumberField = true\n }\n\n if (field.index) {\n hasManyNumberField = 'index'\n } else if (!hasManyNumberField) {\n hasManyNumberField = true\n }\n\n if (field.unique) {\n throw new InvalidConfiguration(\n 'Unique is not supported in Postgres for hasMany number fields.',\n )\n }\n } else {\n targetTable[fieldName] = withDefault(\n {\n name: columnName,\n type: 'numeric',\n },\n field,\n )\n }\n\n break\n }\n\n case 'point': {\n targetTable[fieldName] = withDefault(\n {\n name: columnName,\n type: 'geometry',\n },\n field,\n )\n\n break\n }\n\n case 'radio':\n case 'select': {\n const enumName = createTableName({\n adapter,\n config: field,\n parentTableName: newTableName,\n prefix: `enum_${newTableName}_`,\n target: 'enumName',\n throwValidationError,\n })\n\n const options = field.options.map((option) => {\n if (optionIsObject(option)) {\n return option.value\n }\n\n return option\n })\n\n if (field.type === 'select' && field.hasMany) {\n const selectTableName = createTableName({\n adapter,\n config: field,\n parentTableName: newTableName,\n prefix: `${newTableName}_`,\n throwValidationError,\n versionsCustomName: versions,\n })\n\n const baseColumns: Record<string, RawColumn> = {\n order: {\n name: 'order',\n type: 'integer',\n notNull: true,\n },\n parent: {\n name: 'parent_id',\n type: parentIDColType,\n notNull: true,\n },\n value: {\n name: 'value',\n type: 'enum',\n enumName: createTableName({\n adapter,\n config: field,\n parentTableName: newTableName,\n prefix: `enum_${newTableName}_`,\n target: 'enumName',\n throwValidationError,\n }),\n options,\n },\n }\n\n const baseIndexes: Record<string, RawIndex> = {\n orderIdx: {\n name: `${selectTableName}_order_idx`,\n on: 'order',\n },\n parentIdx: {\n name: `${selectTableName}_parent_idx`,\n on: 'parent',\n },\n }\n\n const baseForeignKeys: Record<string, RawForeignKey> = {\n parentFk: {\n name: `${selectTableName}_parent_fk`,\n columns: ['parent'],\n foreignColumns: [\n {\n name: 'id',\n table: parentTableName,\n },\n ],\n onDelete: 'cascade',\n },\n }\n\n const isLocalized =\n Boolean(isFieldLocalized && adapter.payload.config.localization) ||\n withinLocalizedArrayOrBlock ||\n forceLocalized\n\n if (isLocalized) {\n baseColumns.locale = {\n name: 'locale',\n type: 'enum',\n locale: true,\n notNull: true,\n }\n\n baseIndexes.localeIdx = {\n name: `${selectTableName}_locale_idx`,\n on: 'locale',\n }\n }\n\n if (field.index) {\n baseIndexes.value = {\n name: `${selectTableName}_value_idx`,\n on: 'value',\n }\n }\n\n buildTable({\n adapter,\n baseColumns,\n baseForeignKeys,\n baseIndexes,\n disableNotNull,\n disableUnique,\n fields: [],\n parentIsLocalized: parentIsLocalized || field.localized,\n rootTableName,\n setColumnID,\n tableName: selectTableName,\n versions,\n })\n\n relationsToBuild.set(fieldName, {\n type: 'many',\n // selects have their own localized table, independent of the base table.\n localized: false,\n target: selectTableName,\n })\n\n adapter.rawRelations[selectTableName] = {\n parent: {\n type: 'one',\n fields: [\n {\n name: 'parent',\n table: selectTableName,\n },\n ],\n references: ['id'],\n relationName: fieldName,\n to: parentTableName,\n },\n }\n } else {\n targetTable[fieldName] = withDefault(\n {\n name: columnName,\n type: 'enum',\n enumName,\n options,\n },\n field,\n )\n }\n break\n }\n\n case 'relationship':\n case 'upload':\n if (Array.isArray(field.relationTo)) {\n field.relationTo.forEach((relation) => {\n relationships.add(relation)\n if (field.unique && !disableUnique && !disableRelsTableUnique) {\n uniqueRelationships.add(relation)\n }\n })\n } else if (field.hasMany) {\n relationships.add(field.relationTo)\n if (field.unique && !disableUnique && !disableRelsTableUnique) {\n uniqueRelationships.add(field.relationTo)\n }\n } else {\n // simple relationships get a column on the targetTable with a foreign key to the relationTo table\n const relationshipConfig = adapter.payload.collections[field.relationTo].config\n\n const tableName = adapter.tableNameMap.get(toSnakeCase(field.relationTo))\n\n // get the id type of the related collection\n let colType: IDType = adapter.idType === 'uuid' ? 'uuid' : 'integer'\n const relatedCollectionCustomID = relationshipConfig.fields.find(\n (field) => fieldAffectsData(field) && field.name === 'id',\n )\n if (relatedCollectionCustomID?.type === 'number') {\n colType = 'numeric'\n }\n if (relatedCollectionCustomID?.type === 'text') {\n colType = 'varchar'\n }\n\n // make the foreign key column for relationship using the correct id column type\n targetTable[fieldName] = {\n name: `${columnName}_id`,\n type: colType,\n reference: {\n name: 'id',\n onDelete: 'set null',\n table: tableName,\n },\n }\n\n // add relationship to table\n relationsToBuild.set(fieldName, {\n type: 'one',\n localized: adapter.payload.config.localization && (isFieldLocalized || forceLocalized),\n target: tableName,\n })\n\n // add notNull when not required\n if (!disableNotNull && field.required && !field.admin?.condition) {\n targetTable[fieldName].notNull = true\n }\n break\n }\n\n if (\n Boolean(isFieldLocalized && adapter.payload.config.localization) ||\n withinLocalizedArrayOrBlock\n ) {\n hasLocalizedRelationshipField = true\n }\n\n break\n\n case 'text': {\n if (field.hasMany) {\n const isLocalized =\n Boolean(isFieldLocalized && adapter.payload.config.localization) ||\n withinLocalizedArrayOrBlock ||\n forceLocalized\n\n if (isLocalized) {\n hasLocalizedManyTextField = true\n }\n\n if (field.index) {\n hasManyTextField = 'index'\n } else if (!hasManyTextField) {\n hasManyTextField = true\n }\n\n if (field.unique) {\n throw new InvalidConfiguration(\n 'Unique is not supported in Postgres for hasMany text fields.',\n )\n }\n } else {\n targetTable[fieldName] = withDefault(\n {\n name: columnName,\n type: 'varchar',\n },\n field,\n )\n }\n break\n }\n\n default:\n break\n }\n\n const condition = field.admin && field.admin.condition\n\n if (\n !disableNotNull &&\n targetTable[fieldName] &&\n 'required' in field &&\n field.required &&\n !condition\n ) {\n targetTable[fieldName].notNull = true\n }\n })\n\n return {\n hasLocalizedField,\n hasLocalizedManyNumberField,\n hasLocalizedManyTextField,\n hasLocalizedRelationshipField,\n hasManyNumberField,\n hasManyTextField,\n }\n}\n"],"names":["InvalidConfiguration","fieldAffectsData","fieldIsVirtual","fieldShouldBeLocalized","optionIsObject","toSnakeCase","createTableName","buildIndexName","getArrayRelationName","hasLocalesTable","validateExistingBlockIsIdentical","buildTable","idToUUID","withDefault","traverseFields","adapter","columnPrefix","columns","disableNotNull","disableRelsTableUnique","disableUnique","fieldPrefix","fields","forceLocalized","indexes","localesColumns","localesIndexes","newTableName","parentIsLocalized","parentTableName","relationships","relationsToBuild","rootRelationsToBuild","rootTableIDColType","rootTableName","setColumnID","uniqueRelationships","versions","withinLocalizedArrayOrBlock","throwValidationError","hasLocalizedField","hasLocalizedRelationshipField","hasManyTextField","hasLocalizedManyTextField","hasManyNumberField","hasLocalizedManyNumberField","parentIDColType","idColumn","id","includes","type","forEach","field","name","targetTable","targetIndexes","columnName","fieldName","replace","isFieldLocalized","payload","config","localization","hasMany","unique","index","Array","isArray","relationTo","constraintValue","fieldConstraints","indexName","on","disableNotNullFromHere","Boolean","admin","condition","arrayTableName","prefix","versionsCustomName","baseColumns","_order","notNull","_parentID","baseIndexes","_orderIdx","_parentIDIdx","baseForeignKeys","_parentIDFk","foreignColumns","table","onDelete","isLocalized","_locale","locale","_localeIdx","subHasLocalizedManyNumberField","subHasLocalizedManyTextField","subHasLocalizedRelationshipField","subHasManyNumberField","subHasManyTextField","subRelationsToBuild","flattenedFields","localized","rootRelationships","rootUniqueRelationships","tableName","relationName","path","set","target","arrayRelations","references","to","_locales","localesSuffix","key","arrayWithLocalized","rawRelations","blockReferences","blocks","_block","block","blockTableName","rawTables","_path","_pathIdx","_parentIdFk","blockRelations","slug","blockWithLocalized","process","env","NODE_ENV","tableLocales","mode","precision","withTimezone","groupHasLocalizedField","groupHasLocalizedManyNumberField","groupHasLocalizedManyTextField","groupHasLocalizedRelationshipField","groupHasManyNumberField","groupHasManyTextField","enumName","options","map","option","value","selectTableName","order","parent","orderIdx","parentIdx","parentFk","localeIdx","relation","add","relationshipConfig","collections","tableNameMap","get","colType","idType","relatedCollectionCustomID","find","reference","required"],"mappings":"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"}
@@ -8,7 +8,7 @@ export const commitTransaction = async function commitTransaction(id) {
8
8
  }
9
9
  try {
10
10
  await this.sessions[id].resolve();
11
- } catch (_) {
11
+ } catch (err) {
12
12
  await this.sessions[id].reject();
13
13
  }
14
14
  delete this.sessions[id];
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/transactions/commitTransaction.ts"],"sourcesContent":["import type { CommitTransaction } from 'payload'\n\nexport const commitTransaction: CommitTransaction = async function commitTransaction(id) {\n if (id instanceof Promise) {\n return\n }\n\n // if the session was deleted it has already been aborted\n if (!this.sessions[id]) {\n return\n }\n\n try {\n await this.sessions[id].resolve()\n } catch (_) {\n await this.sessions[id].reject()\n }\n\n delete this.sessions[id]\n}\n"],"names":["commitTransaction","id","Promise","sessions","resolve","_","reject"],"mappings":"AAEA,OAAO,MAAMA,oBAAuC,eAAeA,kBAAkBC,EAAE;IACrF,IAAIA,cAAcC,SAAS;QACzB;IACF;IAEA,yDAAyD;IACzD,IAAI,CAAC,IAAI,CAACC,QAAQ,CAACF,GAAG,EAAE;QACtB;IACF;IAEA,IAAI;QACF,MAAM,IAAI,CAACE,QAAQ,CAACF,GAAG,CAACG,OAAO;IACjC,EAAE,OAAOC,GAAG;QACV,MAAM,IAAI,CAACF,QAAQ,CAACF,GAAG,CAACK,MAAM;IAChC;IAEA,OAAO,IAAI,CAACH,QAAQ,CAACF,GAAG;AAC1B,EAAC"}
1
+ {"version":3,"sources":["../../src/transactions/commitTransaction.ts"],"sourcesContent":["import type { CommitTransaction } from 'payload'\n\nexport const commitTransaction: CommitTransaction = async function commitTransaction(id) {\n if (id instanceof Promise) {\n return\n }\n\n // if the session was deleted it has already been aborted\n if (!this.sessions[id]) {\n return\n }\n\n try {\n await this.sessions[id].resolve()\n } catch (err: unknown) {\n await this.sessions[id].reject()\n }\n\n delete this.sessions[id]\n}\n"],"names":["commitTransaction","id","Promise","sessions","resolve","err","reject"],"mappings":"AAEA,OAAO,MAAMA,oBAAuC,eAAeA,kBAAkBC,EAAE;IACrF,IAAIA,cAAcC,SAAS;QACzB;IACF;IAEA,yDAAyD;IACzD,IAAI,CAAC,IAAI,CAACC,QAAQ,CAACF,GAAG,EAAE;QACtB;IACF;IAEA,IAAI;QACF,MAAM,IAAI,CAACE,QAAQ,CAACF,GAAG,CAACG,OAAO;IACjC,EAAE,OAAOC,KAAc;QACrB,MAAM,IAAI,CAACF,QAAQ,CAACF,GAAG,CAACK,MAAM;IAChC;IAEA,OAAO,IAAI,CAACH,QAAQ,CAACF,GAAG;AAC1B,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transform/read/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAErF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAMpD,KAAK,aAAa,GAAG;IACnB,OAAO,EAAE,cAAc,CAAA;IACvB,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,cAAc,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IAC/B,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAID,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,+EAQrE,aAAa,KAAG,CAiDlB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/transform/read/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAErF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAMpD,KAAK,aAAa,GAAG;IACnB,OAAO,EAAE,cAAc,CAAA;IACvB,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,cAAc,CAAC,EAAE,KAAK,GAAG,MAAM,CAAA;IAC/B,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAID,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,+EAQrE,aAAa,KAAG,CAgDlB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/transform/read/index.ts"],"sourcesContent":["import type { FlattenedField, JoinQuery, SanitizedConfig, TypeWithID } from 'payload'\n\nimport type { DrizzleAdapter } from '../../types.js'\n\nimport { createBlocksMap } from '../../utilities/createBlocksMap.js'\nimport { createPathMap } from '../../utilities/createRelationshipMap.js'\nimport { traverseFields } from './traverseFields.js'\n\ntype TransformArgs = {\n adapter: DrizzleAdapter\n config: SanitizedConfig\n data: Record<string, unknown>\n fallbackLocale?: false | string\n fields: FlattenedField[]\n joinQuery?: JoinQuery\n locale?: string\n parentIsLocalized?: boolean\n tableName: string\n}\n\n// This is the entry point to transform Drizzle output data\n// into the shape Payload expects based on field schema\nexport const transform = <T extends Record<string, unknown> | TypeWithID>({\n adapter,\n config,\n data,\n fields,\n joinQuery,\n parentIsLocalized,\n tableName,\n}: TransformArgs): T => {\n let relationships: Record<string, Record<string, unknown>[]> = {}\n let texts: Record<string, Record<string, unknown>[]> = {}\n let numbers: Record<string, Record<string, unknown>[]> = {}\n\n if ('_rels' in data) {\n relationships = createPathMap(data._rels)\n delete data._rels\n }\n\n if ('_texts' in data) {\n texts = createPathMap(data._texts)\n delete data._texts\n }\n\n if ('_numbers' in data) {\n numbers = createPathMap(data._numbers)\n delete data._numbers\n }\n\n const blocks = createBlocksMap(data)\n\n const deletions = []\n\n const result = traverseFields<T>({\n adapter,\n blocks,\n config,\n currentTableName: tableName,\n dataRef: {\n id: data.id,\n },\n deletions,\n fieldPrefix: '',\n fields,\n joinQuery,\n numbers,\n parentIsLocalized,\n path: '',\n relationships,\n table: data,\n tablePath: '',\n texts,\n topLevelTableName: tableName,\n })\n\n deletions.forEach((deletion) => deletion())\n\n return result\n}\n"],"names":["createBlocksMap","createPathMap","traverseFields","transform","adapter","config","data","fields","joinQuery","parentIsLocalized","tableName","relationships","texts","numbers","_rels","_texts","_numbers","blocks","deletions","result","currentTableName","dataRef","id","fieldPrefix","path","table","tablePath","topLevelTableName","forEach","deletion"],"mappings":"AAIA,SAASA,eAAe,QAAQ,qCAAoC;AACpE,SAASC,aAAa,QAAQ,2CAA0C;AACxE,SAASC,cAAc,QAAQ,sBAAqB;AAcpD,2DAA2D;AAC3D,uDAAuD;AACvD,OAAO,MAAMC,YAAY,CAAiD,EACxEC,OAAO,EACPC,MAAM,EACNC,IAAI,EACJC,MAAM,EACNC,SAAS,EACTC,iBAAiB,EACjBC,SAAS,EACK;IACd,IAAIC,gBAA2D,CAAC;IAChE,IAAIC,QAAmD,CAAC;IACxD,IAAIC,UAAqD,CAAC;IAE1D,IAAI,WAAWP,MAAM;QACnBK,gBAAgBV,cAAcK,KAAKQ,KAAK;QACxC,OAAOR,KAAKQ,KAAK;IACnB;IAEA,IAAI,YAAYR,MAAM;QACpBM,QAAQX,cAAcK,KAAKS,MAAM;QACjC,OAAOT,KAAKS,MAAM;IACpB;IAEA,IAAI,cAAcT,MAAM;QACtBO,UAAUZ,cAAcK,KAAKU,QAAQ;QACrC,OAAOV,KAAKU,QAAQ;IACtB;IAEA,MAAMC,SAASjB,gBAAgBM;IAE/B,MAAMY,YAAY,EAAE;IAEpB,MAAMC,SAASjB,eAAkB;QAC/BE;QACAa;QACAZ;QACAe,kBAAkBV;QAClBW,SAAS;YACPC,IAAIhB,KAAKgB,EAAE;QACb;QACAJ;QACAK,aAAa;QACbhB;QACAC;QACAK;QACAJ;QACAe,MAAM;QACNb;QACAc,OAAOnB;QACPoB,WAAW;QACXd;QACAe,mBAAmBjB;IACrB;IAEAQ,UAAUU,OAAO,CAAC,CAACC,WAAaA;IAEhC,OAAOV;AACT,EAAC"}
1
+ {"version":3,"sources":["../../../src/transform/read/index.ts"],"sourcesContent":["import type { FlattenedField, JoinQuery, SanitizedConfig, TypeWithID } from 'payload'\n\nimport type { DrizzleAdapter } from '../../types.js'\n\nimport { createBlocksMap } from '../../utilities/createBlocksMap.js'\nimport { createPathMap } from '../../utilities/createRelationshipMap.js'\nimport { traverseFields } from './traverseFields.js'\n\ntype TransformArgs = {\n adapter: DrizzleAdapter\n config: SanitizedConfig\n data: Record<string, unknown>\n fallbackLocale?: false | string\n fields: FlattenedField[]\n joinQuery?: JoinQuery\n locale?: string\n parentIsLocalized?: boolean\n tableName: string\n}\n\n// This is the entry point to transform Drizzle output data\n// into the shape Payload expects based on field schema\nexport const transform = <T extends Record<string, unknown> | TypeWithID>({\n adapter,\n config,\n data,\n fields,\n joinQuery,\n parentIsLocalized,\n tableName,\n}: TransformArgs): T => {\n let relationships: Record<string, Record<string, unknown>[]> = {}\n let texts: Record<string, Record<string, unknown>[]> = {}\n let numbers: Record<string, Record<string, unknown>[]> = {}\n\n if ('_rels' in data) {\n relationships = createPathMap(data._rels)\n delete data._rels\n }\n\n if ('_texts' in data) {\n texts = createPathMap(data._texts)\n delete data._texts\n }\n\n if ('_numbers' in data) {\n numbers = createPathMap(data._numbers)\n delete data._numbers\n }\n\n const blocks = createBlocksMap(data)\n const deletions = []\n\n const result = traverseFields<T>({\n adapter,\n blocks,\n config,\n currentTableName: tableName,\n dataRef: {\n id: data.id,\n },\n deletions,\n fieldPrefix: '',\n fields,\n joinQuery,\n numbers,\n parentIsLocalized,\n path: '',\n relationships,\n table: data,\n tablePath: '',\n texts,\n topLevelTableName: tableName,\n })\n\n deletions.forEach((deletion) => deletion())\n\n return result\n}\n"],"names":["createBlocksMap","createPathMap","traverseFields","transform","adapter","config","data","fields","joinQuery","parentIsLocalized","tableName","relationships","texts","numbers","_rels","_texts","_numbers","blocks","deletions","result","currentTableName","dataRef","id","fieldPrefix","path","table","tablePath","topLevelTableName","forEach","deletion"],"mappings":"AAIA,SAASA,eAAe,QAAQ,qCAAoC;AACpE,SAASC,aAAa,QAAQ,2CAA0C;AACxE,SAASC,cAAc,QAAQ,sBAAqB;AAcpD,2DAA2D;AAC3D,uDAAuD;AACvD,OAAO,MAAMC,YAAY,CAAiD,EACxEC,OAAO,EACPC,MAAM,EACNC,IAAI,EACJC,MAAM,EACNC,SAAS,EACTC,iBAAiB,EACjBC,SAAS,EACK;IACd,IAAIC,gBAA2D,CAAC;IAChE,IAAIC,QAAmD,CAAC;IACxD,IAAIC,UAAqD,CAAC;IAE1D,IAAI,WAAWP,MAAM;QACnBK,gBAAgBV,cAAcK,KAAKQ,KAAK;QACxC,OAAOR,KAAKQ,KAAK;IACnB;IAEA,IAAI,YAAYR,MAAM;QACpBM,QAAQX,cAAcK,KAAKS,MAAM;QACjC,OAAOT,KAAKS,MAAM;IACpB;IAEA,IAAI,cAAcT,MAAM;QACtBO,UAAUZ,cAAcK,KAAKU,QAAQ;QACrC,OAAOV,KAAKU,QAAQ;IACtB;IAEA,MAAMC,SAASjB,gBAAgBM;IAC/B,MAAMY,YAAY,EAAE;IAEpB,MAAMC,SAASjB,eAAkB;QAC/BE;QACAa;QACAZ;QACAe,kBAAkBV;QAClBW,SAAS;YACPC,IAAIhB,KAAKgB,EAAE;QACb;QACAJ;QACAK,aAAa;QACbhB;QACAC;QACAK;QACAJ;QACAe,MAAM;QACNb;QACAc,OAAOnB;QACPoB,WAAW;QACXd;QACAe,mBAAmBjB;IACrB;IAEAQ,UAAUU,OAAO,CAAC,CAACC,WAAaA;IAEhC,OAAOV;AACT,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../../src/transform/read/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,cAAc,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAKzF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAA;AAQnE,KAAK,kBAAkB,GAAG;IACxB;;OAEG;IACH,OAAO,EAAE,cAAc,CAAA;IACvB;;OAEG;IACH,MAAM,EAAE,SAAS,CAAA;IACjB;;OAEG;IACH,MAAM,EAAE,eAAe,CAAA;IACvB,gBAAgB,EAAE,MAAM,CAAA;IACxB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC;;OAEG;IACH,SAAS,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAA;IACzB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB;;OAEG;IACH,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;IAClD,iBAAiB,EAAE,OAAO,CAAA;IAC1B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;IACxD;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;IAChD,iBAAiB,EAAE,MAAM,CAAA;IACzB;;OAEG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAA;CAClC,CAAA;AAID,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,6NAmB7D,kBAAkB,KAAG,CA8nBvB,CAAA"}
1
+ {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../../src/transform/read/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,cAAc,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAKzF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAA;AAOnE,KAAK,kBAAkB,GAAG;IACxB;;OAEG;IACH,OAAO,EAAE,cAAc,CAAA;IACvB;;OAEG;IACH,MAAM,EAAE,SAAS,CAAA;IACjB;;OAEG;IACH,MAAM,EAAE,eAAe,CAAA;IACvB,gBAAgB,EAAE,MAAM,CAAA;IACxB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC;;OAEG;IACH,SAAS,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAA;IACzB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB;;OAEG;IACH,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;IAClD,iBAAiB,EAAE,OAAO,CAAA;IAC1B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;IACxD;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;IAChD,iBAAiB,EAAE,MAAM,CAAA;IACzB;;OAEG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAA;CAClC,CAAA;AAID,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,6NAmB7D,kBAAkB,KAAG,CA8nBvB,CAAA"}
@@ -1,7 +1,6 @@
1
1
  import { fieldIsVirtual, fieldShouldBeLocalized } from 'payload/shared';
2
2
  import toSnakeCase from 'to-snake-case';
3
3
  import { getArrayRelationName } from '../../utilities/getArrayRelationName.js';
4
- import { resolveBlockTableName } from '../../utilities/validateExistingBlockIsIdentical.js';
5
4
  import { transformHasManyNumber } from './hasManyNumber.js';
6
5
  import { transformHasManyText } from './hasManyText.js';
7
6
  import { transformRelationship } from './relationship.js';
@@ -132,7 +131,7 @@ export const traverseFields = ({ adapter, blocks, config, currentTableName, data
132
131
  Object.entries(result[field.name]).forEach(([locale, localizedBlocks])=>{
133
132
  result[field.name][locale] = localizedBlocks.map((row)=>{
134
133
  const block = adapter.payload.blocks[row.blockType] ?? (field.blockReferences ?? field.blocks).find((block)=>typeof block !== 'string' && block.slug === row.blockType);
135
- const tableName = resolveBlockTableName(block, adapter.tableNameMap.get(`${topLevelTableName}_blocks_${toSnakeCase(block.slug)}`));
134
+ const tableName = adapter.tableNameMap.get(`${topLevelTableName}_blocks_${toSnakeCase(block.slug)}`);
136
135
  if (block) {
137
136
  const blockResult = traverseFields({
138
137
  adapter,
@@ -193,7 +192,7 @@ export const traverseFields = ({ adapter, blocks, config, currentTableName, data
193
192
  i = row._index;
194
193
  delete row._index;
195
194
  }
196
- const tableName = resolveBlockTableName(block, adapter.tableNameMap.get(`${topLevelTableName}_blocks_${toSnakeCase(block.slug)}`));
195
+ const tableName = adapter.tableNameMap.get(`${topLevelTableName}_blocks_${toSnakeCase(block.slug)}`);
197
196
  acc.push(traverseFields({
198
197
  adapter,
199
198
  blocks,
@@ -492,6 +491,9 @@ export const traverseFields = ({ adapter, blocks, config, currentTableName, data
492
491
  topLevelTableName,
493
492
  withinArrayOrBlockLocale: locale || withinArrayOrBlockLocale
494
493
  });
494
+ if ('_order' in ref) {
495
+ delete ref._order;
496
+ }
495
497
  return;
496
498
  }
497
499
  case 'number':
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/transform/read/traverseFields.ts"],"sourcesContent":["import type { FlattenedBlock, FlattenedField, JoinQuery, SanitizedConfig } from 'payload'\n\nimport { fieldIsVirtual, fieldShouldBeLocalized } from 'payload/shared'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from '../../types.js'\nimport type { BlocksMap } from '../../utilities/createBlocksMap.js'\n\nimport { getArrayRelationName } from '../../utilities/getArrayRelationName.js'\nimport { resolveBlockTableName } from '../../utilities/validateExistingBlockIsIdentical.js'\nimport { transformHasManyNumber } from './hasManyNumber.js'\nimport { transformHasManyText } from './hasManyText.js'\nimport { transformRelationship } from './relationship.js'\n\ntype TraverseFieldsArgs = {\n /**\n * The DB adapter\n */\n adapter: DrizzleAdapter\n /**\n * Pre-formatted blocks map\n */\n blocks: BlocksMap\n /**\n * The full Payload config\n */\n config: SanitizedConfig\n currentTableName: string\n /**\n * The data reference to be mutated within this recursive function\n */\n dataRef: Record<string, unknown>\n /**\n * Data that needs to be removed from the result after all fields have populated\n */\n deletions: (() => void)[]\n /**\n * Column prefix can be built up by group and named tab fields\n */\n fieldPrefix: string\n /**\n * An array of Payload fields to traverse\n */\n fields: FlattenedField[]\n /**\n *\n */\n joinQuery?: JoinQuery\n /**\n * All hasMany number fields, as returned by Drizzle, keyed on an object by field path\n */\n numbers: Record<string, Record<string, unknown>[]>\n parentIsLocalized: boolean\n /**\n * The current field path (in dot notation), used to merge in relationships\n */\n path: string\n /**\n * All related documents, as returned by Drizzle, keyed on an object by field path\n */\n relationships: Record<string, Record<string, unknown>[]>\n /**\n * Data structure representing the nearest table from db\n */\n table: Record<string, unknown>\n tablePath: string\n /**\n * All hasMany text fields, as returned by Drizzle, keyed on an object by field path\n */\n texts: Record<string, Record<string, unknown>[]>\n topLevelTableName: string\n /**\n * Set to a locale if this group of fields is within a localized array or block.\n */\n withinArrayOrBlockLocale?: string\n}\n\n// Traverse fields recursively, transforming data\n// for each field type into required Payload shape\nexport const traverseFields = <T extends Record<string, unknown>>({\n adapter,\n blocks,\n config,\n currentTableName,\n dataRef,\n deletions,\n fieldPrefix,\n fields,\n joinQuery,\n numbers,\n parentIsLocalized,\n path,\n relationships,\n table,\n tablePath,\n texts,\n topLevelTableName,\n withinArrayOrBlockLocale,\n}: TraverseFieldsArgs): T => {\n const sanitizedPath = path ? `${path}.` : path\n\n const formatted = fields.reduce((result, field) => {\n if (fieldIsVirtual(field)) {\n return result\n }\n\n const fieldName = `${fieldPrefix || ''}${field.name}`\n let fieldData = table[fieldName]\n const localizedFieldData = {}\n const valuesToTransform: {\n ref: Record<string, unknown>\n table: Record<string, unknown>\n }[] = []\n\n if (fieldPrefix) {\n deletions.push(() => delete table[fieldName])\n }\n\n const isLocalized = fieldShouldBeLocalized({ field, parentIsLocalized })\n\n if (field.type === 'array') {\n const arrayTableName = adapter.tableNameMap.get(\n `${currentTableName}_${tablePath}${toSnakeCase(field.name)}`,\n )\n\n fieldData = table[getArrayRelationName({ field, path: fieldName, tableName: arrayTableName })]\n\n if (Array.isArray(fieldData)) {\n if (isLocalized) {\n result[field.name] = fieldData.reduce((arrayResult, row) => {\n if (typeof row._locale === 'string') {\n if (!arrayResult[row._locale]) {\n arrayResult[row._locale] = []\n }\n const locale = row._locale\n const data = {}\n delete row._locale\n if (row._uuid) {\n row.id = row._uuid\n delete row._uuid\n }\n\n const rowResult = traverseFields<T>({\n adapter,\n blocks,\n config,\n currentTableName: arrayTableName,\n dataRef: data,\n deletions,\n fieldPrefix: '',\n fields: field.flattenedFields,\n numbers,\n parentIsLocalized: parentIsLocalized || field.localized,\n path: `${sanitizedPath}${field.name}.${row._order - 1}`,\n relationships,\n table: row,\n tablePath: '',\n texts,\n topLevelTableName,\n withinArrayOrBlockLocale: locale,\n })\n\n if ('_order' in rowResult) {\n delete rowResult._order\n }\n\n arrayResult[locale].push(rowResult)\n }\n\n return arrayResult\n }, {})\n } else {\n result[field.name] = fieldData.reduce((acc, row, i) => {\n if (row._uuid) {\n row.id = row._uuid\n delete row._uuid\n }\n\n if ('_order' in row) {\n delete row._order\n }\n\n if (\n !withinArrayOrBlockLocale ||\n (withinArrayOrBlockLocale && withinArrayOrBlockLocale === row._locale)\n ) {\n if (row._locale) {\n delete row._locale\n }\n\n acc.push(\n traverseFields<T>({\n adapter,\n blocks,\n config,\n currentTableName: arrayTableName,\n dataRef: row,\n deletions,\n fieldPrefix: '',\n fields: field.flattenedFields,\n numbers,\n parentIsLocalized: parentIsLocalized || field.localized,\n path: `${sanitizedPath}${field.name}.${i}`,\n relationships,\n table: row,\n tablePath: '',\n texts,\n topLevelTableName,\n withinArrayOrBlockLocale,\n }),\n )\n }\n\n return acc\n }, [])\n }\n }\n\n return result\n }\n\n if (field.type === 'blocks') {\n const blockFieldPath = `${sanitizedPath}${field.name}`\n const blocksByPath = blocks[blockFieldPath]\n\n if (Array.isArray(blocksByPath)) {\n if (isLocalized) {\n result[field.name] = {}\n\n blocksByPath.forEach((row) => {\n if (row._uuid) {\n row.id = row._uuid\n delete row._uuid\n }\n if (typeof row._locale === 'string') {\n if (!result[field.name][row._locale]) {\n result[field.name][row._locale] = []\n }\n result[field.name][row._locale].push(row)\n delete row._locale\n }\n })\n\n Object.entries(result[field.name]).forEach(([locale, localizedBlocks]) => {\n result[field.name][locale] = localizedBlocks.map((row) => {\n const block =\n adapter.payload.blocks[row.blockType] ??\n ((field.blockReferences ?? field.blocks).find(\n (block) => typeof block !== 'string' && block.slug === row.blockType,\n ) as FlattenedBlock | undefined)\n\n const tableName = resolveBlockTableName(\n block,\n adapter.tableNameMap.get(`${topLevelTableName}_blocks_${toSnakeCase(block.slug)}`),\n )\n\n if (block) {\n const blockResult = traverseFields<T>({\n adapter,\n blocks,\n config,\n currentTableName: tableName,\n dataRef: row,\n deletions,\n fieldPrefix: '',\n fields: block.flattenedFields,\n numbers,\n parentIsLocalized: parentIsLocalized || field.localized,\n path: `${blockFieldPath}.${row._order - 1}`,\n relationships,\n table: row,\n tablePath: '',\n texts,\n topLevelTableName,\n withinArrayOrBlockLocale: locale,\n })\n\n delete blockResult._order\n return blockResult\n }\n\n return {}\n })\n })\n } else {\n // Add locale-specific index to have a proper blockFieldPath for current locale\n // because blocks can be in the same array for different locales!\n if (withinArrayOrBlockLocale && config.localization) {\n for (const locale of config.localization.localeCodes) {\n let localeIndex = 0\n\n for (let i = 0; i < blocksByPath.length; i++) {\n const row = blocksByPath[i]\n if (row._locale === locale) {\n row._index = localeIndex\n localeIndex++\n }\n }\n }\n }\n\n result[field.name] = blocksByPath.reduce((acc, row, i) => {\n delete row._order\n if (row._uuid) {\n row.id = row._uuid\n delete row._uuid\n }\n\n if (typeof row.blockType !== 'string') {\n return acc\n }\n\n const block =\n adapter.payload.blocks[row.blockType] ??\n ((field.blockReferences ?? field.blocks).find(\n (block) => typeof block !== 'string' && block.slug === row.blockType,\n ) as FlattenedBlock | undefined)\n\n if (block) {\n if (\n !withinArrayOrBlockLocale ||\n (withinArrayOrBlockLocale && withinArrayOrBlockLocale === row._locale)\n ) {\n if (row._locale) {\n delete row._locale\n }\n if (typeof row._index === 'number') {\n i = row._index\n delete row._index\n }\n\n const tableName = resolveBlockTableName(\n block,\n adapter.tableNameMap.get(\n `${topLevelTableName}_blocks_${toSnakeCase(block.slug)}`,\n ),\n )\n\n acc.push(\n traverseFields<T>({\n adapter,\n blocks,\n config,\n currentTableName: tableName,\n dataRef: row,\n deletions,\n fieldPrefix: '',\n fields: block.flattenedFields,\n numbers,\n parentIsLocalized: parentIsLocalized || field.localized,\n path: `${blockFieldPath}.${i}`,\n relationships,\n table: row,\n tablePath: '',\n texts,\n topLevelTableName,\n withinArrayOrBlockLocale,\n }),\n )\n\n return acc\n }\n } else {\n acc.push({})\n }\n\n return acc\n }, [])\n }\n }\n\n return result\n }\n\n if (field.type === 'relationship' || field.type === 'upload') {\n if (typeof field.relationTo === 'string' && !('hasMany' in field && field.hasMany)) {\n if (\n isLocalized &&\n config.localization &&\n config.localization.locales &&\n Array.isArray(table?._locales)\n ) {\n table._locales.forEach((localeRow) => {\n result[field.name] = { [localeRow._locale]: localeRow[fieldName] }\n })\n } else {\n valuesToTransform.push({ ref: result, table })\n }\n } else {\n const relationPathMatch = relationships[`${sanitizedPath}${field.name}`]\n\n if (!relationPathMatch) {\n if ('hasMany' in field && field.hasMany) {\n if (isLocalized && config.localization && config.localization.locales) {\n result[field.name] = {\n [config.localization.defaultLocale]: [],\n }\n } else {\n result[field.name] = []\n }\n }\n\n return result\n }\n\n if (isLocalized) {\n result[field.name] = {}\n const relationsByLocale: Record<string, Record<string, unknown>[]> = {}\n\n relationPathMatch.forEach((row) => {\n if (typeof row.locale === 'string') {\n if (!relationsByLocale[row.locale]) {\n relationsByLocale[row.locale] = []\n }\n relationsByLocale[row.locale].push(row)\n }\n })\n\n Object.entries(relationsByLocale).forEach(([locale, relations]) => {\n transformRelationship({\n field,\n locale,\n ref: result,\n relations,\n })\n })\n } else {\n transformRelationship({\n field,\n ref: result,\n relations: relationPathMatch,\n withinArrayOrBlockLocale,\n })\n }\n return result\n }\n }\n\n if (field.type === 'join') {\n const { count, limit = field.defaultLimit ?? 10 } =\n joinQuery?.[`${fieldPrefix.replaceAll('_', '.')}${field.name}`] || {}\n\n // raw hasMany results from SQLite\n if (typeof fieldData === 'string') {\n fieldData = JSON.parse(fieldData)\n }\n\n let fieldResult:\n | { docs: unknown[]; hasNextPage: boolean; totalDocs?: number }\n | Record<string, { docs: unknown[]; hasNextPage: boolean; totalDocs?: number }>\n if (Array.isArray(fieldData)) {\n if (isLocalized && adapter.payload.config.localization) {\n fieldResult = fieldData.reduce(\n (joinResult, row) => {\n if (typeof row.locale === 'string') {\n joinResult[row.locale].docs.push(row.id)\n }\n\n return joinResult\n },\n\n // initialize with defaults so empty won't be undefined\n adapter.payload.config.localization.localeCodes.reduce((acc, code) => {\n acc[code] = {\n docs: [],\n hasNextPage: false,\n }\n return acc\n }, {}),\n )\n Object.keys(fieldResult).forEach((locale) => {\n fieldResult[locale].hasNextPage = fieldResult[locale].docs.length > limit\n fieldResult[locale].docs = fieldResult[locale].docs.slice(0, limit)\n })\n } else {\n const hasNextPage = limit !== 0 && fieldData.length > limit\n fieldResult = {\n docs: (hasNextPage ? fieldData.slice(0, limit) : fieldData).map(\n ({ id, relationTo }) => {\n if (relationTo) {\n return { relationTo, value: id }\n }\n return { id }\n },\n ),\n hasNextPage,\n }\n }\n }\n\n if (count) {\n const countPath = `${fieldName}_count`\n if (typeof table[countPath] !== 'undefined') {\n let value = Number(table[countPath])\n if (Number.isNaN(value)) {\n value = 0\n }\n fieldResult.totalDocs = value\n }\n }\n\n result[field.name] = fieldResult\n return result\n }\n\n if (field.type === 'text' && field?.hasMany) {\n const textPathMatch = texts[`${sanitizedPath}${field.name}`]\n if (!textPathMatch) {\n return result\n }\n\n if (isLocalized) {\n result[field.name] = {}\n const textsByLocale: Record<string, Record<string, unknown>[]> = {}\n\n textPathMatch.forEach((row) => {\n if (typeof row.locale === 'string') {\n if (!textsByLocale[row.locale]) {\n textsByLocale[row.locale] = []\n }\n textsByLocale[row.locale].push(row)\n }\n })\n\n Object.entries(textsByLocale).forEach(([locale, texts]) => {\n transformHasManyText({\n field,\n locale,\n ref: result,\n textRows: texts,\n })\n })\n } else {\n transformHasManyText({\n field,\n ref: result,\n textRows: textPathMatch,\n withinArrayOrBlockLocale,\n })\n }\n\n return result\n }\n\n if (field.type === 'number' && field.hasMany) {\n const numberPathMatch = numbers[`${sanitizedPath}${field.name}`]\n if (!numberPathMatch) {\n return result\n }\n\n if (isLocalized) {\n result[field.name] = {}\n const numbersByLocale: Record<string, Record<string, unknown>[]> = {}\n\n numberPathMatch.forEach((row) => {\n if (typeof row.locale === 'string') {\n if (!numbersByLocale[row.locale]) {\n numbersByLocale[row.locale] = []\n }\n numbersByLocale[row.locale].push(row)\n }\n })\n\n Object.entries(numbersByLocale).forEach(([locale, numbers]) => {\n transformHasManyNumber({\n field,\n locale,\n numberRows: numbers,\n ref: result,\n })\n })\n } else {\n transformHasManyNumber({\n field,\n numberRows: numberPathMatch,\n ref: result,\n withinArrayOrBlockLocale,\n })\n }\n\n return result\n }\n\n if (field.type === 'select' && field.hasMany) {\n if (Array.isArray(fieldData)) {\n if (isLocalized) {\n result[field.name] = fieldData.reduce((selectResult, row) => {\n if (typeof row.locale === 'string') {\n if (!selectResult[row.locale]) {\n selectResult[row.locale] = []\n }\n selectResult[row.locale].push(row.value)\n }\n\n return selectResult\n }, {})\n } else {\n let selectData = fieldData\n if (withinArrayOrBlockLocale) {\n selectData = selectData.filter(({ locale }) => locale === withinArrayOrBlockLocale)\n }\n result[field.name] = selectData.map(({ value }) => value)\n }\n }\n return result\n }\n\n if (isLocalized && Array.isArray(table._locales)) {\n if (!table._locales.length && adapter.payload.config.localization) {\n adapter.payload.config.localization.localeCodes.forEach((_locale) =>\n (table._locales as unknown[]).push({ _locale }),\n )\n }\n\n table._locales.forEach((localeRow) => {\n valuesToTransform.push({\n ref: localizedFieldData,\n table: {\n ...table,\n ...localeRow,\n },\n })\n })\n } else {\n valuesToTransform.push({ ref: result, table })\n }\n\n valuesToTransform.forEach(({ ref, table }) => {\n const fieldData = table[`${fieldPrefix || ''}${field.name}`]\n const locale = table?._locale\n let val = fieldData\n\n switch (field.type) {\n case 'date': {\n if (typeof fieldData === 'string') {\n val = new Date(fieldData).toISOString()\n }\n\n break\n }\n\n case 'group':\n case 'tab': {\n const groupFieldPrefix = `${fieldPrefix || ''}${field.name}_`\n const groupData = {}\n const locale = table._locale as string\n const refKey = isLocalized && locale ? locale : field.name\n\n if (isLocalized && locale) {\n delete table._locale\n }\n ref[refKey] = traverseFields<Record<string, unknown>>({\n adapter,\n blocks,\n config,\n currentTableName,\n dataRef: groupData as Record<string, unknown>,\n deletions,\n fieldPrefix: groupFieldPrefix,\n fields: field.flattenedFields,\n joinQuery,\n numbers,\n parentIsLocalized: parentIsLocalized || field.localized,\n path: `${sanitizedPath}${field.name}`,\n relationships,\n table,\n tablePath: `${tablePath}${toSnakeCase(field.name)}_`,\n texts,\n topLevelTableName,\n withinArrayOrBlockLocale: locale || withinArrayOrBlockLocale,\n })\n\n return\n }\n\n case 'number': {\n if (typeof fieldData === 'string') {\n val = Number.parseFloat(fieldData)\n }\n\n break\n }\n\n case 'point': {\n if (typeof fieldData === 'string') {\n val = JSON.parse(fieldData)\n }\n\n break\n }\n\n case 'relationship':\n case 'upload': {\n if (\n val &&\n typeof field.relationTo === 'string' &&\n adapter.payload.collections[field.relationTo].customIDType === 'number'\n ) {\n val = Number(val)\n }\n\n break\n }\n case 'text': {\n if (typeof fieldData === 'string') {\n val = String(fieldData)\n }\n\n break\n }\n\n default: {\n break\n }\n }\n if (typeof locale === 'string') {\n ref[locale] = val\n } else {\n result[field.name] = val\n }\n })\n\n if (Object.keys(localizedFieldData).length > 0) {\n result[field.name] = localizedFieldData\n }\n\n return result\n\n return result\n }, dataRef)\n\n if (Array.isArray(table._locales)) {\n deletions.push(() => delete table._locales)\n }\n\n return formatted as T\n}\n"],"names":["fieldIsVirtual","fieldShouldBeLocalized","toSnakeCase","getArrayRelationName","resolveBlockTableName","transformHasManyNumber","transformHasManyText","transformRelationship","traverseFields","adapter","blocks","config","currentTableName","dataRef","deletions","fieldPrefix","fields","joinQuery","numbers","parentIsLocalized","path","relationships","table","tablePath","texts","topLevelTableName","withinArrayOrBlockLocale","sanitizedPath","formatted","reduce","result","field","fieldName","name","fieldData","localizedFieldData","valuesToTransform","push","isLocalized","type","arrayTableName","tableNameMap","get","tableName","Array","isArray","arrayResult","row","_locale","locale","data","_uuid","id","rowResult","flattenedFields","localized","_order","acc","i","blockFieldPath","blocksByPath","forEach","Object","entries","localizedBlocks","map","block","payload","blockType","blockReferences","find","slug","blockResult","localization","localeCodes","localeIndex","length","_index","relationTo","hasMany","locales","_locales","localeRow","ref","relationPathMatch","defaultLocale","relationsByLocale","relations","count","limit","defaultLimit","replaceAll","JSON","parse","fieldResult","joinResult","docs","code","hasNextPage","keys","slice","value","countPath","Number","isNaN","totalDocs","textPathMatch","textsByLocale","textRows","numberPathMatch","numbersByLocale","numberRows","selectResult","selectData","filter","val","Date","toISOString","groupFieldPrefix","groupData","refKey","parseFloat","collections","customIDType","String"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/transform/read/traverseFields.ts"],"sourcesContent":["import type { FlattenedBlock, FlattenedField, JoinQuery, SanitizedConfig } from 'payload'\n\nimport { fieldIsVirtual, fieldShouldBeLocalized } from 'payload/shared'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from '../../types.js'\nimport type { BlocksMap } from '../../utilities/createBlocksMap.js'\n\nimport { getArrayRelationName } from '../../utilities/getArrayRelationName.js'\nimport { transformHasManyNumber } from './hasManyNumber.js'\nimport { transformHasManyText } from './hasManyText.js'\nimport { transformRelationship } from './relationship.js'\n\ntype TraverseFieldsArgs = {\n /**\n * The DB adapter\n */\n adapter: DrizzleAdapter\n /**\n * Pre-formatted blocks map\n */\n blocks: BlocksMap\n /**\n * The full Payload config\n */\n config: SanitizedConfig\n currentTableName: string\n /**\n * The data reference to be mutated within this recursive function\n */\n dataRef: Record<string, unknown>\n /**\n * Data that needs to be removed from the result after all fields have populated\n */\n deletions: (() => void)[]\n /**\n * Column prefix can be built up by group and named tab fields\n */\n fieldPrefix: string\n /**\n * An array of Payload fields to traverse\n */\n fields: FlattenedField[]\n /**\n *\n */\n joinQuery?: JoinQuery\n /**\n * All hasMany number fields, as returned by Drizzle, keyed on an object by field path\n */\n numbers: Record<string, Record<string, unknown>[]>\n parentIsLocalized: boolean\n /**\n * The current field path (in dot notation), used to merge in relationships\n */\n path: string\n /**\n * All related documents, as returned by Drizzle, keyed on an object by field path\n */\n relationships: Record<string, Record<string, unknown>[]>\n /**\n * Data structure representing the nearest table from db\n */\n table: Record<string, unknown>\n tablePath: string\n /**\n * All hasMany text fields, as returned by Drizzle, keyed on an object by field path\n */\n texts: Record<string, Record<string, unknown>[]>\n topLevelTableName: string\n /**\n * Set to a locale if this group of fields is within a localized array or block.\n */\n withinArrayOrBlockLocale?: string\n}\n\n// Traverse fields recursively, transforming data\n// for each field type into required Payload shape\nexport const traverseFields = <T extends Record<string, unknown>>({\n adapter,\n blocks,\n config,\n currentTableName,\n dataRef,\n deletions,\n fieldPrefix,\n fields,\n joinQuery,\n numbers,\n parentIsLocalized,\n path,\n relationships,\n table,\n tablePath,\n texts,\n topLevelTableName,\n withinArrayOrBlockLocale,\n}: TraverseFieldsArgs): T => {\n const sanitizedPath = path ? `${path}.` : path\n\n const formatted = fields.reduce((result, field) => {\n if (fieldIsVirtual(field)) {\n return result\n }\n\n const fieldName = `${fieldPrefix || ''}${field.name}`\n let fieldData = table[fieldName]\n const localizedFieldData = {}\n const valuesToTransform: {\n ref: Record<string, unknown>\n table: Record<string, unknown>\n }[] = []\n\n if (fieldPrefix) {\n deletions.push(() => delete table[fieldName])\n }\n\n const isLocalized = fieldShouldBeLocalized({ field, parentIsLocalized })\n\n if (field.type === 'array') {\n const arrayTableName = adapter.tableNameMap.get(\n `${currentTableName}_${tablePath}${toSnakeCase(field.name)}`,\n )\n\n fieldData = table[getArrayRelationName({ field, path: fieldName, tableName: arrayTableName })]\n\n if (Array.isArray(fieldData)) {\n if (isLocalized) {\n result[field.name] = fieldData.reduce((arrayResult, row) => {\n if (typeof row._locale === 'string') {\n if (!arrayResult[row._locale]) {\n arrayResult[row._locale] = []\n }\n const locale = row._locale\n const data = {}\n delete row._locale\n if (row._uuid) {\n row.id = row._uuid\n delete row._uuid\n }\n\n const rowResult = traverseFields<T>({\n adapter,\n blocks,\n config,\n currentTableName: arrayTableName,\n dataRef: data,\n deletions,\n fieldPrefix: '',\n fields: field.flattenedFields,\n numbers,\n parentIsLocalized: parentIsLocalized || field.localized,\n path: `${sanitizedPath}${field.name}.${row._order - 1}`,\n relationships,\n table: row,\n tablePath: '',\n texts,\n topLevelTableName,\n withinArrayOrBlockLocale: locale,\n })\n\n if ('_order' in rowResult) {\n delete rowResult._order\n }\n\n arrayResult[locale].push(rowResult)\n }\n\n return arrayResult\n }, {})\n } else {\n result[field.name] = fieldData.reduce((acc, row, i) => {\n if (row._uuid) {\n row.id = row._uuid\n delete row._uuid\n }\n\n if ('_order' in row) {\n delete row._order\n }\n\n if (\n !withinArrayOrBlockLocale ||\n (withinArrayOrBlockLocale && withinArrayOrBlockLocale === row._locale)\n ) {\n if (row._locale) {\n delete row._locale\n }\n\n acc.push(\n traverseFields<T>({\n adapter,\n blocks,\n config,\n currentTableName: arrayTableName,\n dataRef: row,\n deletions,\n fieldPrefix: '',\n fields: field.flattenedFields,\n numbers,\n parentIsLocalized: parentIsLocalized || field.localized,\n path: `${sanitizedPath}${field.name}.${i}`,\n relationships,\n table: row,\n tablePath: '',\n texts,\n topLevelTableName,\n withinArrayOrBlockLocale,\n }),\n )\n }\n\n return acc\n }, [])\n }\n }\n\n return result\n }\n\n if (field.type === 'blocks') {\n const blockFieldPath = `${sanitizedPath}${field.name}`\n const blocksByPath = blocks[blockFieldPath]\n\n if (Array.isArray(blocksByPath)) {\n if (isLocalized) {\n result[field.name] = {}\n\n blocksByPath.forEach((row) => {\n if (row._uuid) {\n row.id = row._uuid\n delete row._uuid\n }\n if (typeof row._locale === 'string') {\n if (!result[field.name][row._locale]) {\n result[field.name][row._locale] = []\n }\n result[field.name][row._locale].push(row)\n delete row._locale\n }\n })\n\n Object.entries(result[field.name]).forEach(([locale, localizedBlocks]) => {\n result[field.name][locale] = localizedBlocks.map((row) => {\n const block =\n adapter.payload.blocks[row.blockType] ??\n ((field.blockReferences ?? field.blocks).find(\n (block) => typeof block !== 'string' && block.slug === row.blockType,\n ) as FlattenedBlock | undefined)\n\n const tableName = adapter.tableNameMap.get(\n `${topLevelTableName}_blocks_${toSnakeCase(block.slug)}`,\n )\n\n if (block) {\n const blockResult = traverseFields<T>({\n adapter,\n blocks,\n config,\n currentTableName: tableName,\n dataRef: row,\n deletions,\n fieldPrefix: '',\n fields: block.flattenedFields,\n numbers,\n parentIsLocalized: parentIsLocalized || field.localized,\n path: `${blockFieldPath}.${row._order - 1}`,\n relationships,\n table: row,\n tablePath: '',\n texts,\n topLevelTableName,\n withinArrayOrBlockLocale: locale,\n })\n\n delete blockResult._order\n return blockResult\n }\n\n return {}\n })\n })\n } else {\n // Add locale-specific index to have a proper blockFieldPath for current locale\n // because blocks can be in the same array for different locales!\n if (withinArrayOrBlockLocale && config.localization) {\n for (const locale of config.localization.localeCodes) {\n let localeIndex = 0\n\n for (let i = 0; i < blocksByPath.length; i++) {\n const row = blocksByPath[i]\n if (row._locale === locale) {\n row._index = localeIndex\n localeIndex++\n }\n }\n }\n }\n\n result[field.name] = blocksByPath.reduce((acc, row, i) => {\n delete row._order\n if (row._uuid) {\n row.id = row._uuid\n delete row._uuid\n }\n\n if (typeof row.blockType !== 'string') {\n return acc\n }\n\n const block =\n adapter.payload.blocks[row.blockType] ??\n ((field.blockReferences ?? field.blocks).find(\n (block) => typeof block !== 'string' && block.slug === row.blockType,\n ) as FlattenedBlock | undefined)\n\n if (block) {\n if (\n !withinArrayOrBlockLocale ||\n (withinArrayOrBlockLocale && withinArrayOrBlockLocale === row._locale)\n ) {\n if (row._locale) {\n delete row._locale\n }\n if (typeof row._index === 'number') {\n i = row._index\n delete row._index\n }\n\n const tableName = adapter.tableNameMap.get(\n `${topLevelTableName}_blocks_${toSnakeCase(block.slug)}`,\n )\n\n acc.push(\n traverseFields<T>({\n adapter,\n blocks,\n config,\n currentTableName: tableName,\n dataRef: row,\n deletions,\n fieldPrefix: '',\n fields: block.flattenedFields,\n numbers,\n parentIsLocalized: parentIsLocalized || field.localized,\n path: `${blockFieldPath}.${i}`,\n relationships,\n table: row,\n tablePath: '',\n texts,\n topLevelTableName,\n withinArrayOrBlockLocale,\n }),\n )\n\n return acc\n }\n } else {\n acc.push({})\n }\n\n return acc\n }, [])\n }\n }\n\n return result\n }\n\n if (field.type === 'relationship' || field.type === 'upload') {\n if (typeof field.relationTo === 'string' && !('hasMany' in field && field.hasMany)) {\n if (\n isLocalized &&\n config.localization &&\n config.localization.locales &&\n Array.isArray(table?._locales)\n ) {\n table._locales.forEach((localeRow) => {\n result[field.name] = { [localeRow._locale]: localeRow[fieldName] }\n })\n } else {\n valuesToTransform.push({ ref: result, table })\n }\n } else {\n const relationPathMatch = relationships[`${sanitizedPath}${field.name}`]\n\n if (!relationPathMatch) {\n if ('hasMany' in field && field.hasMany) {\n if (isLocalized && config.localization && config.localization.locales) {\n result[field.name] = {\n [config.localization.defaultLocale]: [],\n }\n } else {\n result[field.name] = []\n }\n }\n\n return result\n }\n\n if (isLocalized) {\n result[field.name] = {}\n const relationsByLocale: Record<string, Record<string, unknown>[]> = {}\n\n relationPathMatch.forEach((row) => {\n if (typeof row.locale === 'string') {\n if (!relationsByLocale[row.locale]) {\n relationsByLocale[row.locale] = []\n }\n relationsByLocale[row.locale].push(row)\n }\n })\n\n Object.entries(relationsByLocale).forEach(([locale, relations]) => {\n transformRelationship({\n field,\n locale,\n ref: result,\n relations,\n })\n })\n } else {\n transformRelationship({\n field,\n ref: result,\n relations: relationPathMatch,\n withinArrayOrBlockLocale,\n })\n }\n return result\n }\n }\n\n if (field.type === 'join') {\n const { count, limit = field.defaultLimit ?? 10 } =\n joinQuery?.[`${fieldPrefix.replaceAll('_', '.')}${field.name}`] || {}\n\n // raw hasMany results from SQLite\n if (typeof fieldData === 'string') {\n fieldData = JSON.parse(fieldData)\n }\n\n let fieldResult:\n | { docs: unknown[]; hasNextPage: boolean; totalDocs?: number }\n | Record<string, { docs: unknown[]; hasNextPage: boolean; totalDocs?: number }>\n if (Array.isArray(fieldData)) {\n if (isLocalized && adapter.payload.config.localization) {\n fieldResult = fieldData.reduce(\n (joinResult, row) => {\n if (typeof row.locale === 'string') {\n joinResult[row.locale].docs.push(row.id)\n }\n\n return joinResult\n },\n\n // initialize with defaults so empty won't be undefined\n adapter.payload.config.localization.localeCodes.reduce((acc, code) => {\n acc[code] = {\n docs: [],\n hasNextPage: false,\n }\n return acc\n }, {}),\n )\n Object.keys(fieldResult).forEach((locale) => {\n fieldResult[locale].hasNextPage = fieldResult[locale].docs.length > limit\n fieldResult[locale].docs = fieldResult[locale].docs.slice(0, limit)\n })\n } else {\n const hasNextPage = limit !== 0 && fieldData.length > limit\n fieldResult = {\n docs: (hasNextPage ? fieldData.slice(0, limit) : fieldData).map(\n ({ id, relationTo }) => {\n if (relationTo) {\n return { relationTo, value: id }\n }\n return { id }\n },\n ),\n hasNextPage,\n }\n }\n }\n\n if (count) {\n const countPath = `${fieldName}_count`\n if (typeof table[countPath] !== 'undefined') {\n let value = Number(table[countPath])\n if (Number.isNaN(value)) {\n value = 0\n }\n fieldResult.totalDocs = value\n }\n }\n\n result[field.name] = fieldResult\n return result\n }\n\n if (field.type === 'text' && field?.hasMany) {\n const textPathMatch = texts[`${sanitizedPath}${field.name}`]\n if (!textPathMatch) {\n return result\n }\n\n if (isLocalized) {\n result[field.name] = {}\n const textsByLocale: Record<string, Record<string, unknown>[]> = {}\n\n textPathMatch.forEach((row) => {\n if (typeof row.locale === 'string') {\n if (!textsByLocale[row.locale]) {\n textsByLocale[row.locale] = []\n }\n textsByLocale[row.locale].push(row)\n }\n })\n\n Object.entries(textsByLocale).forEach(([locale, texts]) => {\n transformHasManyText({\n field,\n locale,\n ref: result,\n textRows: texts,\n })\n })\n } else {\n transformHasManyText({\n field,\n ref: result,\n textRows: textPathMatch,\n withinArrayOrBlockLocale,\n })\n }\n\n return result\n }\n\n if (field.type === 'number' && field.hasMany) {\n const numberPathMatch = numbers[`${sanitizedPath}${field.name}`]\n if (!numberPathMatch) {\n return result\n }\n\n if (isLocalized) {\n result[field.name] = {}\n const numbersByLocale: Record<string, Record<string, unknown>[]> = {}\n\n numberPathMatch.forEach((row) => {\n if (typeof row.locale === 'string') {\n if (!numbersByLocale[row.locale]) {\n numbersByLocale[row.locale] = []\n }\n numbersByLocale[row.locale].push(row)\n }\n })\n\n Object.entries(numbersByLocale).forEach(([locale, numbers]) => {\n transformHasManyNumber({\n field,\n locale,\n numberRows: numbers,\n ref: result,\n })\n })\n } else {\n transformHasManyNumber({\n field,\n numberRows: numberPathMatch,\n ref: result,\n withinArrayOrBlockLocale,\n })\n }\n\n return result\n }\n\n if (field.type === 'select' && field.hasMany) {\n if (Array.isArray(fieldData)) {\n if (isLocalized) {\n result[field.name] = fieldData.reduce((selectResult, row) => {\n if (typeof row.locale === 'string') {\n if (!selectResult[row.locale]) {\n selectResult[row.locale] = []\n }\n selectResult[row.locale].push(row.value)\n }\n\n return selectResult\n }, {})\n } else {\n let selectData = fieldData\n if (withinArrayOrBlockLocale) {\n selectData = selectData.filter(({ locale }) => locale === withinArrayOrBlockLocale)\n }\n result[field.name] = selectData.map(({ value }) => value)\n }\n }\n return result\n }\n\n if (isLocalized && Array.isArray(table._locales)) {\n if (!table._locales.length && adapter.payload.config.localization) {\n adapter.payload.config.localization.localeCodes.forEach((_locale) =>\n (table._locales as unknown[]).push({ _locale }),\n )\n }\n\n table._locales.forEach((localeRow) => {\n valuesToTransform.push({\n ref: localizedFieldData,\n table: {\n ...table,\n ...localeRow,\n },\n })\n })\n } else {\n valuesToTransform.push({ ref: result, table })\n }\n\n valuesToTransform.forEach(({ ref, table }) => {\n const fieldData = table[`${fieldPrefix || ''}${field.name}`]\n const locale = table?._locale\n let val = fieldData\n\n switch (field.type) {\n case 'date': {\n if (typeof fieldData === 'string') {\n val = new Date(fieldData).toISOString()\n }\n\n break\n }\n\n case 'group':\n case 'tab': {\n const groupFieldPrefix = `${fieldPrefix || ''}${field.name}_`\n const groupData = {}\n const locale = table._locale as string\n const refKey = isLocalized && locale ? locale : field.name\n\n if (isLocalized && locale) {\n delete table._locale\n }\n ref[refKey] = traverseFields<Record<string, unknown>>({\n adapter,\n blocks,\n config,\n currentTableName,\n dataRef: groupData as Record<string, unknown>,\n deletions,\n fieldPrefix: groupFieldPrefix,\n fields: field.flattenedFields,\n joinQuery,\n numbers,\n parentIsLocalized: parentIsLocalized || field.localized,\n path: `${sanitizedPath}${field.name}`,\n relationships,\n table,\n tablePath: `${tablePath}${toSnakeCase(field.name)}_`,\n texts,\n topLevelTableName,\n withinArrayOrBlockLocale: locale || withinArrayOrBlockLocale,\n })\n\n if ('_order' in ref) {\n delete ref._order\n }\n\n return\n }\n\n case 'number': {\n if (typeof fieldData === 'string') {\n val = Number.parseFloat(fieldData)\n }\n\n break\n }\n\n case 'point': {\n if (typeof fieldData === 'string') {\n val = JSON.parse(fieldData)\n }\n\n break\n }\n\n case 'relationship':\n case 'upload': {\n if (\n val &&\n typeof field.relationTo === 'string' &&\n adapter.payload.collections[field.relationTo].customIDType === 'number'\n ) {\n val = Number(val)\n }\n\n break\n }\n case 'text': {\n if (typeof fieldData === 'string') {\n val = String(fieldData)\n }\n\n break\n }\n\n default: {\n break\n }\n }\n if (typeof locale === 'string') {\n ref[locale] = val\n } else {\n result[field.name] = val\n }\n })\n\n if (Object.keys(localizedFieldData).length > 0) {\n result[field.name] = localizedFieldData\n }\n\n return result\n\n return result\n }, dataRef)\n\n if (Array.isArray(table._locales)) {\n deletions.push(() => delete table._locales)\n }\n\n return formatted as T\n}\n"],"names":["fieldIsVirtual","fieldShouldBeLocalized","toSnakeCase","getArrayRelationName","transformHasManyNumber","transformHasManyText","transformRelationship","traverseFields","adapter","blocks","config","currentTableName","dataRef","deletions","fieldPrefix","fields","joinQuery","numbers","parentIsLocalized","path","relationships","table","tablePath","texts","topLevelTableName","withinArrayOrBlockLocale","sanitizedPath","formatted","reduce","result","field","fieldName","name","fieldData","localizedFieldData","valuesToTransform","push","isLocalized","type","arrayTableName","tableNameMap","get","tableName","Array","isArray","arrayResult","row","_locale","locale","data","_uuid","id","rowResult","flattenedFields","localized","_order","acc","i","blockFieldPath","blocksByPath","forEach","Object","entries","localizedBlocks","map","block","payload","blockType","blockReferences","find","slug","blockResult","localization","localeCodes","localeIndex","length","_index","relationTo","hasMany","locales","_locales","localeRow","ref","relationPathMatch","defaultLocale","relationsByLocale","relations","count","limit","defaultLimit","replaceAll","JSON","parse","fieldResult","joinResult","docs","code","hasNextPage","keys","slice","value","countPath","Number","isNaN","totalDocs","textPathMatch","textsByLocale","textRows","numberPathMatch","numbersByLocale","numberRows","selectResult","selectData","filter","val","Date","toISOString","groupFieldPrefix","groupData","refKey","parseFloat","collections","customIDType","String"],"mappings":"AAEA,SAASA,cAAc,EAAEC,sBAAsB,QAAQ,iBAAgB;AACvE,OAAOC,iBAAiB,gBAAe;AAKvC,SAASC,oBAAoB,QAAQ,0CAAyC;AAC9E,SAASC,sBAAsB,QAAQ,qBAAoB;AAC3D,SAASC,oBAAoB,QAAQ,mBAAkB;AACvD,SAASC,qBAAqB,QAAQ,oBAAmB;AAiEzD,iDAAiD;AACjD,kDAAkD;AAClD,OAAO,MAAMC,iBAAiB,CAAoC,EAChEC,OAAO,EACPC,MAAM,EACNC,MAAM,EACNC,gBAAgB,EAChBC,OAAO,EACPC,SAAS,EACTC,WAAW,EACXC,MAAM,EACNC,SAAS,EACTC,OAAO,EACPC,iBAAiB,EACjBC,IAAI,EACJC,aAAa,EACbC,KAAK,EACLC,SAAS,EACTC,KAAK,EACLC,iBAAiB,EACjBC,wBAAwB,EACL;IACnB,MAAMC,gBAAgBP,OAAO,GAAGA,KAAK,CAAC,CAAC,GAAGA;IAE1C,MAAMQ,YAAYZ,OAAOa,MAAM,CAAC,CAACC,QAAQC;QACvC,IAAI9B,eAAe8B,QAAQ;YACzB,OAAOD;QACT;QAEA,MAAME,YAAY,GAAGjB,eAAe,KAAKgB,MAAME,IAAI,EAAE;QACrD,IAAIC,YAAYZ,KAAK,CAACU,UAAU;QAChC,MAAMG,qBAAqB,CAAC;QAC5B,MAAMC,oBAGA,EAAE;QAER,IAAIrB,aAAa;YACfD,UAAUuB,IAAI,CAAC,IAAM,OAAOf,KAAK,CAACU,UAAU;QAC9C;QAEA,MAAMM,cAAcpC,uBAAuB;YAAE6B;YAAOZ;QAAkB;QAEtE,IAAIY,MAAMQ,IAAI,KAAK,SAAS;YAC1B,MAAMC,iBAAiB/B,QAAQgC,YAAY,CAACC,GAAG,CAC7C,GAAG9B,iBAAiB,CAAC,EAAEW,YAAYpB,YAAY4B,MAAME,IAAI,GAAG;YAG9DC,YAAYZ,KAAK,CAAClB,qBAAqB;gBAAE2B;gBAAOX,MAAMY;gBAAWW,WAAWH;YAAe,GAAG;YAE9F,IAAII,MAAMC,OAAO,CAACX,YAAY;gBAC5B,IAAII,aAAa;oBACfR,MAAM,CAACC,MAAME,IAAI,CAAC,GAAGC,UAAUL,MAAM,CAAC,CAACiB,aAAaC;wBAClD,IAAI,OAAOA,IAAIC,OAAO,KAAK,UAAU;4BACnC,IAAI,CAACF,WAAW,CAACC,IAAIC,OAAO,CAAC,EAAE;gCAC7BF,WAAW,CAACC,IAAIC,OAAO,CAAC,GAAG,EAAE;4BAC/B;4BACA,MAAMC,SAASF,IAAIC,OAAO;4BAC1B,MAAME,OAAO,CAAC;4BACd,OAAOH,IAAIC,OAAO;4BAClB,IAAID,IAAII,KAAK,EAAE;gCACbJ,IAAIK,EAAE,GAAGL,IAAII,KAAK;gCAClB,OAAOJ,IAAII,KAAK;4BAClB;4BAEA,MAAME,YAAY7C,eAAkB;gCAClCC;gCACAC;gCACAC;gCACAC,kBAAkB4B;gCAClB3B,SAASqC;gCACTpC;gCACAC,aAAa;gCACbC,QAAQe,MAAMuB,eAAe;gCAC7BpC;gCACAC,mBAAmBA,qBAAqBY,MAAMwB,SAAS;gCACvDnC,MAAM,GAAGO,gBAAgBI,MAAME,IAAI,CAAC,CAAC,EAAEc,IAAIS,MAAM,GAAG,GAAG;gCACvDnC;gCACAC,OAAOyB;gCACPxB,WAAW;gCACXC;gCACAC;gCACAC,0BAA0BuB;4BAC5B;4BAEA,IAAI,YAAYI,WAAW;gCACzB,OAAOA,UAAUG,MAAM;4BACzB;4BAEAV,WAAW,CAACG,OAAO,CAACZ,IAAI,CAACgB;wBAC3B;wBAEA,OAAOP;oBACT,GAAG,CAAC;gBACN,OAAO;oBACLhB,MAAM,CAACC,MAAME,IAAI,CAAC,GAAGC,UAAUL,MAAM,CAAC,CAAC4B,KAAKV,KAAKW;wBAC/C,IAAIX,IAAII,KAAK,EAAE;4BACbJ,IAAIK,EAAE,GAAGL,IAAII,KAAK;4BAClB,OAAOJ,IAAII,KAAK;wBAClB;wBAEA,IAAI,YAAYJ,KAAK;4BACnB,OAAOA,IAAIS,MAAM;wBACnB;wBAEA,IACE,CAAC9B,4BACAA,4BAA4BA,6BAA6BqB,IAAIC,OAAO,EACrE;4BACA,IAAID,IAAIC,OAAO,EAAE;gCACf,OAAOD,IAAIC,OAAO;4BACpB;4BAEAS,IAAIpB,IAAI,CACN7B,eAAkB;gCAChBC;gCACAC;gCACAC;gCACAC,kBAAkB4B;gCAClB3B,SAASkC;gCACTjC;gCACAC,aAAa;gCACbC,QAAQe,MAAMuB,eAAe;gCAC7BpC;gCACAC,mBAAmBA,qBAAqBY,MAAMwB,SAAS;gCACvDnC,MAAM,GAAGO,gBAAgBI,MAAME,IAAI,CAAC,CAAC,EAAEyB,GAAG;gCAC1CrC;gCACAC,OAAOyB;gCACPxB,WAAW;gCACXC;gCACAC;gCACAC;4BACF;wBAEJ;wBAEA,OAAO+B;oBACT,GAAG,EAAE;gBACP;YACF;YAEA,OAAO3B;QACT;QAEA,IAAIC,MAAMQ,IAAI,KAAK,UAAU;YAC3B,MAAMoB,iBAAiB,GAAGhC,gBAAgBI,MAAME,IAAI,EAAE;YACtD,MAAM2B,eAAelD,MAAM,CAACiD,eAAe;YAE3C,IAAIf,MAAMC,OAAO,CAACe,eAAe;gBAC/B,IAAItB,aAAa;oBACfR,MAAM,CAACC,MAAME,IAAI,CAAC,GAAG,CAAC;oBAEtB2B,aAAaC,OAAO,CAAC,CAACd;wBACpB,IAAIA,IAAII,KAAK,EAAE;4BACbJ,IAAIK,EAAE,GAAGL,IAAII,KAAK;4BAClB,OAAOJ,IAAII,KAAK;wBAClB;wBACA,IAAI,OAAOJ,IAAIC,OAAO,KAAK,UAAU;4BACnC,IAAI,CAAClB,MAAM,CAACC,MAAME,IAAI,CAAC,CAACc,IAAIC,OAAO,CAAC,EAAE;gCACpClB,MAAM,CAACC,MAAME,IAAI,CAAC,CAACc,IAAIC,OAAO,CAAC,GAAG,EAAE;4BACtC;4BACAlB,MAAM,CAACC,MAAME,IAAI,CAAC,CAACc,IAAIC,OAAO,CAAC,CAACX,IAAI,CAACU;4BACrC,OAAOA,IAAIC,OAAO;wBACpB;oBACF;oBAEAc,OAAOC,OAAO,CAACjC,MAAM,CAACC,MAAME,IAAI,CAAC,EAAE4B,OAAO,CAAC,CAAC,CAACZ,QAAQe,gBAAgB;wBACnElC,MAAM,CAACC,MAAME,IAAI,CAAC,CAACgB,OAAO,GAAGe,gBAAgBC,GAAG,CAAC,CAAClB;4BAChD,MAAMmB,QACJzD,QAAQ0D,OAAO,CAACzD,MAAM,CAACqC,IAAIqB,SAAS,CAAC,IACpC,AAACrC,CAAAA,MAAMsC,eAAe,IAAItC,MAAMrB,MAAM,AAAD,EAAG4D,IAAI,CAC3C,CAACJ,QAAU,OAAOA,UAAU,YAAYA,MAAMK,IAAI,KAAKxB,IAAIqB,SAAS;4BAGxE,MAAMzB,YAAYlC,QAAQgC,YAAY,CAACC,GAAG,CACxC,GAAGjB,kBAAkB,QAAQ,EAAEtB,YAAY+D,MAAMK,IAAI,GAAG;4BAG1D,IAAIL,OAAO;gCACT,MAAMM,cAAchE,eAAkB;oCACpCC;oCACAC;oCACAC;oCACAC,kBAAkB+B;oCAClB9B,SAASkC;oCACTjC;oCACAC,aAAa;oCACbC,QAAQkD,MAAMZ,eAAe;oCAC7BpC;oCACAC,mBAAmBA,qBAAqBY,MAAMwB,SAAS;oCACvDnC,MAAM,GAAGuC,eAAe,CAAC,EAAEZ,IAAIS,MAAM,GAAG,GAAG;oCAC3CnC;oCACAC,OAAOyB;oCACPxB,WAAW;oCACXC;oCACAC;oCACAC,0BAA0BuB;gCAC5B;gCAEA,OAAOuB,YAAYhB,MAAM;gCACzB,OAAOgB;4BACT;4BAEA,OAAO,CAAC;wBACV;oBACF;gBACF,OAAO;oBACL,+EAA+E;oBAC/E,iEAAiE;oBACjE,IAAI9C,4BAA4Bf,OAAO8D,YAAY,EAAE;wBACnD,KAAK,MAAMxB,UAAUtC,OAAO8D,YAAY,CAACC,WAAW,CAAE;4BACpD,IAAIC,cAAc;4BAElB,IAAK,IAAIjB,IAAI,GAAGA,IAAIE,aAAagB,MAAM,EAAElB,IAAK;gCAC5C,MAAMX,MAAMa,YAAY,CAACF,EAAE;gCAC3B,IAAIX,IAAIC,OAAO,KAAKC,QAAQ;oCAC1BF,IAAI8B,MAAM,GAAGF;oCACbA;gCACF;4BACF;wBACF;oBACF;oBAEA7C,MAAM,CAACC,MAAME,IAAI,CAAC,GAAG2B,aAAa/B,MAAM,CAAC,CAAC4B,KAAKV,KAAKW;wBAClD,OAAOX,IAAIS,MAAM;wBACjB,IAAIT,IAAII,KAAK,EAAE;4BACbJ,IAAIK,EAAE,GAAGL,IAAII,KAAK;4BAClB,OAAOJ,IAAII,KAAK;wBAClB;wBAEA,IAAI,OAAOJ,IAAIqB,SAAS,KAAK,UAAU;4BACrC,OAAOX;wBACT;wBAEA,MAAMS,QACJzD,QAAQ0D,OAAO,CAACzD,MAAM,CAACqC,IAAIqB,SAAS,CAAC,IACpC,AAACrC,CAAAA,MAAMsC,eAAe,IAAItC,MAAMrB,MAAM,AAAD,EAAG4D,IAAI,CAC3C,CAACJ,QAAU,OAAOA,UAAU,YAAYA,MAAMK,IAAI,KAAKxB,IAAIqB,SAAS;wBAGxE,IAAIF,OAAO;4BACT,IACE,CAACxC,4BACAA,4BAA4BA,6BAA6BqB,IAAIC,OAAO,EACrE;gCACA,IAAID,IAAIC,OAAO,EAAE;oCACf,OAAOD,IAAIC,OAAO;gCACpB;gCACA,IAAI,OAAOD,IAAI8B,MAAM,KAAK,UAAU;oCAClCnB,IAAIX,IAAI8B,MAAM;oCACd,OAAO9B,IAAI8B,MAAM;gCACnB;gCAEA,MAAMlC,YAAYlC,QAAQgC,YAAY,CAACC,GAAG,CACxC,GAAGjB,kBAAkB,QAAQ,EAAEtB,YAAY+D,MAAMK,IAAI,GAAG;gCAG1Dd,IAAIpB,IAAI,CACN7B,eAAkB;oCAChBC;oCACAC;oCACAC;oCACAC,kBAAkB+B;oCAClB9B,SAASkC;oCACTjC;oCACAC,aAAa;oCACbC,QAAQkD,MAAMZ,eAAe;oCAC7BpC;oCACAC,mBAAmBA,qBAAqBY,MAAMwB,SAAS;oCACvDnC,MAAM,GAAGuC,eAAe,CAAC,EAAED,GAAG;oCAC9BrC;oCACAC,OAAOyB;oCACPxB,WAAW;oCACXC;oCACAC;oCACAC;gCACF;gCAGF,OAAO+B;4BACT;wBACF,OAAO;4BACLA,IAAIpB,IAAI,CAAC,CAAC;wBACZ;wBAEA,OAAOoB;oBACT,GAAG,EAAE;gBACP;YACF;YAEA,OAAO3B;QACT;QAEA,IAAIC,MAAMQ,IAAI,KAAK,kBAAkBR,MAAMQ,IAAI,KAAK,UAAU;YAC5D,IAAI,OAAOR,MAAM+C,UAAU,KAAK,YAAY,CAAE,CAAA,aAAa/C,SAASA,MAAMgD,OAAO,AAAD,GAAI;gBAClF,IACEzC,eACA3B,OAAO8D,YAAY,IACnB9D,OAAO8D,YAAY,CAACO,OAAO,IAC3BpC,MAAMC,OAAO,CAACvB,OAAO2D,WACrB;oBACA3D,MAAM2D,QAAQ,CAACpB,OAAO,CAAC,CAACqB;wBACtBpD,MAAM,CAACC,MAAME,IAAI,CAAC,GAAG;4BAAE,CAACiD,UAAUlC,OAAO,CAAC,EAAEkC,SAAS,CAAClD,UAAU;wBAAC;oBACnE;gBACF,OAAO;oBACLI,kBAAkBC,IAAI,CAAC;wBAAE8C,KAAKrD;wBAAQR;oBAAM;gBAC9C;YACF,OAAO;gBACL,MAAM8D,oBAAoB/D,aAAa,CAAC,GAAGM,gBAAgBI,MAAME,IAAI,EAAE,CAAC;gBAExE,IAAI,CAACmD,mBAAmB;oBACtB,IAAI,aAAarD,SAASA,MAAMgD,OAAO,EAAE;wBACvC,IAAIzC,eAAe3B,OAAO8D,YAAY,IAAI9D,OAAO8D,YAAY,CAACO,OAAO,EAAE;4BACrElD,MAAM,CAACC,MAAME,IAAI,CAAC,GAAG;gCACnB,CAACtB,OAAO8D,YAAY,CAACY,aAAa,CAAC,EAAE,EAAE;4BACzC;wBACF,OAAO;4BACLvD,MAAM,CAACC,MAAME,IAAI,CAAC,GAAG,EAAE;wBACzB;oBACF;oBAEA,OAAOH;gBACT;gBAEA,IAAIQ,aAAa;oBACfR,MAAM,CAACC,MAAME,IAAI,CAAC,GAAG,CAAC;oBACtB,MAAMqD,oBAA+D,CAAC;oBAEtEF,kBAAkBvB,OAAO,CAAC,CAACd;wBACzB,IAAI,OAAOA,IAAIE,MAAM,KAAK,UAAU;4BAClC,IAAI,CAACqC,iBAAiB,CAACvC,IAAIE,MAAM,CAAC,EAAE;gCAClCqC,iBAAiB,CAACvC,IAAIE,MAAM,CAAC,GAAG,EAAE;4BACpC;4BACAqC,iBAAiB,CAACvC,IAAIE,MAAM,CAAC,CAACZ,IAAI,CAACU;wBACrC;oBACF;oBAEAe,OAAOC,OAAO,CAACuB,mBAAmBzB,OAAO,CAAC,CAAC,CAACZ,QAAQsC,UAAU;wBAC5DhF,sBAAsB;4BACpBwB;4BACAkB;4BACAkC,KAAKrD;4BACLyD;wBACF;oBACF;gBACF,OAAO;oBACLhF,sBAAsB;wBACpBwB;wBACAoD,KAAKrD;wBACLyD,WAAWH;wBACX1D;oBACF;gBACF;gBACA,OAAOI;YACT;QACF;QAEA,IAAIC,MAAMQ,IAAI,KAAK,QAAQ;YACzB,MAAM,EAAEiD,KAAK,EAAEC,QAAQ1D,MAAM2D,YAAY,IAAI,EAAE,EAAE,GAC/CzE,WAAW,CAAC,GAAGF,YAAY4E,UAAU,CAAC,KAAK,OAAO5D,MAAME,IAAI,EAAE,CAAC,IAAI,CAAC;YAEtE,kCAAkC;YAClC,IAAI,OAAOC,cAAc,UAAU;gBACjCA,YAAY0D,KAAKC,KAAK,CAAC3D;YACzB;YAEA,IAAI4D;YAGJ,IAAIlD,MAAMC,OAAO,CAACX,YAAY;gBAC5B,IAAII,eAAe7B,QAAQ0D,OAAO,CAACxD,MAAM,CAAC8D,YAAY,EAAE;oBACtDqB,cAAc5D,UAAUL,MAAM,CAC5B,CAACkE,YAAYhD;wBACX,IAAI,OAAOA,IAAIE,MAAM,KAAK,UAAU;4BAClC8C,UAAU,CAAChD,IAAIE,MAAM,CAAC,CAAC+C,IAAI,CAAC3D,IAAI,CAACU,IAAIK,EAAE;wBACzC;wBAEA,OAAO2C;oBACT,GAEA,uDAAuD;oBACvDtF,QAAQ0D,OAAO,CAACxD,MAAM,CAAC8D,YAAY,CAACC,WAAW,CAAC7C,MAAM,CAAC,CAAC4B,KAAKwC;wBAC3DxC,GAAG,CAACwC,KAAK,GAAG;4BACVD,MAAM,EAAE;4BACRE,aAAa;wBACf;wBACA,OAAOzC;oBACT,GAAG,CAAC;oBAENK,OAAOqC,IAAI,CAACL,aAAajC,OAAO,CAAC,CAACZ;wBAChC6C,WAAW,CAAC7C,OAAO,CAACiD,WAAW,GAAGJ,WAAW,CAAC7C,OAAO,CAAC+C,IAAI,CAACpB,MAAM,GAAGa;wBACpEK,WAAW,CAAC7C,OAAO,CAAC+C,IAAI,GAAGF,WAAW,CAAC7C,OAAO,CAAC+C,IAAI,CAACI,KAAK,CAAC,GAAGX;oBAC/D;gBACF,OAAO;oBACL,MAAMS,cAAcT,UAAU,KAAKvD,UAAU0C,MAAM,GAAGa;oBACtDK,cAAc;wBACZE,MAAM,AAACE,CAAAA,cAAchE,UAAUkE,KAAK,CAAC,GAAGX,SAASvD,SAAQ,EAAG+B,GAAG,CAC7D,CAAC,EAAEb,EAAE,EAAE0B,UAAU,EAAE;4BACjB,IAAIA,YAAY;gCACd,OAAO;oCAAEA;oCAAYuB,OAAOjD;gCAAG;4BACjC;4BACA,OAAO;gCAAEA;4BAAG;wBACd;wBAEF8C;oBACF;gBACF;YACF;YAEA,IAAIV,OAAO;gBACT,MAAMc,YAAY,GAAGtE,UAAU,MAAM,CAAC;gBACtC,IAAI,OAAOV,KAAK,CAACgF,UAAU,KAAK,aAAa;oBAC3C,IAAID,QAAQE,OAAOjF,KAAK,CAACgF,UAAU;oBACnC,IAAIC,OAAOC,KAAK,CAACH,QAAQ;wBACvBA,QAAQ;oBACV;oBACAP,YAAYW,SAAS,GAAGJ;gBAC1B;YACF;YAEAvE,MAAM,CAACC,MAAME,IAAI,CAAC,GAAG6D;YACrB,OAAOhE;QACT;QAEA,IAAIC,MAAMQ,IAAI,KAAK,UAAUR,OAAOgD,SAAS;YAC3C,MAAM2B,gBAAgBlF,KAAK,CAAC,GAAGG,gBAAgBI,MAAME,IAAI,EAAE,CAAC;YAC5D,IAAI,CAACyE,eAAe;gBAClB,OAAO5E;YACT;YAEA,IAAIQ,aAAa;gBACfR,MAAM,CAACC,MAAME,IAAI,CAAC,GAAG,CAAC;gBACtB,MAAM0E,gBAA2D,CAAC;gBAElED,cAAc7C,OAAO,CAAC,CAACd;oBACrB,IAAI,OAAOA,IAAIE,MAAM,KAAK,UAAU;wBAClC,IAAI,CAAC0D,aAAa,CAAC5D,IAAIE,MAAM,CAAC,EAAE;4BAC9B0D,aAAa,CAAC5D,IAAIE,MAAM,CAAC,GAAG,EAAE;wBAChC;wBACA0D,aAAa,CAAC5D,IAAIE,MAAM,CAAC,CAACZ,IAAI,CAACU;oBACjC;gBACF;gBAEAe,OAAOC,OAAO,CAAC4C,eAAe9C,OAAO,CAAC,CAAC,CAACZ,QAAQzB,MAAM;oBACpDlB,qBAAqB;wBACnByB;wBACAkB;wBACAkC,KAAKrD;wBACL8E,UAAUpF;oBACZ;gBACF;YACF,OAAO;gBACLlB,qBAAqB;oBACnByB;oBACAoD,KAAKrD;oBACL8E,UAAUF;oBACVhF;gBACF;YACF;YAEA,OAAOI;QACT;QAEA,IAAIC,MAAMQ,IAAI,KAAK,YAAYR,MAAMgD,OAAO,EAAE;YAC5C,MAAM8B,kBAAkB3F,OAAO,CAAC,GAAGS,gBAAgBI,MAAME,IAAI,EAAE,CAAC;YAChE,IAAI,CAAC4E,iBAAiB;gBACpB,OAAO/E;YACT;YAEA,IAAIQ,aAAa;gBACfR,MAAM,CAACC,MAAME,IAAI,CAAC,GAAG,CAAC;gBACtB,MAAM6E,kBAA6D,CAAC;gBAEpED,gBAAgBhD,OAAO,CAAC,CAACd;oBACvB,IAAI,OAAOA,IAAIE,MAAM,KAAK,UAAU;wBAClC,IAAI,CAAC6D,eAAe,CAAC/D,IAAIE,MAAM,CAAC,EAAE;4BAChC6D,eAAe,CAAC/D,IAAIE,MAAM,CAAC,GAAG,EAAE;wBAClC;wBACA6D,eAAe,CAAC/D,IAAIE,MAAM,CAAC,CAACZ,IAAI,CAACU;oBACnC;gBACF;gBAEAe,OAAOC,OAAO,CAAC+C,iBAAiBjD,OAAO,CAAC,CAAC,CAACZ,QAAQ/B,QAAQ;oBACxDb,uBAAuB;wBACrB0B;wBACAkB;wBACA8D,YAAY7F;wBACZiE,KAAKrD;oBACP;gBACF;YACF,OAAO;gBACLzB,uBAAuB;oBACrB0B;oBACAgF,YAAYF;oBACZ1B,KAAKrD;oBACLJ;gBACF;YACF;YAEA,OAAOI;QACT;QAEA,IAAIC,MAAMQ,IAAI,KAAK,YAAYR,MAAMgD,OAAO,EAAE;YAC5C,IAAInC,MAAMC,OAAO,CAACX,YAAY;gBAC5B,IAAII,aAAa;oBACfR,MAAM,CAACC,MAAME,IAAI,CAAC,GAAGC,UAAUL,MAAM,CAAC,CAACmF,cAAcjE;wBACnD,IAAI,OAAOA,IAAIE,MAAM,KAAK,UAAU;4BAClC,IAAI,CAAC+D,YAAY,CAACjE,IAAIE,MAAM,CAAC,EAAE;gCAC7B+D,YAAY,CAACjE,IAAIE,MAAM,CAAC,GAAG,EAAE;4BAC/B;4BACA+D,YAAY,CAACjE,IAAIE,MAAM,CAAC,CAACZ,IAAI,CAACU,IAAIsD,KAAK;wBACzC;wBAEA,OAAOW;oBACT,GAAG,CAAC;gBACN,OAAO;oBACL,IAAIC,aAAa/E;oBACjB,IAAIR,0BAA0B;wBAC5BuF,aAAaA,WAAWC,MAAM,CAAC,CAAC,EAAEjE,MAAM,EAAE,GAAKA,WAAWvB;oBAC5D;oBACAI,MAAM,CAACC,MAAME,IAAI,CAAC,GAAGgF,WAAWhD,GAAG,CAAC,CAAC,EAAEoC,KAAK,EAAE,GAAKA;gBACrD;YACF;YACA,OAAOvE;QACT;QAEA,IAAIQ,eAAeM,MAAMC,OAAO,CAACvB,MAAM2D,QAAQ,GAAG;YAChD,IAAI,CAAC3D,MAAM2D,QAAQ,CAACL,MAAM,IAAInE,QAAQ0D,OAAO,CAACxD,MAAM,CAAC8D,YAAY,EAAE;gBACjEhE,QAAQ0D,OAAO,CAACxD,MAAM,CAAC8D,YAAY,CAACC,WAAW,CAACb,OAAO,CAAC,CAACb,UACvD,AAAC1B,MAAM2D,QAAQ,CAAe5C,IAAI,CAAC;wBAAEW;oBAAQ;YAEjD;YAEA1B,MAAM2D,QAAQ,CAACpB,OAAO,CAAC,CAACqB;gBACtB9C,kBAAkBC,IAAI,CAAC;oBACrB8C,KAAKhD;oBACLb,OAAO;wBACL,GAAGA,KAAK;wBACR,GAAG4D,SAAS;oBACd;gBACF;YACF;QACF,OAAO;YACL9C,kBAAkBC,IAAI,CAAC;gBAAE8C,KAAKrD;gBAAQR;YAAM;QAC9C;QAEAc,kBAAkByB,OAAO,CAAC,CAAC,EAAEsB,GAAG,EAAE7D,KAAK,EAAE;YACvC,MAAMY,YAAYZ,KAAK,CAAC,GAAGP,eAAe,KAAKgB,MAAME,IAAI,EAAE,CAAC;YAC5D,MAAMgB,SAAS3B,OAAO0B;YACtB,IAAImE,MAAMjF;YAEV,OAAQH,MAAMQ,IAAI;gBAChB,KAAK;oBAAQ;wBACX,IAAI,OAAOL,cAAc,UAAU;4BACjCiF,MAAM,IAAIC,KAAKlF,WAAWmF,WAAW;wBACvC;wBAEA;oBACF;gBAEA,KAAK;gBACL,KAAK;oBAAO;wBACV,MAAMC,mBAAmB,GAAGvG,eAAe,KAAKgB,MAAME,IAAI,CAAC,CAAC,CAAC;wBAC7D,MAAMsF,YAAY,CAAC;wBACnB,MAAMtE,SAAS3B,MAAM0B,OAAO;wBAC5B,MAAMwE,SAASlF,eAAeW,SAASA,SAASlB,MAAME,IAAI;wBAE1D,IAAIK,eAAeW,QAAQ;4BACzB,OAAO3B,MAAM0B,OAAO;wBACtB;wBACAmC,GAAG,CAACqC,OAAO,GAAGhH,eAAwC;4BACpDC;4BACAC;4BACAC;4BACAC;4BACAC,SAAS0G;4BACTzG;4BACAC,aAAauG;4BACbtG,QAAQe,MAAMuB,eAAe;4BAC7BrC;4BACAC;4BACAC,mBAAmBA,qBAAqBY,MAAMwB,SAAS;4BACvDnC,MAAM,GAAGO,gBAAgBI,MAAME,IAAI,EAAE;4BACrCZ;4BACAC;4BACAC,WAAW,GAAGA,YAAYpB,YAAY4B,MAAME,IAAI,EAAE,CAAC,CAAC;4BACpDT;4BACAC;4BACAC,0BAA0BuB,UAAUvB;wBACtC;wBAEA,IAAI,YAAYyD,KAAK;4BACnB,OAAOA,IAAI3B,MAAM;wBACnB;wBAEA;oBACF;gBAEA,KAAK;oBAAU;wBACb,IAAI,OAAOtB,cAAc,UAAU;4BACjCiF,MAAMZ,OAAOkB,UAAU,CAACvF;wBAC1B;wBAEA;oBACF;gBAEA,KAAK;oBAAS;wBACZ,IAAI,OAAOA,cAAc,UAAU;4BACjCiF,MAAMvB,KAAKC,KAAK,CAAC3D;wBACnB;wBAEA;oBACF;gBAEA,KAAK;gBACL,KAAK;oBAAU;wBACb,IACEiF,OACA,OAAOpF,MAAM+C,UAAU,KAAK,YAC5BrE,QAAQ0D,OAAO,CAACuD,WAAW,CAAC3F,MAAM+C,UAAU,CAAC,CAAC6C,YAAY,KAAK,UAC/D;4BACAR,MAAMZ,OAAOY;wBACf;wBAEA;oBACF;gBACA,KAAK;oBAAQ;wBACX,IAAI,OAAOjF,cAAc,UAAU;4BACjCiF,MAAMS,OAAO1F;wBACf;wBAEA;oBACF;gBAEA;oBAAS;wBACP;oBACF;YACF;YACA,IAAI,OAAOe,WAAW,UAAU;gBAC9BkC,GAAG,CAAClC,OAAO,GAAGkE;YAChB,OAAO;gBACLrF,MAAM,CAACC,MAAME,IAAI,CAAC,GAAGkF;YACvB;QACF;QAEA,IAAIrD,OAAOqC,IAAI,CAAChE,oBAAoByC,MAAM,GAAG,GAAG;YAC9C9C,MAAM,CAACC,MAAME,IAAI,CAAC,GAAGE;QACvB;QAEA,OAAOL;QAEP,OAAOA;IACT,GAAGjB;IAEH,IAAI+B,MAAMC,OAAO,CAACvB,MAAM2D,QAAQ,GAAG;QACjCnE,UAAUuB,IAAI,CAAC,IAAM,OAAOf,MAAM2D,QAAQ;IAC5C;IAEA,OAAOrD;AACT,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../../src/transform/write/blocks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAKnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAKxE,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,cAAc,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KACxC,CAAA;IACD,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAC/B,KAAK,EAAE,oBAAoB,CAAA;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAClC,iBAAiB,EAAE,OAAO,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IACxC,qBAAqB,EAAE,oBAAoB,EAAE,CAAA;IAC7C,OAAO,EAAE;QACP,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;KAC/C,CAAA;IACD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAChC;;;OAGG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAA;CAClC,CAAA;AACD,eAAO,MAAM,eAAe,+LAgBzB,IAAI,SAgFN,CAAA"}
1
+ {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../../src/transform/write/blocks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAKnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAIxE,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,cAAc,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KACxC,CAAA;IACD,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC3B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAC/B,KAAK,EAAE,oBAAoB,CAAA;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAClC,iBAAiB,EAAE,OAAO,CAAA;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IACxC,qBAAqB,EAAE,oBAAoB,EAAE,CAAA;IAC7C,OAAO,EAAE;QACP,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;KAC/C,CAAA;IACD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAChC;;;OAGG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAA;CAClC,CAAA;AACD,eAAO,MAAM,eAAe,+LAgBzB,IAAI,SA6EN,CAAA"}
@@ -1,6 +1,5 @@
1
1
  import { fieldShouldBeLocalized } from 'payload/shared';
2
2
  import toSnakeCase from 'to-snake-case';
3
- import { resolveBlockTableName } from '../../utilities/validateExistingBlockIsIdentical.js';
4
3
  import { traverseFields } from './traverseFields.js';
5
4
  export const transformBlocks = ({ adapter, baseTableName, blocks, blocksToDelete, data, field, locale, numbers, parentIsLocalized, path, relationships, relationshipsToDelete, selects, texts, withinArrayOrBlockLocale })=>{
6
5
  data.forEach((blockRow, i)=>{
@@ -12,6 +11,9 @@ export const transformBlocks = ({ adapter, baseTableName, blocks, blocksToDelete
12
11
  return;
13
12
  }
14
13
  const blockType = toSnakeCase(blockRow.blockType);
14
+ if (!blocks[blockType]) {
15
+ blocks[blockType] = [];
16
+ }
15
17
  const newRow = {
16
18
  arrays: {},
17
19
  locales: {},
@@ -29,10 +31,7 @@ export const transformBlocks = ({ adapter, baseTableName, blocks, blocksToDelete
29
31
  if (withinArrayOrBlockLocale) {
30
32
  newRow.row._locale = withinArrayOrBlockLocale;
31
33
  }
32
- const blockTableName = resolveBlockTableName(matchedBlock, adapter.tableNameMap.get(`${baseTableName}_blocks_${blockType}`));
33
- if (!blocks[blockTableName]) {
34
- blocks[blockTableName] = [];
35
- }
34
+ const blockTableName = adapter.tableNameMap.get(`${baseTableName}_blocks_${blockType}`);
36
35
  const hasUUID = adapter.tables[blockTableName]._uuid;
37
36
  // If we have declared a _uuid field on arrays,
38
37
  // that means the ID has to be unique,
@@ -66,7 +65,7 @@ export const transformBlocks = ({ adapter, baseTableName, blocks, blocksToDelete
66
65
  texts,
67
66
  withinArrayOrBlockLocale
68
67
  });
69
- blocks[blockTableName].push(newRow);
68
+ blocks[blockType].push(newRow);
70
69
  });
71
70
  };
72
71