@payloadcms/drizzle 3.83.0-canary.0 → 3.83.0-canary.2

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 (79) hide show
  1. package/dist/createGlobal.d.ts.map +1 -1
  2. package/dist/createGlobal.js +2 -1
  3. package/dist/createGlobal.js.map +1 -1
  4. package/dist/createGlobalVersion.d.ts.map +1 -1
  5. package/dist/createGlobalVersion.js +2 -1
  6. package/dist/createGlobalVersion.js.map +1 -1
  7. package/dist/createVersion.d.ts.map +1 -1
  8. package/dist/createVersion.js +2 -1
  9. package/dist/createVersion.js.map +1 -1
  10. package/dist/deleteMany.d.ts.map +1 -1
  11. package/dist/deleteMany.js +3 -0
  12. package/dist/deleteMany.js.map +1 -1
  13. package/dist/deleteOne.d.ts.map +1 -1
  14. package/dist/deleteOne.js +2 -1
  15. package/dist/deleteOne.js.map +1 -1
  16. package/dist/deleteVersions.d.ts.map +1 -1
  17. package/dist/deleteVersions.js +3 -0
  18. package/dist/deleteVersions.js.map +1 -1
  19. package/dist/postgres/columnToCodeConverter.d.ts.map +1 -1
  20. package/dist/postgres/columnToCodeConverter.js +4 -0
  21. package/dist/postgres/columnToCodeConverter.js.map +1 -1
  22. package/dist/postgres/schema/buildDrizzleTable.d.ts.map +1 -1
  23. package/dist/postgres/schema/buildDrizzleTable.js +4 -0
  24. package/dist/postgres/schema/buildDrizzleTable.js.map +1 -1
  25. package/dist/postgres/schema/setColumnID.d.ts.map +1 -1
  26. package/dist/postgres/schema/setColumnID.js +9 -0
  27. package/dist/postgres/schema/setColumnID.js.map +1 -1
  28. package/dist/postgres/types.d.ts +1 -1
  29. package/dist/postgres/types.d.ts.map +1 -1
  30. package/dist/postgres/types.js.map +1 -1
  31. package/dist/queries/getTableColumnFromPath.d.ts.map +1 -1
  32. package/dist/queries/getTableColumnFromPath.js +5 -4
  33. package/dist/queries/getTableColumnFromPath.js.map +1 -1
  34. package/dist/queries/sanitizeQueryValue.d.ts.map +1 -1
  35. package/dist/queries/sanitizeQueryValue.js +2 -1
  36. package/dist/queries/sanitizeQueryValue.js.map +1 -1
  37. package/dist/schema/build.d.ts.map +1 -1
  38. package/dist/schema/build.js +2 -1
  39. package/dist/schema/build.js.map +1 -1
  40. package/dist/schema/traverseFields.d.ts.map +1 -1
  41. package/dist/schema/traverseFields.js +2 -1
  42. package/dist/schema/traverseFields.js.map +1 -1
  43. package/dist/sqlite/columnToCodeConverter.d.ts.map +1 -1
  44. package/dist/sqlite/columnToCodeConverter.js +4 -0
  45. package/dist/sqlite/columnToCodeConverter.js.map +1 -1
  46. package/dist/sqlite/schema/buildDrizzleTable.d.ts.map +1 -1
  47. package/dist/sqlite/schema/buildDrizzleTable.js +4 -1
  48. package/dist/sqlite/schema/buildDrizzleTable.js.map +1 -1
  49. package/dist/sqlite/schema/setColumnID.d.ts.map +1 -1
  50. package/dist/sqlite/schema/setColumnID.js +9 -0
  51. package/dist/sqlite/schema/setColumnID.js.map +1 -1
  52. package/dist/sqlite/types.d.ts +1 -1
  53. package/dist/sqlite/types.d.ts.map +1 -1
  54. package/dist/sqlite/types.js.map +1 -1
  55. package/dist/transactions/beginTransaction.d.ts.map +1 -1
  56. package/dist/transactions/beginTransaction.js +8 -3
  57. package/dist/transactions/beginTransaction.js.map +1 -1
  58. package/dist/types.d.ts +3 -1
  59. package/dist/types.d.ts.map +1 -1
  60. package/dist/types.js.map +1 -1
  61. package/dist/updateGlobal.d.ts.map +1 -1
  62. package/dist/updateGlobal.js +2 -1
  63. package/dist/updateGlobal.js.map +1 -1
  64. package/dist/updateGlobalVersion.d.ts.map +1 -1
  65. package/dist/updateGlobalVersion.js +2 -1
  66. package/dist/updateGlobalVersion.js.map +1 -1
  67. package/dist/updateJobs.js +1 -1
  68. package/dist/updateJobs.js.map +1 -1
  69. package/dist/updateVersion.d.ts.map +1 -1
  70. package/dist/updateVersion.js +2 -1
  71. package/dist/updateVersion.js.map +1 -1
  72. package/dist/utilities/getCollectionIdType.d.ts.map +1 -1
  73. package/dist/utilities/getCollectionIdType.js +2 -1
  74. package/dist/utilities/getCollectionIdType.js.map +1 -1
  75. package/dist/utilities/isUUIDType.d.ts +2 -0
  76. package/dist/utilities/isUUIDType.d.ts.map +1 -0
  77. package/dist/utilities/isUUIDType.js +3 -0
  78. package/dist/utilities/isUUIDType.js.map +1 -0
  79. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"createGlobal.d.ts","sourceRoot":"","sources":["../src/createGlobal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAI/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAKhD,wBAAsB,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClE,IAAI,EAAE,cAAc,EACpB,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,gBAAgB,GAC/C,OAAO,CAAC,CAAC,CAAC,CA4BZ"}
1
+ {"version":3,"file":"createGlobal.d.ts","sourceRoot":"","sources":["../src/createGlobal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAI/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAMhD,wBAAsB,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClE,IAAI,EAAE,cAAc,EACpB,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,gBAAgB,GAC/C,OAAO,CAAC,CAAC,CAAC,CA4BZ"}
@@ -1,11 +1,12 @@
1
1
  import toSnakeCase from 'to-snake-case';
2
2
  import { upsertRow } from './upsertRow/index.js';
3
+ import { getPrimaryDb } from './utilities/getPrimaryDb.js';
3
4
  import { getTransaction } from './utilities/getTransaction.js';
4
5
  export async function createGlobal({ slug, data, req, returning }) {
5
6
  const globalConfig = this.payload.globals.config.find((config)=>config.slug === slug);
6
7
  const tableName = this.tableNameMap.get(toSnakeCase(globalConfig.slug));
7
8
  data.createdAt = new Date().toISOString();
8
- const db = await getTransaction(this, req);
9
+ const db = getPrimaryDb(this, await getTransaction(this, req));
9
10
  const result = await upsertRow({
10
11
  adapter: this,
11
12
  data,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/createGlobal.ts"],"sourcesContent":["import type { CreateGlobalArgs } from 'payload'\n\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { upsertRow } from './upsertRow/index.js'\nimport { getTransaction } from './utilities/getTransaction.js'\n\nexport async function createGlobal<T extends Record<string, unknown>>(\n this: DrizzleAdapter,\n { slug, data, req, returning }: CreateGlobalArgs,\n): Promise<T> {\n const globalConfig = this.payload.globals.config.find((config) => config.slug === slug)\n\n const tableName = this.tableNameMap.get(toSnakeCase(globalConfig.slug))\n\n data.createdAt = new Date().toISOString()\n\n const db = await getTransaction(this, req)\n\n const result = await upsertRow<{ globalType: string } & T>({\n adapter: this,\n data,\n db,\n fields: globalConfig.flattenedFields,\n globalSlug: slug,\n ignoreResult: returning === false,\n operation: 'create',\n req,\n tableName,\n })\n\n if (returning === false) {\n return null\n }\n\n result.globalType = slug\n\n return result\n}\n"],"names":["toSnakeCase","upsertRow","getTransaction","createGlobal","slug","data","req","returning","globalConfig","payload","globals","config","find","tableName","tableNameMap","get","createdAt","Date","toISOString","db","result","adapter","fields","flattenedFields","globalSlug","ignoreResult","operation","globalType"],"mappings":"AAEA,OAAOA,iBAAiB,gBAAe;AAIvC,SAASC,SAAS,QAAQ,uBAAsB;AAChD,SAASC,cAAc,QAAQ,gCAA+B;AAE9D,OAAO,eAAeC,aAEpB,EAAEC,IAAI,EAAEC,IAAI,EAAEC,GAAG,EAAEC,SAAS,EAAoB;IAEhD,MAAMC,eAAe,IAAI,CAACC,OAAO,CAACC,OAAO,CAACC,MAAM,CAACC,IAAI,CAAC,CAACD,SAAWA,OAAOP,IAAI,KAAKA;IAElF,MAAMS,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAACf,YAAYQ,aAAaJ,IAAI;IAErEC,KAAKW,SAAS,GAAG,IAAIC,OAAOC,WAAW;IAEvC,MAAMC,KAAK,MAAMjB,eAAe,IAAI,EAAEI;IAEtC,MAAMc,SAAS,MAAMnB,UAAsC;QACzDoB,SAAS,IAAI;QACbhB;QACAc;QACAG,QAAQd,aAAae,eAAe;QACpCC,YAAYpB;QACZqB,cAAclB,cAAc;QAC5BmB,WAAW;QACXpB;QACAO;IACF;IAEA,IAAIN,cAAc,OAAO;QACvB,OAAO;IACT;IAEAa,OAAOO,UAAU,GAAGvB;IAEpB,OAAOgB;AACT"}
1
+ {"version":3,"sources":["../src/createGlobal.ts"],"sourcesContent":["import type { CreateGlobalArgs } from 'payload'\n\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { upsertRow } from './upsertRow/index.js'\nimport { getPrimaryDb } from './utilities/getPrimaryDb.js'\nimport { getTransaction } from './utilities/getTransaction.js'\n\nexport async function createGlobal<T extends Record<string, unknown>>(\n this: DrizzleAdapter,\n { slug, data, req, returning }: CreateGlobalArgs,\n): Promise<T> {\n const globalConfig = this.payload.globals.config.find((config) => config.slug === slug)\n\n const tableName = this.tableNameMap.get(toSnakeCase(globalConfig.slug))\n\n data.createdAt = new Date().toISOString()\n\n const db = getPrimaryDb(this, await getTransaction(this, req))\n\n const result = await upsertRow<{ globalType: string } & T>({\n adapter: this,\n data,\n db,\n fields: globalConfig.flattenedFields,\n globalSlug: slug,\n ignoreResult: returning === false,\n operation: 'create',\n req,\n tableName,\n })\n\n if (returning === false) {\n return null\n }\n\n result.globalType = slug\n\n return result\n}\n"],"names":["toSnakeCase","upsertRow","getPrimaryDb","getTransaction","createGlobal","slug","data","req","returning","globalConfig","payload","globals","config","find","tableName","tableNameMap","get","createdAt","Date","toISOString","db","result","adapter","fields","flattenedFields","globalSlug","ignoreResult","operation","globalType"],"mappings":"AAEA,OAAOA,iBAAiB,gBAAe;AAIvC,SAASC,SAAS,QAAQ,uBAAsB;AAChD,SAASC,YAAY,QAAQ,8BAA6B;AAC1D,SAASC,cAAc,QAAQ,gCAA+B;AAE9D,OAAO,eAAeC,aAEpB,EAAEC,IAAI,EAAEC,IAAI,EAAEC,GAAG,EAAEC,SAAS,EAAoB;IAEhD,MAAMC,eAAe,IAAI,CAACC,OAAO,CAACC,OAAO,CAACC,MAAM,CAACC,IAAI,CAAC,CAACD,SAAWA,OAAOP,IAAI,KAAKA;IAElF,MAAMS,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAAChB,YAAYS,aAAaJ,IAAI;IAErEC,KAAKW,SAAS,GAAG,IAAIC,OAAOC,WAAW;IAEvC,MAAMC,KAAKlB,aAAa,IAAI,EAAE,MAAMC,eAAe,IAAI,EAAEI;IAEzD,MAAMc,SAAS,MAAMpB,UAAsC;QACzDqB,SAAS,IAAI;QACbhB;QACAc;QACAG,QAAQd,aAAae,eAAe;QACpCC,YAAYpB;QACZqB,cAAclB,cAAc;QAC5BmB,WAAW;QACXpB;QACAO;IACF;IAEA,IAAIN,cAAc,OAAO;QACvB,OAAO;IACT;IAEAa,OAAOO,UAAU,GAAGvB;IAEpB,OAAOgB;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"createGlobalVersion.d.ts","sourceRoot":"","sources":["../src/createGlobalVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAOnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAKhD,wBAAsB,mBAAmB,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EACzE,IAAI,EAAE,cAAc,EACpB,EACE,QAAQ,EACR,SAAS,EACT,UAAU,EACV,eAAe,EACf,GAAG,EACH,SAAS,EACT,MAAM,EACN,QAAQ,EACR,SAAS,EACT,WAAW,GACZ,EAAE,uBAAuB,GACzB,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CA6C7B"}
1
+ {"version":3,"file":"createGlobalVersion.d.ts","sourceRoot":"","sources":["../src/createGlobalVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAOnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAMhD,wBAAsB,mBAAmB,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EACzE,IAAI,EAAE,cAAc,EACpB,EACE,QAAQ,EACR,SAAS,EACT,UAAU,EACV,eAAe,EACf,GAAG,EACH,SAAS,EACT,MAAM,EACN,QAAQ,EACR,SAAS,EACT,WAAW,GACZ,EAAE,uBAAuB,GACzB,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CA6C7B"}
@@ -3,11 +3,12 @@ import { buildVersionGlobalFields } from 'payload';
3
3
  import { hasDraftsEnabled } from 'payload/shared';
4
4
  import toSnakeCase from 'to-snake-case';
5
5
  import { upsertRow } from './upsertRow/index.js';
6
+ import { getPrimaryDb } from './utilities/getPrimaryDb.js';
6
7
  import { getTransaction } from './utilities/getTransaction.js';
7
8
  export async function createGlobalVersion({ autosave, createdAt, globalSlug, publishedLocale, req, returning, select, snapshot, updatedAt, versionData }) {
8
9
  const global = this.payload.globals.config.find(({ slug })=>slug === globalSlug);
9
10
  const tableName = this.tableNameMap.get(`_${toSnakeCase(global.slug)}${this.versionsSuffix}`);
10
- const db = await getTransaction(this, req);
11
+ const db = getPrimaryDb(this, await getTransaction(this, req));
11
12
  const result = await upsertRow({
12
13
  adapter: this,
13
14
  data: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/createGlobalVersion.ts"],"sourcesContent":["import type { CreateGlobalVersionArgs, JsonObject, TypeWithVersion } from 'payload'\n\nimport { sql } from 'drizzle-orm'\nimport { buildVersionGlobalFields } from 'payload'\nimport { hasDraftsEnabled } from 'payload/shared'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { upsertRow } from './upsertRow/index.js'\nimport { getTransaction } from './utilities/getTransaction.js'\n\nexport async function createGlobalVersion<T extends JsonObject = JsonObject>(\n this: DrizzleAdapter,\n {\n autosave,\n createdAt,\n globalSlug,\n publishedLocale,\n req,\n returning,\n select,\n snapshot,\n updatedAt,\n versionData,\n }: CreateGlobalVersionArgs,\n): Promise<TypeWithVersion<T>> {\n const global = this.payload.globals.config.find(({ slug }) => slug === globalSlug)\n\n const tableName = this.tableNameMap.get(`_${toSnakeCase(global.slug)}${this.versionsSuffix}`)\n\n const db = await getTransaction(this, req)\n\n const result = await upsertRow<TypeWithVersion<T>>({\n adapter: this,\n data: {\n autosave,\n createdAt,\n latest: true,\n publishedLocale,\n snapshot,\n updatedAt,\n version: versionData,\n },\n db,\n fields: buildVersionGlobalFields(this.payload.config, global, true),\n globalSlug,\n ignoreResult: returning === false ? 'idOnly' : false,\n operation: 'create',\n req,\n select,\n tableName,\n })\n\n const table = this.tables[tableName]\n if (hasDraftsEnabled(global)) {\n await this.execute({\n db,\n sql: sql`\n UPDATE ${table}\n SET latest = false\n WHERE ${table.id} != ${result.id};\n `,\n })\n }\n\n if (returning === false) {\n return null\n }\n\n return result\n}\n"],"names":["sql","buildVersionGlobalFields","hasDraftsEnabled","toSnakeCase","upsertRow","getTransaction","createGlobalVersion","autosave","createdAt","globalSlug","publishedLocale","req","returning","select","snapshot","updatedAt","versionData","global","payload","globals","config","find","slug","tableName","tableNameMap","get","versionsSuffix","db","result","adapter","data","latest","version","fields","ignoreResult","operation","table","tables","execute","id"],"mappings":"AAEA,SAASA,GAAG,QAAQ,cAAa;AACjC,SAASC,wBAAwB,QAAQ,UAAS;AAClD,SAASC,gBAAgB,QAAQ,iBAAgB;AACjD,OAAOC,iBAAiB,gBAAe;AAIvC,SAASC,SAAS,QAAQ,uBAAsB;AAChD,SAASC,cAAc,QAAQ,gCAA+B;AAE9D,OAAO,eAAeC,oBAEpB,EACEC,QAAQ,EACRC,SAAS,EACTC,UAAU,EACVC,eAAe,EACfC,GAAG,EACHC,SAAS,EACTC,MAAM,EACNC,QAAQ,EACRC,SAAS,EACTC,WAAW,EACa;IAE1B,MAAMC,SAAS,IAAI,CAACC,OAAO,CAACC,OAAO,CAACC,MAAM,CAACC,IAAI,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAKA,SAASb;IAEvE,MAAMc,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAAC,CAAC,CAAC,EAAEtB,YAAYc,OAAOK,IAAI,IAAI,IAAI,CAACI,cAAc,EAAE;IAE5F,MAAMC,KAAK,MAAMtB,eAAe,IAAI,EAAEM;IAEtC,MAAMiB,SAAS,MAAMxB,UAA8B;QACjDyB,SAAS,IAAI;QACbC,MAAM;YACJvB;YACAC;YACAuB,QAAQ;YACRrB;YACAI;YACAC;YACAiB,SAAShB;QACX;QACAW;QACAM,QAAQhC,yBAAyB,IAAI,CAACiB,OAAO,CAACE,MAAM,EAAEH,QAAQ;QAC9DR;QACAyB,cAActB,cAAc,QAAQ,WAAW;QAC/CuB,WAAW;QACXxB;QACAE;QACAU;IACF;IAEA,MAAMa,QAAQ,IAAI,CAACC,MAAM,CAACd,UAAU;IACpC,IAAIrB,iBAAiBe,SAAS;QAC5B,MAAM,IAAI,CAACqB,OAAO,CAAC;YACjBX;YACA3B,KAAKA,GAAG,CAAC;iBACE,EAAEoC,MAAM;;gBAET,EAAEA,MAAMG,EAAE,CAAC,IAAI,EAAEX,OAAOW,EAAE,CAAC;QACnC,CAAC;QACL;IACF;IAEA,IAAI3B,cAAc,OAAO;QACvB,OAAO;IACT;IAEA,OAAOgB;AACT"}
1
+ {"version":3,"sources":["../src/createGlobalVersion.ts"],"sourcesContent":["import type { CreateGlobalVersionArgs, JsonObject, TypeWithVersion } from 'payload'\n\nimport { sql } from 'drizzle-orm'\nimport { buildVersionGlobalFields } from 'payload'\nimport { hasDraftsEnabled } from 'payload/shared'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { upsertRow } from './upsertRow/index.js'\nimport { getPrimaryDb } from './utilities/getPrimaryDb.js'\nimport { getTransaction } from './utilities/getTransaction.js'\n\nexport async function createGlobalVersion<T extends JsonObject = JsonObject>(\n this: DrizzleAdapter,\n {\n autosave,\n createdAt,\n globalSlug,\n publishedLocale,\n req,\n returning,\n select,\n snapshot,\n updatedAt,\n versionData,\n }: CreateGlobalVersionArgs,\n): Promise<TypeWithVersion<T>> {\n const global = this.payload.globals.config.find(({ slug }) => slug === globalSlug)\n\n const tableName = this.tableNameMap.get(`_${toSnakeCase(global.slug)}${this.versionsSuffix}`)\n\n const db = getPrimaryDb(this, await getTransaction(this, req))\n\n const result = await upsertRow<TypeWithVersion<T>>({\n adapter: this,\n data: {\n autosave,\n createdAt,\n latest: true,\n publishedLocale,\n snapshot,\n updatedAt,\n version: versionData,\n },\n db,\n fields: buildVersionGlobalFields(this.payload.config, global, true),\n globalSlug,\n ignoreResult: returning === false ? 'idOnly' : false,\n operation: 'create',\n req,\n select,\n tableName,\n })\n\n const table = this.tables[tableName]\n if (hasDraftsEnabled(global)) {\n await this.execute({\n db,\n sql: sql`\n UPDATE ${table}\n SET latest = false\n WHERE ${table.id} != ${result.id};\n `,\n })\n }\n\n if (returning === false) {\n return null\n }\n\n return result\n}\n"],"names":["sql","buildVersionGlobalFields","hasDraftsEnabled","toSnakeCase","upsertRow","getPrimaryDb","getTransaction","createGlobalVersion","autosave","createdAt","globalSlug","publishedLocale","req","returning","select","snapshot","updatedAt","versionData","global","payload","globals","config","find","slug","tableName","tableNameMap","get","versionsSuffix","db","result","adapter","data","latest","version","fields","ignoreResult","operation","table","tables","execute","id"],"mappings":"AAEA,SAASA,GAAG,QAAQ,cAAa;AACjC,SAASC,wBAAwB,QAAQ,UAAS;AAClD,SAASC,gBAAgB,QAAQ,iBAAgB;AACjD,OAAOC,iBAAiB,gBAAe;AAIvC,SAASC,SAAS,QAAQ,uBAAsB;AAChD,SAASC,YAAY,QAAQ,8BAA6B;AAC1D,SAASC,cAAc,QAAQ,gCAA+B;AAE9D,OAAO,eAAeC,oBAEpB,EACEC,QAAQ,EACRC,SAAS,EACTC,UAAU,EACVC,eAAe,EACfC,GAAG,EACHC,SAAS,EACTC,MAAM,EACNC,QAAQ,EACRC,SAAS,EACTC,WAAW,EACa;IAE1B,MAAMC,SAAS,IAAI,CAACC,OAAO,CAACC,OAAO,CAACC,MAAM,CAACC,IAAI,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAKA,SAASb;IAEvE,MAAMc,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAAC,CAAC,CAAC,EAAEvB,YAAYe,OAAOK,IAAI,IAAI,IAAI,CAACI,cAAc,EAAE;IAE5F,MAAMC,KAAKvB,aAAa,IAAI,EAAE,MAAMC,eAAe,IAAI,EAAEM;IAEzD,MAAMiB,SAAS,MAAMzB,UAA8B;QACjD0B,SAAS,IAAI;QACbC,MAAM;YACJvB;YACAC;YACAuB,QAAQ;YACRrB;YACAI;YACAC;YACAiB,SAAShB;QACX;QACAW;QACAM,QAAQjC,yBAAyB,IAAI,CAACkB,OAAO,CAACE,MAAM,EAAEH,QAAQ;QAC9DR;QACAyB,cAActB,cAAc,QAAQ,WAAW;QAC/CuB,WAAW;QACXxB;QACAE;QACAU;IACF;IAEA,MAAMa,QAAQ,IAAI,CAACC,MAAM,CAACd,UAAU;IACpC,IAAItB,iBAAiBgB,SAAS;QAC5B,MAAM,IAAI,CAACqB,OAAO,CAAC;YACjBX;YACA5B,KAAKA,GAAG,CAAC;iBACE,EAAEqC,MAAM;;gBAET,EAAEA,MAAMG,EAAE,CAAC,IAAI,EAAEX,OAAOW,EAAE,CAAC;QACnC,CAAC;QACL;IACF;IAEA,IAAI3B,cAAc,OAAO;QACvB,OAAO;IACT;IAEA,OAAOgB;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"createVersion.d.ts","sourceRoot":"","sources":["../src/createVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAO7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAKhD,wBAAsB,aAAa,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EACnE,IAAI,EAAE,cAAc,EACpB,EACE,QAAQ,EACR,cAAc,EACd,SAAS,EACT,MAAM,EACN,eAAe,EACf,GAAG,EACH,SAAS,EACT,MAAM,EACN,QAAQ,EACR,SAAS,EACT,WAAW,GACZ,EAAE,iBAAiB,CAAC,CAAC,CAAC,GACtB,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CA8D7B"}
1
+ {"version":3,"file":"createVersion.d.ts","sourceRoot":"","sources":["../src/createVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAO7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAMhD,wBAAsB,aAAa,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,EACnE,IAAI,EAAE,cAAc,EACpB,EACE,QAAQ,EACR,cAAc,EACd,SAAS,EACT,MAAM,EACN,eAAe,EACf,GAAG,EACH,SAAS,EACT,MAAM,EACN,QAAQ,EACR,SAAS,EACT,WAAW,GACZ,EAAE,iBAAiB,CAAC,CAAC,CAAC,GACtB,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CA8D7B"}
@@ -3,6 +3,7 @@ import { buildVersionCollectionFields } from 'payload';
3
3
  import { hasDraftsEnabled } from 'payload/shared';
4
4
  import toSnakeCase from 'to-snake-case';
5
5
  import { upsertRow } from './upsertRow/index.js';
6
+ import { getPrimaryDb } from './utilities/getPrimaryDb.js';
6
7
  import { getTransaction } from './utilities/getTransaction.js';
7
8
  export async function createVersion({ autosave, collectionSlug, createdAt, parent, publishedLocale, req, returning, select, snapshot, updatedAt, versionData }) {
8
9
  const collection = this.payload.collections[collectionSlug].config;
@@ -29,7 +30,7 @@ export async function createVersion({ autosave, collectionSlug, createdAt, paren
29
30
  updatedAt,
30
31
  version
31
32
  };
32
- const db = await getTransaction(this, req);
33
+ const db = getPrimaryDb(this, await getTransaction(this, req));
33
34
  const result = await upsertRow({
34
35
  adapter: this,
35
36
  collectionSlug,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/createVersion.ts"],"sourcesContent":["import type { CreateVersionArgs, JsonObject, TypeWithVersion } from 'payload'\n\nimport { sql } from 'drizzle-orm'\nimport { buildVersionCollectionFields } from 'payload'\nimport { hasDraftsEnabled } from 'payload/shared'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { upsertRow } from './upsertRow/index.js'\nimport { getTransaction } from './utilities/getTransaction.js'\n\nexport async function createVersion<T extends JsonObject = JsonObject>(\n this: DrizzleAdapter,\n {\n autosave,\n collectionSlug,\n createdAt,\n parent,\n publishedLocale,\n req,\n returning,\n select,\n snapshot,\n updatedAt,\n versionData,\n }: CreateVersionArgs<T>,\n): Promise<TypeWithVersion<T>> {\n const collection = this.payload.collections[collectionSlug].config\n if (collection.versions.drafts) {\n if (typeof select === 'object') {\n select.updatedAt = true\n }\n }\n\n const defaultTableName = toSnakeCase(collection.slug)\n const tableName = this.tableNameMap.get(`_${defaultTableName}${this.versionsSuffix}`)\n\n const version = { ...versionData }\n if (version.id) {\n delete version.id\n }\n\n const data: Record<string, unknown> = {\n autosave,\n createdAt,\n latest: true,\n parent,\n publishedLocale,\n snapshot,\n updatedAt,\n version,\n }\n\n const db = await getTransaction(this, req)\n\n const result = await upsertRow<TypeWithVersion<T>>({\n adapter: this,\n collectionSlug,\n data,\n db,\n fields: buildVersionCollectionFields(this.payload.config, collection, true),\n ignoreResult: returning === false ? 'idOnly' : undefined,\n operation: 'create',\n req,\n select,\n tableName,\n })\n\n const table = this.tables[tableName]\n\n if (hasDraftsEnabled(collection)) {\n await this.execute({\n db,\n sql: sql`\n UPDATE ${table}\n SET latest = false\n WHERE ${table.id} != ${result.id}\n AND ${table.parent} = ${parent}\n AND ${table.updatedAt} < ${result.updatedAt || updatedAt}\n `,\n })\n }\n\n if (returning === false) {\n return null\n }\n\n return result\n}\n"],"names":["sql","buildVersionCollectionFields","hasDraftsEnabled","toSnakeCase","upsertRow","getTransaction","createVersion","autosave","collectionSlug","createdAt","parent","publishedLocale","req","returning","select","snapshot","updatedAt","versionData","collection","payload","collections","config","versions","drafts","defaultTableName","slug","tableName","tableNameMap","get","versionsSuffix","version","id","data","latest","db","result","adapter","fields","ignoreResult","undefined","operation","table","tables","execute"],"mappings":"AAEA,SAASA,GAAG,QAAQ,cAAa;AACjC,SAASC,4BAA4B,QAAQ,UAAS;AACtD,SAASC,gBAAgB,QAAQ,iBAAgB;AACjD,OAAOC,iBAAiB,gBAAe;AAIvC,SAASC,SAAS,QAAQ,uBAAsB;AAChD,SAASC,cAAc,QAAQ,gCAA+B;AAE9D,OAAO,eAAeC,cAEpB,EACEC,QAAQ,EACRC,cAAc,EACdC,SAAS,EACTC,MAAM,EACNC,eAAe,EACfC,GAAG,EACHC,SAAS,EACTC,MAAM,EACNC,QAAQ,EACRC,SAAS,EACTC,WAAW,EACU;IAEvB,MAAMC,aAAa,IAAI,CAACC,OAAO,CAACC,WAAW,CAACZ,eAAe,CAACa,MAAM;IAClE,IAAIH,WAAWI,QAAQ,CAACC,MAAM,EAAE;QAC9B,IAAI,OAAOT,WAAW,UAAU;YAC9BA,OAAOE,SAAS,GAAG;QACrB;IACF;IAEA,MAAMQ,mBAAmBrB,YAAYe,WAAWO,IAAI;IACpD,MAAMC,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAAC,CAAC,CAAC,EAAEJ,mBAAmB,IAAI,CAACK,cAAc,EAAE;IAEpF,MAAMC,UAAU;QAAE,GAAGb,WAAW;IAAC;IACjC,IAAIa,QAAQC,EAAE,EAAE;QACd,OAAOD,QAAQC,EAAE;IACnB;IAEA,MAAMC,OAAgC;QACpCzB;QACAE;QACAwB,QAAQ;QACRvB;QACAC;QACAI;QACAC;QACAc;IACF;IAEA,MAAMI,KAAK,MAAM7B,eAAe,IAAI,EAAEO;IAEtC,MAAMuB,SAAS,MAAM/B,UAA8B;QACjDgC,SAAS,IAAI;QACb5B;QACAwB;QACAE;QACAG,QAAQpC,6BAA6B,IAAI,CAACkB,OAAO,CAACE,MAAM,EAAEH,YAAY;QACtEoB,cAAczB,cAAc,QAAQ,WAAW0B;QAC/CC,WAAW;QACX5B;QACAE;QACAY;IACF;IAEA,MAAMe,QAAQ,IAAI,CAACC,MAAM,CAAChB,UAAU;IAEpC,IAAIxB,iBAAiBgB,aAAa;QAChC,MAAM,IAAI,CAACyB,OAAO,CAAC;YACjBT;YACAlC,KAAKA,GAAG,CAAC;eACA,EAAEyC,MAAM;;cAET,EAAEA,MAAMV,EAAE,CAAC,IAAI,EAAEI,OAAOJ,EAAE,CAAC;cAC3B,EAAEU,MAAM/B,MAAM,CAAC,GAAG,EAAEA,OAAO;cAC3B,EAAE+B,MAAMzB,SAAS,CAAC,GAAG,EAAEmB,OAAOnB,SAAS,IAAIA,UAAU;MAC7D,CAAC;QACH;IACF;IAEA,IAAIH,cAAc,OAAO;QACvB,OAAO;IACT;IAEA,OAAOsB;AACT"}
1
+ {"version":3,"sources":["../src/createVersion.ts"],"sourcesContent":["import type { CreateVersionArgs, JsonObject, TypeWithVersion } from 'payload'\n\nimport { sql } from 'drizzle-orm'\nimport { buildVersionCollectionFields } from 'payload'\nimport { hasDraftsEnabled } from 'payload/shared'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { upsertRow } from './upsertRow/index.js'\nimport { getPrimaryDb } from './utilities/getPrimaryDb.js'\nimport { getTransaction } from './utilities/getTransaction.js'\n\nexport async function createVersion<T extends JsonObject = JsonObject>(\n this: DrizzleAdapter,\n {\n autosave,\n collectionSlug,\n createdAt,\n parent,\n publishedLocale,\n req,\n returning,\n select,\n snapshot,\n updatedAt,\n versionData,\n }: CreateVersionArgs<T>,\n): Promise<TypeWithVersion<T>> {\n const collection = this.payload.collections[collectionSlug].config\n if (collection.versions.drafts) {\n if (typeof select === 'object') {\n select.updatedAt = true\n }\n }\n\n const defaultTableName = toSnakeCase(collection.slug)\n const tableName = this.tableNameMap.get(`_${defaultTableName}${this.versionsSuffix}`)\n\n const version = { ...versionData }\n if (version.id) {\n delete version.id\n }\n\n const data: Record<string, unknown> = {\n autosave,\n createdAt,\n latest: true,\n parent,\n publishedLocale,\n snapshot,\n updatedAt,\n version,\n }\n\n const db = getPrimaryDb(this, await getTransaction(this, req))\n\n const result = await upsertRow<TypeWithVersion<T>>({\n adapter: this,\n collectionSlug,\n data,\n db,\n fields: buildVersionCollectionFields(this.payload.config, collection, true),\n ignoreResult: returning === false ? 'idOnly' : undefined,\n operation: 'create',\n req,\n select,\n tableName,\n })\n\n const table = this.tables[tableName]\n\n if (hasDraftsEnabled(collection)) {\n await this.execute({\n db,\n sql: sql`\n UPDATE ${table}\n SET latest = false\n WHERE ${table.id} != ${result.id}\n AND ${table.parent} = ${parent}\n AND ${table.updatedAt} < ${result.updatedAt || updatedAt}\n `,\n })\n }\n\n if (returning === false) {\n return null\n }\n\n return result\n}\n"],"names":["sql","buildVersionCollectionFields","hasDraftsEnabled","toSnakeCase","upsertRow","getPrimaryDb","getTransaction","createVersion","autosave","collectionSlug","createdAt","parent","publishedLocale","req","returning","select","snapshot","updatedAt","versionData","collection","payload","collections","config","versions","drafts","defaultTableName","slug","tableName","tableNameMap","get","versionsSuffix","version","id","data","latest","db","result","adapter","fields","ignoreResult","undefined","operation","table","tables","execute"],"mappings":"AAEA,SAASA,GAAG,QAAQ,cAAa;AACjC,SAASC,4BAA4B,QAAQ,UAAS;AACtD,SAASC,gBAAgB,QAAQ,iBAAgB;AACjD,OAAOC,iBAAiB,gBAAe;AAIvC,SAASC,SAAS,QAAQ,uBAAsB;AAChD,SAASC,YAAY,QAAQ,8BAA6B;AAC1D,SAASC,cAAc,QAAQ,gCAA+B;AAE9D,OAAO,eAAeC,cAEpB,EACEC,QAAQ,EACRC,cAAc,EACdC,SAAS,EACTC,MAAM,EACNC,eAAe,EACfC,GAAG,EACHC,SAAS,EACTC,MAAM,EACNC,QAAQ,EACRC,SAAS,EACTC,WAAW,EACU;IAEvB,MAAMC,aAAa,IAAI,CAACC,OAAO,CAACC,WAAW,CAACZ,eAAe,CAACa,MAAM;IAClE,IAAIH,WAAWI,QAAQ,CAACC,MAAM,EAAE;QAC9B,IAAI,OAAOT,WAAW,UAAU;YAC9BA,OAAOE,SAAS,GAAG;QACrB;IACF;IAEA,MAAMQ,mBAAmBtB,YAAYgB,WAAWO,IAAI;IACpD,MAAMC,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAAC,CAAC,CAAC,EAAEJ,mBAAmB,IAAI,CAACK,cAAc,EAAE;IAEpF,MAAMC,UAAU;QAAE,GAAGb,WAAW;IAAC;IACjC,IAAIa,QAAQC,EAAE,EAAE;QACd,OAAOD,QAAQC,EAAE;IACnB;IAEA,MAAMC,OAAgC;QACpCzB;QACAE;QACAwB,QAAQ;QACRvB;QACAC;QACAI;QACAC;QACAc;IACF;IAEA,MAAMI,KAAK9B,aAAa,IAAI,EAAE,MAAMC,eAAe,IAAI,EAAEO;IAEzD,MAAMuB,SAAS,MAAMhC,UAA8B;QACjDiC,SAAS,IAAI;QACb5B;QACAwB;QACAE;QACAG,QAAQrC,6BAA6B,IAAI,CAACmB,OAAO,CAACE,MAAM,EAAEH,YAAY;QACtEoB,cAAczB,cAAc,QAAQ,WAAW0B;QAC/CC,WAAW;QACX5B;QACAE;QACAY;IACF;IAEA,MAAMe,QAAQ,IAAI,CAACC,MAAM,CAAChB,UAAU;IAEpC,IAAIzB,iBAAiBiB,aAAa;QAChC,MAAM,IAAI,CAACyB,OAAO,CAAC;YACjBT;YACAnC,KAAKA,GAAG,CAAC;eACA,EAAE0C,MAAM;;cAET,EAAEA,MAAMV,EAAE,CAAC,IAAI,EAAEI,OAAOJ,EAAE,CAAC;cAC3B,EAAEU,MAAM/B,MAAM,CAAC,GAAG,EAAEA,OAAO;cAC3B,EAAE+B,MAAMzB,SAAS,CAAC,GAAG,EAAEmB,OAAOnB,SAAS,IAAIA,UAAU;MAC7D,CAAC;QACH;IACF;IAEA,IAAIH,cAAc,OAAO;QACvB,OAAO;IACT;IAEA,OAAOsB;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"deleteMany.d.ts","sourceRoot":"","sources":["../src/deleteMany.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAYzC,eAAO,MAAM,UAAU,EAAE,UAsDxB,CAAA"}
1
+ {"version":3,"file":"deleteMany.d.ts","sourceRoot":"","sources":["../src/deleteMany.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAYzC,eAAO,MAAM,UAAU,EAAE,UAyDxB,CAAA"}
@@ -36,6 +36,9 @@ export const deleteMany = async function deleteMany({ collection, req, where: wh
36
36
  });
37
37
  whereToUse = inArray(table.id, result.docs.map((doc)=>doc.id));
38
38
  }
39
+ // No getPrimaryDb needed: db is only used for deleteWhere (a write, always routed to primary
40
+ // by drizzle's withReplicas). findMany resolves its own db via getTransaction, which returns
41
+ // the transaction db (always primary) or falls back to shouldReadFromPrimary.
39
42
  const db = await getTransaction(this, req);
40
43
  await this.deleteWhere({
41
44
  db,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/deleteMany.ts"],"sourcesContent":["import type { DeleteMany } from 'payload'\n\nimport { inArray } from 'drizzle-orm'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { findMany } from './find/findMany.js'\nimport { buildQuery } from './queries/buildQuery.js'\nimport { getTransaction } from './utilities/getTransaction.js'\nimport { markWrite } from './utilities/readAfterWrite.js'\n\nexport const deleteMany: DeleteMany = async function deleteMany(\n this: DrizzleAdapter,\n { collection, req, where: whereArg },\n) {\n const collectionConfig = this.payload.collections[collection].config\n\n const tableName = this.tableNameMap.get(toSnakeCase(collectionConfig.slug))\n\n const table = this.tables[tableName]\n\n const { joins, where } = buildQuery({\n adapter: this,\n fields: collectionConfig.flattenedFields,\n locale: req?.locale,\n tableName,\n where: whereArg,\n })\n\n let whereToUse = where\n\n if (joins?.length) {\n // Difficult to support joins (through where referencing other tables) in deleteMany. => 2 separate queries.\n // We can look into supporting this using one single query (through a subquery) in the future, though that's difficult to do in a generic way.\n const result = await findMany({\n adapter: this,\n fields: collectionConfig.flattenedFields,\n joins: false,\n limit: 0,\n locale: req?.locale,\n page: 1,\n pagination: false,\n req,\n select: {\n id: true,\n },\n tableName,\n where: whereArg,\n })\n\n whereToUse = inArray(\n table.id,\n result.docs.map((doc) => doc.id),\n )\n }\n\n const db = await getTransaction(this, req)\n\n await this.deleteWhere({\n db,\n tableName,\n where: whereToUse,\n })\n\n markWrite(this)\n}\n"],"names":["inArray","toSnakeCase","findMany","buildQuery","getTransaction","markWrite","deleteMany","collection","req","where","whereArg","collectionConfig","payload","collections","config","tableName","tableNameMap","get","slug","table","tables","joins","adapter","fields","flattenedFields","locale","whereToUse","length","result","limit","page","pagination","select","id","docs","map","doc","db","deleteWhere"],"mappings":"AAEA,SAASA,OAAO,QAAQ,cAAa;AACrC,OAAOC,iBAAiB,gBAAe;AAIvC,SAASC,QAAQ,QAAQ,qBAAoB;AAC7C,SAASC,UAAU,QAAQ,0BAAyB;AACpD,SAASC,cAAc,QAAQ,gCAA+B;AAC9D,SAASC,SAAS,QAAQ,gCAA+B;AAEzD,OAAO,MAAMC,aAAyB,eAAeA,WAEnD,EAAEC,UAAU,EAAEC,GAAG,EAAEC,OAAOC,QAAQ,EAAE;IAEpC,MAAMC,mBAAmB,IAAI,CAACC,OAAO,CAACC,WAAW,CAACN,WAAW,CAACO,MAAM;IAEpE,MAAMC,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAAChB,YAAYU,iBAAiBO,IAAI;IAEzE,MAAMC,QAAQ,IAAI,CAACC,MAAM,CAACL,UAAU;IAEpC,MAAM,EAAEM,KAAK,EAAEZ,KAAK,EAAE,GAAGN,WAAW;QAClCmB,SAAS,IAAI;QACbC,QAAQZ,iBAAiBa,eAAe;QACxCC,QAAQjB,KAAKiB;QACbV;QACAN,OAAOC;IACT;IAEA,IAAIgB,aAAajB;IAEjB,IAAIY,OAAOM,QAAQ;QACjB,4GAA4G;QAC5G,8IAA8I;QAC9I,MAAMC,SAAS,MAAM1B,SAAS;YAC5BoB,SAAS,IAAI;YACbC,QAAQZ,iBAAiBa,eAAe;YACxCH,OAAO;YACPQ,OAAO;YACPJ,QAAQjB,KAAKiB;YACbK,MAAM;YACNC,YAAY;YACZvB;YACAwB,QAAQ;gBACNC,IAAI;YACN;YACAlB;YACAN,OAAOC;QACT;QAEAgB,aAAa1B,QACXmB,MAAMc,EAAE,EACRL,OAAOM,IAAI,CAACC,GAAG,CAAC,CAACC,MAAQA,IAAIH,EAAE;IAEnC;IAEA,MAAMI,KAAK,MAAMjC,eAAe,IAAI,EAAEI;IAEtC,MAAM,IAAI,CAAC8B,WAAW,CAAC;QACrBD;QACAtB;QACAN,OAAOiB;IACT;IAEArB,UAAU,IAAI;AAChB,EAAC"}
1
+ {"version":3,"sources":["../src/deleteMany.ts"],"sourcesContent":["import type { DeleteMany } from 'payload'\n\nimport { inArray } from 'drizzle-orm'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { findMany } from './find/findMany.js'\nimport { buildQuery } from './queries/buildQuery.js'\nimport { getTransaction } from './utilities/getTransaction.js'\nimport { markWrite } from './utilities/readAfterWrite.js'\n\nexport const deleteMany: DeleteMany = async function deleteMany(\n this: DrizzleAdapter,\n { collection, req, where: whereArg },\n) {\n const collectionConfig = this.payload.collections[collection].config\n\n const tableName = this.tableNameMap.get(toSnakeCase(collectionConfig.slug))\n\n const table = this.tables[tableName]\n\n const { joins, where } = buildQuery({\n adapter: this,\n fields: collectionConfig.flattenedFields,\n locale: req?.locale,\n tableName,\n where: whereArg,\n })\n\n let whereToUse = where\n\n if (joins?.length) {\n // Difficult to support joins (through where referencing other tables) in deleteMany. => 2 separate queries.\n // We can look into supporting this using one single query (through a subquery) in the future, though that's difficult to do in a generic way.\n const result = await findMany({\n adapter: this,\n fields: collectionConfig.flattenedFields,\n joins: false,\n limit: 0,\n locale: req?.locale,\n page: 1,\n pagination: false,\n req,\n select: {\n id: true,\n },\n tableName,\n where: whereArg,\n })\n\n whereToUse = inArray(\n table.id,\n result.docs.map((doc) => doc.id),\n )\n }\n\n // No getPrimaryDb needed: db is only used for deleteWhere (a write, always routed to primary\n // by drizzle's withReplicas). findMany resolves its own db via getTransaction, which returns\n // the transaction db (always primary) or falls back to shouldReadFromPrimary.\n const db = await getTransaction(this, req)\n\n await this.deleteWhere({\n db,\n tableName,\n where: whereToUse,\n })\n\n markWrite(this)\n}\n"],"names":["inArray","toSnakeCase","findMany","buildQuery","getTransaction","markWrite","deleteMany","collection","req","where","whereArg","collectionConfig","payload","collections","config","tableName","tableNameMap","get","slug","table","tables","joins","adapter","fields","flattenedFields","locale","whereToUse","length","result","limit","page","pagination","select","id","docs","map","doc","db","deleteWhere"],"mappings":"AAEA,SAASA,OAAO,QAAQ,cAAa;AACrC,OAAOC,iBAAiB,gBAAe;AAIvC,SAASC,QAAQ,QAAQ,qBAAoB;AAC7C,SAASC,UAAU,QAAQ,0BAAyB;AACpD,SAASC,cAAc,QAAQ,gCAA+B;AAC9D,SAASC,SAAS,QAAQ,gCAA+B;AAEzD,OAAO,MAAMC,aAAyB,eAAeA,WAEnD,EAAEC,UAAU,EAAEC,GAAG,EAAEC,OAAOC,QAAQ,EAAE;IAEpC,MAAMC,mBAAmB,IAAI,CAACC,OAAO,CAACC,WAAW,CAACN,WAAW,CAACO,MAAM;IAEpE,MAAMC,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAAChB,YAAYU,iBAAiBO,IAAI;IAEzE,MAAMC,QAAQ,IAAI,CAACC,MAAM,CAACL,UAAU;IAEpC,MAAM,EAAEM,KAAK,EAAEZ,KAAK,EAAE,GAAGN,WAAW;QAClCmB,SAAS,IAAI;QACbC,QAAQZ,iBAAiBa,eAAe;QACxCC,QAAQjB,KAAKiB;QACbV;QACAN,OAAOC;IACT;IAEA,IAAIgB,aAAajB;IAEjB,IAAIY,OAAOM,QAAQ;QACjB,4GAA4G;QAC5G,8IAA8I;QAC9I,MAAMC,SAAS,MAAM1B,SAAS;YAC5BoB,SAAS,IAAI;YACbC,QAAQZ,iBAAiBa,eAAe;YACxCH,OAAO;YACPQ,OAAO;YACPJ,QAAQjB,KAAKiB;YACbK,MAAM;YACNC,YAAY;YACZvB;YACAwB,QAAQ;gBACNC,IAAI;YACN;YACAlB;YACAN,OAAOC;QACT;QAEAgB,aAAa1B,QACXmB,MAAMc,EAAE,EACRL,OAAOM,IAAI,CAACC,GAAG,CAAC,CAACC,MAAQA,IAAIH,EAAE;IAEnC;IAEA,6FAA6F;IAC7F,6FAA6F;IAC7F,8EAA8E;IAC9E,MAAMI,KAAK,MAAMjC,eAAe,IAAI,EAAEI;IAEtC,MAAM,IAAI,CAAC8B,WAAW,CAAC;QACrBD;QACAtB;QACAN,OAAOiB;IACT;IAEArB,UAAU,IAAI;AAChB,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"deleteOne.d.ts","sourceRoot":"","sources":["../src/deleteOne.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAcxC,eAAO,MAAM,SAAS,EAAE,SA0EvB,CAAA"}
1
+ {"version":3,"file":"deleteOne.d.ts","sourceRoot":"","sources":["../src/deleteOne.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAexC,eAAO,MAAM,SAAS,EAAE,SA0EvB,CAAA"}
package/dist/deleteOne.js CHANGED
@@ -4,6 +4,7 @@ import { buildFindManyArgs } from './find/buildFindManyArgs.js';
4
4
  import { buildQuery } from './queries/buildQuery.js';
5
5
  import { selectDistinct } from './queries/selectDistinct.js';
6
6
  import { transform } from './transform/read/index.js';
7
+ import { getPrimaryDb } from './utilities/getPrimaryDb.js';
7
8
  import { getTransaction } from './utilities/getTransaction.js';
8
9
  import { markWrite } from './utilities/readAfterWrite.js';
9
10
  export const deleteOne = async function deleteOne({ collection: collectionSlug, req, returning, select, where: whereArg }) {
@@ -17,7 +18,7 @@ export const deleteOne = async function deleteOne({ collection: collectionSlug,
17
18
  tableName,
18
19
  where: whereArg
19
20
  });
20
- const db = await getTransaction(this, req);
21
+ const db = getPrimaryDb(this, await getTransaction(this, req));
21
22
  const selectDistinctResult = await selectDistinct({
22
23
  adapter: this,
23
24
  db,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/deleteOne.ts"],"sourcesContent":["import type { DeleteOne } from 'payload'\n\nimport { eq } from 'drizzle-orm'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { buildFindManyArgs } from './find/buildFindManyArgs.js'\nimport { buildQuery } from './queries/buildQuery.js'\nimport { selectDistinct } from './queries/selectDistinct.js'\nimport { transform } from './transform/read/index.js'\nimport { getTransaction } from './utilities/getTransaction.js'\nimport { markWrite } from './utilities/readAfterWrite.js'\n\nexport const deleteOne: DeleteOne = async function deleteOne(\n this: DrizzleAdapter,\n { collection: collectionSlug, req, returning, select, where: whereArg },\n) {\n const collection = this.payload.collections[collectionSlug].config\n\n const tableName = this.tableNameMap.get(toSnakeCase(collection.slug))\n\n let docToDelete: Record<string, unknown>\n\n const { joins, selectFields, where } = buildQuery({\n adapter: this,\n fields: collection.flattenedFields,\n locale: req?.locale,\n tableName,\n where: whereArg,\n })\n\n const db = await getTransaction(this, req)\n\n const selectDistinctResult = await selectDistinct({\n adapter: this,\n db,\n joins,\n query: ({ query }) => query.limit(1),\n selectFields,\n tableName,\n where,\n })\n\n if (selectDistinctResult?.[0]?.id) {\n docToDelete = await db.query[tableName].findFirst({\n where: eq(this.tables[tableName].id, selectDistinctResult[0].id),\n })\n } else {\n const findManyArgs = buildFindManyArgs({\n adapter: this,\n depth: 0,\n fields: collection.flattenedFields,\n joinQuery: false,\n select,\n tableName,\n })\n\n findManyArgs.where = where\n\n docToDelete = await db.query[tableName].findFirst(findManyArgs)\n }\n\n if (!docToDelete) {\n return null\n }\n\n const result =\n returning === false\n ? null\n : transform({\n adapter: this,\n config: this.payload.config,\n data: docToDelete,\n fields: collection.flattenedFields,\n joinQuery: false,\n tableName,\n })\n\n await this.deleteWhere({\n db,\n tableName,\n where: eq(this.tables[tableName].id, docToDelete.id),\n })\n\n markWrite(this)\n\n return result\n}\n"],"names":["eq","toSnakeCase","buildFindManyArgs","buildQuery","selectDistinct","transform","getTransaction","markWrite","deleteOne","collection","collectionSlug","req","returning","select","where","whereArg","payload","collections","config","tableName","tableNameMap","get","slug","docToDelete","joins","selectFields","adapter","fields","flattenedFields","locale","db","selectDistinctResult","query","limit","id","findFirst","tables","findManyArgs","depth","joinQuery","result","data","deleteWhere"],"mappings":"AAEA,SAASA,EAAE,QAAQ,cAAa;AAChC,OAAOC,iBAAiB,gBAAe;AAIvC,SAASC,iBAAiB,QAAQ,8BAA6B;AAC/D,SAASC,UAAU,QAAQ,0BAAyB;AACpD,SAASC,cAAc,QAAQ,8BAA6B;AAC5D,SAASC,SAAS,QAAQ,4BAA2B;AACrD,SAASC,cAAc,QAAQ,gCAA+B;AAC9D,SAASC,SAAS,QAAQ,gCAA+B;AAEzD,OAAO,MAAMC,YAAuB,eAAeA,UAEjD,EAAEC,YAAYC,cAAc,EAAEC,GAAG,EAAEC,SAAS,EAAEC,MAAM,EAAEC,OAAOC,QAAQ,EAAE;IAEvE,MAAMN,aAAa,IAAI,CAACO,OAAO,CAACC,WAAW,CAACP,eAAe,CAACQ,MAAM;IAElE,MAAMC,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAACpB,YAAYQ,WAAWa,IAAI;IAEnE,IAAIC;IAEJ,MAAM,EAAEC,KAAK,EAAEC,YAAY,EAAEX,KAAK,EAAE,GAAGX,WAAW;QAChDuB,SAAS,IAAI;QACbC,QAAQlB,WAAWmB,eAAe;QAClCC,QAAQlB,KAAKkB;QACbV;QACAL,OAAOC;IACT;IAEA,MAAMe,KAAK,MAAMxB,eAAe,IAAI,EAAEK;IAEtC,MAAMoB,uBAAuB,MAAM3B,eAAe;QAChDsB,SAAS,IAAI;QACbI;QACAN;QACAQ,OAAO,CAAC,EAAEA,KAAK,EAAE,GAAKA,MAAMC,KAAK,CAAC;QAClCR;QACAN;QACAL;IACF;IAEA,IAAIiB,sBAAsB,CAAC,EAAE,EAAEG,IAAI;QACjCX,cAAc,MAAMO,GAAGE,KAAK,CAACb,UAAU,CAACgB,SAAS,CAAC;YAChDrB,OAAOd,GAAG,IAAI,CAACoC,MAAM,CAACjB,UAAU,CAACe,EAAE,EAAEH,oBAAoB,CAAC,EAAE,CAACG,EAAE;QACjE;IACF,OAAO;QACL,MAAMG,eAAenC,kBAAkB;YACrCwB,SAAS,IAAI;YACbY,OAAO;YACPX,QAAQlB,WAAWmB,eAAe;YAClCW,WAAW;YACX1B;YACAM;QACF;QAEAkB,aAAavB,KAAK,GAAGA;QAErBS,cAAc,MAAMO,GAAGE,KAAK,CAACb,UAAU,CAACgB,SAAS,CAACE;IACpD;IAEA,IAAI,CAACd,aAAa;QAChB,OAAO;IACT;IAEA,MAAMiB,SACJ5B,cAAc,QACV,OACAP,UAAU;QACRqB,SAAS,IAAI;QACbR,QAAQ,IAAI,CAACF,OAAO,CAACE,MAAM;QAC3BuB,MAAMlB;QACNI,QAAQlB,WAAWmB,eAAe;QAClCW,WAAW;QACXpB;IACF;IAEN,MAAM,IAAI,CAACuB,WAAW,CAAC;QACrBZ;QACAX;QACAL,OAAOd,GAAG,IAAI,CAACoC,MAAM,CAACjB,UAAU,CAACe,EAAE,EAAEX,YAAYW,EAAE;IACrD;IAEA3B,UAAU,IAAI;IAEd,OAAOiC;AACT,EAAC"}
1
+ {"version":3,"sources":["../src/deleteOne.ts"],"sourcesContent":["import type { DeleteOne } from 'payload'\n\nimport { eq } from 'drizzle-orm'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { buildFindManyArgs } from './find/buildFindManyArgs.js'\nimport { buildQuery } from './queries/buildQuery.js'\nimport { selectDistinct } from './queries/selectDistinct.js'\nimport { transform } from './transform/read/index.js'\nimport { getPrimaryDb } from './utilities/getPrimaryDb.js'\nimport { getTransaction } from './utilities/getTransaction.js'\nimport { markWrite } from './utilities/readAfterWrite.js'\n\nexport const deleteOne: DeleteOne = async function deleteOne(\n this: DrizzleAdapter,\n { collection: collectionSlug, req, returning, select, where: whereArg },\n) {\n const collection = this.payload.collections[collectionSlug].config\n\n const tableName = this.tableNameMap.get(toSnakeCase(collection.slug))\n\n let docToDelete: Record<string, unknown>\n\n const { joins, selectFields, where } = buildQuery({\n adapter: this,\n fields: collection.flattenedFields,\n locale: req?.locale,\n tableName,\n where: whereArg,\n })\n\n const db = getPrimaryDb(this, await getTransaction(this, req))\n\n const selectDistinctResult = await selectDistinct({\n adapter: this,\n db,\n joins,\n query: ({ query }) => query.limit(1),\n selectFields,\n tableName,\n where,\n })\n\n if (selectDistinctResult?.[0]?.id) {\n docToDelete = await db.query[tableName].findFirst({\n where: eq(this.tables[tableName].id, selectDistinctResult[0].id),\n })\n } else {\n const findManyArgs = buildFindManyArgs({\n adapter: this,\n depth: 0,\n fields: collection.flattenedFields,\n joinQuery: false,\n select,\n tableName,\n })\n\n findManyArgs.where = where\n\n docToDelete = await db.query[tableName].findFirst(findManyArgs)\n }\n\n if (!docToDelete) {\n return null\n }\n\n const result =\n returning === false\n ? null\n : transform({\n adapter: this,\n config: this.payload.config,\n data: docToDelete,\n fields: collection.flattenedFields,\n joinQuery: false,\n tableName,\n })\n\n await this.deleteWhere({\n db,\n tableName,\n where: eq(this.tables[tableName].id, docToDelete.id),\n })\n\n markWrite(this)\n\n return result\n}\n"],"names":["eq","toSnakeCase","buildFindManyArgs","buildQuery","selectDistinct","transform","getPrimaryDb","getTransaction","markWrite","deleteOne","collection","collectionSlug","req","returning","select","where","whereArg","payload","collections","config","tableName","tableNameMap","get","slug","docToDelete","joins","selectFields","adapter","fields","flattenedFields","locale","db","selectDistinctResult","query","limit","id","findFirst","tables","findManyArgs","depth","joinQuery","result","data","deleteWhere"],"mappings":"AAEA,SAASA,EAAE,QAAQ,cAAa;AAChC,OAAOC,iBAAiB,gBAAe;AAIvC,SAASC,iBAAiB,QAAQ,8BAA6B;AAC/D,SAASC,UAAU,QAAQ,0BAAyB;AACpD,SAASC,cAAc,QAAQ,8BAA6B;AAC5D,SAASC,SAAS,QAAQ,4BAA2B;AACrD,SAASC,YAAY,QAAQ,8BAA6B;AAC1D,SAASC,cAAc,QAAQ,gCAA+B;AAC9D,SAASC,SAAS,QAAQ,gCAA+B;AAEzD,OAAO,MAAMC,YAAuB,eAAeA,UAEjD,EAAEC,YAAYC,cAAc,EAAEC,GAAG,EAAEC,SAAS,EAAEC,MAAM,EAAEC,OAAOC,QAAQ,EAAE;IAEvE,MAAMN,aAAa,IAAI,CAACO,OAAO,CAACC,WAAW,CAACP,eAAe,CAACQ,MAAM;IAElE,MAAMC,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAACrB,YAAYS,WAAWa,IAAI;IAEnE,IAAIC;IAEJ,MAAM,EAAEC,KAAK,EAAEC,YAAY,EAAEX,KAAK,EAAE,GAAGZ,WAAW;QAChDwB,SAAS,IAAI;QACbC,QAAQlB,WAAWmB,eAAe;QAClCC,QAAQlB,KAAKkB;QACbV;QACAL,OAAOC;IACT;IAEA,MAAMe,KAAKzB,aAAa,IAAI,EAAE,MAAMC,eAAe,IAAI,EAAEK;IAEzD,MAAMoB,uBAAuB,MAAM5B,eAAe;QAChDuB,SAAS,IAAI;QACbI;QACAN;QACAQ,OAAO,CAAC,EAAEA,KAAK,EAAE,GAAKA,MAAMC,KAAK,CAAC;QAClCR;QACAN;QACAL;IACF;IAEA,IAAIiB,sBAAsB,CAAC,EAAE,EAAEG,IAAI;QACjCX,cAAc,MAAMO,GAAGE,KAAK,CAACb,UAAU,CAACgB,SAAS,CAAC;YAChDrB,OAAOf,GAAG,IAAI,CAACqC,MAAM,CAACjB,UAAU,CAACe,EAAE,EAAEH,oBAAoB,CAAC,EAAE,CAACG,EAAE;QACjE;IACF,OAAO;QACL,MAAMG,eAAepC,kBAAkB;YACrCyB,SAAS,IAAI;YACbY,OAAO;YACPX,QAAQlB,WAAWmB,eAAe;YAClCW,WAAW;YACX1B;YACAM;QACF;QAEAkB,aAAavB,KAAK,GAAGA;QAErBS,cAAc,MAAMO,GAAGE,KAAK,CAACb,UAAU,CAACgB,SAAS,CAACE;IACpD;IAEA,IAAI,CAACd,aAAa;QAChB,OAAO;IACT;IAEA,MAAMiB,SACJ5B,cAAc,QACV,OACAR,UAAU;QACRsB,SAAS,IAAI;QACbR,QAAQ,IAAI,CAACF,OAAO,CAACE,MAAM;QAC3BuB,MAAMlB;QACNI,QAAQlB,WAAWmB,eAAe;QAClCW,WAAW;QACXpB;IACF;IAEN,MAAM,IAAI,CAACuB,WAAW,CAAC;QACrBZ;QACAX;QACAL,OAAOf,GAAG,IAAI,CAACqC,MAAM,CAACjB,UAAU,CAACe,EAAE,EAAEX,YAAYW,EAAE;IACrD;IAEA3B,UAAU,IAAI;IAEd,OAAOiC;AACT,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"deleteVersions.d.ts","sourceRoot":"","sources":["../src/deleteVersions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAA6C,MAAM,SAAS,CAAA;AAYxF,eAAO,MAAM,cAAc,EAAE,cAsD5B,CAAA"}
1
+ {"version":3,"file":"deleteVersions.d.ts","sourceRoot":"","sources":["../src/deleteVersions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAA6C,MAAM,SAAS,CAAA;AAYxF,eAAO,MAAM,cAAc,EAAE,cAyD5B,CAAA"}
@@ -35,6 +35,9 @@ export const deleteVersions = async function deleteVersion({ collection: collect
35
35
  ids.push(doc.id);
36
36
  });
37
37
  if (ids.length > 0) {
38
+ // No getPrimaryDb needed: db is only used for deleteWhere (a write, always routed to primary
39
+ // by drizzle's withReplicas). findMany resolves its own db via getTransaction, which returns
40
+ // the transaction db (always primary) or falls back to shouldReadFromPrimary.
38
41
  const db = await getTransaction(this, req);
39
42
  await this.deleteWhere({
40
43
  db,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/deleteVersions.ts"],"sourcesContent":["import type { DeleteVersions, FlattenedField, SanitizedCollectionConfig } from 'payload'\n\nimport { inArray } from 'drizzle-orm'\nimport { APIError, buildVersionCollectionFields, buildVersionGlobalFields } from 'payload'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { findMany } from './find/findMany.js'\nimport { getTransaction } from './utilities/getTransaction.js'\nimport { markWrite } from './utilities/readAfterWrite.js'\n\nexport const deleteVersions: DeleteVersions = async function deleteVersion(\n this: DrizzleAdapter,\n { collection: collectionSlug, globalSlug, locale, req, where: where },\n) {\n let tableName: string\n let fields: FlattenedField[]\n\n if (globalSlug) {\n const globalConfig = this.payload.globals.config.find(({ slug }) => slug === globalSlug)\n tableName = this.tableNameMap.get(`_${toSnakeCase(globalSlug)}${this.versionsSuffix}`)\n fields = buildVersionGlobalFields(this.payload.config, globalConfig, true)\n } else if (collectionSlug) {\n const collectionConfig: SanitizedCollectionConfig =\n this.payload.collections[collectionSlug].config\n tableName = this.tableNameMap.get(\n `_${toSnakeCase(collectionConfig.slug)}${this.versionsSuffix}`,\n )\n fields = buildVersionCollectionFields(this.payload.config, collectionConfig, true)\n } else {\n throw new APIError('Either collection or globalSlug must be passed.')\n }\n\n const { docs } = await findMany({\n adapter: this,\n fields,\n joins: false,\n limit: 0,\n locale,\n page: 1,\n pagination: false,\n req,\n tableName,\n where,\n })\n\n const ids = []\n\n docs.forEach((doc) => {\n ids.push(doc.id)\n })\n\n if (ids.length > 0) {\n const db = await getTransaction(this, req)\n\n await this.deleteWhere({\n db,\n tableName,\n where: inArray(this.tables[tableName].id, ids),\n })\n\n markWrite(this)\n }\n\n return docs\n}\n"],"names":["inArray","APIError","buildVersionCollectionFields","buildVersionGlobalFields","toSnakeCase","findMany","getTransaction","markWrite","deleteVersions","deleteVersion","collection","collectionSlug","globalSlug","locale","req","where","tableName","fields","globalConfig","payload","globals","config","find","slug","tableNameMap","get","versionsSuffix","collectionConfig","collections","docs","adapter","joins","limit","page","pagination","ids","forEach","doc","push","id","length","db","deleteWhere","tables"],"mappings":"AAEA,SAASA,OAAO,QAAQ,cAAa;AACrC,SAASC,QAAQ,EAAEC,4BAA4B,EAAEC,wBAAwB,QAAQ,UAAS;AAC1F,OAAOC,iBAAiB,gBAAe;AAIvC,SAASC,QAAQ,QAAQ,qBAAoB;AAC7C,SAASC,cAAc,QAAQ,gCAA+B;AAC9D,SAASC,SAAS,QAAQ,gCAA+B;AAEzD,OAAO,MAAMC,iBAAiC,eAAeC,cAE3D,EAAEC,YAAYC,cAAc,EAAEC,UAAU,EAAEC,MAAM,EAAEC,GAAG,EAAEC,OAAOA,KAAK,EAAE;IAErE,IAAIC;IACJ,IAAIC;IAEJ,IAAIL,YAAY;QACd,MAAMM,eAAe,IAAI,CAACC,OAAO,CAACC,OAAO,CAACC,MAAM,CAACC,IAAI,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAKA,SAASX;QAC7EI,YAAY,IAAI,CAACQ,YAAY,CAACC,GAAG,CAAC,CAAC,CAAC,EAAErB,YAAYQ,cAAc,IAAI,CAACc,cAAc,EAAE;QACrFT,SAASd,yBAAyB,IAAI,CAACgB,OAAO,CAACE,MAAM,EAAEH,cAAc;IACvE,OAAO,IAAIP,gBAAgB;QACzB,MAAMgB,mBACJ,IAAI,CAACR,OAAO,CAACS,WAAW,CAACjB,eAAe,CAACU,MAAM;QACjDL,YAAY,IAAI,CAACQ,YAAY,CAACC,GAAG,CAC/B,CAAC,CAAC,EAAErB,YAAYuB,iBAAiBJ,IAAI,IAAI,IAAI,CAACG,cAAc,EAAE;QAEhET,SAASf,6BAA6B,IAAI,CAACiB,OAAO,CAACE,MAAM,EAAEM,kBAAkB;IAC/E,OAAO;QACL,MAAM,IAAI1B,SAAS;IACrB;IAEA,MAAM,EAAE4B,IAAI,EAAE,GAAG,MAAMxB,SAAS;QAC9ByB,SAAS,IAAI;QACbb;QACAc,OAAO;QACPC,OAAO;QACPnB;QACAoB,MAAM;QACNC,YAAY;QACZpB;QACAE;QACAD;IACF;IAEA,MAAMoB,MAAM,EAAE;IAEdN,KAAKO,OAAO,CAAC,CAACC;QACZF,IAAIG,IAAI,CAACD,IAAIE,EAAE;IACjB;IAEA,IAAIJ,IAAIK,MAAM,GAAG,GAAG;QAClB,MAAMC,KAAK,MAAMnC,eAAe,IAAI,EAAEQ;QAEtC,MAAM,IAAI,CAAC4B,WAAW,CAAC;YACrBD;YACAzB;YACAD,OAAOf,QAAQ,IAAI,CAAC2C,MAAM,CAAC3B,UAAU,CAACuB,EAAE,EAAEJ;QAC5C;QAEA5B,UAAU,IAAI;IAChB;IAEA,OAAOsB;AACT,EAAC"}
1
+ {"version":3,"sources":["../src/deleteVersions.ts"],"sourcesContent":["import type { DeleteVersions, FlattenedField, SanitizedCollectionConfig } from 'payload'\n\nimport { inArray } from 'drizzle-orm'\nimport { APIError, buildVersionCollectionFields, buildVersionGlobalFields } from 'payload'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { findMany } from './find/findMany.js'\nimport { getTransaction } from './utilities/getTransaction.js'\nimport { markWrite } from './utilities/readAfterWrite.js'\n\nexport const deleteVersions: DeleteVersions = async function deleteVersion(\n this: DrizzleAdapter,\n { collection: collectionSlug, globalSlug, locale, req, where: where },\n) {\n let tableName: string\n let fields: FlattenedField[]\n\n if (globalSlug) {\n const globalConfig = this.payload.globals.config.find(({ slug }) => slug === globalSlug)\n tableName = this.tableNameMap.get(`_${toSnakeCase(globalSlug)}${this.versionsSuffix}`)\n fields = buildVersionGlobalFields(this.payload.config, globalConfig, true)\n } else if (collectionSlug) {\n const collectionConfig: SanitizedCollectionConfig =\n this.payload.collections[collectionSlug].config\n tableName = this.tableNameMap.get(\n `_${toSnakeCase(collectionConfig.slug)}${this.versionsSuffix}`,\n )\n fields = buildVersionCollectionFields(this.payload.config, collectionConfig, true)\n } else {\n throw new APIError('Either collection or globalSlug must be passed.')\n }\n\n const { docs } = await findMany({\n adapter: this,\n fields,\n joins: false,\n limit: 0,\n locale,\n page: 1,\n pagination: false,\n req,\n tableName,\n where,\n })\n\n const ids = []\n\n docs.forEach((doc) => {\n ids.push(doc.id)\n })\n\n if (ids.length > 0) {\n // No getPrimaryDb needed: db is only used for deleteWhere (a write, always routed to primary\n // by drizzle's withReplicas). findMany resolves its own db via getTransaction, which returns\n // the transaction db (always primary) or falls back to shouldReadFromPrimary.\n const db = await getTransaction(this, req)\n\n await this.deleteWhere({\n db,\n tableName,\n where: inArray(this.tables[tableName].id, ids),\n })\n\n markWrite(this)\n }\n\n return docs\n}\n"],"names":["inArray","APIError","buildVersionCollectionFields","buildVersionGlobalFields","toSnakeCase","findMany","getTransaction","markWrite","deleteVersions","deleteVersion","collection","collectionSlug","globalSlug","locale","req","where","tableName","fields","globalConfig","payload","globals","config","find","slug","tableNameMap","get","versionsSuffix","collectionConfig","collections","docs","adapter","joins","limit","page","pagination","ids","forEach","doc","push","id","length","db","deleteWhere","tables"],"mappings":"AAEA,SAASA,OAAO,QAAQ,cAAa;AACrC,SAASC,QAAQ,EAAEC,4BAA4B,EAAEC,wBAAwB,QAAQ,UAAS;AAC1F,OAAOC,iBAAiB,gBAAe;AAIvC,SAASC,QAAQ,QAAQ,qBAAoB;AAC7C,SAASC,cAAc,QAAQ,gCAA+B;AAC9D,SAASC,SAAS,QAAQ,gCAA+B;AAEzD,OAAO,MAAMC,iBAAiC,eAAeC,cAE3D,EAAEC,YAAYC,cAAc,EAAEC,UAAU,EAAEC,MAAM,EAAEC,GAAG,EAAEC,OAAOA,KAAK,EAAE;IAErE,IAAIC;IACJ,IAAIC;IAEJ,IAAIL,YAAY;QACd,MAAMM,eAAe,IAAI,CAACC,OAAO,CAACC,OAAO,CAACC,MAAM,CAACC,IAAI,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAKA,SAASX;QAC7EI,YAAY,IAAI,CAACQ,YAAY,CAACC,GAAG,CAAC,CAAC,CAAC,EAAErB,YAAYQ,cAAc,IAAI,CAACc,cAAc,EAAE;QACrFT,SAASd,yBAAyB,IAAI,CAACgB,OAAO,CAACE,MAAM,EAAEH,cAAc;IACvE,OAAO,IAAIP,gBAAgB;QACzB,MAAMgB,mBACJ,IAAI,CAACR,OAAO,CAACS,WAAW,CAACjB,eAAe,CAACU,MAAM;QACjDL,YAAY,IAAI,CAACQ,YAAY,CAACC,GAAG,CAC/B,CAAC,CAAC,EAAErB,YAAYuB,iBAAiBJ,IAAI,IAAI,IAAI,CAACG,cAAc,EAAE;QAEhET,SAASf,6BAA6B,IAAI,CAACiB,OAAO,CAACE,MAAM,EAAEM,kBAAkB;IAC/E,OAAO;QACL,MAAM,IAAI1B,SAAS;IACrB;IAEA,MAAM,EAAE4B,IAAI,EAAE,GAAG,MAAMxB,SAAS;QAC9ByB,SAAS,IAAI;QACbb;QACAc,OAAO;QACPC,OAAO;QACPnB;QACAoB,MAAM;QACNC,YAAY;QACZpB;QACAE;QACAD;IACF;IAEA,MAAMoB,MAAM,EAAE;IAEdN,KAAKO,OAAO,CAAC,CAACC;QACZF,IAAIG,IAAI,CAACD,IAAIE,EAAE;IACjB;IAEA,IAAIJ,IAAIK,MAAM,GAAG,GAAG;QAClB,6FAA6F;QAC7F,6FAA6F;QAC7F,8EAA8E;QAC9E,MAAMC,KAAK,MAAMnC,eAAe,IAAI,EAAEQ;QAEtC,MAAM,IAAI,CAAC4B,WAAW,CAAC;YACrBD;YACAzB;YACAD,OAAOf,QAAQ,IAAI,CAAC2C,MAAM,CAAC3B,UAAU,CAACuB,EAAE,EAAEJ;QAC5C;QAEA5B,UAAU,IAAI;IAChB;IAEA,OAAOsB;AACT,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"columnToCodeConverter.d.ts","sourceRoot":"","sources":["../../src/postgres/columnToCodeConverter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACxD,eAAO,MAAM,qBAAqB,EAAE,qBAgHnC,CAAA"}
1
+ {"version":3,"file":"columnToCodeConverter.d.ts","sourceRoot":"","sources":["../../src/postgres/columnToCodeConverter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AACxD,eAAO,MAAM,qBAAqB,EAAE,qBAqHnC,CAAA"}
@@ -53,6 +53,10 @@ export const columnToCodeConverter = ({ adapter, addEnum, addImport, circularEdg
53
53
  if (column.type === 'uuid' && column.defaultRandom) {
54
54
  code = `${code}.defaultRandom()`;
55
55
  }
56
+ if (column.type === 'uuid' && column.defaultV7) {
57
+ addImport('uuid', 'v7 as uuidv7');
58
+ code = `${code}.$defaultFn(() => uuidv7())`;
59
+ }
56
60
  if (column.notNull) {
57
61
  code = `${code}.notNull()`;
58
62
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/postgres/columnToCodeConverter.ts"],"sourcesContent":["import type { ColumnToCodeConverter } from '../types.js'\nexport const columnToCodeConverter: ColumnToCodeConverter = ({\n adapter,\n addEnum,\n addImport,\n circularEdges,\n column,\n tableKey,\n}) => {\n let columnBuilderFn: string = column.type\n\n if (column.type === 'geometry') {\n columnBuilderFn = 'geometryColumn'\n addImport(adapter.packageName, columnBuilderFn)\n } else if (column.type === 'enum') {\n if ('locale' in column) {\n columnBuilderFn = `enum__locales`\n } else {\n addEnum(column.enumName, column.options)\n columnBuilderFn = column.enumName\n }\n } else {\n addImport(`${adapter.packageName}/drizzle/pg-core`, columnBuilderFn)\n }\n\n const columnBuilderArgsArray: string[] = []\n\n switch (column.type) {\n case 'bit':\n case 'halfvec':\n case 'sparsevec':\n case 'vector': {\n if (column.dimensions) {\n columnBuilderArgsArray.push(`dimensions: ${column.dimensions}`)\n }\n break\n }\n case 'numeric': {\n columnBuilderArgsArray.push(\"mode: 'number'\")\n break\n }\n case 'timestamp': {\n columnBuilderArgsArray.push(`mode: '${column.mode}'`)\n if (column.withTimezone) {\n columnBuilderArgsArray.push('withTimezone: true')\n }\n\n if (typeof column.precision === 'number') {\n columnBuilderArgsArray.push(`precision: ${column.precision}`)\n }\n break\n }\n }\n\n let columnBuilderArgs = ''\n\n if (columnBuilderArgsArray.length) {\n columnBuilderArgs = `, {${columnBuilderArgsArray.join(',')}}`\n }\n\n let code = `${columnBuilderFn}('${column.name}'${columnBuilderArgs})`\n\n if (column.type === 'timestamp' && column.defaultNow) {\n code = `${code}.defaultNow()`\n }\n\n if (column.type === 'uuid' && column.defaultRandom) {\n code = `${code}.defaultRandom()`\n }\n\n if (column.notNull) {\n code = `${code}.notNull()`\n }\n\n if (column.primaryKey) {\n code = `${code}.primaryKey()`\n }\n\n if (typeof column.default !== 'undefined') {\n let sanitizedDefault = column.default\n\n if (column.type === 'geometry') {\n sanitizedDefault = `sql\\`${column.default}\\``\n } else if (column.type === 'jsonb') {\n sanitizedDefault = `sql\\`'${JSON.stringify(column.default)}'::jsonb\\``\n } else if (column.type === 'numeric') {\n sanitizedDefault = `${column.default}`\n } else if (typeof column.default === 'string') {\n sanitizedDefault = `${JSON.stringify(column.default)}`\n }\n\n code = `${code}.default(${sanitizedDefault})`\n }\n\n if (column.reference) {\n let callback = `()`\n\n if (\n column.reference.table === tableKey ||\n circularEdges?.has(`${tableKey}:${column.reference.table}`)\n ) {\n addImport(`${adapter.packageName}/drizzle/pg-core`, 'type AnyPgColumn')\n callback = `${callback}: AnyPgColumn`\n }\n\n callback = `${callback} => ${column.reference.table}.${column.reference.name}`\n\n code = `${code}.references(${callback}, {\n ${column.reference.onDelete ? `onDelete: '${column.reference.onDelete}'` : ''}\n })`\n }\n\n return code\n}\n"],"names":["columnToCodeConverter","adapter","addEnum","addImport","circularEdges","column","tableKey","columnBuilderFn","type","packageName","enumName","options","columnBuilderArgsArray","dimensions","push","mode","withTimezone","precision","columnBuilderArgs","length","join","code","name","defaultNow","defaultRandom","notNull","primaryKey","default","sanitizedDefault","JSON","stringify","reference","callback","table","has","onDelete"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/postgres/columnToCodeConverter.ts"],"sourcesContent":["import type { ColumnToCodeConverter } from '../types.js'\nexport const columnToCodeConverter: ColumnToCodeConverter = ({\n adapter,\n addEnum,\n addImport,\n circularEdges,\n column,\n tableKey,\n}) => {\n let columnBuilderFn: string = column.type\n\n if (column.type === 'geometry') {\n columnBuilderFn = 'geometryColumn'\n addImport(adapter.packageName, columnBuilderFn)\n } else if (column.type === 'enum') {\n if ('locale' in column) {\n columnBuilderFn = `enum__locales`\n } else {\n addEnum(column.enumName, column.options)\n columnBuilderFn = column.enumName\n }\n } else {\n addImport(`${adapter.packageName}/drizzle/pg-core`, columnBuilderFn)\n }\n\n const columnBuilderArgsArray: string[] = []\n\n switch (column.type) {\n case 'bit':\n case 'halfvec':\n case 'sparsevec':\n case 'vector': {\n if (column.dimensions) {\n columnBuilderArgsArray.push(`dimensions: ${column.dimensions}`)\n }\n break\n }\n case 'numeric': {\n columnBuilderArgsArray.push(\"mode: 'number'\")\n break\n }\n case 'timestamp': {\n columnBuilderArgsArray.push(`mode: '${column.mode}'`)\n if (column.withTimezone) {\n columnBuilderArgsArray.push('withTimezone: true')\n }\n\n if (typeof column.precision === 'number') {\n columnBuilderArgsArray.push(`precision: ${column.precision}`)\n }\n break\n }\n }\n\n let columnBuilderArgs = ''\n\n if (columnBuilderArgsArray.length) {\n columnBuilderArgs = `, {${columnBuilderArgsArray.join(',')}}`\n }\n\n let code = `${columnBuilderFn}('${column.name}'${columnBuilderArgs})`\n\n if (column.type === 'timestamp' && column.defaultNow) {\n code = `${code}.defaultNow()`\n }\n\n if (column.type === 'uuid' && column.defaultRandom) {\n code = `${code}.defaultRandom()`\n }\n\n if (column.type === 'uuid' && column.defaultV7) {\n addImport('uuid', 'v7 as uuidv7')\n code = `${code}.$defaultFn(() => uuidv7())`\n }\n\n if (column.notNull) {\n code = `${code}.notNull()`\n }\n\n if (column.primaryKey) {\n code = `${code}.primaryKey()`\n }\n\n if (typeof column.default !== 'undefined') {\n let sanitizedDefault = column.default\n\n if (column.type === 'geometry') {\n sanitizedDefault = `sql\\`${column.default}\\``\n } else if (column.type === 'jsonb') {\n sanitizedDefault = `sql\\`'${JSON.stringify(column.default)}'::jsonb\\``\n } else if (column.type === 'numeric') {\n sanitizedDefault = `${column.default}`\n } else if (typeof column.default === 'string') {\n sanitizedDefault = `${JSON.stringify(column.default)}`\n }\n\n code = `${code}.default(${sanitizedDefault})`\n }\n\n if (column.reference) {\n let callback = `()`\n\n if (\n column.reference.table === tableKey ||\n circularEdges?.has(`${tableKey}:${column.reference.table}`)\n ) {\n addImport(`${adapter.packageName}/drizzle/pg-core`, 'type AnyPgColumn')\n callback = `${callback}: AnyPgColumn`\n }\n\n callback = `${callback} => ${column.reference.table}.${column.reference.name}`\n\n code = `${code}.references(${callback}, {\n ${column.reference.onDelete ? `onDelete: '${column.reference.onDelete}'` : ''}\n })`\n }\n\n return code\n}\n"],"names":["columnToCodeConverter","adapter","addEnum","addImport","circularEdges","column","tableKey","columnBuilderFn","type","packageName","enumName","options","columnBuilderArgsArray","dimensions","push","mode","withTimezone","precision","columnBuilderArgs","length","join","code","name","defaultNow","defaultRandom","defaultV7","notNull","primaryKey","default","sanitizedDefault","JSON","stringify","reference","callback","table","has","onDelete"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"buildDrizzleTable.d.ts","sourceRoot":"","sources":["../../../src/postgres/schema/buildDrizzleTable.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAa,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAgBtD,eAAO,MAAM,iBAAiB,2BAG3B;IACD,OAAO,EAAE,mBAAmB,CAAA;IAC5B,QAAQ,EAAE,QAAQ,CAAA;CACnB,SAoKA,CAAA"}
1
+ {"version":3,"file":"buildDrizzleTable.d.ts","sourceRoot":"","sources":["../../../src/postgres/schema/buildDrizzleTable.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAa,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAgBtD,eAAO,MAAM,iBAAiB,2BAG3B;IACD,OAAO,EAAE,mBAAmB,CAAA;IAC5B,QAAQ,EAAE,QAAQ,CAAA;CACnB,SAwKA,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import { bit, boolean, foreignKey, halfvec, index, integer, jsonb, numeric, serial, sparsevec, text, timestamp, uniqueIndex, uuid, varchar, vector } from 'drizzle-orm/pg-core';
2
+ import { v7 as uuidv7 } from 'uuid';
2
3
  import { geometryColumn } from './geometryColumn.js';
3
4
  const rawColumnBuilderMap = {
4
5
  boolean,
@@ -73,6 +74,9 @@ export const buildDrizzleTable = ({ adapter, rawTable })=>{
73
74
  if (column.defaultRandom) {
74
75
  builder = builder.defaultRandom();
75
76
  }
77
+ if (column.defaultV7) {
78
+ builder = builder.$defaultFn(()=>uuidv7());
79
+ }
76
80
  columns[key] = builder;
77
81
  break;
78
82
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/postgres/schema/buildDrizzleTable.ts"],"sourcesContent":["import type { ForeignKeyBuilder, IndexBuilder } from 'drizzle-orm/pg-core'\n\nimport {\n bit,\n boolean,\n foreignKey,\n halfvec,\n index,\n integer,\n jsonb,\n numeric,\n serial,\n sparsevec,\n text,\n timestamp,\n uniqueIndex,\n uuid,\n varchar,\n vector,\n} from 'drizzle-orm/pg-core'\n\nimport type { RawColumn, RawTable } from '../../types.js'\nimport type { BasePostgresAdapter } from '../types.js'\n\nimport { geometryColumn } from './geometryColumn.js'\n\nconst rawColumnBuilderMap: Partial<Record<RawColumn['type'], any>> = {\n boolean,\n geometry: geometryColumn,\n integer,\n jsonb,\n numeric,\n serial,\n text,\n uuid,\n varchar,\n}\n\nexport const buildDrizzleTable = ({\n adapter,\n rawTable,\n}: {\n adapter: BasePostgresAdapter\n rawTable: RawTable\n}) => {\n const columns: Record<string, any> = {}\n\n for (const [key, column] of Object.entries(rawTable.columns)) {\n switch (column.type) {\n case 'bit': {\n const builder = bit(column.name, { dimensions: column.dimensions })\n\n columns[key] = builder\n\n break\n }\n\n case 'enum':\n if ('locale' in column) {\n columns[key] = adapter.enums.enum__locales(column.name)\n } else {\n adapter.enums[column.enumName] = adapter.pgSchema.enum(\n column.enumName,\n column.options as [string, ...string[]],\n )\n columns[key] = adapter.enums[column.enumName](column.name)\n }\n break\n\n case 'halfvec': {\n const builder = halfvec(column.name, { dimensions: column.dimensions })\n\n columns[key] = builder\n break\n }\n\n case 'numeric': {\n columns[key] = numeric(column.name, { mode: 'number' })\n break\n }\n\n case 'sparsevec': {\n const builder = sparsevec(column.name, { dimensions: column.dimensions })\n\n columns[key] = builder\n\n break\n }\n\n case 'timestamp': {\n let builder = timestamp(column.name, {\n mode: column.mode,\n precision: column.precision,\n withTimezone: column.withTimezone,\n })\n\n if (column.defaultNow) {\n builder = builder.defaultNow()\n }\n\n columns[key] = builder\n break\n }\n\n case 'uuid': {\n let builder = uuid(column.name)\n\n if (column.defaultRandom) {\n builder = builder.defaultRandom()\n }\n\n columns[key] = builder\n break\n }\n\n case 'vector': {\n const builder = vector(column.name, { dimensions: column.dimensions })\n columns[key] = builder\n\n break\n }\n\n default:\n columns[key] = rawColumnBuilderMap[column.type](column.name)\n break\n }\n\n if (column.reference) {\n columns[key].references(() => adapter.tables[column.reference.table][column.reference.name], {\n onDelete: column.reference.onDelete,\n })\n }\n\n if (column.primaryKey) {\n columns[key].primaryKey()\n }\n\n if (column.notNull) {\n columns[key].notNull()\n }\n\n if (typeof column.default !== 'undefined') {\n let sanitizedDefault = column.default\n\n if (column.type === 'geometry' && Array.isArray(column.default)) {\n sanitizedDefault = `SRID=4326;POINT(${column.default[0]} ${column.default[1]})`\n }\n\n columns[key].default(sanitizedDefault)\n }\n\n if (column.type === 'geometry') {\n if (!adapter.extensions.postgis) {\n adapter.extensions.postgis = true\n }\n }\n }\n\n const extraConfig = (cols: any) => {\n const config: Record<string, ForeignKeyBuilder | IndexBuilder> = {}\n\n if (rawTable.indexes) {\n for (const [key, rawIndex] of Object.entries(rawTable.indexes)) {\n let fn: any = index\n if (rawIndex.unique) {\n fn = uniqueIndex\n }\n\n if (Array.isArray(rawIndex.on)) {\n if (rawIndex.on.length) {\n config[key] = fn(rawIndex.name).on(...rawIndex.on.map((colName) => cols[colName]))\n }\n } else {\n config[key] = fn(rawIndex.name).on(cols[rawIndex.on])\n }\n }\n }\n\n if (rawTable.foreignKeys) {\n for (const [key, rawForeignKey] of Object.entries(rawTable.foreignKeys)) {\n let builder = foreignKey({\n name: rawForeignKey.name,\n columns: rawForeignKey.columns.map((colName) => cols[colName]) as any,\n foreignColumns: rawForeignKey.foreignColumns.map(\n (column) => adapter.tables[column.table][column.name],\n ),\n })\n\n if (rawForeignKey.onDelete) {\n builder = builder.onDelete(rawForeignKey.onDelete)\n }\n\n if (rawForeignKey.onUpdate) {\n builder = builder.onDelete(rawForeignKey.onUpdate)\n }\n\n config[key] = builder\n }\n }\n\n return config\n }\n\n adapter.tables[rawTable.name] = adapter.pgSchema.table(\n rawTable.name,\n columns as any,\n extraConfig as any,\n )\n}\n"],"names":["bit","boolean","foreignKey","halfvec","index","integer","jsonb","numeric","serial","sparsevec","text","timestamp","uniqueIndex","uuid","varchar","vector","geometryColumn","rawColumnBuilderMap","geometry","buildDrizzleTable","adapter","rawTable","columns","key","column","Object","entries","type","builder","name","dimensions","enums","enum__locales","enumName","pgSchema","enum","options","mode","precision","withTimezone","defaultNow","defaultRandom","reference","references","tables","table","onDelete","primaryKey","notNull","default","sanitizedDefault","Array","isArray","extensions","postgis","extraConfig","cols","config","indexes","rawIndex","fn","unique","on","length","map","colName","foreignKeys","rawForeignKey","foreignColumns","onUpdate"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/postgres/schema/buildDrizzleTable.ts"],"sourcesContent":["import type { ForeignKeyBuilder, IndexBuilder } from 'drizzle-orm/pg-core'\n\nimport {\n bit,\n boolean,\n foreignKey,\n halfvec,\n index,\n integer,\n jsonb,\n numeric,\n serial,\n sparsevec,\n text,\n timestamp,\n uniqueIndex,\n uuid,\n varchar,\n vector,\n} from 'drizzle-orm/pg-core'\nimport { v7 as uuidv7 } from 'uuid'\n\nimport type { RawColumn, RawTable } from '../../types.js'\nimport type { BasePostgresAdapter } from '../types.js'\n\nimport { geometryColumn } from './geometryColumn.js'\n\nconst rawColumnBuilderMap: Partial<Record<RawColumn['type'], any>> = {\n boolean,\n geometry: geometryColumn,\n integer,\n jsonb,\n numeric,\n serial,\n text,\n uuid,\n varchar,\n}\n\nexport const buildDrizzleTable = ({\n adapter,\n rawTable,\n}: {\n adapter: BasePostgresAdapter\n rawTable: RawTable\n}) => {\n const columns: Record<string, any> = {}\n\n for (const [key, column] of Object.entries(rawTable.columns)) {\n switch (column.type) {\n case 'bit': {\n const builder = bit(column.name, { dimensions: column.dimensions })\n\n columns[key] = builder\n\n break\n }\n\n case 'enum':\n if ('locale' in column) {\n columns[key] = adapter.enums.enum__locales(column.name)\n } else {\n adapter.enums[column.enumName] = adapter.pgSchema.enum(\n column.enumName,\n column.options as [string, ...string[]],\n )\n columns[key] = adapter.enums[column.enumName](column.name)\n }\n break\n\n case 'halfvec': {\n const builder = halfvec(column.name, { dimensions: column.dimensions })\n\n columns[key] = builder\n break\n }\n\n case 'numeric': {\n columns[key] = numeric(column.name, { mode: 'number' })\n break\n }\n\n case 'sparsevec': {\n const builder = sparsevec(column.name, { dimensions: column.dimensions })\n\n columns[key] = builder\n\n break\n }\n\n case 'timestamp': {\n let builder = timestamp(column.name, {\n mode: column.mode,\n precision: column.precision,\n withTimezone: column.withTimezone,\n })\n\n if (column.defaultNow) {\n builder = builder.defaultNow()\n }\n\n columns[key] = builder\n break\n }\n\n case 'uuid': {\n let builder = uuid(column.name)\n\n if (column.defaultRandom) {\n builder = builder.defaultRandom()\n }\n\n if (column.defaultV7) {\n builder = builder.$defaultFn(() => uuidv7())\n }\n\n columns[key] = builder\n break\n }\n\n case 'vector': {\n const builder = vector(column.name, { dimensions: column.dimensions })\n columns[key] = builder\n\n break\n }\n\n default:\n columns[key] = rawColumnBuilderMap[column.type](column.name)\n break\n }\n\n if (column.reference) {\n columns[key].references(() => adapter.tables[column.reference.table][column.reference.name], {\n onDelete: column.reference.onDelete,\n })\n }\n\n if (column.primaryKey) {\n columns[key].primaryKey()\n }\n\n if (column.notNull) {\n columns[key].notNull()\n }\n\n if (typeof column.default !== 'undefined') {\n let sanitizedDefault = column.default\n\n if (column.type === 'geometry' && Array.isArray(column.default)) {\n sanitizedDefault = `SRID=4326;POINT(${column.default[0]} ${column.default[1]})`\n }\n\n columns[key].default(sanitizedDefault)\n }\n\n if (column.type === 'geometry') {\n if (!adapter.extensions.postgis) {\n adapter.extensions.postgis = true\n }\n }\n }\n\n const extraConfig = (cols: any) => {\n const config: Record<string, ForeignKeyBuilder | IndexBuilder> = {}\n\n if (rawTable.indexes) {\n for (const [key, rawIndex] of Object.entries(rawTable.indexes)) {\n let fn: any = index\n if (rawIndex.unique) {\n fn = uniqueIndex\n }\n\n if (Array.isArray(rawIndex.on)) {\n if (rawIndex.on.length) {\n config[key] = fn(rawIndex.name).on(...rawIndex.on.map((colName) => cols[colName]))\n }\n } else {\n config[key] = fn(rawIndex.name).on(cols[rawIndex.on])\n }\n }\n }\n\n if (rawTable.foreignKeys) {\n for (const [key, rawForeignKey] of Object.entries(rawTable.foreignKeys)) {\n let builder = foreignKey({\n name: rawForeignKey.name,\n columns: rawForeignKey.columns.map((colName) => cols[colName]) as any,\n foreignColumns: rawForeignKey.foreignColumns.map(\n (column) => adapter.tables[column.table][column.name],\n ),\n })\n\n if (rawForeignKey.onDelete) {\n builder = builder.onDelete(rawForeignKey.onDelete)\n }\n\n if (rawForeignKey.onUpdate) {\n builder = builder.onDelete(rawForeignKey.onUpdate)\n }\n\n config[key] = builder\n }\n }\n\n return config\n }\n\n adapter.tables[rawTable.name] = adapter.pgSchema.table(\n rawTable.name,\n columns as any,\n extraConfig as any,\n )\n}\n"],"names":["bit","boolean","foreignKey","halfvec","index","integer","jsonb","numeric","serial","sparsevec","text","timestamp","uniqueIndex","uuid","varchar","vector","v7","uuidv7","geometryColumn","rawColumnBuilderMap","geometry","buildDrizzleTable","adapter","rawTable","columns","key","column","Object","entries","type","builder","name","dimensions","enums","enum__locales","enumName","pgSchema","enum","options","mode","precision","withTimezone","defaultNow","defaultRandom","defaultV7","$defaultFn","reference","references","tables","table","onDelete","primaryKey","notNull","default","sanitizedDefault","Array","isArray","extensions","postgis","extraConfig","cols","config","indexes","rawIndex","fn","unique","on","length","map","colName","foreignKeys","rawForeignKey","foreignColumns","onUpdate"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"setColumnID.d.ts","sourceRoot":"","sources":["../../../src/postgres/schema/setColumnID.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAEjD,eAAO,MAAM,WAAW,EAAE,WAyCzB,CAAA"}
1
+ {"version":3,"file":"setColumnID.d.ts","sourceRoot":"","sources":["../../../src/postgres/schema/setColumnID.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAEjD,eAAO,MAAM,WAAW,EAAE,WAoDzB,CAAA"}
@@ -27,6 +27,15 @@ export const setColumnID = ({ adapter, columns, fields })=>{
27
27
  };
28
28
  return 'uuid';
29
29
  }
30
+ if (adapter.idType === 'uuidv7') {
31
+ columns.id = {
32
+ name: 'id',
33
+ type: 'uuid',
34
+ defaultV7: true,
35
+ primaryKey: true
36
+ };
37
+ return 'uuid';
38
+ }
30
39
  columns.id = {
31
40
  name: 'id',
32
41
  type: 'serial',
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/postgres/schema/setColumnID.ts"],"sourcesContent":["import type { SetColumnID } from '../../types.js'\n\nexport const setColumnID: SetColumnID = ({ adapter, columns, fields }) => {\n const idField = fields.find((field) => field.name === 'id')\n if (idField) {\n if (idField.type === 'number') {\n columns.id = {\n name: 'id',\n type: 'numeric',\n primaryKey: true,\n }\n\n return 'numeric'\n }\n\n if (idField.type === 'text') {\n columns.id = {\n name: 'id',\n type: 'varchar',\n primaryKey: true,\n }\n return 'varchar'\n }\n }\n\n if (adapter.idType === 'uuid') {\n columns.id = {\n name: 'id',\n type: 'uuid',\n defaultRandom: true,\n primaryKey: true,\n }\n\n return 'uuid'\n }\n\n columns.id = {\n name: 'id',\n type: 'serial',\n primaryKey: true,\n }\n\n return 'integer'\n}\n"],"names":["setColumnID","adapter","columns","fields","idField","find","field","name","type","id","primaryKey","idType","defaultRandom"],"mappings":"AAEA,OAAO,MAAMA,cAA2B,CAAC,EAAEC,OAAO,EAAEC,OAAO,EAAEC,MAAM,EAAE;IACnE,MAAMC,UAAUD,OAAOE,IAAI,CAAC,CAACC,QAAUA,MAAMC,IAAI,KAAK;IACtD,IAAIH,SAAS;QACX,IAAIA,QAAQI,IAAI,KAAK,UAAU;YAC7BN,QAAQO,EAAE,GAAG;gBACXF,MAAM;gBACNC,MAAM;gBACNE,YAAY;YACd;YAEA,OAAO;QACT;QAEA,IAAIN,QAAQI,IAAI,KAAK,QAAQ;YAC3BN,QAAQO,EAAE,GAAG;gBACXF,MAAM;gBACNC,MAAM;gBACNE,YAAY;YACd;YACA,OAAO;QACT;IACF;IAEA,IAAIT,QAAQU,MAAM,KAAK,QAAQ;QAC7BT,QAAQO,EAAE,GAAG;YACXF,MAAM;YACNC,MAAM;YACNI,eAAe;YACfF,YAAY;QACd;QAEA,OAAO;IACT;IAEAR,QAAQO,EAAE,GAAG;QACXF,MAAM;QACNC,MAAM;QACNE,YAAY;IACd;IAEA,OAAO;AACT,EAAC"}
1
+ {"version":3,"sources":["../../../src/postgres/schema/setColumnID.ts"],"sourcesContent":["import type { SetColumnID } from '../../types.js'\n\nexport const setColumnID: SetColumnID = ({ adapter, columns, fields }) => {\n const idField = fields.find((field) => field.name === 'id')\n if (idField) {\n if (idField.type === 'number') {\n columns.id = {\n name: 'id',\n type: 'numeric',\n primaryKey: true,\n }\n\n return 'numeric'\n }\n\n if (idField.type === 'text') {\n columns.id = {\n name: 'id',\n type: 'varchar',\n primaryKey: true,\n }\n return 'varchar'\n }\n }\n\n if (adapter.idType === 'uuid') {\n columns.id = {\n name: 'id',\n type: 'uuid',\n defaultRandom: true,\n primaryKey: true,\n }\n\n return 'uuid'\n }\n\n if (adapter.idType === 'uuidv7') {\n columns.id = {\n name: 'id',\n type: 'uuid',\n defaultV7: true,\n primaryKey: true,\n }\n\n return 'uuid'\n }\n\n columns.id = {\n name: 'id',\n type: 'serial',\n primaryKey: true,\n }\n\n return 'integer'\n}\n"],"names":["setColumnID","adapter","columns","fields","idField","find","field","name","type","id","primaryKey","idType","defaultRandom","defaultV7"],"mappings":"AAEA,OAAO,MAAMA,cAA2B,CAAC,EAAEC,OAAO,EAAEC,OAAO,EAAEC,MAAM,EAAE;IACnE,MAAMC,UAAUD,OAAOE,IAAI,CAAC,CAACC,QAAUA,MAAMC,IAAI,KAAK;IACtD,IAAIH,SAAS;QACX,IAAIA,QAAQI,IAAI,KAAK,UAAU;YAC7BN,QAAQO,EAAE,GAAG;gBACXF,MAAM;gBACNC,MAAM;gBACNE,YAAY;YACd;YAEA,OAAO;QACT;QAEA,IAAIN,QAAQI,IAAI,KAAK,QAAQ;YAC3BN,QAAQO,EAAE,GAAG;gBACXF,MAAM;gBACNC,MAAM;gBACNE,YAAY;YACd;YACA,OAAO;QACT;IACF;IAEA,IAAIT,QAAQU,MAAM,KAAK,QAAQ;QAC7BT,QAAQO,EAAE,GAAG;YACXF,MAAM;YACNC,MAAM;YACNI,eAAe;YACfF,YAAY;QACd;QAEA,OAAO;IACT;IAEA,IAAIT,QAAQU,MAAM,KAAK,UAAU;QAC/BT,QAAQO,EAAE,GAAG;YACXF,MAAM;YACNC,MAAM;YACNK,WAAW;YACXH,YAAY;QACd;QAEA,OAAO;IACT;IAEAR,QAAQO,EAAE,GAAG;QACXF,MAAM;QACNC,MAAM;QACNE,YAAY;IACd;IAEA,OAAO;AACT,EAAC"}
@@ -99,7 +99,7 @@ export type BasePostgresAdapter = {
99
99
  * Used for returning properly formed errors from unique fields
100
100
  */
101
101
  fieldConstraints: Record<string, Record<string, string>>;
102
- idType: 'serial' | 'uuid';
102
+ idType: 'serial' | 'uuid' | 'uuidv7';
103
103
  initializing: Promise<void>;
104
104
  insert: Insert;
105
105
  localesSuffix?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/postgres/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,aAAa,EACb,QAAQ,EACR,SAAS,EACT,GAAG,EACJ,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,KAAK,EACV,iBAAiB,EACjB,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,MAAM,EACN,gCAAgC,EAChC,QAAQ,EACR,kBAAkB,EAClB,uBAAuB,EACxB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,IAAI,CAAA;AAEnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEvF,MAAM,MAAM,eAAe,GAAG,MAAM,CAClC,MAAM,EACN,CAAC,IAAI,EAAE,cAAc,KAAK,iBAAiB,GAAG,YAAY,GAAG,uBAAuB,CACrF,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,GAAG,CAC3B,MAAM,EACN;IACE,SAAS,EAAE,OAAO,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,GAAG,KAAK,CAAA;CACrB,CACF,CAAA;AAED,MAAM,MAAM,aAAa,GAAG,QAAQ,CAClC,gBAAgB,CAAC,cAAc,EAAE,MAAM,CAAC,EACxC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CACxB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,CAAC,EAAE,MAAM,GAAG,aAAa,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,kBAAkB,CAAC;IAC5C,OAAO,EAAE,cAAc,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;CACf,CAAC,CAAA;AAEF,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAA;AAEvD,MAAM,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AAEjF,MAAM,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AAEhE,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE;IACjC,MAAM,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;IAC1C,EAAE,EAAE,UAAU,GAAG,aAAa,CAAA;IAC9B,KAAK,EAAE,qBAAqB,CAAA;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,GAAG,CAAA;CACX,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;AAErB,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE;IAC/B,EAAE,EAAE,UAAU,GAAG,aAAa,CAAA;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,GAAG,CAAA;CACX,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAEnB,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,mBAAmB,CAAA;CAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAEpF,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;IAC9B,EAAE,CAAC,EAAE,UAAU,GAAG,aAAa,CAAA;IAC/B,OAAO,CAAC,EAAE,UAAU,CAAA;IACpB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;CACnB,KAAK,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;AAE7C,MAAM,MAAM,MAAM,GAAG,CAAC,IAAI,EAAE;IAC1B,EAAE,EAAE,UAAU,GAAG,aAAa,CAAA;IAC9B,kBAAkB,CAAC,EAAE,gCAAgC,CAAC,GAAG,CAAC,CAAA;IAC1D,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;CAC5D,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;AAExC,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,CAAC,EAAE;IACnC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;AAEtB,KAAK,MAAM,GACP;IACE,IAAI,EAAE,OAAO,MAAM,CAAA;IACnB,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,CAAA;CACzB,GACD,QAAQ,CAAA;AAEZ,KAAK,cAAc,GAAG;IACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IAClC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IAC1C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAA;CAChD,CAAA;AAED,KAAK,sBAAsB,GAAG;IAC5B,OAAO,EAAE,sBAAsB,CAAA;IAC/B,WAAW,EAAE,OAAO,kBAAkB,CAAA;IACtC,MAAM,EAAE,cAAc,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,CAC/B,IAAI,EAAE,sBAAsB,KACzB,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;AAE7C,MAAM,MAAM,mBAAmB,GAAG;IAChC,eAAe,EAAE,kBAAkB,EAAE,CAAA;IACrC,gBAAgB,EAAE,kBAAkB,EAAE,CAAA;IACtC,aAAa,EAAE,aAAa,CAAA;IAC5B,cAAc,EAAE,cAAc,CAAA;IAC9B,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACrC,sBAAsB,EAAE,mBAAmB,CAAA;IAC3C,WAAW,EAAE,WAAW,CAAA;IACxB,qBAAqB,EAAE,OAAO,CAAA;IAC9B,OAAO,EAAE,UAAU,CAAA;IACnB,YAAY,EAAE,YAAY,CAAA;IAC1B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IAClC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;IACzB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACnC;;;OAGG;IACH,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACxD,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAA;IACzB,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;IAC/B,SAAS,EAAE,SAAS,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,YAAY,CAAA;IAC1B,cAAc,CAAC,EAAE;QACf,IAAI,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;QAC9C,IAAI,EAAE,MAAM,CAAA;QACZ,EAAE,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;KAC3C,EAAE,CAAA;IACH,IAAI,EAAE,OAAO,CAAA;IACb,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAA;IAC7B,kBAAkB,EAAE,MAAM,IAAI,CAAA;IAC9B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IAC1C,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,mBAAmB,EAAE,MAAM,IAAI,CAAA;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE;QACR,CAAC,EAAE,EAAE,MAAM,GAAG;YACZ,EAAE,EAAE,UAAU,GAAG,aAAa,CAAA;YAC9B,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;YAC3B,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;SAC7B,CAAA;KACF,CAAA;IACD,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACjC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;IACpC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB,GAAG,sBAAsB,CAAA;AAE1B,MAAM,MAAM,sBAAsB,GAAG,IAAI,CACvC,cAAc,EACZ,eAAe,GACf,aAAa,GACb,SAAS,GACT,cAAc,GACd,SAAS,GACT,QAAQ,GACR,WAAW,GACX,WAAW,CACd,CAAA;AAED,MAAM,MAAM,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAA;AAE/D,MAAM,MAAM,aAAa,GAAG;IAC1B;;;;;;;;;;OAUG;IACH,EAAE,EAAE,UAAU,CAAA;IACd;;;;;;;;;;;OAWG;IACH,OAAO,EAAE,OAAO,CAAA;IAChB;;OAEG;IACH,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B;;;;;;;;;;OAUG;IACH,EAAE,EAAE,UAAU,CAAA;IACd;;;;;;;;;;;OAWG;IACH,OAAO,EAAE,OAAO,CAAA;IAChB;;OAEG;IACH,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/postgres/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/postgres/types.ts"],"sourcesContent":["import type { DrizzleSnapshotJSON } from 'drizzle-kit/api'\nimport type {\n ColumnBaseConfig,\n ColumnDataType,\n DrizzleConfig,\n Relation,\n Relations,\n SQL,\n} from 'drizzle-orm'\nimport type { NodePgDatabase } from 'drizzle-orm/node-postgres'\nimport type {\n ForeignKeyBuilder,\n IndexBuilder,\n PgColumn,\n PgEnum,\n pgEnum,\n PgInsertOnConflictDoUpdateConfig,\n PgSchema,\n PgTableWithColumns,\n UniqueConstraintBuilder,\n} from 'drizzle-orm/pg-core'\nimport type { PgTableFn } from 'drizzle-orm/pg-core/table'\nimport type { SQLiteColumn } from 'drizzle-orm/sqlite-core'\nimport type { Payload, PayloadRequest } from 'payload'\nimport type { ClientConfig, QueryResult } from 'pg'\n\nimport type { extendDrizzleTable, Operators } from '../index.js'\nimport type { BuildQueryJoinAliases, DrizzleAdapter, TransactionPg } from '../types.js'\n\nexport type BaseExtraConfig = Record<\n string,\n (cols: GenericColumns) => ForeignKeyBuilder | IndexBuilder | UniqueConstraintBuilder\n>\n\nexport type RelationMap = Map<\n string,\n {\n localized: boolean\n relationName?: string\n target: string\n type: 'many' | 'one'\n }\n>\n\nexport type GenericColumn = PgColumn<\n ColumnBaseConfig<ColumnDataType, string>,\n Record<string, unknown>\n>\n\nexport type GenericColumns = {\n [x: string]: GenericColumn\n}\n\nexport type GenericTable = PgTableWithColumns<{\n columns: GenericColumns\n dialect: string\n name: string\n schema: string\n}>\n\nexport type GenericEnum = PgEnum<[string, ...string[]]>\n\nexport type GenericRelation = Relations<string, Record<string, Relation<string>>>\n\nexport type PostgresDB = NodePgDatabase<Record<string, unknown>>\n\nexport type CountDistinct = (args: {\n column?: PgColumn<any> | SQLiteColumn<any>\n db: PostgresDB | TransactionPg\n joins: BuildQueryJoinAliases\n tableName: string\n where: SQL\n}) => Promise<number>\n\nexport type DeleteWhere = (args: {\n db: PostgresDB | TransactionPg\n tableName: string\n where: SQL\n}) => Promise<void>\n\nexport type DropDatabase = (args: { adapter: BasePostgresAdapter }) => Promise<void>\n\nexport type Execute<T> = (args: {\n db?: PostgresDB | TransactionPg\n drizzle?: PostgresDB\n raw?: string\n sql?: SQL<unknown>\n}) => Promise<QueryResult<Record<string, T>>>\n\nexport type Insert = (args: {\n db: PostgresDB | TransactionPg\n onConflictDoUpdate?: PgInsertOnConflictDoUpdateConfig<any>\n tableName: string\n values: Record<string, unknown> | Record<string, unknown>[]\n}) => Promise<Record<string, unknown>[]>\n\nexport type CreateDatabase = (args?: {\n /**\n * Name of a database, defaults to the current one\n */\n name?: string\n /**\n * Schema to create in addition to 'public'. Defaults from adapter.schemaName if exists.\n */\n schemaName?: string\n}) => Promise<boolean>\n\ntype Schema =\n | {\n enum: typeof pgEnum\n table: PgTableFn<string>\n }\n | PgSchema\n\ntype PostgresSchema = {\n enums: Record<string, GenericEnum>\n relations: Record<string, GenericRelation>\n tables: Record<string, PgTableWithColumns<any>>\n}\n\ntype PostgresSchemaHookArgs = {\n adapter: PostgresDrizzleAdapter\n extendTable: typeof extendDrizzleTable\n schema: PostgresSchema\n}\n\nexport type PostgresSchemaHook = (\n args: PostgresSchemaHookArgs,\n) => PostgresSchema | Promise<PostgresSchema>\n\nexport type BasePostgresAdapter = {\n afterSchemaInit: PostgresSchemaHook[]\n beforeSchemaInit: PostgresSchemaHook[]\n countDistinct: CountDistinct\n createDatabase: CreateDatabase\n createExtensions: () => Promise<void>\n defaultDrizzleSnapshot: DrizzleSnapshotJSON\n deleteWhere: DeleteWhere\n disableCreateDatabase: boolean\n drizzle: PostgresDB\n dropDatabase: DropDatabase\n enums: Record<string, GenericEnum>\n execute: Execute<unknown>\n extensions: Record<string, boolean>\n /**\n * An object keyed on each table, with a key value pair where the constraint name is the key, followed by the dot-notation field name\n * Used for returning properly formed errors from unique fields\n */\n fieldConstraints: Record<string, Record<string, string>>\n idType: 'serial' | 'uuid'\n initializing: Promise<void>\n insert: Insert\n localesSuffix?: string\n logger: DrizzleConfig['logger']\n operators: Operators\n pgSchema: Schema\n poolOptions?: ClientConfig\n prodMigrations?: {\n down: (args: MigrateDownArgs) => Promise<void>\n name: string\n up: (args: MigrateUpArgs) => Promise<void>\n }[]\n push: boolean\n readReplicaOptions?: string[]\n rejectInitializing: () => void\n relations: Record<string, GenericRelation>\n relationshipsSuffix?: string\n resolveInitializing: () => void\n schemaName?: string\n sessions: {\n [id: string]: {\n db: PostgresDB | TransactionPg\n reject: () => Promise<void>\n resolve: () => Promise<void>\n }\n }\n tableNameMap: Map<string, string>\n tables: Record<string, GenericTable>\n tablesFilter?: string[]\n versionsSuffix?: string\n} & PostgresDrizzleAdapter\n\nexport type PostgresDrizzleAdapter = Omit<\n DrizzleAdapter,\n | 'countDistinct'\n | 'deleteWhere'\n | 'drizzle'\n | 'dropDatabase'\n | 'execute'\n | 'insert'\n | 'operators'\n | 'relations'\n>\n\nexport type IDType = 'integer' | 'numeric' | 'uuid' | 'varchar'\n\nexport type MigrateUpArgs = {\n /**\n * The Postgres Drizzle instance that you can use to execute SQL directly within the current transaction.\n * @example\n * ```ts\n * import { type MigrateUpArgs, sql } from '@payloadcms/db-postgres'\n *\n * export async function up({ db, payload, req }: MigrateUpArgs): Promise<void> {\n * const { rows: posts } = await db.execute(sql`SELECT * FROM posts`)\n * }\n * ```\n */\n db: PostgresDB\n /**\n * The Payload instance that you can use to execute Local API methods\n * To use the current transaction you must pass `req` to arguments\n * @example\n * ```ts\n * import { type MigrateUpArgs, sql } from '@payloadcms/db-postgres'\n *\n * export async function up({ db, payload, req }: MigrateUpArgs): Promise<void> {\n * const posts = await payload.find({ collection: 'posts', req })\n * }\n * ```\n */\n payload: Payload\n /**\n * The `PayloadRequest` object that contains the current transaction\n */\n req: PayloadRequest\n}\n\nexport type MigrateDownArgs = {\n /**\n * The Postgres Drizzle instance that you can use to execute SQL directly within the current transaction.\n * @example\n * ```ts\n * import { type MigrateDownArgs, sql } from '@payloadcms/db-postgres'\n *\n * export async function down({ db, payload, req }: MigrateDownArgs): Promise<void> {\n * const { rows: posts } = await db.execute(sql`SELECT * FROM posts`)\n * }\n * ```\n */\n db: PostgresDB\n /**\n * The Payload instance that you can use to execute Local API methods\n * To use the current transaction you must pass `req` to arguments\n * @example\n * ```ts\n * import { type MigrateDownArgs } from '@payloadcms/db-postgres'\n *\n * export async function down({ db, payload, req }: MigrateDownArgs): Promise<void> {\n * const posts = await payload.find({ collection: 'posts', req })\n * }\n * ```\n */\n payload: Payload\n /**\n * The `PayloadRequest` object that contains the current transaction\n */\n req: PayloadRequest\n}\n"],"names":[],"mappings":"AAoOA,WA8BC"}
1
+ {"version":3,"sources":["../../src/postgres/types.ts"],"sourcesContent":["import type { DrizzleSnapshotJSON } from 'drizzle-kit/api'\nimport type {\n ColumnBaseConfig,\n ColumnDataType,\n DrizzleConfig,\n Relation,\n Relations,\n SQL,\n} from 'drizzle-orm'\nimport type { NodePgDatabase } from 'drizzle-orm/node-postgres'\nimport type {\n ForeignKeyBuilder,\n IndexBuilder,\n PgColumn,\n PgEnum,\n pgEnum,\n PgInsertOnConflictDoUpdateConfig,\n PgSchema,\n PgTableWithColumns,\n UniqueConstraintBuilder,\n} from 'drizzle-orm/pg-core'\nimport type { PgTableFn } from 'drizzle-orm/pg-core/table'\nimport type { SQLiteColumn } from 'drizzle-orm/sqlite-core'\nimport type { Payload, PayloadRequest } from 'payload'\nimport type { ClientConfig, QueryResult } from 'pg'\n\nimport type { extendDrizzleTable, Operators } from '../index.js'\nimport type { BuildQueryJoinAliases, DrizzleAdapter, TransactionPg } from '../types.js'\n\nexport type BaseExtraConfig = Record<\n string,\n (cols: GenericColumns) => ForeignKeyBuilder | IndexBuilder | UniqueConstraintBuilder\n>\n\nexport type RelationMap = Map<\n string,\n {\n localized: boolean\n relationName?: string\n target: string\n type: 'many' | 'one'\n }\n>\n\nexport type GenericColumn = PgColumn<\n ColumnBaseConfig<ColumnDataType, string>,\n Record<string, unknown>\n>\n\nexport type GenericColumns = {\n [x: string]: GenericColumn\n}\n\nexport type GenericTable = PgTableWithColumns<{\n columns: GenericColumns\n dialect: string\n name: string\n schema: string\n}>\n\nexport type GenericEnum = PgEnum<[string, ...string[]]>\n\nexport type GenericRelation = Relations<string, Record<string, Relation<string>>>\n\nexport type PostgresDB = NodePgDatabase<Record<string, unknown>>\n\nexport type CountDistinct = (args: {\n column?: PgColumn<any> | SQLiteColumn<any>\n db: PostgresDB | TransactionPg\n joins: BuildQueryJoinAliases\n tableName: string\n where: SQL\n}) => Promise<number>\n\nexport type DeleteWhere = (args: {\n db: PostgresDB | TransactionPg\n tableName: string\n where: SQL\n}) => Promise<void>\n\nexport type DropDatabase = (args: { adapter: BasePostgresAdapter }) => Promise<void>\n\nexport type Execute<T> = (args: {\n db?: PostgresDB | TransactionPg\n drizzle?: PostgresDB\n raw?: string\n sql?: SQL<unknown>\n}) => Promise<QueryResult<Record<string, T>>>\n\nexport type Insert = (args: {\n db: PostgresDB | TransactionPg\n onConflictDoUpdate?: PgInsertOnConflictDoUpdateConfig<any>\n tableName: string\n values: Record<string, unknown> | Record<string, unknown>[]\n}) => Promise<Record<string, unknown>[]>\n\nexport type CreateDatabase = (args?: {\n /**\n * Name of a database, defaults to the current one\n */\n name?: string\n /**\n * Schema to create in addition to 'public'. Defaults from adapter.schemaName if exists.\n */\n schemaName?: string\n}) => Promise<boolean>\n\ntype Schema =\n | {\n enum: typeof pgEnum\n table: PgTableFn<string>\n }\n | PgSchema\n\ntype PostgresSchema = {\n enums: Record<string, GenericEnum>\n relations: Record<string, GenericRelation>\n tables: Record<string, PgTableWithColumns<any>>\n}\n\ntype PostgresSchemaHookArgs = {\n adapter: PostgresDrizzleAdapter\n extendTable: typeof extendDrizzleTable\n schema: PostgresSchema\n}\n\nexport type PostgresSchemaHook = (\n args: PostgresSchemaHookArgs,\n) => PostgresSchema | Promise<PostgresSchema>\n\nexport type BasePostgresAdapter = {\n afterSchemaInit: PostgresSchemaHook[]\n beforeSchemaInit: PostgresSchemaHook[]\n countDistinct: CountDistinct\n createDatabase: CreateDatabase\n createExtensions: () => Promise<void>\n defaultDrizzleSnapshot: DrizzleSnapshotJSON\n deleteWhere: DeleteWhere\n disableCreateDatabase: boolean\n drizzle: PostgresDB\n dropDatabase: DropDatabase\n enums: Record<string, GenericEnum>\n execute: Execute<unknown>\n extensions: Record<string, boolean>\n /**\n * An object keyed on each table, with a key value pair where the constraint name is the key, followed by the dot-notation field name\n * Used for returning properly formed errors from unique fields\n */\n fieldConstraints: Record<string, Record<string, string>>\n idType: 'serial' | 'uuid' | 'uuidv7'\n initializing: Promise<void>\n insert: Insert\n localesSuffix?: string\n logger: DrizzleConfig['logger']\n operators: Operators\n pgSchema: Schema\n poolOptions?: ClientConfig\n prodMigrations?: {\n down: (args: MigrateDownArgs) => Promise<void>\n name: string\n up: (args: MigrateUpArgs) => Promise<void>\n }[]\n push: boolean\n readReplicaOptions?: string[]\n rejectInitializing: () => void\n relations: Record<string, GenericRelation>\n relationshipsSuffix?: string\n resolveInitializing: () => void\n schemaName?: string\n sessions: {\n [id: string]: {\n db: PostgresDB | TransactionPg\n reject: () => Promise<void>\n resolve: () => Promise<void>\n }\n }\n tableNameMap: Map<string, string>\n tables: Record<string, GenericTable>\n tablesFilter?: string[]\n versionsSuffix?: string\n} & PostgresDrizzleAdapter\n\nexport type PostgresDrizzleAdapter = Omit<\n DrizzleAdapter,\n | 'countDistinct'\n | 'deleteWhere'\n | 'drizzle'\n | 'dropDatabase'\n | 'execute'\n | 'insert'\n | 'operators'\n | 'relations'\n>\n\nexport type IDType = 'integer' | 'numeric' | 'uuid' | 'varchar'\n\nexport type MigrateUpArgs = {\n /**\n * The Postgres Drizzle instance that you can use to execute SQL directly within the current transaction.\n * @example\n * ```ts\n * import { type MigrateUpArgs, sql } from '@payloadcms/db-postgres'\n *\n * export async function up({ db, payload, req }: MigrateUpArgs): Promise<void> {\n * const { rows: posts } = await db.execute(sql`SELECT * FROM posts`)\n * }\n * ```\n */\n db: PostgresDB\n /**\n * The Payload instance that you can use to execute Local API methods\n * To use the current transaction you must pass `req` to arguments\n * @example\n * ```ts\n * import { type MigrateUpArgs, sql } from '@payloadcms/db-postgres'\n *\n * export async function up({ db, payload, req }: MigrateUpArgs): Promise<void> {\n * const posts = await payload.find({ collection: 'posts', req })\n * }\n * ```\n */\n payload: Payload\n /**\n * The `PayloadRequest` object that contains the current transaction\n */\n req: PayloadRequest\n}\n\nexport type MigrateDownArgs = {\n /**\n * The Postgres Drizzle instance that you can use to execute SQL directly within the current transaction.\n * @example\n * ```ts\n * import { type MigrateDownArgs, sql } from '@payloadcms/db-postgres'\n *\n * export async function down({ db, payload, req }: MigrateDownArgs): Promise<void> {\n * const { rows: posts } = await db.execute(sql`SELECT * FROM posts`)\n * }\n * ```\n */\n db: PostgresDB\n /**\n * The Payload instance that you can use to execute Local API methods\n * To use the current transaction you must pass `req` to arguments\n * @example\n * ```ts\n * import { type MigrateDownArgs } from '@payloadcms/db-postgres'\n *\n * export async function down({ db, payload, req }: MigrateDownArgs): Promise<void> {\n * const posts = await payload.find({ collection: 'posts', req })\n * }\n * ```\n */\n payload: Payload\n /**\n * The `PayloadRequest` object that contains the current transaction\n */\n req: PayloadRequest\n}\n"],"names":[],"mappings":"AAoOA,WA8BC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getTableColumnFromPath.d.ts","sourceRoot":"","sources":["../../src/queries/getTableColumnFromPath.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAS,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AACrE,OAAO,KAAK,EAEV,cAAc,EAIf,MAAM,SAAS,CAAA;AAGhB,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAM7D,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAS5D,KAAK,UAAU,GAAG;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;IAC5D,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AAED,KAAK,WAAW,GAAG;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE;QACR,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAA;QAClC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;KACxB,EAAE,CAAA;IACH,WAAW,EAAE,UAAU,EAAE,CAAA;IACzB,KAAK,EAAE,cAAc,CAAA;IACrB,uBAAuB,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAA;IAClD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,SAAS,CAAC,EAAE,GAAG,CAAA;IACf,KAAK,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;CAC7D,CAAA;AAED,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,cAAc,CAAA;IACvB,UAAU,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;IAClE,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAA;IAC1B,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,KAAK,EAAE,qBAAqB,CAAA;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,gBAAgB,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;IACxE,iBAAiB,EAAE,OAAO,CAAA;IAC1B,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAC3C,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;OAEG;IACH,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AACD;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,iUAmBhC,IAAI,KAAG,WA67BT,CAAA"}
1
+ {"version":3,"file":"getTableColumnFromPath.d.ts","sourceRoot":"","sources":["../../src/queries/getTableColumnFromPath.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAS,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AACrE,OAAO,KAAK,EAEV,cAAc,EAIf,MAAM,SAAS,CAAA;AAGhB,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAM7D,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAU5D,KAAK,UAAU,GAAG;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;IAC5D,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AAED,KAAK,WAAW,GAAG;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE;QACR,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAA;QAClC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;KACxB,EAAE,CAAA;IACH,WAAW,EAAE,UAAU,EAAE,CAAA;IACzB,KAAK,EAAE,cAAc,CAAA;IACrB,uBAAuB,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAA;IAClD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,SAAS,CAAC,EAAE,GAAG,CAAA;IACf,KAAK,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;CAC7D,CAAA;AAED,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,cAAc,CAAA;IACvB,UAAU,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;IAClE,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAA;IAC1B,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,KAAK,EAAE,qBAAqB,CAAA;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,gBAAgB,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;IACxE,iBAAiB,EAAE,OAAO,CAAA;IAC1B,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAC3C,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;OAEG;IACH,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AACD;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,iUAmBhC,IAAI,KAAG,WA87BT,CAAA"}
@@ -4,6 +4,7 @@ import { fieldShouldBeLocalized, tabHasName } from 'payload/shared';
4
4
  import toSnakeCase from 'to-snake-case';
5
5
  import { validate as uuidValidate } from 'uuid';
6
6
  import { isPolymorphicRelationship } from '../utilities/isPolymorphicRelationship.js';
7
+ import { isUUIDType } from '../utilities/isUUIDType.js';
7
8
  import { jsonBuildObject } from '../utilities/json.js';
8
9
  import { DistinctSymbol } from '../utilities/rawConstraint.js';
9
10
  import { resolveBlockTableName } from '../utilities/validateExistingBlockIsIdentical.js';
@@ -27,7 +28,7 @@ import { getTableAlias } from './getTableAlias.js';
27
28
  constraints,
28
29
  field: {
29
30
  name: 'id',
30
- type: adapter.idType === 'uuid' ? 'text' : 'number'
31
+ type: isUUIDType(adapter.idType) ? 'text' : 'number'
31
32
  },
32
33
  table: adapter.tables[newTableName]
33
34
  };
@@ -284,7 +285,7 @@ import { getTableAlias } from './getTableAlias.js';
284
285
  constraints,
285
286
  field: {
286
287
  name: 'id',
287
- type: adapter.idType === 'uuid' ? 'text' : 'number'
288
+ type: isUUIDType(adapter.idType) ? 'text' : 'number'
288
289
  },
289
290
  table: aliasRelationshipTable
290
291
  };
@@ -364,7 +365,7 @@ import { getTableAlias } from './getTableAlias.js';
364
365
  constraints,
365
366
  field: {
366
367
  name: 'id',
367
- type: adapter.idType === 'uuid' ? 'text' : 'number'
368
+ type: isUUIDType(adapter.idType) ? 'text' : 'number'
368
369
  },
369
370
  table: newAliasTable
370
371
  };
@@ -510,7 +511,7 @@ import { getTableAlias } from './getTableAlias.js';
510
511
  } else if (newCollectionPath === 'value') {
511
512
  const hasCustomCollectionWithCustomID = field.relationTo.some((relationTo)=>!!adapter.payload.collections[relationTo].customIDType);
512
513
  const columns = field.relationTo.map((relationTo)=>{
513
- let idType = adapter.idType === 'uuid' ? 'uuid' : 'number';
514
+ let idType = isUUIDType(adapter.idType) ? 'uuid' : 'number';
514
515
  const { customIDType } = adapter.payload.collections[relationTo];
515
516
  if (customIDType) {
516
517
  idType = customIDType;