@payloadcms/drizzle 3.0.0-beta.107 → 3.0.0-beta.108

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 (114) hide show
  1. package/dist/count.js +1 -1
  2. package/dist/count.js.map +1 -1
  3. package/dist/createGlobalVersion.d.ts +1 -1
  4. package/dist/createGlobalVersion.d.ts.map +1 -1
  5. package/dist/createGlobalVersion.js +4 -2
  6. package/dist/createGlobalVersion.js.map +1 -1
  7. package/dist/createVersion.d.ts +1 -1
  8. package/dist/createVersion.d.ts.map +1 -1
  9. package/dist/createVersion.js +9 -7
  10. package/dist/createVersion.js.map +1 -1
  11. package/dist/deleteOne.d.ts.map +1 -1
  12. package/dist/deleteOne.js +5 -3
  13. package/dist/deleteOne.js.map +1 -1
  14. package/dist/deleteVersions.js +1 -1
  15. package/dist/deleteVersions.js.map +1 -1
  16. package/dist/find/buildFindManyArgs.d.ts +9 -3
  17. package/dist/find/buildFindManyArgs.d.ts.map +1 -1
  18. package/dist/find/buildFindManyArgs.js +4 -1
  19. package/dist/find/buildFindManyArgs.js.map +1 -1
  20. package/dist/find/findMany.d.ts +1 -1
  21. package/dist/find/findMany.d.ts.map +1 -1
  22. package/dist/find/findMany.js +6 -3
  23. package/dist/find/findMany.js.map +1 -1
  24. package/dist/find/traverseFields.d.ts +6 -3
  25. package/dist/find/traverseFields.d.ts.map +1 -1
  26. package/dist/find/traverseFields.js +69 -2
  27. package/dist/find/traverseFields.js.map +1 -1
  28. package/dist/find.d.ts.map +1 -1
  29. package/dist/find.js +2 -1
  30. package/dist/find.js.map +1 -1
  31. package/dist/findGlobalVersions.js +1 -1
  32. package/dist/findGlobalVersions.js.map +1 -1
  33. package/dist/findOne.d.ts +1 -1
  34. package/dist/findOne.d.ts.map +1 -1
  35. package/dist/findOne.js +2 -1
  36. package/dist/findOne.js.map +1 -1
  37. package/dist/findVersions.js +1 -1
  38. package/dist/findVersions.js.map +1 -1
  39. package/dist/postgres/countDistinct.d.ts.map +1 -1
  40. package/dist/postgres/countDistinct.js +3 -3
  41. package/dist/postgres/countDistinct.js.map +1 -1
  42. package/dist/postgres/init.js +2 -2
  43. package/dist/postgres/init.js.map +1 -1
  44. package/dist/postgres/schema/build.js +4 -3
  45. package/dist/postgres/schema/build.js.map +1 -1
  46. package/dist/postgres/schema/traverseFields.d.ts.map +1 -1
  47. package/dist/postgres/schema/traverseFields.js +23 -2
  48. package/dist/postgres/schema/traverseFields.js.map +1 -1
  49. package/dist/postgres/types.d.ts +1 -0
  50. package/dist/postgres/types.d.ts.map +1 -1
  51. package/dist/postgres/types.js.map +1 -1
  52. package/dist/queries/buildAndOrConditions.d.ts +1 -1
  53. package/dist/queries/buildAndOrConditions.d.ts.map +1 -1
  54. package/dist/queries/buildAndOrConditions.js +2 -2
  55. package/dist/queries/buildAndOrConditions.js.map +1 -1
  56. package/dist/queries/buildOrderBy.d.ts +18 -0
  57. package/dist/queries/buildOrderBy.d.ts.map +1 -0
  58. package/dist/queries/buildOrderBy.js +51 -0
  59. package/dist/queries/buildOrderBy.js.map +1 -0
  60. package/dist/queries/buildQuery.d.ts +4 -4
  61. package/dist/queries/buildQuery.d.ts.map +1 -1
  62. package/dist/queries/buildQuery.js +12 -47
  63. package/dist/queries/buildQuery.js.map +1 -1
  64. package/dist/queries/getTableColumnFromPath.d.ts +1 -1
  65. package/dist/queries/getTableColumnFromPath.d.ts.map +1 -1
  66. package/dist/queries/getTableColumnFromPath.js +20 -3
  67. package/dist/queries/getTableColumnFromPath.js.map +1 -1
  68. package/dist/queries/parseParams.d.ts +1 -1
  69. package/dist/queries/parseParams.d.ts.map +1 -1
  70. package/dist/queries/parseParams.js +2 -2
  71. package/dist/queries/parseParams.js.map +1 -1
  72. package/dist/queries/sanitizeQueryValue.d.ts +1 -1
  73. package/dist/queries/sanitizeQueryValue.d.ts.map +1 -1
  74. package/dist/queries/sanitizeQueryValue.js +38 -12
  75. package/dist/queries/sanitizeQueryValue.js.map +1 -1
  76. package/dist/queryDrafts.js +1 -1
  77. package/dist/queryDrafts.js.map +1 -1
  78. package/dist/transform/read/index.d.ts +3 -2
  79. package/dist/transform/read/index.d.ts.map +1 -1
  80. package/dist/transform/read/index.js +2 -1
  81. package/dist/transform/read/index.js.map +1 -1
  82. package/dist/transform/read/traverseFields.d.ts +6 -2
  83. package/dist/transform/read/traverseFields.d.ts.map +1 -1
  84. package/dist/transform/read/traverseFields.js +39 -2
  85. package/dist/transform/read/traverseFields.js.map +1 -1
  86. package/dist/transform/write/traverseFields.d.ts.map +1 -1
  87. package/dist/transform/write/traverseFields.js +7 -1
  88. package/dist/transform/write/traverseFields.js.map +1 -1
  89. package/dist/update.d.ts.map +1 -1
  90. package/dist/update.js +3 -2
  91. package/dist/update.js.map +1 -1
  92. package/dist/updateGlobalVersion.js +2 -2
  93. package/dist/updateGlobalVersion.js.map +1 -1
  94. package/dist/updateVersion.js +2 -2
  95. package/dist/updateVersion.js.map +1 -1
  96. package/dist/upsertRow/index.d.ts +1 -1
  97. package/dist/upsertRow/index.d.ts.map +1 -1
  98. package/dist/upsertRow/index.js +4 -2
  99. package/dist/upsertRow/index.js.map +1 -1
  100. package/dist/upsertRow/insertArrays.d.ts.map +1 -1
  101. package/dist/upsertRow/insertArrays.js +4 -1
  102. package/dist/upsertRow/insertArrays.js.map +1 -1
  103. package/dist/upsertRow/types.d.ts +4 -1
  104. package/dist/upsertRow/types.d.ts.map +1 -1
  105. package/dist/upsertRow/types.js.map +1 -1
  106. package/dist/utilities/getCollectionIdType.d.ts +7 -0
  107. package/dist/utilities/getCollectionIdType.d.ts.map +1 -0
  108. package/dist/utilities/getCollectionIdType.js +11 -0
  109. package/dist/utilities/getCollectionIdType.js.map +1 -0
  110. package/dist/utilities/isPolymorphicRelationship.d.ts +6 -0
  111. package/dist/utilities/isPolymorphicRelationship.d.ts.map +1 -0
  112. package/dist/utilities/isPolymorphicRelationship.js +5 -0
  113. package/dist/utilities/isPolymorphicRelationship.js.map +1 -0
  114. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/transform/read/index.ts"],"sourcesContent":["import type { Field, 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: Field[]\n locale?: 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}: 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 dataRef: {\n id: data.id,\n },\n deletions,\n fieldPrefix: '',\n fields,\n numbers,\n path: '',\n relationships,\n table: data,\n texts,\n })\n\n deletions.forEach((deletion) => deletion())\n\n return result\n}\n"],"names":["createBlocksMap","createPathMap","traverseFields","transform","adapter","config","data","fields","relationships","texts","numbers","_rels","_texts","_numbers","blocks","deletions","result","dataRef","id","fieldPrefix","path","table","forEach","deletion"],"mappings":"AAIA,SAASA,eAAe,QAAQ,qCAAoC;AACpE,SAASC,aAAa,QAAQ,2CAA0C;AACxE,SAASC,cAAc,QAAQ,sBAAqB;AAWpD,2DAA2D;AAC3D,uDAAuD;AACvD,OAAO,MAAMC,YAAY,CAAiD,EACxEC,OAAO,EACPC,MAAM,EACNC,IAAI,EACJC,MAAM,EACQ;IACd,IAAIC,gBAA2D,CAAC;IAChE,IAAIC,QAAmD,CAAC;IACxD,IAAIC,UAAqD,CAAC;IAE1D,IAAI,WAAWJ,MAAM;QACnBE,gBAAgBP,cAAcK,KAAKK,KAAK;QACxC,OAAOL,KAAKK,KAAK;IACnB;IAEA,IAAI,YAAYL,MAAM;QACpBG,QAAQR,cAAcK,KAAKM,MAAM;QACjC,OAAON,KAAKM,MAAM;IACpB;IAEA,IAAI,cAAcN,MAAM;QACtBI,UAAUT,cAAcK,KAAKO,QAAQ;QACrC,OAAOP,KAAKO,QAAQ;IACtB;IAEA,MAAMC,SAASd,gBAAgBM;IAC/B,MAAMS,YAAY,EAAE;IAEpB,MAAMC,SAASd,eAAkB;QAC/BE;QACAU;QACAT;QACAY,SAAS;YACPC,IAAIZ,KAAKY,EAAE;QACb;QACAH;QACAI,aAAa;QACbZ;QACAG;QACAU,MAAM;QACNZ;QACAa,OAAOf;QACPG;IACF;IAEAM,UAAUO,OAAO,CAAC,CAACC,WAAaA;IAEhC,OAAOP;AACT,EAAC"}
1
+ {"version":3,"sources":["../../../src/transform/read/index.ts"],"sourcesContent":["import type { Field, 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: Field[]\n joinQuery?: JoinQuery\n locale?: 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}: 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 dataRef: {\n id: data.id,\n },\n deletions,\n fieldPrefix: '',\n fields,\n joinQuery,\n numbers,\n path: '',\n relationships,\n table: data,\n texts,\n })\n\n deletions.forEach((deletion) => deletion())\n\n return result\n}\n"],"names":["createBlocksMap","createPathMap","traverseFields","transform","adapter","config","data","fields","joinQuery","relationships","texts","numbers","_rels","_texts","_numbers","blocks","deletions","result","dataRef","id","fieldPrefix","path","table","forEach","deletion"],"mappings":"AAIA,SAASA,eAAe,QAAQ,qCAAoC;AACpE,SAASC,aAAa,QAAQ,2CAA0C;AACxE,SAASC,cAAc,QAAQ,sBAAqB;AAYpD,2DAA2D;AAC3D,uDAAuD;AACvD,OAAO,MAAMC,YAAY,CAAiD,EACxEC,OAAO,EACPC,MAAM,EACNC,IAAI,EACJC,MAAM,EACNC,SAAS,EACK;IACd,IAAIC,gBAA2D,CAAC;IAChE,IAAIC,QAAmD,CAAC;IACxD,IAAIC,UAAqD,CAAC;IAE1D,IAAI,WAAWL,MAAM;QACnBG,gBAAgBR,cAAcK,KAAKM,KAAK;QACxC,OAAON,KAAKM,KAAK;IACnB;IAEA,IAAI,YAAYN,MAAM;QACpBI,QAAQT,cAAcK,KAAKO,MAAM;QACjC,OAAOP,KAAKO,MAAM;IACpB;IAEA,IAAI,cAAcP,MAAM;QACtBK,UAAUV,cAAcK,KAAKQ,QAAQ;QACrC,OAAOR,KAAKQ,QAAQ;IACtB;IAEA,MAAMC,SAASf,gBAAgBM;IAC/B,MAAMU,YAAY,EAAE;IAEpB,MAAMC,SAASf,eAAkB;QAC/BE;QACAW;QACAV;QACAa,SAAS;YACPC,IAAIb,KAAKa,EAAE;QACb;QACAH;QACAI,aAAa;QACbb;QACAC;QACAG;QACAU,MAAM;QACNZ;QACAa,OAAOhB;QACPI;IACF;IAEAM,UAAUO,OAAO,CAAC,CAACC,WAAaA;IAEhC,OAAOP;AACT,EAAC"}
@@ -1,4 +1,4 @@
1
- import type { Field, SanitizedConfig, TabAsField } from 'payload';
1
+ import type { Field, JoinQuery, SanitizedConfig, TabAsField } from 'payload';
2
2
  import type { DrizzleAdapter } from '../../types.js';
3
3
  import type { BlocksMap } from '../../utilities/createBlocksMap.js';
4
4
  type TraverseFieldsArgs = {
@@ -30,6 +30,10 @@ type TraverseFieldsArgs = {
30
30
  * An array of Payload fields to traverse
31
31
  */
32
32
  fields: (Field | TabAsField)[];
33
+ /**
34
+ *
35
+ */
36
+ joinQuery?: JoinQuery;
33
37
  /**
34
38
  * All hasMany number fields, as returned by Drizzle, keyed on an object by field path
35
39
  */
@@ -55,6 +59,6 @@ type TraverseFieldsArgs = {
55
59
  */
56
60
  withinArrayOrBlockLocale?: string;
57
61
  };
58
- export declare const traverseFields: <T extends Record<string, unknown>>({ adapter, blocks, config, dataRef, deletions, fieldPrefix, fields, numbers, path, relationships, table, texts, withinArrayOrBlockLocale, }: TraverseFieldsArgs) => T;
62
+ export declare const traverseFields: <T extends Record<string, unknown>>({ adapter, blocks, config, dataRef, deletions, fieldPrefix, fields, joinQuery, numbers, path, relationships, table, texts, withinArrayOrBlockLocale, }: TraverseFieldsArgs) => T;
59
63
  export {};
60
64
  //# sourceMappingURL=traverseFields.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../../src/transform/read/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAIjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAA;AAMnE,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;;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,KAAK,GAAG,UAAU,CAAC,EAAE,CAAA;IAC9B;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;IAClD;;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;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;IAChD;;OAEG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAA;CAClC,CAAA;AAID,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,+IAc7D,kBAAkB,KAAG,CAwgBvB,CAAA"}
1
+ {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../../src/transform/read/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAI5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAA;AAMnE,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;;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,KAAK,GAAG,UAAU,CAAC,EAAE,CAAA;IAC9B;;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;;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;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;IAChD;;OAEG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAA;CAClC,CAAA;AAID,eAAO,MAAM,cAAc,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,0JAe7D,kBAAkB,KAAG,CAojBvB,CAAA"}
@@ -1,10 +1,10 @@
1
- import { fieldAffectsData } from 'payload/shared';
1
+ import { fieldAffectsData, fieldIsVirtual } from 'payload/shared';
2
2
  import { transformHasManyNumber } from './hasManyNumber.js';
3
3
  import { transformHasManyText } from './hasManyText.js';
4
4
  import { transformRelationship } from './relationship.js';
5
5
  // Traverse fields recursively, transforming data
6
6
  // for each field type into required Payload shape
7
- export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fieldPrefix, fields, numbers, path, relationships, table, texts, withinArrayOrBlockLocale })=>{
7
+ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fieldPrefix, fields, joinQuery, numbers, path, relationships, table, texts, withinArrayOrBlockLocale })=>{
8
8
  const sanitizedPath = path ? `${path}.` : path;
9
9
  const formatted = fields.reduce((result, field)=>{
10
10
  if (field.type === 'tabs') {
@@ -19,6 +19,7 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
19
19
  ...tab,
20
20
  type: 'tab'
21
21
  })),
22
+ joinQuery,
22
23
  numbers,
23
24
  path,
24
25
  relationships,
@@ -36,6 +37,7 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
36
37
  deletions,
37
38
  fieldPrefix,
38
39
  fields: field.fields,
40
+ joinQuery,
39
41
  numbers,
40
42
  path,
41
43
  relationships,
@@ -45,6 +47,9 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
45
47
  });
46
48
  }
47
49
  if (fieldAffectsData(field)) {
50
+ if (fieldIsVirtual(field)) {
51
+ return result;
52
+ }
48
53
  const fieldName = `${fieldPrefix || ''}${field.name}`;
49
54
  const fieldData = table[fieldName];
50
55
  const localizedFieldData = {};
@@ -264,6 +269,38 @@ export const traverseFields = ({ adapter, blocks, config, dataRef, deletions, fi
264
269
  return result;
265
270
  }
266
271
  }
272
+ if (field.type === 'join') {
273
+ const { limit = 10 } = joinQuery?.[`${fieldPrefix.replaceAll('_', '.')}${field.name}`] || {};
274
+ let fieldResult;
275
+ if (Array.isArray(fieldData)) {
276
+ if (field.localized) {
277
+ fieldResult = fieldData.reduce((joinResult, row)=>{
278
+ if (typeof row._locale === 'string') {
279
+ if (!joinResult[row._locale]) {
280
+ joinResult[row._locale] = {
281
+ docs: [],
282
+ hasNextPage: false
283
+ };
284
+ }
285
+ joinResult[row._locale].docs.push(row._parentID);
286
+ }
287
+ return joinResult;
288
+ }, {});
289
+ Object.keys(fieldResult).forEach((locale)=>{
290
+ fieldResult[locale].hasNextPage = fieldResult[locale].docs.length > limit;
291
+ fieldResult[locale].docs = fieldResult[locale].docs.slice(0, limit);
292
+ });
293
+ } else {
294
+ const hasNextPage = limit !== 0 && fieldData.length > limit;
295
+ fieldResult = {
296
+ docs: hasNextPage ? fieldData.slice(0, limit) : fieldData,
297
+ hasNextPage
298
+ };
299
+ }
300
+ }
301
+ result[field.name] = fieldResult;
302
+ return result;
303
+ }
267
304
  if (field.type === 'text' && field?.hasMany) {
268
305
  const textPathMatch = texts[`${sanitizedPath}${field.name}`];
269
306
  if (!textPathMatch) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/transform/read/traverseFields.ts"],"sourcesContent":["import type { Field, SanitizedConfig, TabAsField } from 'payload'\n\nimport { fieldAffectsData } 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: (Field | TabAsField)[]\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 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 (field.type === 'tabs') {\n traverseFields({\n adapter,\n blocks,\n config,\n dataRef,\n deletions,\n fieldPrefix,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n numbers,\n path,\n relationships,\n table,\n texts,\n withinArrayOrBlockLocale,\n })\n }\n\n if (\n field.type === 'collapsible' ||\n field.type === 'row' ||\n (field.type === 'tab' && !('name' in field))\n ) {\n traverseFields({\n adapter,\n blocks,\n config,\n dataRef,\n deletions,\n fieldPrefix,\n fields: field.fields,\n numbers,\n path,\n relationships,\n table,\n texts,\n withinArrayOrBlockLocale,\n })\n }\n\n if (fieldAffectsData(field)) {\n const fieldName = `${fieldPrefix || ''}${field.name}`\n const 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.fields,\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.fields,\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\n if (Array.isArray(blocks[blockFieldPath])) {\n if (field.localized) {\n result[field.name] = {}\n\n blocks[blockFieldPath].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.fields,\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 result[field.name] = blocks[blockFieldPath].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\n acc.push(\n traverseFields<T>({\n adapter,\n blocks,\n config,\n dataRef: row,\n deletions,\n fieldPrefix: '',\n fields: block.fields,\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 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 === '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 result[field.name] = fieldData.map(({ value }) => value)\n }\n }\n return result\n }\n\n if (field.localized && Array.isArray(table._locales)) {\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 'tab':\n case 'group': {\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.fields,\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 'text': {\n if (typeof fieldData === 'string') {\n val = String(fieldData)\n }\n\n break\n }\n\n case 'number': {\n if (typeof fieldData === 'string') {\n val = Number.parseFloat(fieldData)\n }\n\n break\n }\n\n case 'date': {\n if (typeof fieldData === 'string') {\n val = new Date(fieldData).toISOString()\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\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\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":["fieldAffectsData","transformHasManyNumber","transformHasManyText","transformRelationship","traverseFields","adapter","blocks","config","dataRef","deletions","fieldPrefix","fields","numbers","path","relationships","table","texts","withinArrayOrBlockLocale","sanitizedPath","formatted","reduce","result","field","type","tabs","map","tab","fieldName","name","fieldData","localizedFieldData","valuesToTransform","push","Array","isArray","localized","arrayResult","row","_locale","locale","data","_uuid","id","rowResult","_order","acc","i","blockFieldPath","forEach","Object","entries","localizedBlocks","block","find","slug","blockType","blockResult","relationTo","hasMany","localization","locales","_locales","localeRow","ref","relationPathMatch","defaultLocale","relationsByLocale","relations","textPathMatch","textsByLocale","textRows","numberPathMatch","numbersByLocale","numberRows","selectResult","value","val","groupFieldPrefix","groupData","refKey","String","Number","parseFloat","Date","toISOString","payload","collections","customIDType","keys","length"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/transform/read/traverseFields.ts"],"sourcesContent":["import type { Field, JoinQuery, SanitizedConfig, TabAsField } 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: (Field | TabAsField)[]\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 (field.type === 'tabs') {\n traverseFields({\n adapter,\n blocks,\n config,\n dataRef,\n deletions,\n fieldPrefix,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n joinQuery,\n numbers,\n path,\n relationships,\n table,\n texts,\n withinArrayOrBlockLocale,\n })\n }\n\n if (\n field.type === 'collapsible' ||\n field.type === 'row' ||\n (field.type === 'tab' && !('name' in field))\n ) {\n traverseFields({\n adapter,\n blocks,\n config,\n dataRef,\n deletions,\n fieldPrefix,\n fields: field.fields,\n joinQuery,\n numbers,\n path,\n relationships,\n table,\n texts,\n withinArrayOrBlockLocale,\n })\n }\n\n if (fieldAffectsData(field)) {\n if (fieldIsVirtual(field)) {\n return result\n }\n\n const fieldName = `${fieldPrefix || ''}${field.name}`\n const 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.fields,\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.fields,\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\n if (Array.isArray(blocks[blockFieldPath])) {\n if (field.localized) {\n result[field.name] = {}\n\n blocks[blockFieldPath].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.fields,\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 result[field.name] = blocks[blockFieldPath].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\n acc.push(\n traverseFields<T>({\n adapter,\n blocks,\n config,\n dataRef: row,\n deletions,\n fieldPrefix: '',\n fields: block.fields,\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 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 = 10 } = joinQuery?.[`${fieldPrefix.replaceAll('_', '.')}${field.name}`] || {}\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) {\n fieldResult = fieldData.reduce((joinResult, row) => {\n if (typeof row._locale === 'string') {\n if (!joinResult[row._locale]) {\n joinResult[row._locale] = {\n docs: [],\n hasNextPage: false,\n }\n }\n joinResult[row._locale].docs.push(row._parentID)\n }\n\n return joinResult\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,\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 result[field.name] = fieldData.map(({ value }) => value)\n }\n }\n return result\n }\n\n if (field.localized && Array.isArray(table._locales)) {\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 'tab':\n case 'group': {\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.fields,\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 'text': {\n if (typeof fieldData === 'string') {\n val = String(fieldData)\n }\n\n break\n }\n\n case 'number': {\n if (typeof fieldData === 'string') {\n val = Number.parseFloat(fieldData)\n }\n\n break\n }\n\n case 'date': {\n if (typeof fieldData === 'string') {\n val = new Date(fieldData).toISOString()\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\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\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":["fieldAffectsData","fieldIsVirtual","transformHasManyNumber","transformHasManyText","transformRelationship","traverseFields","adapter","blocks","config","dataRef","deletions","fieldPrefix","fields","joinQuery","numbers","path","relationships","table","texts","withinArrayOrBlockLocale","sanitizedPath","formatted","reduce","result","field","type","tabs","map","tab","fieldName","name","fieldData","localizedFieldData","valuesToTransform","push","Array","isArray","localized","arrayResult","row","_locale","locale","data","_uuid","id","rowResult","_order","acc","i","blockFieldPath","forEach","Object","entries","localizedBlocks","block","find","slug","blockType","blockResult","relationTo","hasMany","localization","locales","_locales","localeRow","ref","relationPathMatch","defaultLocale","relationsByLocale","relations","limit","replaceAll","fieldResult","joinResult","docs","hasNextPage","_parentID","keys","length","slice","textPathMatch","textsByLocale","textRows","numberPathMatch","numbersByLocale","numberRows","selectResult","value","val","groupFieldPrefix","groupData","refKey","String","Number","parseFloat","Date","toISOString","payload","collections","customIDType"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../../src/transform/write/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAKpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAU1F,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,cAAc,CAAA;IACvB,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KACxC,CAAA;IACD;;OAEG;IACH,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;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAC3C;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE;QACP,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC1C,CAAA;IACD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAClC;;OAEG;IACH,eAAe,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IACxC,qBAAqB,EAAE,oBAAoB,EAAE,CAAA;IAC7C,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5B,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;AAED,eAAO,MAAM,cAAc,sQAsBxB,IAAI,SAufN,CAAA"}
1
+ {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../../src/transform/write/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAKpC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAU1F,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,cAAc,CAAA;IACvB,MAAM,EAAE;QACN,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;KACxC,CAAA;IACD;;OAEG;IACH,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;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAC3C;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE;QACP,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC1C,CAAA;IACD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAClC;;OAEG;IACH,eAAe,EAAE,MAAM,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IACxC,qBAAqB,EAAE,oBAAoB,EAAE,CAAA;IAC7C,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC5B,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;AAED,eAAO,MAAM,cAAc,sQAsBxB,IAAI,SA+fN,CAAA"}
@@ -1,4 +1,4 @@
1
- import { fieldAffectsData } from 'payload/shared';
1
+ import { fieldAffectsData, fieldIsVirtual } from 'payload/shared';
2
2
  import toSnakeCase from 'to-snake-case';
3
3
  import { isArrayOfRows } from '../../utilities/isArrayOfRows.js';
4
4
  import { transformArray } from './array.js';
@@ -13,6 +13,9 @@ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksT
13
13
  let fieldName = '';
14
14
  let fieldData;
15
15
  if (fieldAffectsData(field)) {
16
+ if (fieldIsVirtual(field)) {
17
+ return;
18
+ }
16
19
  columnName = `${columnPrefix || ''}${toSnakeCase(field.name)}`;
17
20
  fieldName = `${fieldPrefix || ''}${field.name}`;
18
21
  fieldData = data[field.name];
@@ -172,6 +175,9 @@ export const traverseFields = ({ adapter, arrays, baseTableName, blocks, blocksT
172
175
  if (field.type === 'tabs') {
173
176
  field.tabs.forEach((tab)=>{
174
177
  if ('name' in tab) {
178
+ if (fieldIsVirtual(tab)) {
179
+ return;
180
+ }
175
181
  if (typeof data[tab.name] === 'object' && data[tab.name] !== null) {
176
182
  if (tab.localized) {
177
183
  Object.entries(data[tab.name]).forEach(([localeKey, localeData])=>{
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/transform/write/traverseFields.ts"],"sourcesContent":["import type { Field } from 'payload'\n\nimport { fieldAffectsData } 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: Field[]\n forcedLocale?: string\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 locales,\n numbers,\n parentTableName,\n path,\n relationships,\n relationshipsToDelete,\n row,\n selects,\n texts,\n withinArrayOrBlockLocale,\n}: Args) => {\n fields.forEach((field) => {\n let columnName = ''\n let fieldName = ''\n let fieldData: unknown\n\n if (fieldAffectsData(field)) {\n columnName = `${columnPrefix || ''}${toSnakeCase(field.name)}`\n fieldName = `${fieldPrefix || ''}${field.name}`\n fieldData = data[field.name]\n }\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') {\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 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.fields,\n forcedLocale: localeKey,\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 traverseFields({\n adapter,\n arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix: `${columnName}_`,\n data: data[field.name] as Record<string, unknown>,\n existingLocales,\n fieldPrefix: `${fieldName}_`,\n fields: field.fields,\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 === 'tabs') {\n field.tabs.forEach((tab) => {\n if ('name' in tab) {\n if (typeof data[tab.name] === 'object' && data[tab.name] !== null) {\n if (tab.localized) {\n Object.entries(data[tab.name]).forEach(([localeKey, localeData]) => {\n traverseFields({\n adapter,\n arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix: `${columnPrefix || ''}${toSnakeCase(tab.name)}_`,\n data: localeData as Record<string, unknown>,\n existingLocales,\n fieldPrefix: `${fieldPrefix || ''}${tab.name}_`,\n fields: tab.fields,\n forcedLocale: localeKey,\n locales,\n numbers,\n parentTableName,\n path: `${path || ''}${tab.name}.`,\n relationships,\n relationshipsToDelete,\n row,\n selects,\n texts,\n withinArrayOrBlockLocale: localeKey,\n })\n })\n } else {\n traverseFields({\n adapter,\n arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix: `${columnPrefix || ''}${toSnakeCase(tab.name)}_`,\n data: data[tab.name] as Record<string, unknown>,\n existingLocales,\n fieldPrefix: `${fieldPrefix || ''}${tab.name}_`,\n fields: tab.fields,\n locales,\n numbers,\n parentTableName,\n path: `${path || ''}${tab.name}.`,\n relationships,\n relationshipsToDelete,\n row,\n selects,\n texts,\n withinArrayOrBlockLocale,\n })\n }\n }\n } else {\n traverseFields({\n adapter,\n arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix,\n data,\n existingLocales,\n fieldPrefix,\n fields: tab.fields,\n locales,\n numbers,\n parentTableName,\n path,\n relationships,\n relationshipsToDelete,\n row,\n selects,\n texts,\n withinArrayOrBlockLocale,\n })\n }\n })\n }\n\n if (field.type === 'row' || field.type === 'collapsible') {\n traverseFields({\n adapter,\n arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix,\n data,\n existingLocales,\n fieldPrefix,\n fields: field.fields,\n locales,\n numbers,\n parentTableName,\n path,\n relationships,\n relationshipsToDelete,\n row,\n selects,\n texts,\n withinArrayOrBlockLocale,\n })\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: data._uuid || data.id,\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: data._uuid || data.id,\n data: data[field.name],\n locale: withinArrayOrBlockLocale,\n })\n\n selects[selectTableName] = selects[selectTableName].concat(newRows)\n }\n\n return\n }\n\n if (fieldAffectsData(field)) {\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 if (typeof value !== 'undefined') {\n let formattedValue = value\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 } else if (fieldName === 'updatedAt') {\n // let the db handle this\n formattedValue = new Date().toISOString()\n }\n }\n\n if (localeKey) {\n ref[localeKey][fieldName] = formattedValue\n } else {\n ref[fieldName] = formattedValue\n }\n }\n })\n }\n })\n}\n"],"names":["fieldAffectsData","toSnakeCase","isArrayOfRows","transformArray","transformBlocks","transformNumbers","transformRelationship","transformSelects","transformTexts","traverseFields","adapter","arrays","baseTableName","blocks","blocksToDelete","columnPrefix","data","existingLocales","fieldPrefix","fields","forcedLocale","locales","numbers","parentTableName","path","relationships","relationshipsToDelete","row","selects","texts","withinArrayOrBlockLocale","forEach","field","columnName","fieldName","fieldData","name","type","arrayTableName","tableNameMap","get","localized","Object","entries","localeKey","localeData","Array","isArray","newRows","locale","concat","slug","add","tabs","tab","relationshipPath","relationTo","hasMany","push","baseRow","length","id","textPath","numberPath","selectTableName","_uuid","valuesToTransform","ref","value","formattedValue","Number","isNaN","Date","toISOString"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/transform/write/traverseFields.ts"],"sourcesContent":["import type { Field } from 'payload'\n\nimport { fieldAffectsData, 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: Field[]\n forcedLocale?: string\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 locales,\n numbers,\n parentTableName,\n path,\n relationships,\n relationshipsToDelete,\n row,\n selects,\n texts,\n withinArrayOrBlockLocale,\n}: Args) => {\n fields.forEach((field) => {\n let columnName = ''\n let fieldName = ''\n let fieldData: unknown\n\n if (fieldAffectsData(field)) {\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\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') {\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 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.fields,\n forcedLocale: localeKey,\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 traverseFields({\n adapter,\n arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix: `${columnName}_`,\n data: data[field.name] as Record<string, unknown>,\n existingLocales,\n fieldPrefix: `${fieldName}_`,\n fields: field.fields,\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 === 'tabs') {\n field.tabs.forEach((tab) => {\n if ('name' in tab) {\n if (fieldIsVirtual(tab)) {\n return\n }\n\n if (typeof data[tab.name] === 'object' && data[tab.name] !== null) {\n if (tab.localized) {\n Object.entries(data[tab.name]).forEach(([localeKey, localeData]) => {\n traverseFields({\n adapter,\n arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix: `${columnPrefix || ''}${toSnakeCase(tab.name)}_`,\n data: localeData as Record<string, unknown>,\n existingLocales,\n fieldPrefix: `${fieldPrefix || ''}${tab.name}_`,\n fields: tab.fields,\n forcedLocale: localeKey,\n locales,\n numbers,\n parentTableName,\n path: `${path || ''}${tab.name}.`,\n relationships,\n relationshipsToDelete,\n row,\n selects,\n texts,\n withinArrayOrBlockLocale: localeKey,\n })\n })\n } else {\n traverseFields({\n adapter,\n arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix: `${columnPrefix || ''}${toSnakeCase(tab.name)}_`,\n data: data[tab.name] as Record<string, unknown>,\n existingLocales,\n fieldPrefix: `${fieldPrefix || ''}${tab.name}_`,\n fields: tab.fields,\n locales,\n numbers,\n parentTableName,\n path: `${path || ''}${tab.name}.`,\n relationships,\n relationshipsToDelete,\n row,\n selects,\n texts,\n withinArrayOrBlockLocale,\n })\n }\n }\n } else {\n traverseFields({\n adapter,\n arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix,\n data,\n existingLocales,\n fieldPrefix,\n fields: tab.fields,\n locales,\n numbers,\n parentTableName,\n path,\n relationships,\n relationshipsToDelete,\n row,\n selects,\n texts,\n withinArrayOrBlockLocale,\n })\n }\n })\n }\n\n if (field.type === 'row' || field.type === 'collapsible') {\n traverseFields({\n adapter,\n arrays,\n baseTableName,\n blocks,\n blocksToDelete,\n columnPrefix,\n data,\n existingLocales,\n fieldPrefix,\n fields: field.fields,\n locales,\n numbers,\n parentTableName,\n path,\n relationships,\n relationshipsToDelete,\n row,\n selects,\n texts,\n withinArrayOrBlockLocale,\n })\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: data._uuid || data.id,\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: data._uuid || data.id,\n data: data[field.name],\n locale: withinArrayOrBlockLocale,\n })\n\n selects[selectTableName] = selects[selectTableName].concat(newRows)\n }\n\n return\n }\n\n if (fieldAffectsData(field)) {\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 if (typeof value !== 'undefined') {\n let formattedValue = value\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 } else if (fieldName === 'updatedAt') {\n // let the db handle this\n formattedValue = new Date().toISOString()\n }\n }\n\n if (localeKey) {\n ref[localeKey][fieldName] = formattedValue\n } else {\n ref[fieldName] = formattedValue\n }\n }\n })\n }\n })\n}\n"],"names":["fieldAffectsData","fieldIsVirtual","toSnakeCase","isArrayOfRows","transformArray","transformBlocks","transformNumbers","transformRelationship","transformSelects","transformTexts","traverseFields","adapter","arrays","baseTableName","blocks","blocksToDelete","columnPrefix","data","existingLocales","fieldPrefix","fields","forcedLocale","locales","numbers","parentTableName","path","relationships","relationshipsToDelete","row","selects","texts","withinArrayOrBlockLocale","forEach","field","columnName","fieldName","fieldData","name","type","arrayTableName","tableNameMap","get","localized","Object","entries","localeKey","localeData","Array","isArray","newRows","locale","concat","slug","add","tabs","tab","relationshipPath","relationTo","hasMany","push","baseRow","length","id","textPath","numberPath","selectTableName","_uuid","valuesToTransform","ref","value","formattedValue","Number","isNaN","Date","toISOString"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAUxC,eAAO,MAAM,SAAS,EAAE,SA4CvB,CAAA"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../src/update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAUxC,eAAO,MAAM,SAAS,EAAE,SA6CvB,CAAA"}
package/dist/update.js CHANGED
@@ -2,7 +2,7 @@ import toSnakeCase from 'to-snake-case';
2
2
  import buildQuery from './queries/buildQuery.js';
3
3
  import { selectDistinct } from './queries/selectDistinct.js';
4
4
  import { upsertRow } from './upsertRow/index.js';
5
- export const updateOne = async function updateOne({ id, collection: collectionSlug, data, draft, locale, req, where: whereArg }) {
5
+ export const updateOne = async function updateOne({ id, collection: collectionSlug, data, draft, joins: joinQuery, locale, req, where: whereArg }) {
6
6
  const db = this.sessions[await req?.transactionID]?.db || this.drizzle;
7
7
  const collection = this.payload.collections[collectionSlug].config;
8
8
  const tableName = this.tableNameMap.get(toSnakeCase(collection.slug));
@@ -12,7 +12,7 @@ export const updateOne = async function updateOne({ id, collection: collectionSl
12
12
  }
13
13
  };
14
14
  let idToUpdate = id;
15
- const { joins, selectFields, where } = await buildQuery({
15
+ const { joins, selectFields, where } = buildQuery({
16
16
  adapter: this,
17
17
  fields: collection.fields,
18
18
  locale,
@@ -44,6 +44,7 @@ export const updateOne = async function updateOne({ id, collection: collectionSl
44
44
  data,
45
45
  db,
46
46
  fields: collection.fields,
47
+ joinQuery,
47
48
  operation: 'update',
48
49
  req,
49
50
  tableName
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/update.ts"],"sourcesContent":["import type { UpdateOne } from 'payload'\n\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport buildQuery from './queries/buildQuery.js'\nimport { selectDistinct } from './queries/selectDistinct.js'\nimport { upsertRow } from './upsertRow/index.js'\n\nexport const updateOne: UpdateOne = async function updateOne(\n this: DrizzleAdapter,\n { id, collection: collectionSlug, data, draft, locale, req, where: whereArg },\n) {\n const db = this.sessions[await req?.transactionID]?.db || this.drizzle\n const collection = this.payload.collections[collectionSlug].config\n const tableName = this.tableNameMap.get(toSnakeCase(collection.slug))\n const whereToUse = whereArg || { id: { equals: id } }\n let idToUpdate = id\n\n const { joins, selectFields, where } = await buildQuery({\n adapter: this,\n fields: collection.fields,\n locale,\n tableName,\n where: whereToUse,\n })\n\n const selectDistinctResult = await selectDistinct({\n adapter: this,\n chainedMethods: [{ args: [1], method: 'limit' }],\n db,\n joins,\n selectFields,\n tableName,\n where,\n })\n\n if (selectDistinctResult?.[0]?.id) {\n idToUpdate = selectDistinctResult?.[0]?.id\n }\n\n const result = await upsertRow({\n id: idToUpdate,\n adapter: this,\n data,\n db,\n fields: collection.fields,\n operation: 'update',\n req,\n tableName,\n })\n\n return result\n}\n"],"names":["toSnakeCase","buildQuery","selectDistinct","upsertRow","updateOne","id","collection","collectionSlug","data","draft","locale","req","where","whereArg","db","sessions","transactionID","drizzle","payload","collections","config","tableName","tableNameMap","get","slug","whereToUse","equals","idToUpdate","joins","selectFields","adapter","fields","selectDistinctResult","chainedMethods","args","method","result","operation"],"mappings":"AAEA,OAAOA,iBAAiB,gBAAe;AAIvC,OAAOC,gBAAgB,0BAAyB;AAChD,SAASC,cAAc,QAAQ,8BAA6B;AAC5D,SAASC,SAAS,QAAQ,uBAAsB;AAEhD,OAAO,MAAMC,YAAuB,eAAeA,UAEjD,EAAEC,EAAE,EAAEC,YAAYC,cAAc,EAAEC,IAAI,EAAEC,KAAK,EAAEC,MAAM,EAAEC,GAAG,EAAEC,OAAOC,QAAQ,EAAE;IAE7E,MAAMC,KAAK,IAAI,CAACC,QAAQ,CAAC,MAAMJ,KAAKK,cAAc,EAAEF,MAAM,IAAI,CAACG,OAAO;IACtE,MAAMX,aAAa,IAAI,CAACY,OAAO,CAACC,WAAW,CAACZ,eAAe,CAACa,MAAM;IAClE,MAAMC,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAACvB,YAAYM,WAAWkB,IAAI;IACnE,MAAMC,aAAaZ,YAAY;QAAER,IAAI;YAAEqB,QAAQrB;QAAG;IAAE;IACpD,IAAIsB,aAAatB;IAEjB,MAAM,EAAEuB,KAAK,EAAEC,YAAY,EAAEjB,KAAK,EAAE,GAAG,MAAMX,WAAW;QACtD6B,SAAS,IAAI;QACbC,QAAQzB,WAAWyB,MAAM;QACzBrB;QACAW;QACAT,OAAOa;IACT;IAEA,MAAMO,uBAAuB,MAAM9B,eAAe;QAChD4B,SAAS,IAAI;QACbG,gBAAgB;YAAC;gBAAEC,MAAM;oBAAC;iBAAE;gBAAEC,QAAQ;YAAQ;SAAE;QAChDrB;QACAc;QACAC;QACAR;QACAT;IACF;IAEA,IAAIoB,sBAAsB,CAAC,EAAE,EAAE3B,IAAI;QACjCsB,aAAaK,sBAAsB,CAAC,EAAE,EAAE3B;IAC1C;IAEA,MAAM+B,SAAS,MAAMjC,UAAU;QAC7BE,IAAIsB;QACJG,SAAS,IAAI;QACbtB;QACAM;QACAiB,QAAQzB,WAAWyB,MAAM;QACzBM,WAAW;QACX1B;QACAU;IACF;IAEA,OAAOe;AACT,EAAC"}
1
+ {"version":3,"sources":["../src/update.ts"],"sourcesContent":["import type { UpdateOne } from 'payload'\n\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport buildQuery from './queries/buildQuery.js'\nimport { selectDistinct } from './queries/selectDistinct.js'\nimport { upsertRow } from './upsertRow/index.js'\n\nexport const updateOne: UpdateOne = async function updateOne(\n this: DrizzleAdapter,\n { id, collection: collectionSlug, data, draft, joins: joinQuery, locale, req, where: whereArg },\n) {\n const db = this.sessions[await req?.transactionID]?.db || this.drizzle\n const collection = this.payload.collections[collectionSlug].config\n const tableName = this.tableNameMap.get(toSnakeCase(collection.slug))\n const whereToUse = whereArg || { id: { equals: id } }\n let idToUpdate = id\n\n const { joins, selectFields, where } = buildQuery({\n adapter: this,\n fields: collection.fields,\n locale,\n tableName,\n where: whereToUse,\n })\n\n const selectDistinctResult = await selectDistinct({\n adapter: this,\n chainedMethods: [{ args: [1], method: 'limit' }],\n db,\n joins,\n selectFields,\n tableName,\n where,\n })\n\n if (selectDistinctResult?.[0]?.id) {\n idToUpdate = selectDistinctResult?.[0]?.id\n }\n\n const result = await upsertRow({\n id: idToUpdate,\n adapter: this,\n data,\n db,\n fields: collection.fields,\n joinQuery,\n operation: 'update',\n req,\n tableName,\n })\n\n return result\n}\n"],"names":["toSnakeCase","buildQuery","selectDistinct","upsertRow","updateOne","id","collection","collectionSlug","data","draft","joins","joinQuery","locale","req","where","whereArg","db","sessions","transactionID","drizzle","payload","collections","config","tableName","tableNameMap","get","slug","whereToUse","equals","idToUpdate","selectFields","adapter","fields","selectDistinctResult","chainedMethods","args","method","result","operation"],"mappings":"AAEA,OAAOA,iBAAiB,gBAAe;AAIvC,OAAOC,gBAAgB,0BAAyB;AAChD,SAASC,cAAc,QAAQ,8BAA6B;AAC5D,SAASC,SAAS,QAAQ,uBAAsB;AAEhD,OAAO,MAAMC,YAAuB,eAAeA,UAEjD,EAAEC,EAAE,EAAEC,YAAYC,cAAc,EAAEC,IAAI,EAAEC,KAAK,EAAEC,OAAOC,SAAS,EAAEC,MAAM,EAAEC,GAAG,EAAEC,OAAOC,QAAQ,EAAE;IAE/F,MAAMC,KAAK,IAAI,CAACC,QAAQ,CAAC,MAAMJ,KAAKK,cAAc,EAAEF,MAAM,IAAI,CAACG,OAAO;IACtE,MAAMb,aAAa,IAAI,CAACc,OAAO,CAACC,WAAW,CAACd,eAAe,CAACe,MAAM;IAClE,MAAMC,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAACzB,YAAYM,WAAWoB,IAAI;IACnE,MAAMC,aAAaZ,YAAY;QAAEV,IAAI;YAAEuB,QAAQvB;QAAG;IAAE;IACpD,IAAIwB,aAAaxB;IAEjB,MAAM,EAAEK,KAAK,EAAEoB,YAAY,EAAEhB,KAAK,EAAE,GAAGb,WAAW;QAChD8B,SAAS,IAAI;QACbC,QAAQ1B,WAAW0B,MAAM;QACzBpB;QACAW;QACAT,OAAOa;IACT;IAEA,MAAMM,uBAAuB,MAAM/B,eAAe;QAChD6B,SAAS,IAAI;QACbG,gBAAgB;YAAC;gBAAEC,MAAM;oBAAC;iBAAE;gBAAEC,QAAQ;YAAQ;SAAE;QAChDpB;QACAN;QACAoB;QACAP;QACAT;IACF;IAEA,IAAImB,sBAAsB,CAAC,EAAE,EAAE5B,IAAI;QACjCwB,aAAaI,sBAAsB,CAAC,EAAE,EAAE5B;IAC1C;IAEA,MAAMgC,SAAS,MAAMlC,UAAU;QAC7BE,IAAIwB;QACJE,SAAS,IAAI;QACbvB;QACAQ;QACAgB,QAAQ1B,WAAW0B,MAAM;QACzBrB;QACA2B,WAAW;QACXzB;QACAU;IACF;IAEA,OAAOc;AACT,EAAC"}
@@ -11,8 +11,8 @@ export async function updateGlobalVersion({ id, global, locale, req = {}, versio
11
11
  }
12
12
  };
13
13
  const tableName = this.tableNameMap.get(`_${toSnakeCase(globalConfig.slug)}${this.versionsSuffix}`);
14
- const fields = buildVersionGlobalFields(globalConfig);
15
- const { where } = await buildQuery({
14
+ const fields = buildVersionGlobalFields(this.payload.config, globalConfig);
15
+ const { where } = buildQuery({
16
16
  adapter: this,
17
17
  fields,
18
18
  locale,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/updateGlobalVersion.ts"],"sourcesContent":["import type {\n PayloadRequest,\n SanitizedGlobalConfig,\n TypeWithID,\n TypeWithVersion,\n UpdateGlobalVersionArgs,\n} from 'payload'\n\nimport { buildVersionGlobalFields } from 'payload'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport buildQuery from './queries/buildQuery.js'\nimport { upsertRow } from './upsertRow/index.js'\n\nexport async function updateGlobalVersion<T extends TypeWithID>(\n this: DrizzleAdapter,\n {\n id,\n global,\n locale,\n req = {} as PayloadRequest,\n versionData,\n where: whereArg,\n }: UpdateGlobalVersionArgs<T>,\n) {\n const db = this.sessions[await req?.transactionID]?.db || this.drizzle\n const globalConfig: SanitizedGlobalConfig = this.payload.globals.config.find(\n ({ slug }) => slug === global,\n )\n const whereToUse = whereArg || { id: { equals: id } }\n\n const tableName = this.tableNameMap.get(\n `_${toSnakeCase(globalConfig.slug)}${this.versionsSuffix}`,\n )\n\n const fields = buildVersionGlobalFields(globalConfig)\n\n const { where } = await buildQuery({\n adapter: this,\n fields,\n locale,\n tableName,\n where: whereToUse,\n })\n\n const result = await upsertRow<TypeWithVersion<T>>({\n id,\n adapter: this,\n data: versionData,\n db,\n fields,\n operation: 'update',\n req,\n tableName,\n where,\n })\n\n return result\n}\n"],"names":["buildVersionGlobalFields","toSnakeCase","buildQuery","upsertRow","updateGlobalVersion","id","global","locale","req","versionData","where","whereArg","db","sessions","transactionID","drizzle","globalConfig","payload","globals","config","find","slug","whereToUse","equals","tableName","tableNameMap","get","versionsSuffix","fields","adapter","result","data","operation"],"mappings":"AAQA,SAASA,wBAAwB,QAAQ,UAAS;AAClD,OAAOC,iBAAiB,gBAAe;AAIvC,OAAOC,gBAAgB,0BAAyB;AAChD,SAASC,SAAS,QAAQ,uBAAsB;AAEhD,OAAO,eAAeC,oBAEpB,EACEC,EAAE,EACFC,MAAM,EACNC,MAAM,EACNC,MAAM,CAAC,CAAmB,EAC1BC,WAAW,EACXC,OAAOC,QAAQ,EACY;IAE7B,MAAMC,KAAK,IAAI,CAACC,QAAQ,CAAC,MAAML,KAAKM,cAAc,EAAEF,MAAM,IAAI,CAACG,OAAO;IACtE,MAAMC,eAAsC,IAAI,CAACC,OAAO,CAACC,OAAO,CAACC,MAAM,CAACC,IAAI,CAC1E,CAAC,EAAEC,IAAI,EAAE,GAAKA,SAASf;IAEzB,MAAMgB,aAAaX,YAAY;QAAEN,IAAI;YAAEkB,QAAQlB;QAAG;IAAE;IAEpD,MAAMmB,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CACrC,CAAC,CAAC,EAAEzB,YAAYe,aAAaK,IAAI,EAAE,EAAE,IAAI,CAACM,cAAc,CAAC,CAAC;IAG5D,MAAMC,SAAS5B,yBAAyBgB;IAExC,MAAM,EAAEN,KAAK,EAAE,GAAG,MAAMR,WAAW;QACjC2B,SAAS,IAAI;QACbD;QACArB;QACAiB;QACAd,OAAOY;IACT;IAEA,MAAMQ,SAAS,MAAM3B,UAA8B;QACjDE;QACAwB,SAAS,IAAI;QACbE,MAAMtB;QACNG;QACAgB;QACAI,WAAW;QACXxB;QACAgB;QACAd;IACF;IAEA,OAAOoB;AACT"}
1
+ {"version":3,"sources":["../src/updateGlobalVersion.ts"],"sourcesContent":["import type {\n PayloadRequest,\n SanitizedGlobalConfig,\n TypeWithID,\n TypeWithVersion,\n UpdateGlobalVersionArgs,\n} from 'payload'\n\nimport { buildVersionGlobalFields } from 'payload'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport buildQuery from './queries/buildQuery.js'\nimport { upsertRow } from './upsertRow/index.js'\n\nexport async function updateGlobalVersion<T extends TypeWithID>(\n this: DrizzleAdapter,\n {\n id,\n global,\n locale,\n req = {} as PayloadRequest,\n versionData,\n where: whereArg,\n }: UpdateGlobalVersionArgs<T>,\n) {\n const db = this.sessions[await req?.transactionID]?.db || this.drizzle\n const globalConfig: SanitizedGlobalConfig = this.payload.globals.config.find(\n ({ slug }) => slug === global,\n )\n const whereToUse = whereArg || { id: { equals: id } }\n\n const tableName = this.tableNameMap.get(\n `_${toSnakeCase(globalConfig.slug)}${this.versionsSuffix}`,\n )\n\n const fields = buildVersionGlobalFields(this.payload.config, globalConfig)\n\n const { where } = buildQuery({\n adapter: this,\n fields,\n locale,\n tableName,\n where: whereToUse,\n })\n\n const result = await upsertRow<TypeWithVersion<T>>({\n id,\n adapter: this,\n data: versionData,\n db,\n fields,\n operation: 'update',\n req,\n tableName,\n where,\n })\n\n return result\n}\n"],"names":["buildVersionGlobalFields","toSnakeCase","buildQuery","upsertRow","updateGlobalVersion","id","global","locale","req","versionData","where","whereArg","db","sessions","transactionID","drizzle","globalConfig","payload","globals","config","find","slug","whereToUse","equals","tableName","tableNameMap","get","versionsSuffix","fields","adapter","result","data","operation"],"mappings":"AAQA,SAASA,wBAAwB,QAAQ,UAAS;AAClD,OAAOC,iBAAiB,gBAAe;AAIvC,OAAOC,gBAAgB,0BAAyB;AAChD,SAASC,SAAS,QAAQ,uBAAsB;AAEhD,OAAO,eAAeC,oBAEpB,EACEC,EAAE,EACFC,MAAM,EACNC,MAAM,EACNC,MAAM,CAAC,CAAmB,EAC1BC,WAAW,EACXC,OAAOC,QAAQ,EACY;IAE7B,MAAMC,KAAK,IAAI,CAACC,QAAQ,CAAC,MAAML,KAAKM,cAAc,EAAEF,MAAM,IAAI,CAACG,OAAO;IACtE,MAAMC,eAAsC,IAAI,CAACC,OAAO,CAACC,OAAO,CAACC,MAAM,CAACC,IAAI,CAC1E,CAAC,EAAEC,IAAI,EAAE,GAAKA,SAASf;IAEzB,MAAMgB,aAAaX,YAAY;QAAEN,IAAI;YAAEkB,QAAQlB;QAAG;IAAE;IAEpD,MAAMmB,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CACrC,CAAC,CAAC,EAAEzB,YAAYe,aAAaK,IAAI,EAAE,EAAE,IAAI,CAACM,cAAc,CAAC,CAAC;IAG5D,MAAMC,SAAS5B,yBAAyB,IAAI,CAACiB,OAAO,CAACE,MAAM,EAAEH;IAE7D,MAAM,EAAEN,KAAK,EAAE,GAAGR,WAAW;QAC3B2B,SAAS,IAAI;QACbD;QACArB;QACAiB;QACAd,OAAOY;IACT;IAEA,MAAMQ,SAAS,MAAM3B,UAA8B;QACjDE;QACAwB,SAAS,IAAI;QACbE,MAAMtB;QACNG;QACAgB;QACAI,WAAW;QACXxB;QACAgB;QACAd;IACF;IAEA,OAAOoB;AACT"}
@@ -11,8 +11,8 @@ export async function updateVersion({ id, collection, locale, req = {}, versionD
11
11
  }
12
12
  };
13
13
  const tableName = this.tableNameMap.get(`_${toSnakeCase(collectionConfig.slug)}${this.versionsSuffix}`);
14
- const fields = buildVersionCollectionFields(collectionConfig);
15
- const { where } = await buildQuery({
14
+ const fields = buildVersionCollectionFields(this.payload.config, collectionConfig);
15
+ const { where } = buildQuery({
16
16
  adapter: this,
17
17
  fields,
18
18
  locale,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/updateVersion.ts"],"sourcesContent":["import type {\n PayloadRequest,\n SanitizedCollectionConfig,\n TypeWithID,\n TypeWithVersion,\n UpdateVersionArgs,\n} from 'payload'\n\nimport { buildVersionCollectionFields } from 'payload'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport buildQuery from './queries/buildQuery.js'\nimport { upsertRow } from './upsertRow/index.js'\n\nexport async function updateVersion<T extends TypeWithID>(\n this: DrizzleAdapter,\n {\n id,\n collection,\n locale,\n req = {} as PayloadRequest,\n versionData,\n where: whereArg,\n }: UpdateVersionArgs<T>,\n) {\n const db = this.sessions[await req?.transactionID]?.db || this.drizzle\n const collectionConfig: SanitizedCollectionConfig = this.payload.collections[collection].config\n const whereToUse = whereArg || { id: { equals: id } }\n const tableName = this.tableNameMap.get(\n `_${toSnakeCase(collectionConfig.slug)}${this.versionsSuffix}`,\n )\n\n const fields = buildVersionCollectionFields(collectionConfig)\n\n const { where } = await buildQuery({\n adapter: this,\n fields,\n locale,\n tableName,\n where: whereToUse,\n })\n\n const result = await upsertRow<TypeWithVersion<T>>({\n id,\n adapter: this,\n data: versionData,\n db,\n fields,\n operation: 'update',\n req,\n tableName,\n where,\n })\n\n return result\n}\n"],"names":["buildVersionCollectionFields","toSnakeCase","buildQuery","upsertRow","updateVersion","id","collection","locale","req","versionData","where","whereArg","db","sessions","transactionID","drizzle","collectionConfig","payload","collections","config","whereToUse","equals","tableName","tableNameMap","get","slug","versionsSuffix","fields","adapter","result","data","operation"],"mappings":"AAQA,SAASA,4BAA4B,QAAQ,UAAS;AACtD,OAAOC,iBAAiB,gBAAe;AAIvC,OAAOC,gBAAgB,0BAAyB;AAChD,SAASC,SAAS,QAAQ,uBAAsB;AAEhD,OAAO,eAAeC,cAEpB,EACEC,EAAE,EACFC,UAAU,EACVC,MAAM,EACNC,MAAM,CAAC,CAAmB,EAC1BC,WAAW,EACXC,OAAOC,QAAQ,EACM;IAEvB,MAAMC,KAAK,IAAI,CAACC,QAAQ,CAAC,MAAML,KAAKM,cAAc,EAAEF,MAAM,IAAI,CAACG,OAAO;IACtE,MAAMC,mBAA8C,IAAI,CAACC,OAAO,CAACC,WAAW,CAACZ,WAAW,CAACa,MAAM;IAC/F,MAAMC,aAAaT,YAAY;QAAEN,IAAI;YAAEgB,QAAQhB;QAAG;IAAE;IACpD,MAAMiB,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CACrC,CAAC,CAAC,EAAEvB,YAAYe,iBAAiBS,IAAI,EAAE,EAAE,IAAI,CAACC,cAAc,CAAC,CAAC;IAGhE,MAAMC,SAAS3B,6BAA6BgB;IAE5C,MAAM,EAAEN,KAAK,EAAE,GAAG,MAAMR,WAAW;QACjC0B,SAAS,IAAI;QACbD;QACApB;QACAe;QACAZ,OAAOU;IACT;IAEA,MAAMS,SAAS,MAAM1B,UAA8B;QACjDE;QACAuB,SAAS,IAAI;QACbE,MAAMrB;QACNG;QACAe;QACAI,WAAW;QACXvB;QACAc;QACAZ;IACF;IAEA,OAAOmB;AACT"}
1
+ {"version":3,"sources":["../src/updateVersion.ts"],"sourcesContent":["import type {\n PayloadRequest,\n SanitizedCollectionConfig,\n TypeWithID,\n TypeWithVersion,\n UpdateVersionArgs,\n} from 'payload'\n\nimport { buildVersionCollectionFields } from 'payload'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport buildQuery from './queries/buildQuery.js'\nimport { upsertRow } from './upsertRow/index.js'\n\nexport async function updateVersion<T extends TypeWithID>(\n this: DrizzleAdapter,\n {\n id,\n collection,\n locale,\n req = {} as PayloadRequest,\n versionData,\n where: whereArg,\n }: UpdateVersionArgs<T>,\n) {\n const db = this.sessions[await req?.transactionID]?.db || this.drizzle\n const collectionConfig: SanitizedCollectionConfig = this.payload.collections[collection].config\n const whereToUse = whereArg || { id: { equals: id } }\n const tableName = this.tableNameMap.get(\n `_${toSnakeCase(collectionConfig.slug)}${this.versionsSuffix}`,\n )\n\n const fields = buildVersionCollectionFields(this.payload.config, collectionConfig)\n\n const { where } = buildQuery({\n adapter: this,\n fields,\n locale,\n tableName,\n where: whereToUse,\n })\n\n const result = await upsertRow<TypeWithVersion<T>>({\n id,\n adapter: this,\n data: versionData,\n db,\n fields,\n operation: 'update',\n req,\n tableName,\n where,\n })\n\n return result\n}\n"],"names":["buildVersionCollectionFields","toSnakeCase","buildQuery","upsertRow","updateVersion","id","collection","locale","req","versionData","where","whereArg","db","sessions","transactionID","drizzle","collectionConfig","payload","collections","config","whereToUse","equals","tableName","tableNameMap","get","slug","versionsSuffix","fields","adapter","result","data","operation"],"mappings":"AAQA,SAASA,4BAA4B,QAAQ,UAAS;AACtD,OAAOC,iBAAiB,gBAAe;AAIvC,OAAOC,gBAAgB,0BAAyB;AAChD,SAASC,SAAS,QAAQ,uBAAsB;AAEhD,OAAO,eAAeC,cAEpB,EACEC,EAAE,EACFC,UAAU,EACVC,MAAM,EACNC,MAAM,CAAC,CAAmB,EAC1BC,WAAW,EACXC,OAAOC,QAAQ,EACM;IAEvB,MAAMC,KAAK,IAAI,CAACC,QAAQ,CAAC,MAAML,KAAKM,cAAc,EAAEF,MAAM,IAAI,CAACG,OAAO;IACtE,MAAMC,mBAA8C,IAAI,CAACC,OAAO,CAACC,WAAW,CAACZ,WAAW,CAACa,MAAM;IAC/F,MAAMC,aAAaT,YAAY;QAAEN,IAAI;YAAEgB,QAAQhB;QAAG;IAAE;IACpD,MAAMiB,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CACrC,CAAC,CAAC,EAAEvB,YAAYe,iBAAiBS,IAAI,EAAE,EAAE,IAAI,CAACC,cAAc,CAAC,CAAC;IAGhE,MAAMC,SAAS3B,6BAA6B,IAAI,CAACiB,OAAO,CAACE,MAAM,EAAEH;IAEjE,MAAM,EAAEN,KAAK,EAAE,GAAGR,WAAW;QAC3B0B,SAAS,IAAI;QACbD;QACApB;QACAe;QACAZ,OAAOU;IACT;IAEA,MAAMS,SAAS,MAAM1B,UAA8B;QACjDE;QACAuB,SAAS,IAAI;QACbE,MAAMrB;QACNG;QACAe;QACAI,WAAW;QACXvB;QACAc;QACAZ;IACF;IAEA,OAAOmB;AACT"}
@@ -1,4 +1,4 @@
1
1
  import type { TypeWithID } from 'payload';
2
2
  import type { Args } from './types.js';
3
- export declare const upsertRow: <T extends Record<string, unknown> | TypeWithID>({ id, adapter, data, db, fields, ignoreResult, operation, path, req, tableName, upsertTarget, where, }: Args) => Promise<T>;
3
+ export declare const upsertRow: <T extends Record<string, unknown> | TypeWithID>({ id, adapter, data, db, fields, ignoreResult, joinQuery, operation, path, req, tableName, upsertTarget, where, }: Args) => Promise<T>;
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/upsertRow/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAMzC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAStC,eAAO,MAAM,SAAS,GAAU,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,0GAa3E,IAAI,KAAG,OAAO,CAAC,CAAC,CAsZlB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/upsertRow/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAMzC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAStC,eAAO,MAAM,SAAS,GAAU,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,qHAc3E,IAAI,KAAG,OAAO,CAAC,CAAC,CAwZlB,CAAA"}