@payloadcms/drizzle 3.23.0-canary.f63b80a → 3.23.0-canary.fa36283

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 (34) hide show
  1. package/dist/find/traverseFields.d.ts.map +1 -1
  2. package/dist/find/traverseFields.js +1 -3
  3. package/dist/find/traverseFields.js.map +1 -1
  4. package/dist/postgres/countDistinct.d.ts.map +1 -1
  5. package/dist/postgres/countDistinct.js +13 -3
  6. package/dist/postgres/countDistinct.js.map +1 -1
  7. package/dist/postgres/predefinedMigrations/v2-v3/fetchAndResave/traverseFields.d.ts.map +1 -1
  8. package/dist/postgres/predefinedMigrations/v2-v3/fetchAndResave/traverseFields.js +2 -4
  9. package/dist/postgres/predefinedMigrations/v2-v3/fetchAndResave/traverseFields.js.map +1 -1
  10. package/dist/postgres/predefinedMigrations/v2-v3/traverseFields.d.ts.map +1 -1
  11. package/dist/postgres/predefinedMigrations/v2-v3/traverseFields.js +0 -4
  12. package/dist/postgres/predefinedMigrations/v2-v3/traverseFields.js.map +1 -1
  13. package/dist/queries/addJoinTable.d.ts +4 -3
  14. package/dist/queries/addJoinTable.d.ts.map +1 -1
  15. package/dist/queries/addJoinTable.js +2 -1
  16. package/dist/queries/addJoinTable.js.map +1 -1
  17. package/dist/queries/buildQuery.d.ts +1 -0
  18. package/dist/queries/buildQuery.d.ts.map +1 -1
  19. package/dist/queries/buildQuery.js.map +1 -1
  20. package/dist/queries/getTableColumnFromPath.d.ts.map +1 -1
  21. package/dist/queries/getTableColumnFromPath.js +8 -5
  22. package/dist/queries/getTableColumnFromPath.js.map +1 -1
  23. package/dist/schema/traverseFields.d.ts.map +1 -1
  24. package/dist/schema/traverseFields.js +1 -2
  25. package/dist/schema/traverseFields.js.map +1 -1
  26. package/dist/transform/read/traverseFields.d.ts.map +1 -1
  27. package/dist/transform/read/traverseFields.js +2 -5
  28. package/dist/transform/read/traverseFields.js.map +1 -1
  29. package/dist/transform/write/blocks.d.ts.map +1 -1
  30. package/dist/transform/write/blocks.js +1 -1
  31. package/dist/transform/write/blocks.js.map +1 -1
  32. package/dist/transform/write/traverseFields.js +2 -3
  33. package/dist/transform/write/traverseFields.js.map +1 -1
  34. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/transform/read/traverseFields.ts"],"sourcesContent":["import type { FlattenedBlock, FlattenedField, JoinQuery, SanitizedConfig } from 'payload'\n\nimport { fieldIsVirtual } from 'payload/shared'\n\nimport type { DrizzleAdapter } from '../../types.js'\nimport type { BlocksMap } from '../../utilities/createBlocksMap.js'\n\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 /**\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 /**\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 /**\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 /**\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 dataRef,\n deletions,\n fieldPrefix,\n fields,\n joinQuery,\n numbers,\n path,\n relationships,\n table,\n texts,\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 if (field.type === 'array') {\n if (Array.isArray(fieldData)) {\n if (field.localized) {\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 dataRef: data,\n deletions,\n fieldPrefix: '',\n fields: field.flattenedFields,\n numbers,\n path: `${sanitizedPath}${field.name}.${row._order - 1}`,\n relationships,\n table: row,\n texts,\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 dataRef: row,\n deletions,\n fieldPrefix: '',\n fields: field.flattenedFields,\n numbers,\n path: `${sanitizedPath}${field.name}.${i}`,\n relationships,\n table: row,\n texts,\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 (field.localized) {\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 if (block) {\n const blockResult = traverseFields<T>({\n adapter,\n blocks,\n config,\n dataRef: row,\n deletions,\n fieldPrefix: '',\n fields: block.flattenedFields,\n numbers,\n path: `${blockFieldPath}.${row._order - 1}`,\n relationships,\n table: row,\n texts,\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 acc.push(\n traverseFields<T>({\n adapter,\n blocks,\n config,\n dataRef: row,\n deletions,\n fieldPrefix: '',\n fields: block.flattenedFields,\n numbers,\n path: `${blockFieldPath}.${i}`,\n relationships,\n table: row,\n texts,\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 field.localized &&\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 (field.localized && 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 (field.localized) {\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 { 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 }\n | Record<string, { docs: unknown[]; hasNextPage: boolean }>\n if (Array.isArray(fieldData)) {\n if (field.localized && 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(({ id }) => ({\n id,\n })),\n hasNextPage,\n }\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 (field.localized) {\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 (field.localized) {\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 (field.localized) {\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 (field.localized && 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 = field.localized && locale ? locale : field.name\n\n if (field.localized && locale) {\n delete table._locale\n }\n ref[refKey] = traverseFields<Record<string, unknown>>({\n adapter,\n blocks,\n config,\n dataRef: groupData as Record<string, unknown>,\n deletions,\n fieldPrefix: groupFieldPrefix,\n fields: field.flattenedFields,\n numbers,\n path: `${sanitizedPath}${field.name}`,\n relationships,\n table,\n texts,\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","transformHasManyNumber","transformHasManyText","transformRelationship","traverseFields","adapter","blocks","config","dataRef","deletions","fieldPrefix","fields","joinQuery","numbers","path","relationships","table","texts","withinArrayOrBlockLocale","sanitizedPath","formatted","reduce","result","field","fieldName","name","fieldData","localizedFieldData","valuesToTransform","push","type","Array","isArray","localized","arrayResult","row","_locale","locale","data","_uuid","id","rowResult","flattenedFields","_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","limit","defaultLimit","replaceAll","JSON","parse","fieldResult","joinResult","docs","code","hasNextPage","keys","slice","textPathMatch","textsByLocale","textRows","numberPathMatch","numbersByLocale","numberRows","selectResult","value","selectData","filter","val","Date","toISOString","groupFieldPrefix","groupData","refKey","Number","parseFloat","collections","customIDType","String"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/transform/read/traverseFields.ts"],"sourcesContent":["import type { FlattenedField, JoinQuery, SanitizedConfig } from 'payload'\n\nimport { fieldAffectsData, fieldIsVirtual } from 'payload/shared'\n\nimport type { DrizzleAdapter } from '../../types.js'\nimport type { BlocksMap } from '../../utilities/createBlocksMap.js'\n\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 /**\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 /**\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 /**\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 /**\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 dataRef,\n deletions,\n fieldPrefix,\n fields,\n joinQuery,\n numbers,\n path,\n relationships,\n table,\n texts,\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 if (field.type === 'array') {\n if (Array.isArray(fieldData)) {\n if (field.localized) {\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 dataRef: data,\n deletions,\n fieldPrefix: '',\n fields: field.flattenedFields,\n numbers,\n path: `${sanitizedPath}${field.name}.${row._order - 1}`,\n relationships,\n table: row,\n texts,\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 dataRef: row,\n deletions,\n fieldPrefix: '',\n fields: field.flattenedFields,\n numbers,\n path: `${sanitizedPath}${field.name}.${i}`,\n relationships,\n table: row,\n texts,\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 (field.localized) {\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 = field.blocks.find(({ slug }) => slug === row.blockType)\n\n if (block) {\n const blockResult = traverseFields<T>({\n adapter,\n blocks,\n config,\n dataRef: row,\n deletions,\n fieldPrefix: '',\n fields: block.flattenedFields,\n numbers,\n path: `${blockFieldPath}.${row._order - 1}`,\n relationships,\n table: row,\n texts,\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 const block = field.blocks.find(({ slug }) => slug === row.blockType)\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 acc.push(\n traverseFields<T>({\n adapter,\n blocks,\n config,\n dataRef: row,\n deletions,\n fieldPrefix: '',\n fields: block.flattenedFields,\n numbers,\n path: `${blockFieldPath}.${i}`,\n relationships,\n table: row,\n texts,\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 field.localized &&\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 (field.localized && 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 (field.localized) {\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 { 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 }\n | Record<string, { docs: unknown[]; hasNextPage: boolean }>\n if (Array.isArray(fieldData)) {\n if (field.localized && 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(({ id }) => ({\n id,\n })),\n hasNextPage,\n }\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 (field.localized) {\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 (field.localized) {\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 (field.localized) {\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 (field.localized && 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 = field.localized && locale ? locale : field.name\n\n if (field.localized && locale) {\n delete table._locale\n }\n ref[refKey] = traverseFields<Record<string, unknown>>({\n adapter,\n blocks,\n config,\n dataRef: groupData as Record<string, unknown>,\n deletions,\n fieldPrefix: groupFieldPrefix,\n fields: field.flattenedFields,\n numbers,\n path: `${sanitizedPath}${field.name}`,\n relationships,\n table,\n texts,\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","transformHasManyNumber","transformHasManyText","transformRelationship","traverseFields","adapter","blocks","config","dataRef","deletions","fieldPrefix","fields","joinQuery","numbers","path","relationships","table","texts","withinArrayOrBlockLocale","sanitizedPath","formatted","reduce","result","field","fieldName","name","fieldData","localizedFieldData","valuesToTransform","push","type","Array","isArray","localized","arrayResult","row","_locale","locale","data","_uuid","id","rowResult","flattenedFields","_order","acc","i","blockFieldPath","blocksByPath","forEach","Object","entries","localizedBlocks","map","block","find","slug","blockType","blockResult","localization","localeCodes","localeIndex","length","_index","relationTo","hasMany","locales","_locales","localeRow","ref","relationPathMatch","defaultLocale","relationsByLocale","relations","limit","defaultLimit","replaceAll","JSON","parse","fieldResult","payload","joinResult","docs","code","hasNextPage","keys","slice","textPathMatch","textsByLocale","textRows","numberPathMatch","numbersByLocale","numberRows","selectResult","value","selectData","filter","val","Date","toISOString","groupFieldPrefix","groupData","refKey","Number","parseFloat","collections","customIDType","String"],"mappings":"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"}
@@ -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;AAInE,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,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,4KAezB,IAAI,SA4EN,CAAA"}
1
+ {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../../src/transform/write/blocks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAInD,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,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,4KAezB,IAAI,SAsEN,CAAA"}
@@ -5,7 +5,7 @@ export const transformBlocks = ({ adapter, baseTableName, blocks, blocksToDelete
5
5
  if (typeof blockRow.blockType !== 'string') {
6
6
  return;
7
7
  }
8
- const matchedBlock = adapter.payload.blocks[blockRow.blockType] ?? (field.blockReferences ?? field.blocks).find((block)=>typeof block !== 'string' && block.slug === blockRow.blockType);
8
+ const matchedBlock = field.blocks.find(({ slug })=>slug === blockRow.blockType);
9
9
  if (!matchedBlock) {
10
10
  return;
11
11
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/transform/write/blocks.ts"],"sourcesContent":["import type { FlattenedBlock, FlattenedBlocksField } from 'payload'\n\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from '../../types.js'\nimport type { BlockRowToInsert, RelationshipToDelete } from './types.js'\n\nimport { traverseFields } from './traverseFields.js'\n\ntype Args = {\n adapter: DrizzleAdapter\n baseTableName: string\n blocks: {\n [blockType: string]: BlockRowToInsert[]\n }\n blocksToDelete: Set<string>\n data: Record<string, unknown>[]\n field: FlattenedBlocksField\n locale?: string\n numbers: Record<string, unknown>[]\n path: string\n relationships: Record<string, unknown>[]\n relationshipsToDelete: RelationshipToDelete[]\n selects: {\n [tableName: string]: Record<string, unknown>[]\n }\n texts: Record<string, unknown>[]\n /**\n * Set to a locale code if this set of fields is traversed within a\n * localized array or block field\n */\n withinArrayOrBlockLocale?: string\n}\nexport const transformBlocks = ({\n adapter,\n baseTableName,\n blocks,\n blocksToDelete,\n data,\n field,\n locale,\n numbers,\n path,\n relationships,\n relationshipsToDelete,\n selects,\n texts,\n withinArrayOrBlockLocale,\n}: Args) => {\n data.forEach((blockRow, i) => {\n if (typeof blockRow.blockType !== 'string') {\n return\n }\n\n const matchedBlock =\n adapter.payload.blocks[blockRow.blockType] ??\n ((field.blockReferences ?? field.blocks).find(\n (block) => typeof block !== 'string' && block.slug === blockRow.blockType,\n ) as FlattenedBlock | undefined)\n\n if (!matchedBlock) {\n return\n }\n const blockType = toSnakeCase(blockRow.blockType)\n\n if (!blocks[blockType]) {\n blocks[blockType] = []\n }\n\n const newRow: BlockRowToInsert = {\n arrays: {},\n locales: {},\n row: {\n _order: i + 1,\n _path: `${path}${field.name}`,\n },\n }\n\n if (field.localized && locale) {\n newRow.row._locale = locale\n }\n if (withinArrayOrBlockLocale) {\n newRow.row._locale = withinArrayOrBlockLocale\n }\n\n const blockTableName = adapter.tableNameMap.get(`${baseTableName}_blocks_${blockType}`)\n\n const hasUUID = adapter.tables[blockTableName]._uuid\n\n // If we have declared a _uuid field on arrays,\n // that means the ID has to be unique,\n // and our ids within arrays are not unique.\n // So move the ID to a uuid field for storage\n // and allow the database to generate a serial id automatically\n if (hasUUID) {\n newRow.row._uuid = blockRow.id\n delete blockRow.id\n }\n\n traverseFields({\n adapter,\n arrays: newRow.arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix: '',\n data: blockRow,\n fieldPrefix: '',\n fields: matchedBlock.flattenedFields,\n insideArrayOrBlock: true,\n locales: newRow.locales,\n numbers,\n parentTableName: blockTableName,\n path: `${path || ''}${field.name}.${i}.`,\n relationships,\n relationshipsToDelete,\n row: newRow.row,\n selects,\n texts,\n withinArrayOrBlockLocale,\n })\n\n blocks[blockType].push(newRow)\n })\n}\n"],"names":["toSnakeCase","traverseFields","transformBlocks","adapter","baseTableName","blocks","blocksToDelete","data","field","locale","numbers","path","relationships","relationshipsToDelete","selects","texts","withinArrayOrBlockLocale","forEach","blockRow","i","blockType","matchedBlock","payload","blockReferences","find","block","slug","newRow","arrays","locales","row","_order","_path","name","localized","_locale","blockTableName","tableNameMap","get","hasUUID","tables","_uuid","id","columnPrefix","fieldPrefix","fields","flattenedFields","insideArrayOrBlock","parentTableName","push"],"mappings":"AAEA,OAAOA,iBAAiB,gBAAe;AAKvC,SAASC,cAAc,QAAQ,sBAAqB;AA0BpD,OAAO,MAAMC,kBAAkB,CAAC,EAC9BC,OAAO,EACPC,aAAa,EACbC,MAAM,EACNC,cAAc,EACdC,IAAI,EACJC,KAAK,EACLC,MAAM,EACNC,OAAO,EACPC,IAAI,EACJC,aAAa,EACbC,qBAAqB,EACrBC,OAAO,EACPC,KAAK,EACLC,wBAAwB,EACnB;IACLT,KAAKU,OAAO,CAAC,CAACC,UAAUC;QACtB,IAAI,OAAOD,SAASE,SAAS,KAAK,UAAU;YAC1C;QACF;QAEA,MAAMC,eACJlB,QAAQmB,OAAO,CAACjB,MAAM,CAACa,SAASE,SAAS,CAAC,IACzC,AAACZ,CAAAA,MAAMe,eAAe,IAAIf,MAAMH,MAAM,AAAD,EAAGmB,IAAI,CAC3C,CAACC,QAAU,OAAOA,UAAU,YAAYA,MAAMC,IAAI,KAAKR,SAASE,SAAS;QAG7E,IAAI,CAACC,cAAc;YACjB;QACF;QACA,MAAMD,YAAYpB,YAAYkB,SAASE,SAAS;QAEhD,IAAI,CAACf,MAAM,CAACe,UAAU,EAAE;YACtBf,MAAM,CAACe,UAAU,GAAG,EAAE;QACxB;QAEA,MAAMO,SAA2B;YAC/BC,QAAQ,CAAC;YACTC,SAAS,CAAC;YACVC,KAAK;gBACHC,QAAQZ,IAAI;gBACZa,OAAO,GAAGrB,OAAOH,MAAMyB,IAAI,EAAE;YAC/B;QACF;QAEA,IAAIzB,MAAM0B,SAAS,IAAIzB,QAAQ;YAC7BkB,OAAOG,GAAG,CAACK,OAAO,GAAG1B;QACvB;QACA,IAAIO,0BAA0B;YAC5BW,OAAOG,GAAG,CAACK,OAAO,GAAGnB;QACvB;QAEA,MAAMoB,iBAAiBjC,QAAQkC,YAAY,CAACC,GAAG,CAAC,GAAGlC,cAAc,QAAQ,EAAEgB,WAAW;QAEtF,MAAMmB,UAAUpC,QAAQqC,MAAM,CAACJ,eAAe,CAACK,KAAK;QAEpD,+CAA+C;QAC/C,sCAAsC;QACtC,4CAA4C;QAC5C,6CAA6C;QAC7C,+DAA+D;QAC/D,IAAIF,SAAS;YACXZ,OAAOG,GAAG,CAACW,KAAK,GAAGvB,SAASwB,EAAE;YAC9B,OAAOxB,SAASwB,EAAE;QACpB;QAEAzC,eAAe;YACbE;YACAyB,QAAQD,OAAOC,MAAM;YACrBxB;YACAC;YACAC;YACAqC,cAAc;YACdpC,MAAMW;YACN0B,aAAa;YACbC,QAAQxB,aAAayB,eAAe;YACpCC,oBAAoB;YACpBlB,SAASF,OAAOE,OAAO;YACvBnB;YACAsC,iBAAiBZ;YACjBzB,MAAM,GAAGA,QAAQ,KAAKH,MAAMyB,IAAI,CAAC,CAAC,EAAEd,EAAE,CAAC,CAAC;YACxCP;YACAC;YACAiB,KAAKH,OAAOG,GAAG;YACfhB;YACAC;YACAC;QACF;QAEAX,MAAM,CAACe,UAAU,CAAC6B,IAAI,CAACtB;IACzB;AACF,EAAC"}
1
+ {"version":3,"sources":["../../../src/transform/write/blocks.ts"],"sourcesContent":["import type { FlattenedBlocksField } from 'payload'\n\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from '../../types.js'\nimport type { BlockRowToInsert, RelationshipToDelete } from './types.js'\n\nimport { traverseFields } from './traverseFields.js'\n\ntype Args = {\n adapter: DrizzleAdapter\n baseTableName: string\n blocks: {\n [blockType: string]: BlockRowToInsert[]\n }\n blocksToDelete: Set<string>\n data: Record<string, unknown>[]\n field: FlattenedBlocksField\n locale?: string\n numbers: Record<string, unknown>[]\n path: string\n relationships: Record<string, unknown>[]\n relationshipsToDelete: RelationshipToDelete[]\n selects: {\n [tableName: string]: Record<string, unknown>[]\n }\n texts: Record<string, unknown>[]\n /**\n * Set to a locale code if this set of fields is traversed within a\n * localized array or block field\n */\n withinArrayOrBlockLocale?: string\n}\nexport const transformBlocks = ({\n adapter,\n baseTableName,\n blocks,\n blocksToDelete,\n data,\n field,\n locale,\n numbers,\n path,\n relationships,\n relationshipsToDelete,\n selects,\n texts,\n withinArrayOrBlockLocale,\n}: Args) => {\n data.forEach((blockRow, i) => {\n if (typeof blockRow.blockType !== 'string') {\n return\n }\n const matchedBlock = field.blocks.find(({ slug }) => slug === blockRow.blockType)\n if (!matchedBlock) {\n return\n }\n const blockType = toSnakeCase(blockRow.blockType)\n\n if (!blocks[blockType]) {\n blocks[blockType] = []\n }\n\n const newRow: BlockRowToInsert = {\n arrays: {},\n locales: {},\n row: {\n _order: i + 1,\n _path: `${path}${field.name}`,\n },\n }\n\n if (field.localized && locale) {\n newRow.row._locale = locale\n }\n if (withinArrayOrBlockLocale) {\n newRow.row._locale = withinArrayOrBlockLocale\n }\n\n const blockTableName = adapter.tableNameMap.get(`${baseTableName}_blocks_${blockType}`)\n\n const hasUUID = adapter.tables[blockTableName]._uuid\n\n // If we have declared a _uuid field on arrays,\n // that means the ID has to be unique,\n // and our ids within arrays are not unique.\n // So move the ID to a uuid field for storage\n // and allow the database to generate a serial id automatically\n if (hasUUID) {\n newRow.row._uuid = blockRow.id\n delete blockRow.id\n }\n\n traverseFields({\n adapter,\n arrays: newRow.arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix: '',\n data: blockRow,\n fieldPrefix: '',\n fields: matchedBlock.flattenedFields,\n insideArrayOrBlock: true,\n locales: newRow.locales,\n numbers,\n parentTableName: blockTableName,\n path: `${path || ''}${field.name}.${i}.`,\n relationships,\n relationshipsToDelete,\n row: newRow.row,\n selects,\n texts,\n withinArrayOrBlockLocale,\n })\n\n blocks[blockType].push(newRow)\n })\n}\n"],"names":["toSnakeCase","traverseFields","transformBlocks","adapter","baseTableName","blocks","blocksToDelete","data","field","locale","numbers","path","relationships","relationshipsToDelete","selects","texts","withinArrayOrBlockLocale","forEach","blockRow","i","blockType","matchedBlock","find","slug","newRow","arrays","locales","row","_order","_path","name","localized","_locale","blockTableName","tableNameMap","get","hasUUID","tables","_uuid","id","columnPrefix","fieldPrefix","fields","flattenedFields","insideArrayOrBlock","parentTableName","push"],"mappings":"AAEA,OAAOA,iBAAiB,gBAAe;AAKvC,SAASC,cAAc,QAAQ,sBAAqB;AA0BpD,OAAO,MAAMC,kBAAkB,CAAC,EAC9BC,OAAO,EACPC,aAAa,EACbC,MAAM,EACNC,cAAc,EACdC,IAAI,EACJC,KAAK,EACLC,MAAM,EACNC,OAAO,EACPC,IAAI,EACJC,aAAa,EACbC,qBAAqB,EACrBC,OAAO,EACPC,KAAK,EACLC,wBAAwB,EACnB;IACLT,KAAKU,OAAO,CAAC,CAACC,UAAUC;QACtB,IAAI,OAAOD,SAASE,SAAS,KAAK,UAAU;YAC1C;QACF;QACA,MAAMC,eAAeb,MAAMH,MAAM,CAACiB,IAAI,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAKA,SAASL,SAASE,SAAS;QAChF,IAAI,CAACC,cAAc;YACjB;QACF;QACA,MAAMD,YAAYpB,YAAYkB,SAASE,SAAS;QAEhD,IAAI,CAACf,MAAM,CAACe,UAAU,EAAE;YACtBf,MAAM,CAACe,UAAU,GAAG,EAAE;QACxB;QAEA,MAAMI,SAA2B;YAC/BC,QAAQ,CAAC;YACTC,SAAS,CAAC;YACVC,KAAK;gBACHC,QAAQT,IAAI;gBACZU,OAAO,GAAGlB,OAAOH,MAAMsB,IAAI,EAAE;YAC/B;QACF;QAEA,IAAItB,MAAMuB,SAAS,IAAItB,QAAQ;YAC7Be,OAAOG,GAAG,CAACK,OAAO,GAAGvB;QACvB;QACA,IAAIO,0BAA0B;YAC5BQ,OAAOG,GAAG,CAACK,OAAO,GAAGhB;QACvB;QAEA,MAAMiB,iBAAiB9B,QAAQ+B,YAAY,CAACC,GAAG,CAAC,GAAG/B,cAAc,QAAQ,EAAEgB,WAAW;QAEtF,MAAMgB,UAAUjC,QAAQkC,MAAM,CAACJ,eAAe,CAACK,KAAK;QAEpD,+CAA+C;QAC/C,sCAAsC;QACtC,4CAA4C;QAC5C,6CAA6C;QAC7C,+DAA+D;QAC/D,IAAIF,SAAS;YACXZ,OAAOG,GAAG,CAACW,KAAK,GAAGpB,SAASqB,EAAE;YAC9B,OAAOrB,SAASqB,EAAE;QACpB;QAEAtC,eAAe;YACbE;YACAsB,QAAQD,OAAOC,MAAM;YACrBrB;YACAC;YACAC;YACAkC,cAAc;YACdjC,MAAMW;YACNuB,aAAa;YACbC,QAAQrB,aAAasB,eAAe;YACpCC,oBAAoB;YACpBlB,SAASF,OAAOE,OAAO;YACvBhB;YACAmC,iBAAiBZ;YACjBtB,MAAM,GAAGA,QAAQ,KAAKH,MAAMsB,IAAI,CAAC,CAAC,EAAEX,EAAE,CAAC,CAAC;YACxCP;YACAC;YACAc,KAAKH,OAAOG,GAAG;YACfb;YACAC;YACAC;QACF;QAEAX,MAAM,CAACe,UAAU,CAAC0B,IAAI,CAACtB;IACzB;AACF,EAAC"}
@@ -74,9 +74,8 @@ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksT
74
74
  return;
75
75
  }
76
76
  if (field.type === 'blocks') {
77
- ;
78
- (field.blockReferences ?? field.blocks).forEach((block)=>{
79
- blocksToDelete.add(toSnakeCase(typeof block === 'string' ? block : block.slug));
77
+ field.blocks.forEach(({ slug })=>{
78
+ blocksToDelete.add(toSnakeCase(slug));
80
79
  });
81
80
  if (field.localized) {
82
81
  if (typeof data[field.name] === 'object' && data[field.name] !== null) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/transform/write/traverseFields.ts"],"sourcesContent":["import type { FlattenedField } from 'payload'\n\nimport { sql } from 'drizzle-orm'\nimport { fieldIsVirtual } from 'payload/shared'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from '../../types.js'\nimport type { ArrayRowToInsert, BlockRowToInsert, RelationshipToDelete } from './types.js'\n\nimport { isArrayOfRows } from '../../utilities/isArrayOfRows.js'\nimport { transformArray } from './array.js'\nimport { transformBlocks } from './blocks.js'\nimport { transformNumbers } from './numbers.js'\nimport { transformRelationship } from './relationships.js'\nimport { transformSelects } from './selects.js'\nimport { transformTexts } from './texts.js'\n\ntype Args = {\n adapter: DrizzleAdapter\n arrays: {\n [tableName: string]: ArrayRowToInsert[]\n }\n /**\n * This is the name of the base table\n */\n baseTableName: string\n blocks: {\n [blockType: string]: BlockRowToInsert[]\n }\n blocksToDelete: Set<string>\n /**\n * A snake-case field prefix, representing prior fields\n * Ex: my_group_my_named_tab_\n */\n columnPrefix: string\n data: Record<string, unknown>\n existingLocales?: Record<string, unknown>[]\n /**\n * A prefix that will retain camel-case formatting, representing prior fields\n * Ex: myGroup_myNamedTab_\n */\n fieldPrefix: string\n fields: FlattenedField[]\n forcedLocale?: string\n /**\n * Tracks whether the current traversion context is from array or block.\n */\n insideArrayOrBlock?: boolean\n locales: {\n [locale: string]: Record<string, unknown>\n }\n numbers: Record<string, unknown>[]\n /**\n * This is the name of the parent table\n */\n parentTableName: string\n path: string\n relationships: Record<string, unknown>[]\n relationshipsToDelete: RelationshipToDelete[]\n row: Record<string, unknown>\n selects: {\n [tableName: string]: Record<string, unknown>[]\n }\n texts: Record<string, unknown>[]\n /**\n * Set to a locale code if this set of fields is traversed within a\n * localized array or block field\n */\n withinArrayOrBlockLocale?: string\n}\n\nexport const traverseFields = ({\n adapter,\n arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix,\n data,\n existingLocales,\n fieldPrefix,\n fields,\n forcedLocale,\n insideArrayOrBlock = false,\n locales,\n numbers,\n parentTableName,\n path,\n relationships,\n relationshipsToDelete,\n row,\n selects,\n texts,\n withinArrayOrBlockLocale,\n}: Args) => {\n if (row._uuid) {\n data._uuid = row._uuid\n }\n\n fields.forEach((field) => {\n let columnName = ''\n let fieldName = ''\n let fieldData: unknown\n\n if (fieldIsVirtual(field)) {\n return\n }\n\n columnName = `${columnPrefix || ''}${toSnakeCase(field.name)}`\n fieldName = `${fieldPrefix || ''}${field.name}`\n fieldData = data[field.name]\n\n if (field.type === 'array') {\n const arrayTableName = adapter.tableNameMap.get(`${parentTableName}_${columnName}`)\n\n if (!arrays[arrayTableName]) {\n arrays[arrayTableName] = []\n }\n\n if (field.localized) {\n if (typeof data[field.name] === 'object' && data[field.name] !== null) {\n Object.entries(data[field.name]).forEach(([localeKey, localeData]) => {\n if (Array.isArray(localeData)) {\n const newRows = transformArray({\n adapter,\n arrayTableName,\n baseTableName,\n blocks,\n blocksToDelete,\n data: localeData,\n field,\n locale: localeKey,\n numbers,\n path,\n relationships,\n relationshipsToDelete,\n selects,\n texts,\n withinArrayOrBlockLocale: localeKey,\n })\n\n arrays[arrayTableName] = arrays[arrayTableName].concat(newRows)\n }\n })\n }\n } else {\n const newRows = transformArray({\n adapter,\n arrayTableName,\n baseTableName,\n blocks,\n blocksToDelete,\n data: data[field.name],\n field,\n numbers,\n path,\n relationships,\n relationshipsToDelete,\n selects,\n texts,\n withinArrayOrBlockLocale,\n })\n\n arrays[arrayTableName] = arrays[arrayTableName].concat(newRows)\n }\n\n return\n }\n\n if (field.type === 'blocks') {\n ;(field.blockReferences ?? field.blocks).forEach((block) => {\n blocksToDelete.add(toSnakeCase(typeof block === 'string' ? block : block.slug))\n })\n\n if (field.localized) {\n if (typeof data[field.name] === 'object' && data[field.name] !== null) {\n Object.entries(data[field.name]).forEach(([localeKey, localeData]) => {\n if (Array.isArray(localeData)) {\n transformBlocks({\n adapter,\n baseTableName,\n blocks,\n blocksToDelete,\n data: localeData,\n field,\n locale: localeKey,\n numbers,\n path,\n relationships,\n relationshipsToDelete,\n selects,\n texts,\n withinArrayOrBlockLocale: localeKey,\n })\n }\n })\n }\n } else if (isArrayOfRows(fieldData)) {\n transformBlocks({\n adapter,\n baseTableName,\n blocks,\n blocksToDelete,\n data: fieldData,\n field,\n numbers,\n path,\n relationships,\n relationshipsToDelete,\n selects,\n texts,\n withinArrayOrBlockLocale,\n })\n }\n\n return\n }\n\n if (field.type === 'group' || field.type === 'tab') {\n if (typeof data[field.name] === 'object' && data[field.name] !== null) {\n if (field.localized) {\n Object.entries(data[field.name]).forEach(([localeKey, localeData]) => {\n // preserve array ID if there is\n localeData._uuid = data.id || data._uuid\n\n traverseFields({\n adapter,\n arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix: `${columnName}_`,\n data: localeData as Record<string, unknown>,\n existingLocales,\n fieldPrefix: `${fieldName}_`,\n fields: field.flattenedFields,\n forcedLocale: localeKey,\n insideArrayOrBlock,\n locales,\n numbers,\n parentTableName,\n path: `${path || ''}${field.name}.`,\n relationships,\n relationshipsToDelete,\n row,\n selects,\n texts,\n withinArrayOrBlockLocale: localeKey,\n })\n })\n } else {\n // preserve array ID if there is\n const groupData = data[field.name] as Record<string, unknown>\n groupData._uuid = data.id || data._uuid\n\n traverseFields({\n adapter,\n arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix: `${columnName}_`,\n data: groupData,\n existingLocales,\n fieldPrefix: `${fieldName}_`,\n fields: field.flattenedFields,\n insideArrayOrBlock,\n locales,\n numbers,\n parentTableName,\n path: `${path || ''}${field.name}.`,\n relationships,\n relationshipsToDelete,\n row,\n selects,\n texts,\n withinArrayOrBlockLocale,\n })\n }\n }\n\n return\n }\n\n if (field.type === 'relationship' || field.type === 'upload') {\n const relationshipPath = `${path || ''}${field.name}`\n\n if (\n field.localized &&\n (Array.isArray(field.relationTo) || ('hasMany' in field && field.hasMany))\n ) {\n if (typeof fieldData === 'object') {\n Object.entries(fieldData).forEach(([localeKey, localeData]) => {\n if (localeData === null) {\n relationshipsToDelete.push({\n locale: localeKey,\n path: relationshipPath,\n })\n return\n }\n\n transformRelationship({\n baseRow: {\n locale: localeKey,\n path: relationshipPath,\n },\n data: localeData,\n field,\n relationships,\n })\n })\n }\n return\n } else if (Array.isArray(field.relationTo) || ('hasMany' in field && field.hasMany)) {\n if (fieldData === null || (Array.isArray(fieldData) && fieldData.length === 0)) {\n relationshipsToDelete.push({ path: relationshipPath })\n return\n }\n\n transformRelationship({\n baseRow: {\n locale: withinArrayOrBlockLocale,\n path: relationshipPath,\n },\n data: fieldData,\n field,\n relationships,\n })\n return\n } else {\n if (\n !field.localized &&\n fieldData &&\n typeof fieldData === 'object' &&\n 'id' in fieldData &&\n fieldData?.id\n ) {\n fieldData = fieldData.id\n } else if (field.localized) {\n if (typeof fieldData === 'object') {\n Object.entries(fieldData).forEach(([localeKey, localeData]) => {\n if (typeof localeData === 'object') {\n if (localeData && 'id' in localeData && localeData?.id) {\n fieldData[localeKey] = localeData.id\n }\n } else {\n fieldData[localeKey] = localeData\n }\n })\n }\n }\n }\n }\n\n if (field.type === 'text' && field.hasMany) {\n const textPath = `${path || ''}${field.name}`\n\n if (field.localized) {\n if (typeof fieldData === 'object') {\n Object.entries(fieldData).forEach(([localeKey, localeData]) => {\n if (Array.isArray(localeData)) {\n transformTexts({\n baseRow: {\n locale: localeKey,\n path: textPath,\n },\n data: localeData,\n texts,\n })\n }\n })\n }\n } else if (Array.isArray(fieldData)) {\n transformTexts({\n baseRow: {\n locale: withinArrayOrBlockLocale,\n path: textPath,\n },\n data: fieldData,\n texts,\n })\n }\n\n return\n }\n\n if (field.type === 'number' && field.hasMany) {\n const numberPath = `${path || ''}${field.name}`\n\n if (field.localized) {\n if (typeof fieldData === 'object') {\n Object.entries(fieldData).forEach(([localeKey, localeData]) => {\n if (Array.isArray(localeData)) {\n transformNumbers({\n baseRow: {\n locale: localeKey,\n path: numberPath,\n },\n data: localeData,\n numbers,\n })\n }\n })\n }\n } else if (Array.isArray(fieldData)) {\n transformNumbers({\n baseRow: {\n locale: withinArrayOrBlockLocale,\n path: numberPath,\n },\n data: fieldData,\n numbers,\n })\n }\n\n return\n }\n\n if (field.type === 'select' && field.hasMany) {\n const selectTableName = adapter.tableNameMap.get(`${parentTableName}_${columnName}`)\n if (!selects[selectTableName]) {\n selects[selectTableName] = []\n }\n\n if (field.localized) {\n if (typeof data[field.name] === 'object' && data[field.name] !== null) {\n Object.entries(data[field.name]).forEach(([localeKey, localeData]) => {\n if (Array.isArray(localeData)) {\n const newRows = transformSelects({\n id: insideArrayOrBlock ? data._uuid || data.id : undefined,\n data: localeData,\n locale: localeKey,\n })\n\n selects[selectTableName] = selects[selectTableName].concat(newRows)\n }\n })\n }\n } else if (Array.isArray(data[field.name])) {\n const newRows = transformSelects({\n id: insideArrayOrBlock ? data._uuid || data.id : undefined,\n data: data[field.name],\n locale: withinArrayOrBlockLocale,\n })\n\n selects[selectTableName] = selects[selectTableName].concat(newRows)\n }\n\n return\n }\n\n const valuesToTransform: { localeKey?: string; ref: unknown; value: unknown }[] = []\n\n if (field.localized) {\n if (typeof fieldData === 'object' && fieldData !== null) {\n Object.entries(fieldData).forEach(([localeKey, localeData]) => {\n if (!locales[localeKey]) {\n locales[localeKey] = {}\n }\n\n valuesToTransform.push({\n localeKey,\n ref: locales,\n value: localeData,\n })\n })\n }\n } else {\n let ref = row\n\n if (forcedLocale) {\n if (!locales[forcedLocale]) {\n locales[forcedLocale] = {}\n }\n ref = locales[forcedLocale]\n }\n\n valuesToTransform.push({ ref, value: fieldData })\n }\n\n valuesToTransform.forEach(({ localeKey, ref, value }) => {\n let formattedValue = value\n\n if (typeof value !== 'undefined') {\n if (value && field.type === 'point' && adapter.name !== 'sqlite') {\n formattedValue = sql`ST_GeomFromGeoJSON(${JSON.stringify(value)})`\n }\n\n if (field.type === 'date') {\n if (typeof value === 'number' && !Number.isNaN(value)) {\n formattedValue = new Date(value).toISOString()\n } else if (value instanceof Date) {\n formattedValue = value.toISOString()\n }\n }\n }\n\n if (field.type === 'date' && fieldName === 'updatedAt') {\n // let the db handle this\n formattedValue = new Date().toISOString()\n }\n\n if (typeof formattedValue !== 'undefined') {\n if (localeKey) {\n ref[localeKey][fieldName] = formattedValue\n } else {\n ref[fieldName] = formattedValue\n }\n }\n })\n })\n}\n"],"names":["sql","fieldIsVirtual","toSnakeCase","isArrayOfRows","transformArray","transformBlocks","transformNumbers","transformRelationship","transformSelects","transformTexts","traverseFields","adapter","arrays","baseTableName","blocks","blocksToDelete","columnPrefix","data","existingLocales","fieldPrefix","fields","forcedLocale","insideArrayOrBlock","locales","numbers","parentTableName","path","relationships","relationshipsToDelete","row","selects","texts","withinArrayOrBlockLocale","_uuid","forEach","field","columnName","fieldName","fieldData","name","type","arrayTableName","tableNameMap","get","localized","Object","entries","localeKey","localeData","Array","isArray","newRows","locale","concat","blockReferences","block","add","slug","id","flattenedFields","groupData","relationshipPath","relationTo","hasMany","push","baseRow","length","textPath","numberPath","selectTableName","undefined","valuesToTransform","ref","value","formattedValue","JSON","stringify","Number","isNaN","Date","toISOString"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/transform/write/traverseFields.ts"],"sourcesContent":["import type { FlattenedField } from 'payload'\n\nimport { sql } from 'drizzle-orm'\nimport { fieldIsVirtual } from 'payload/shared'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from '../../types.js'\nimport type { ArrayRowToInsert, BlockRowToInsert, RelationshipToDelete } from './types.js'\n\nimport { isArrayOfRows } from '../../utilities/isArrayOfRows.js'\nimport { transformArray } from './array.js'\nimport { transformBlocks } from './blocks.js'\nimport { transformNumbers } from './numbers.js'\nimport { transformRelationship } from './relationships.js'\nimport { transformSelects } from './selects.js'\nimport { transformTexts } from './texts.js'\n\ntype Args = {\n adapter: DrizzleAdapter\n arrays: {\n [tableName: string]: ArrayRowToInsert[]\n }\n /**\n * This is the name of the base table\n */\n baseTableName: string\n blocks: {\n [blockType: string]: BlockRowToInsert[]\n }\n blocksToDelete: Set<string>\n /**\n * A snake-case field prefix, representing prior fields\n * Ex: my_group_my_named_tab_\n */\n columnPrefix: string\n data: Record<string, unknown>\n existingLocales?: Record<string, unknown>[]\n /**\n * A prefix that will retain camel-case formatting, representing prior fields\n * Ex: myGroup_myNamedTab_\n */\n fieldPrefix: string\n fields: FlattenedField[]\n forcedLocale?: string\n /**\n * Tracks whether the current traversion context is from array or block.\n */\n insideArrayOrBlock?: boolean\n locales: {\n [locale: string]: Record<string, unknown>\n }\n numbers: Record<string, unknown>[]\n /**\n * This is the name of the parent table\n */\n parentTableName: string\n path: string\n relationships: Record<string, unknown>[]\n relationshipsToDelete: RelationshipToDelete[]\n row: Record<string, unknown>\n selects: {\n [tableName: string]: Record<string, unknown>[]\n }\n texts: Record<string, unknown>[]\n /**\n * Set to a locale code if this set of fields is traversed within a\n * localized array or block field\n */\n withinArrayOrBlockLocale?: string\n}\n\nexport const traverseFields = ({\n adapter,\n arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix,\n data,\n existingLocales,\n fieldPrefix,\n fields,\n forcedLocale,\n insideArrayOrBlock = false,\n locales,\n numbers,\n parentTableName,\n path,\n relationships,\n relationshipsToDelete,\n row,\n selects,\n texts,\n withinArrayOrBlockLocale,\n}: Args) => {\n if (row._uuid) {\n data._uuid = row._uuid\n }\n\n fields.forEach((field) => {\n let columnName = ''\n let fieldName = ''\n let fieldData: unknown\n\n if (fieldIsVirtual(field)) {\n return\n }\n\n columnName = `${columnPrefix || ''}${toSnakeCase(field.name)}`\n fieldName = `${fieldPrefix || ''}${field.name}`\n fieldData = data[field.name]\n\n if (field.type === 'array') {\n const arrayTableName = adapter.tableNameMap.get(`${parentTableName}_${columnName}`)\n\n if (!arrays[arrayTableName]) {\n arrays[arrayTableName] = []\n }\n\n if (field.localized) {\n if (typeof data[field.name] === 'object' && data[field.name] !== null) {\n Object.entries(data[field.name]).forEach(([localeKey, localeData]) => {\n if (Array.isArray(localeData)) {\n const newRows = transformArray({\n adapter,\n arrayTableName,\n baseTableName,\n blocks,\n blocksToDelete,\n data: localeData,\n field,\n locale: localeKey,\n numbers,\n path,\n relationships,\n relationshipsToDelete,\n selects,\n texts,\n withinArrayOrBlockLocale: localeKey,\n })\n\n arrays[arrayTableName] = arrays[arrayTableName].concat(newRows)\n }\n })\n }\n } else {\n const newRows = transformArray({\n adapter,\n arrayTableName,\n baseTableName,\n blocks,\n blocksToDelete,\n data: data[field.name],\n field,\n numbers,\n path,\n relationships,\n relationshipsToDelete,\n selects,\n texts,\n withinArrayOrBlockLocale,\n })\n\n arrays[arrayTableName] = arrays[arrayTableName].concat(newRows)\n }\n\n return\n }\n\n if (field.type === 'blocks') {\n field.blocks.forEach(({ slug }) => {\n blocksToDelete.add(toSnakeCase(slug))\n })\n\n if (field.localized) {\n if (typeof data[field.name] === 'object' && data[field.name] !== null) {\n Object.entries(data[field.name]).forEach(([localeKey, localeData]) => {\n if (Array.isArray(localeData)) {\n transformBlocks({\n adapter,\n baseTableName,\n blocks,\n blocksToDelete,\n data: localeData,\n field,\n locale: localeKey,\n numbers,\n path,\n relationships,\n relationshipsToDelete,\n selects,\n texts,\n withinArrayOrBlockLocale: localeKey,\n })\n }\n })\n }\n } else if (isArrayOfRows(fieldData)) {\n transformBlocks({\n adapter,\n baseTableName,\n blocks,\n blocksToDelete,\n data: fieldData,\n field,\n numbers,\n path,\n relationships,\n relationshipsToDelete,\n selects,\n texts,\n withinArrayOrBlockLocale,\n })\n }\n\n return\n }\n\n if (field.type === 'group' || field.type === 'tab') {\n if (typeof data[field.name] === 'object' && data[field.name] !== null) {\n if (field.localized) {\n Object.entries(data[field.name]).forEach(([localeKey, localeData]) => {\n // preserve array ID if there is\n localeData._uuid = data.id || data._uuid\n\n traverseFields({\n adapter,\n arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix: `${columnName}_`,\n data: localeData as Record<string, unknown>,\n existingLocales,\n fieldPrefix: `${fieldName}_`,\n fields: field.flattenedFields,\n forcedLocale: localeKey,\n insideArrayOrBlock,\n locales,\n numbers,\n parentTableName,\n path: `${path || ''}${field.name}.`,\n relationships,\n relationshipsToDelete,\n row,\n selects,\n texts,\n withinArrayOrBlockLocale: localeKey,\n })\n })\n } else {\n // preserve array ID if there is\n const groupData = data[field.name] as Record<string, unknown>\n groupData._uuid = data.id || data._uuid\n\n traverseFields({\n adapter,\n arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix: `${columnName}_`,\n data: groupData,\n existingLocales,\n fieldPrefix: `${fieldName}_`,\n fields: field.flattenedFields,\n insideArrayOrBlock,\n locales,\n numbers,\n parentTableName,\n path: `${path || ''}${field.name}.`,\n relationships,\n relationshipsToDelete,\n row,\n selects,\n texts,\n withinArrayOrBlockLocale,\n })\n }\n }\n\n return\n }\n\n if (field.type === 'relationship' || field.type === 'upload') {\n const relationshipPath = `${path || ''}${field.name}`\n\n if (\n field.localized &&\n (Array.isArray(field.relationTo) || ('hasMany' in field && field.hasMany))\n ) {\n if (typeof fieldData === 'object') {\n Object.entries(fieldData).forEach(([localeKey, localeData]) => {\n if (localeData === null) {\n relationshipsToDelete.push({\n locale: localeKey,\n path: relationshipPath,\n })\n return\n }\n\n transformRelationship({\n baseRow: {\n locale: localeKey,\n path: relationshipPath,\n },\n data: localeData,\n field,\n relationships,\n })\n })\n }\n return\n } else if (Array.isArray(field.relationTo) || ('hasMany' in field && field.hasMany)) {\n if (fieldData === null || (Array.isArray(fieldData) && fieldData.length === 0)) {\n relationshipsToDelete.push({ path: relationshipPath })\n return\n }\n\n transformRelationship({\n baseRow: {\n locale: withinArrayOrBlockLocale,\n path: relationshipPath,\n },\n data: fieldData,\n field,\n relationships,\n })\n return\n } else {\n if (\n !field.localized &&\n fieldData &&\n typeof fieldData === 'object' &&\n 'id' in fieldData &&\n fieldData?.id\n ) {\n fieldData = fieldData.id\n } else if (field.localized) {\n if (typeof fieldData === 'object') {\n Object.entries(fieldData).forEach(([localeKey, localeData]) => {\n if (typeof localeData === 'object') {\n if (localeData && 'id' in localeData && localeData?.id) {\n fieldData[localeKey] = localeData.id\n }\n } else {\n fieldData[localeKey] = localeData\n }\n })\n }\n }\n }\n }\n\n if (field.type === 'text' && field.hasMany) {\n const textPath = `${path || ''}${field.name}`\n\n if (field.localized) {\n if (typeof fieldData === 'object') {\n Object.entries(fieldData).forEach(([localeKey, localeData]) => {\n if (Array.isArray(localeData)) {\n transformTexts({\n baseRow: {\n locale: localeKey,\n path: textPath,\n },\n data: localeData,\n texts,\n })\n }\n })\n }\n } else if (Array.isArray(fieldData)) {\n transformTexts({\n baseRow: {\n locale: withinArrayOrBlockLocale,\n path: textPath,\n },\n data: fieldData,\n texts,\n })\n }\n\n return\n }\n\n if (field.type === 'number' && field.hasMany) {\n const numberPath = `${path || ''}${field.name}`\n\n if (field.localized) {\n if (typeof fieldData === 'object') {\n Object.entries(fieldData).forEach(([localeKey, localeData]) => {\n if (Array.isArray(localeData)) {\n transformNumbers({\n baseRow: {\n locale: localeKey,\n path: numberPath,\n },\n data: localeData,\n numbers,\n })\n }\n })\n }\n } else if (Array.isArray(fieldData)) {\n transformNumbers({\n baseRow: {\n locale: withinArrayOrBlockLocale,\n path: numberPath,\n },\n data: fieldData,\n numbers,\n })\n }\n\n return\n }\n\n if (field.type === 'select' && field.hasMany) {\n const selectTableName = adapter.tableNameMap.get(`${parentTableName}_${columnName}`)\n if (!selects[selectTableName]) {\n selects[selectTableName] = []\n }\n\n if (field.localized) {\n if (typeof data[field.name] === 'object' && data[field.name] !== null) {\n Object.entries(data[field.name]).forEach(([localeKey, localeData]) => {\n if (Array.isArray(localeData)) {\n const newRows = transformSelects({\n id: insideArrayOrBlock ? data._uuid || data.id : undefined,\n data: localeData,\n locale: localeKey,\n })\n\n selects[selectTableName] = selects[selectTableName].concat(newRows)\n }\n })\n }\n } else if (Array.isArray(data[field.name])) {\n const newRows = transformSelects({\n id: insideArrayOrBlock ? data._uuid || data.id : undefined,\n data: data[field.name],\n locale: withinArrayOrBlockLocale,\n })\n\n selects[selectTableName] = selects[selectTableName].concat(newRows)\n }\n\n return\n }\n\n const valuesToTransform: { localeKey?: string; ref: unknown; value: unknown }[] = []\n\n if (field.localized) {\n if (typeof fieldData === 'object' && fieldData !== null) {\n Object.entries(fieldData).forEach(([localeKey, localeData]) => {\n if (!locales[localeKey]) {\n locales[localeKey] = {}\n }\n\n valuesToTransform.push({\n localeKey,\n ref: locales,\n value: localeData,\n })\n })\n }\n } else {\n let ref = row\n\n if (forcedLocale) {\n if (!locales[forcedLocale]) {\n locales[forcedLocale] = {}\n }\n ref = locales[forcedLocale]\n }\n\n valuesToTransform.push({ ref, value: fieldData })\n }\n\n valuesToTransform.forEach(({ localeKey, ref, value }) => {\n let formattedValue = value\n\n if (typeof value !== 'undefined') {\n if (value && field.type === 'point' && adapter.name !== 'sqlite') {\n formattedValue = sql`ST_GeomFromGeoJSON(${JSON.stringify(value)})`\n }\n\n if (field.type === 'date') {\n if (typeof value === 'number' && !Number.isNaN(value)) {\n formattedValue = new Date(value).toISOString()\n } else if (value instanceof Date) {\n formattedValue = value.toISOString()\n }\n }\n }\n\n if (field.type === 'date' && fieldName === 'updatedAt') {\n // let the db handle this\n formattedValue = new Date().toISOString()\n }\n\n if (typeof formattedValue !== 'undefined') {\n if (localeKey) {\n ref[localeKey][fieldName] = formattedValue\n } else {\n ref[fieldName] = formattedValue\n }\n }\n })\n })\n}\n"],"names":["sql","fieldIsVirtual","toSnakeCase","isArrayOfRows","transformArray","transformBlocks","transformNumbers","transformRelationship","transformSelects","transformTexts","traverseFields","adapter","arrays","baseTableName","blocks","blocksToDelete","columnPrefix","data","existingLocales","fieldPrefix","fields","forcedLocale","insideArrayOrBlock","locales","numbers","parentTableName","path","relationships","relationshipsToDelete","row","selects","texts","withinArrayOrBlockLocale","_uuid","forEach","field","columnName","fieldName","fieldData","name","type","arrayTableName","tableNameMap","get","localized","Object","entries","localeKey","localeData","Array","isArray","newRows","locale","concat","slug","add","id","flattenedFields","groupData","relationshipPath","relationTo","hasMany","push","baseRow","length","textPath","numberPath","selectTableName","undefined","valuesToTransform","ref","value","formattedValue","JSON","stringify","Number","isNaN","Date","toISOString"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/drizzle",
3
- "version": "3.23.0-canary.f63b80a",
3
+ "version": "3.23.0-canary.fa36283",
4
4
  "description": "A library of shared functions used by different payload database adapters",
5
5
  "homepage": "https://payloadcms.com",
6
6
  "repository": {
@@ -53,10 +53,10 @@
53
53
  "@types/pg": "8.10.2",
54
54
  "@types/to-snake-case": "1.0.0",
55
55
  "@payloadcms/eslint-config": "3.9.0",
56
- "payload": "3.23.0-canary.f63b80a"
56
+ "payload": "3.23.0-canary.fa36283"
57
57
  },
58
58
  "peerDependencies": {
59
- "payload": "3.23.0-canary.f63b80a"
59
+ "payload": "3.23.0-canary.fa36283"
60
60
  },
61
61
  "scripts": {
62
62
  "build": "pnpm build:swc && pnpm build:types",