@payloadcms/drizzle 3.27.0-canary.ecc3f49 → 3.27.0

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 (45) hide show
  1. package/dist/create.js +3 -3
  2. package/dist/create.js.map +1 -1
  3. package/dist/createGlobal.js +2 -2
  4. package/dist/createGlobal.js.map +1 -1
  5. package/dist/createGlobalVersion.d.ts +1 -1
  6. package/dist/createGlobalVersion.d.ts.map +1 -1
  7. package/dist/createGlobalVersion.js +3 -3
  8. package/dist/createGlobalVersion.js.map +1 -1
  9. package/dist/createVersion.d.ts +1 -1
  10. package/dist/createVersion.d.ts.map +1 -1
  11. package/dist/createVersion.js +1 -1
  12. package/dist/createVersion.js.map +1 -1
  13. package/dist/deleteOne.js +1 -1
  14. package/dist/deleteOne.js.map +1 -1
  15. package/dist/schema/build.d.ts +3 -2
  16. package/dist/schema/build.d.ts.map +1 -1
  17. package/dist/schema/build.js +44 -1
  18. package/dist/schema/build.js.map +1 -1
  19. package/dist/schema/buildRawSchema.d.ts.map +1 -1
  20. package/dist/schema/buildRawSchema.js +5 -1
  21. package/dist/schema/buildRawSchema.js.map +1 -1
  22. package/dist/schema/traverseFields.d.ts.map +1 -1
  23. package/dist/schema/traverseFields.js.map +1 -1
  24. package/dist/update.d.ts +3 -0
  25. package/dist/update.d.ts.map +1 -0
  26. package/dist/update.js +71 -0
  27. package/dist/update.js.map +1 -0
  28. package/dist/updateGlobal.d.ts +1 -1
  29. package/dist/updateGlobal.d.ts.map +1 -1
  30. package/dist/updateGlobal.js +3 -3
  31. package/dist/updateGlobal.js.map +1 -1
  32. package/dist/updateGlobalVersion.d.ts +1 -1
  33. package/dist/updateGlobalVersion.d.ts.map +1 -1
  34. package/dist/updateGlobalVersion.js +3 -3
  35. package/dist/updateGlobalVersion.js.map +1 -1
  36. package/dist/updateOne.js +3 -3
  37. package/dist/updateOne.js.map +1 -1
  38. package/dist/updateVersion.d.ts +1 -1
  39. package/dist/updateVersion.d.ts.map +1 -1
  40. package/dist/updateVersion.js +3 -3
  41. package/dist/updateVersion.js.map +1 -1
  42. package/dist/upsertRow/types.d.ts +1 -1
  43. package/dist/upsertRow/types.d.ts.map +1 -1
  44. package/dist/upsertRow/types.js.map +1 -1
  45. package/package.json +3 -3
package/dist/create.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import toSnakeCase from 'to-snake-case';
2
2
  import { upsertRow } from './upsertRow/index.js';
3
3
  import { getTransaction } from './utilities/getTransaction.js';
4
- export const create = async function create({ collection: collectionSlug, data, req, returning, select }) {
4
+ export const create = async function create({ collection: collectionSlug, data, req, select, returning }) {
5
5
  const db = await getTransaction(this, req);
6
6
  const collection = this.payload.collections[collectionSlug].config;
7
7
  const tableName = this.tableNameMap.get(toSnakeCase(collection.slug));
@@ -10,11 +10,11 @@ export const create = async function create({ collection: collectionSlug, data,
10
10
  data,
11
11
  db,
12
12
  fields: collection.flattenedFields,
13
- ignoreResult: returning === false,
14
13
  operation: 'create',
15
14
  req,
16
15
  select,
17
- tableName
16
+ tableName,
17
+ ignoreResult: returning === false
18
18
  });
19
19
  if (returning === false) {
20
20
  return null;
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/create.ts"],"sourcesContent":["import type { Create } 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 const create: Create = async function create(\n this: DrizzleAdapter,\n { collection: collectionSlug, data, req, returning, select },\n) {\n const db = await getTransaction(this, req)\n const collection = this.payload.collections[collectionSlug].config\n\n const tableName = this.tableNameMap.get(toSnakeCase(collection.slug))\n\n const result = await upsertRow({\n adapter: this,\n data,\n db,\n fields: collection.flattenedFields,\n ignoreResult: returning === false,\n operation: 'create',\n req,\n select,\n tableName,\n })\n\n if (returning === false) {\n return null\n }\n\n return result\n}\n"],"names":["toSnakeCase","upsertRow","getTransaction","create","collection","collectionSlug","data","req","returning","select","db","payload","collections","config","tableName","tableNameMap","get","slug","result","adapter","fields","flattenedFields","ignoreResult","operation"],"mappings":"AAEA,OAAOA,iBAAiB,gBAAe;AAIvC,SAASC,SAAS,QAAQ,uBAAsB;AAChD,SAASC,cAAc,QAAQ,gCAA+B;AAE9D,OAAO,MAAMC,SAAiB,eAAeA,OAE3C,EAAEC,YAAYC,cAAc,EAAEC,IAAI,EAAEC,GAAG,EAAEC,SAAS,EAAEC,MAAM,EAAE;IAE5D,MAAMC,KAAK,MAAMR,eAAe,IAAI,EAAEK;IACtC,MAAMH,aAAa,IAAI,CAACO,OAAO,CAACC,WAAW,CAACP,eAAe,CAACQ,MAAM;IAElE,MAAMC,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAAChB,YAAYI,WAAWa,IAAI;IAEnE,MAAMC,SAAS,MAAMjB,UAAU;QAC7BkB,SAAS,IAAI;QACbb;QACAI;QACAU,QAAQhB,WAAWiB,eAAe;QAClCC,cAAcd,cAAc;QAC5Be,WAAW;QACXhB;QACAE;QACAK;IACF;IAEA,IAAIN,cAAc,OAAO;QACvB,OAAO;IACT;IAEA,OAAOU;AACT,EAAC"}
1
+ {"version":3,"sources":["../src/create.ts"],"sourcesContent":["import type { Create } 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 const create: Create = async function create(\n this: DrizzleAdapter,\n { collection: collectionSlug, data, req, select, returning },\n) {\n const db = await getTransaction(this, req)\n const collection = this.payload.collections[collectionSlug].config\n\n const tableName = this.tableNameMap.get(toSnakeCase(collection.slug))\n\n const result = await upsertRow({\n adapter: this,\n data,\n db,\n fields: collection.flattenedFields,\n operation: 'create',\n req,\n select,\n tableName,\n ignoreResult: returning === false,\n })\n\n if (returning === false) {\n return null\n }\n\n return result\n}\n"],"names":["toSnakeCase","upsertRow","getTransaction","create","collection","collectionSlug","data","req","select","returning","db","payload","collections","config","tableName","tableNameMap","get","slug","result","adapter","fields","flattenedFields","operation","ignoreResult"],"mappings":"AAEA,OAAOA,iBAAiB,gBAAe;AAIvC,SAASC,SAAS,QAAQ,uBAAsB;AAChD,SAASC,cAAc,QAAQ,gCAA+B;AAE9D,OAAO,MAAMC,SAAiB,eAAeA,OAE3C,EAAEC,YAAYC,cAAc,EAAEC,IAAI,EAAEC,GAAG,EAAEC,MAAM,EAAEC,SAAS,EAAE;IAE5D,MAAMC,KAAK,MAAMR,eAAe,IAAI,EAAEK;IACtC,MAAMH,aAAa,IAAI,CAACO,OAAO,CAACC,WAAW,CAACP,eAAe,CAACQ,MAAM;IAElE,MAAMC,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAAChB,YAAYI,WAAWa,IAAI;IAEnE,MAAMC,SAAS,MAAMjB,UAAU;QAC7BkB,SAAS,IAAI;QACbb;QACAI;QACAU,QAAQhB,WAAWiB,eAAe;QAClCC,WAAW;QACXf;QACAC;QACAM;QACAS,cAAcd,cAAc;IAC9B;IAEA,IAAIA,cAAc,OAAO;QACvB,OAAO;IACT;IAEA,OAAOS;AACT,EAAC"}
@@ -11,10 +11,10 @@ export async function createGlobal({ slug, data, req, returning }) {
11
11
  data,
12
12
  db,
13
13
  fields: globalConfig.flattenedFields,
14
- ignoreResult: returning === false,
15
14
  operation: 'create',
16
15
  req,
17
- tableName
16
+ tableName,
17
+ ignoreResult: returning === false
18
18
  });
19
19
  if (returning === false) {
20
20
  return null;
@@ -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 db = await getTransaction(this, req)\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 result = await upsertRow<{ globalType: string } & T>({\n adapter: this,\n data,\n db,\n fields: globalConfig.flattenedFields,\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","db","globalConfig","payload","globals","config","find","tableName","tableNameMap","get","createdAt","Date","toISOString","result","adapter","fields","flattenedFields","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,KAAK,MAAMN,eAAe,IAAI,EAAEI;IACtC,MAAMG,eAAe,IAAI,CAACC,OAAO,CAACC,OAAO,CAACC,MAAM,CAACC,IAAI,CAAC,CAACD,SAAWA,OAAOR,IAAI,KAAKA;IAElF,MAAMU,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAAChB,YAAYS,aAAaL,IAAI;IAErEC,KAAKY,SAAS,GAAG,IAAIC,OAAOC,WAAW;IAEvC,MAAMC,SAAS,MAAMnB,UAAsC;QACzDoB,SAAS,IAAI;QACbhB;QACAG;QACAc,QAAQb,aAAac,eAAe;QACpCC,cAAcjB,cAAc;QAC5BkB,WAAW;QACXnB;QACAQ;IACF;IAEA,IAAIP,cAAc,OAAO;QACvB,OAAO;IACT;IAEAa,OAAOM,UAAU,GAAGtB;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 { 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 db = await getTransaction(this, req)\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 result = await upsertRow<{ globalType: string } & T>({\n adapter: this,\n data,\n db,\n fields: globalConfig.flattenedFields,\n operation: 'create',\n req,\n tableName,\n ignoreResult: returning === false,\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","db","globalConfig","payload","globals","config","find","tableName","tableNameMap","get","createdAt","Date","toISOString","result","adapter","fields","flattenedFields","operation","ignoreResult","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,KAAK,MAAMN,eAAe,IAAI,EAAEI;IACtC,MAAMG,eAAe,IAAI,CAACC,OAAO,CAACC,OAAO,CAACC,MAAM,CAACC,IAAI,CAAC,CAACD,SAAWA,OAAOR,IAAI,KAAKA;IAElF,MAAMU,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAAChB,YAAYS,aAAaL,IAAI;IAErEC,KAAKY,SAAS,GAAG,IAAIC,OAAOC,WAAW;IAEvC,MAAMC,SAAS,MAAMnB,UAAsC;QACzDoB,SAAS,IAAI;QACbhB;QACAG;QACAc,QAAQb,aAAac,eAAe;QACpCC,WAAW;QACXlB;QACAQ;QACAW,cAAclB,cAAc;IAC9B;IAEA,IAAIA,cAAc,OAAO;QACvB,OAAO;IACT;IAEAa,OAAOM,UAAU,GAAGtB;IAEpB,OAAOgB;AACT"}
@@ -1,4 +1,4 @@
1
1
  import type { CreateGlobalVersionArgs, TypeWithID, TypeWithVersion } from 'payload';
2
2
  import type { DrizzleAdapter } from './types.js';
3
- export declare function createGlobalVersion<T extends TypeWithID>(this: DrizzleAdapter, { autosave, createdAt, globalSlug, publishedLocale, req, returning, select, snapshot, updatedAt, versionData, }: CreateGlobalVersionArgs): Promise<TypeWithVersion<T>>;
3
+ export declare function createGlobalVersion<T extends TypeWithID>(this: DrizzleAdapter, { autosave, createdAt, globalSlug, publishedLocale, req, select, snapshot, updatedAt, versionData, returning, }: CreateGlobalVersionArgs): Promise<TypeWithVersion<T>>;
4
4
  //# sourceMappingURL=createGlobalVersion.d.ts.map
@@ -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;AAMnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAKhD,wBAAsB,mBAAmB,CAAC,CAAC,SAAS,UAAU,EAC5D,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,+BA4C3B"}
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;AAMnF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAKhD,wBAAsB,mBAAmB,CAAC,CAAC,SAAS,UAAU,EAC5D,IAAI,EAAE,cAAc,EACpB,EACE,QAAQ,EACR,SAAS,EACT,UAAU,EACV,eAAe,EACf,GAAG,EACH,MAAM,EACN,QAAQ,EACR,SAAS,EACT,WAAW,EACX,SAAS,GACV,EAAE,uBAAuB,+BA4C3B"}
@@ -3,7 +3,7 @@ import { buildVersionGlobalFields } from 'payload';
3
3
  import toSnakeCase from 'to-snake-case';
4
4
  import { upsertRow } from './upsertRow/index.js';
5
5
  import { getTransaction } from './utilities/getTransaction.js';
6
- export async function createGlobalVersion({ autosave, createdAt, globalSlug, publishedLocale, req, returning, select, snapshot, updatedAt, versionData }) {
6
+ export async function createGlobalVersion({ autosave, createdAt, globalSlug, publishedLocale, req, select, snapshot, updatedAt, versionData, returning }) {
7
7
  const db = await getTransaction(this, req);
8
8
  const global = this.payload.globals.config.find(({ slug })=>slug === globalSlug);
9
9
  const tableName = this.tableNameMap.get(`_${toSnakeCase(global.slug)}${this.versionsSuffix}`);
@@ -20,11 +20,11 @@ export async function createGlobalVersion({ autosave, createdAt, globalSlug, pub
20
20
  },
21
21
  db,
22
22
  fields: buildVersionGlobalFields(this.payload.config, global, true),
23
- ignoreResult: returning === false ? 'idOnly' : false,
24
23
  operation: 'create',
25
24
  req,
26
25
  select,
27
- tableName
26
+ tableName,
27
+ ignoreResult: returning === false ? 'idOnly' : false
28
28
  });
29
29
  const table = this.tables[tableName];
30
30
  if (global.versions.drafts) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/createGlobalVersion.ts"],"sourcesContent":["import type { CreateGlobalVersionArgs, TypeWithID, TypeWithVersion } from 'payload'\n\nimport { sql } from 'drizzle-orm'\nimport { buildVersionGlobalFields } from 'payload'\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 TypeWithID>(\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) {\n const db = await getTransaction(this, req)\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 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 ignoreResult: returning === false ? 'idOnly' : false,\n operation: 'create',\n req,\n select,\n tableName,\n })\n\n const table = this.tables[tableName]\n if (global.versions.drafts) {\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","toSnakeCase","upsertRow","getTransaction","createGlobalVersion","autosave","createdAt","globalSlug","publishedLocale","req","returning","select","snapshot","updatedAt","versionData","db","global","payload","globals","config","find","slug","tableName","tableNameMap","get","versionsSuffix","result","adapter","data","latest","version","fields","ignoreResult","operation","table","tables","versions","drafts","execute","id"],"mappings":"AAEA,SAASA,GAAG,QAAQ,cAAa;AACjC,SAASC,wBAAwB,QAAQ,UAAS;AAClD,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,KAAK,MAAMZ,eAAe,IAAI,EAAEM;IACtC,MAAMO,SAAS,IAAI,CAACC,OAAO,CAACC,OAAO,CAACC,MAAM,CAACC,IAAI,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAKA,SAASd;IAEvE,MAAMe,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAAC,CAAC,CAAC,EAAEvB,YAAYe,OAAOK,IAAI,IAAI,IAAI,CAACI,cAAc,EAAE;IAE5F,MAAMC,SAAS,MAAMxB,UAA8B;QACjDyB,SAAS,IAAI;QACbC,MAAM;YACJvB;YACAC;YACAuB,QAAQ;YACRrB;YACAI;YACAC;YACAiB,SAAShB;QACX;QACAC;QACAgB,QAAQ/B,yBAAyB,IAAI,CAACiB,OAAO,CAACE,MAAM,EAAEH,QAAQ;QAC9DgB,cAActB,cAAc,QAAQ,WAAW;QAC/CuB,WAAW;QACXxB;QACAE;QACAW;IACF;IAEA,MAAMY,QAAQ,IAAI,CAACC,MAAM,CAACb,UAAU;IACpC,IAAIN,OAAOoB,QAAQ,CAACC,MAAM,EAAE;QAC1B,MAAM,IAAI,CAACC,OAAO,CAAC;YACjBvB;YACAhB,KAAKA,GAAG,CAAC;iBACE,EAAEmC,MAAM;;gBAET,EAAEA,MAAMK,EAAE,CAAC,IAAI,EAAEb,OAAOa,EAAE,CAAC;QACnC,CAAC;QACL;IACF;IAEA,IAAI7B,cAAc,OAAO;QACvB,OAAO;IACT;IAEA,OAAOgB;AACT"}
1
+ {"version":3,"sources":["../src/createGlobalVersion.ts"],"sourcesContent":["import type { CreateGlobalVersionArgs, TypeWithID, TypeWithVersion } from 'payload'\n\nimport { sql } from 'drizzle-orm'\nimport { buildVersionGlobalFields } from 'payload'\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 TypeWithID>(\n this: DrizzleAdapter,\n {\n autosave,\n createdAt,\n globalSlug,\n publishedLocale,\n req,\n select,\n snapshot,\n updatedAt,\n versionData,\n returning,\n }: CreateGlobalVersionArgs,\n) {\n const db = await getTransaction(this, req)\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 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 operation: 'create',\n req,\n select,\n tableName,\n ignoreResult: returning === false ? 'idOnly' : false,\n })\n\n const table = this.tables[tableName]\n if (global.versions.drafts) {\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","toSnakeCase","upsertRow","getTransaction","createGlobalVersion","autosave","createdAt","globalSlug","publishedLocale","req","select","snapshot","updatedAt","versionData","returning","db","global","payload","globals","config","find","slug","tableName","tableNameMap","get","versionsSuffix","result","adapter","data","latest","version","fields","operation","ignoreResult","table","tables","versions","drafts","execute","id"],"mappings":"AAEA,SAASA,GAAG,QAAQ,cAAa;AACjC,SAASC,wBAAwB,QAAQ,UAAS;AAClD,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,MAAM,EACNC,QAAQ,EACRC,SAAS,EACTC,WAAW,EACXC,SAAS,EACe;IAE1B,MAAMC,KAAK,MAAMZ,eAAe,IAAI,EAAEM;IACtC,MAAMO,SAAS,IAAI,CAACC,OAAO,CAACC,OAAO,CAACC,MAAM,CAACC,IAAI,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAKA,SAASd;IAEvE,MAAMe,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAAC,CAAC,CAAC,EAAEvB,YAAYe,OAAOK,IAAI,IAAI,IAAI,CAACI,cAAc,EAAE;IAE5F,MAAMC,SAAS,MAAMxB,UAA8B;QACjDyB,SAAS,IAAI;QACbC,MAAM;YACJvB;YACAC;YACAuB,QAAQ;YACRrB;YACAG;YACAC;YACAkB,SAASjB;QACX;QACAE;QACAgB,QAAQ/B,yBAAyB,IAAI,CAACiB,OAAO,CAACE,MAAM,EAAEH,QAAQ;QAC9DgB,WAAW;QACXvB;QACAC;QACAY;QACAW,cAAcnB,cAAc,QAAQ,WAAW;IACjD;IAEA,MAAMoB,QAAQ,IAAI,CAACC,MAAM,CAACb,UAAU;IACpC,IAAIN,OAAOoB,QAAQ,CAACC,MAAM,EAAE;QAC1B,MAAM,IAAI,CAACC,OAAO,CAAC;YACjBvB;YACAhB,KAAKA,GAAG,CAAC;iBACE,EAAEmC,MAAM;;gBAET,EAAEA,MAAMK,EAAE,CAAC,IAAI,EAAEb,OAAOa,EAAE,CAAC;QACnC,CAAC;QACL;IACF;IAEA,IAAIzB,cAAc,OAAO;QACvB,OAAO;IACT;IAEA,OAAOY;AACT"}
@@ -1,4 +1,4 @@
1
1
  import type { CreateVersionArgs, TypeWithID, TypeWithVersion } from 'payload';
2
2
  import type { DrizzleAdapter } from './types.js';
3
- export declare function createVersion<T extends TypeWithID>(this: DrizzleAdapter, { autosave, collectionSlug, createdAt, parent, publishedLocale, req, returning, select, snapshot, updatedAt, versionData, }: CreateVersionArgs<T>): Promise<TypeWithVersion<T>>;
3
+ export declare function createVersion<T extends TypeWithID>(this: DrizzleAdapter, { autosave, collectionSlug, createdAt, parent, publishedLocale, req, select, snapshot, updatedAt, versionData, returning, }: CreateVersionArgs<T>): Promise<TypeWithVersion<T>>;
4
4
  //# sourceMappingURL=createVersion.d.ts.map
@@ -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;AAM7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAKhD,wBAAsB,aAAa,CAAC,CAAC,SAAS,UAAU,EACtD,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,+BAuDxB"}
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;AAM7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAKhD,wBAAsB,aAAa,CAAC,CAAC,SAAS,UAAU,EACtD,IAAI,EAAE,cAAc,EACpB,EACE,QAAQ,EACR,cAAc,EACd,SAAS,EACT,MAAM,EACN,eAAe,EACf,GAAG,EACH,MAAM,EACN,QAAQ,EACR,SAAS,EACT,WAAW,EACX,SAAS,GACV,EAAE,iBAAiB,CAAC,CAAC,CAAC,+BAuDxB"}
@@ -3,7 +3,7 @@ import { buildVersionCollectionFields } from 'payload';
3
3
  import toSnakeCase from 'to-snake-case';
4
4
  import { upsertRow } from './upsertRow/index.js';
5
5
  import { getTransaction } from './utilities/getTransaction.js';
6
- export async function createVersion({ autosave, collectionSlug, createdAt, parent, publishedLocale, req, returning, select, snapshot, updatedAt, versionData }) {
6
+ export async function createVersion({ autosave, collectionSlug, createdAt, parent, publishedLocale, req, select, snapshot, updatedAt, versionData, returning }) {
7
7
  const db = await getTransaction(this, req);
8
8
  const collection = this.payload.collections[collectionSlug].config;
9
9
  const defaultTableName = toSnakeCase(collection.slug);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/createVersion.ts"],"sourcesContent":["import type { CreateVersionArgs, TypeWithID, TypeWithVersion } from 'payload'\n\nimport { sql } from 'drizzle-orm'\nimport { buildVersionCollectionFields } from 'payload'\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 TypeWithID>(\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) {\n const db = await getTransaction(this, req)\n const collection = this.payload.collections[collectionSlug].config\n const defaultTableName = toSnakeCase(collection.slug)\n\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 result = await upsertRow<TypeWithVersion<T>>({\n adapter: this,\n data,\n db,\n fields: buildVersionCollectionFields(this.payload.config, collection, true),\n operation: 'create',\n req,\n select,\n tableName,\n })\n\n const table = this.tables[tableName]\n\n if (collection.versions.drafts) {\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}\n `,\n })\n }\n\n if (returning === false) {\n return null\n }\n\n return result\n}\n"],"names":["sql","buildVersionCollectionFields","toSnakeCase","upsertRow","getTransaction","createVersion","autosave","collectionSlug","createdAt","parent","publishedLocale","req","returning","select","snapshot","updatedAt","versionData","db","collection","payload","collections","config","defaultTableName","slug","tableName","tableNameMap","get","versionsSuffix","version","id","data","latest","result","adapter","fields","operation","table","tables","versions","drafts","execute"],"mappings":"AAEA,SAASA,GAAG,QAAQ,cAAa;AACjC,SAASC,4BAA4B,QAAQ,UAAS;AACtD,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,KAAK,MAAMb,eAAe,IAAI,EAAEO;IACtC,MAAMO,aAAa,IAAI,CAACC,OAAO,CAACC,WAAW,CAACb,eAAe,CAACc,MAAM;IAClE,MAAMC,mBAAmBpB,YAAYgB,WAAWK,IAAI;IAEpD,MAAMC,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAAC,CAAC,CAAC,EAAEJ,mBAAmB,IAAI,CAACK,cAAc,EAAE;IAEpF,MAAMC,UAAU;QAAE,GAAGZ,WAAW;IAAC;IACjC,IAAIY,QAAQC,EAAE,EAAE;QACd,OAAOD,QAAQC,EAAE;IACnB;IAEA,MAAMC,OAAgC;QACpCxB;QACAE;QACAuB,QAAQ;QACRtB;QACAC;QACAI;QACAC;QACAa;IACF;IAEA,MAAMI,SAAS,MAAM7B,UAA8B;QACjD8B,SAAS,IAAI;QACbH;QACAb;QACAiB,QAAQjC,6BAA6B,IAAI,CAACkB,OAAO,CAACE,MAAM,EAAEH,YAAY;QACtEiB,WAAW;QACXxB;QACAE;QACAW;IACF;IAEA,MAAMY,QAAQ,IAAI,CAACC,MAAM,CAACb,UAAU;IAEpC,IAAIN,WAAWoB,QAAQ,CAACC,MAAM,EAAE;QAC9B,MAAM,IAAI,CAACC,OAAO,CAAC;YACjBvB;YACAjB,KAAKA,GAAG,CAAC;eACA,EAAEoC,MAAM;;cAET,EAAEA,MAAMP,EAAE,CAAC,IAAI,EAAEG,OAAOH,EAAE,CAAC;cAC3B,EAAEO,MAAM3B,MAAM,CAAC,GAAG,EAAEA,OAAO;cAC3B,EAAE2B,MAAMrB,SAAS,CAAC,GAAG,EAAEiB,OAAOjB,SAAS,CAAC;MAChD,CAAC;QACH;IACF;IAEA,IAAIH,cAAc,OAAO;QACvB,OAAO;IACT;IAEA,OAAOoB;AACT"}
1
+ {"version":3,"sources":["../src/createVersion.ts"],"sourcesContent":["import type { CreateVersionArgs, TypeWithID, TypeWithVersion } from 'payload'\n\nimport { sql } from 'drizzle-orm'\nimport { buildVersionCollectionFields } from 'payload'\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 TypeWithID>(\n this: DrizzleAdapter,\n {\n autosave,\n collectionSlug,\n createdAt,\n parent,\n publishedLocale,\n req,\n select,\n snapshot,\n updatedAt,\n versionData,\n returning,\n }: CreateVersionArgs<T>,\n) {\n const db = await getTransaction(this, req)\n const collection = this.payload.collections[collectionSlug].config\n const defaultTableName = toSnakeCase(collection.slug)\n\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 result = await upsertRow<TypeWithVersion<T>>({\n adapter: this,\n data,\n db,\n fields: buildVersionCollectionFields(this.payload.config, collection, true),\n operation: 'create',\n req,\n select,\n tableName,\n })\n\n const table = this.tables[tableName]\n\n if (collection.versions.drafts) {\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}\n `,\n })\n }\n\n if (returning === false) {\n return null\n }\n\n return result\n}\n"],"names":["sql","buildVersionCollectionFields","toSnakeCase","upsertRow","getTransaction","createVersion","autosave","collectionSlug","createdAt","parent","publishedLocale","req","select","snapshot","updatedAt","versionData","returning","db","collection","payload","collections","config","defaultTableName","slug","tableName","tableNameMap","get","versionsSuffix","version","id","data","latest","result","adapter","fields","operation","table","tables","versions","drafts","execute"],"mappings":"AAEA,SAASA,GAAG,QAAQ,cAAa;AACjC,SAASC,4BAA4B,QAAQ,UAAS;AACtD,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,MAAM,EACNC,QAAQ,EACRC,SAAS,EACTC,WAAW,EACXC,SAAS,EACY;IAEvB,MAAMC,KAAK,MAAMb,eAAe,IAAI,EAAEO;IACtC,MAAMO,aAAa,IAAI,CAACC,OAAO,CAACC,WAAW,CAACb,eAAe,CAACc,MAAM;IAClE,MAAMC,mBAAmBpB,YAAYgB,WAAWK,IAAI;IAEpD,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;QACpCxB;QACAE;QACAuB,QAAQ;QACRtB;QACAC;QACAG;QACAC;QACAc;IACF;IAEA,MAAMI,SAAS,MAAM7B,UAA8B;QACjD8B,SAAS,IAAI;QACbH;QACAb;QACAiB,QAAQjC,6BAA6B,IAAI,CAACkB,OAAO,CAACE,MAAM,EAAEH,YAAY;QACtEiB,WAAW;QACXxB;QACAC;QACAY;IACF;IAEA,MAAMY,QAAQ,IAAI,CAACC,MAAM,CAACb,UAAU;IAEpC,IAAIN,WAAWoB,QAAQ,CAACC,MAAM,EAAE;QAC9B,MAAM,IAAI,CAACC,OAAO,CAAC;YACjBvB;YACAjB,KAAKA,GAAG,CAAC;eACA,EAAEoC,MAAM;;cAET,EAAEA,MAAMP,EAAE,CAAC,IAAI,EAAEG,OAAOH,EAAE,CAAC;cAC3B,EAAEO,MAAM3B,MAAM,CAAC,GAAG,EAAEA,OAAO;cAC3B,EAAE2B,MAAMtB,SAAS,CAAC,GAAG,EAAEkB,OAAOlB,SAAS,CAAC;MAChD,CAAC;QACH;IACF;IAEA,IAAIE,cAAc,OAAO;QACvB,OAAO;IACT;IAEA,OAAOgB;AACT"}
package/dist/deleteOne.js CHANGED
@@ -5,7 +5,7 @@ import buildQuery from './queries/buildQuery.js';
5
5
  import { selectDistinct } from './queries/selectDistinct.js';
6
6
  import { transform } from './transform/read/index.js';
7
7
  import { getTransaction } from './utilities/getTransaction.js';
8
- export const deleteOne = async function deleteOne({ collection: collectionSlug, req, returning, select, where: whereArg }) {
8
+ export const deleteOne = async function deleteOne({ collection: collectionSlug, req, select, where: whereArg, returning }) {
9
9
  const db = await getTransaction(this, req);
10
10
  const collection = this.payload.collections[collectionSlug].config;
11
11
  const tableName = this.tableNameMap.get(toSnakeCase(collection.slug));
@@ -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'\n\nexport const deleteOne: DeleteOne = async function deleteOne(\n this: DrizzleAdapter,\n { collection: collectionSlug, req, returning, select, where: whereArg },\n) {\n const db = await getTransaction(this, req)\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 selectDistinctResult = await selectDistinct({\n adapter: this,\n chainedMethods: [{ args: [1], method: 'limit' }],\n db,\n joins,\n selectFields,\n tableName,\n where,\n })\n\n if (selectDistinctResult?.[0]?.id) {\n 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 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 })\n\n await this.deleteWhere({\n db,\n tableName,\n where: eq(this.tables[tableName].id, docToDelete.id),\n })\n\n return result\n}\n"],"names":["eq","toSnakeCase","buildFindManyArgs","buildQuery","selectDistinct","transform","getTransaction","deleteOne","collection","collectionSlug","req","returning","select","where","whereArg","db","payload","collections","config","tableName","tableNameMap","get","slug","docToDelete","joins","selectFields","adapter","fields","flattenedFields","locale","selectDistinctResult","chainedMethods","args","method","id","query","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,OAAOC,gBAAgB,0BAAyB;AAChD,SAASC,cAAc,QAAQ,8BAA6B;AAC5D,SAASC,SAAS,QAAQ,4BAA2B;AACrD,SAASC,cAAc,QAAQ,gCAA+B;AAE9D,OAAO,MAAMC,YAAuB,eAAeA,UAEjD,EAAEC,YAAYC,cAAc,EAAEC,GAAG,EAAEC,SAAS,EAAEC,MAAM,EAAEC,OAAOC,QAAQ,EAAE;IAEvE,MAAMC,KAAK,MAAMT,eAAe,IAAI,EAAEI;IACtC,MAAMF,aAAa,IAAI,CAACQ,OAAO,CAACC,WAAW,CAACR,eAAe,CAACS,MAAM;IAElE,MAAMC,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAACpB,YAAYO,WAAWc,IAAI;IAEnE,IAAIC;IAEJ,MAAM,EAAEC,KAAK,EAAEC,YAAY,EAAEZ,KAAK,EAAE,GAAGV,WAAW;QAChDuB,SAAS,IAAI;QACbC,QAAQnB,WAAWoB,eAAe;QAClCC,QAAQnB,KAAKmB;QACbV;QACAN,OAAOC;IACT;IAEA,MAAMgB,uBAAuB,MAAM1B,eAAe;QAChDsB,SAAS,IAAI;QACbK,gBAAgB;YAAC;gBAAEC,MAAM;oBAAC;iBAAE;gBAAEC,QAAQ;YAAQ;SAAE;QAChDlB;QACAS;QACAC;QACAN;QACAN;IACF;IAEA,IAAIiB,sBAAsB,CAAC,EAAE,EAAEI,IAAI;QACjCX,cAAc,MAAMR,GAAGoB,KAAK,CAAChB,UAAU,CAACiB,SAAS,CAAC;YAChDvB,OAAOb,GAAG,IAAI,CAACqC,MAAM,CAAClB,UAAU,CAACe,EAAE,EAAEJ,oBAAoB,CAAC,EAAE,CAACI,EAAE;QACjE;IACF,OAAO;QACL,MAAMI,eAAepC,kBAAkB;YACrCwB,SAAS,IAAI;YACba,OAAO;YACPZ,QAAQnB,WAAWoB,eAAe;YAClCY,WAAW;YACX5B;YACAO;QACF;QAEAmB,aAAazB,KAAK,GAAGA;QAErBU,cAAc,MAAMR,GAAGoB,KAAK,CAAChB,UAAU,CAACiB,SAAS,CAACE;IACpD;IAEA,MAAMG,SACJ9B,cAAc,QACV,OACAN,UAAU;QACRqB,SAAS,IAAI;QACbR,QAAQ,IAAI,CAACF,OAAO,CAACE,MAAM;QAC3BwB,MAAMnB;QACNI,QAAQnB,WAAWoB,eAAe;QAClCY,WAAW;IACb;IAEN,MAAM,IAAI,CAACG,WAAW,CAAC;QACrB5B;QACAI;QACAN,OAAOb,GAAG,IAAI,CAACqC,MAAM,CAAClB,UAAU,CAACe,EAAE,EAAEX,YAAYW,EAAE;IACrD;IAEA,OAAOO;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 { getTransaction } from './utilities/getTransaction.js'\n\nexport const deleteOne: DeleteOne = async function deleteOne(\n this: DrizzleAdapter,\n { collection: collectionSlug, req, select, where: whereArg, returning },\n) {\n const db = await getTransaction(this, req)\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 selectDistinctResult = await selectDistinct({\n adapter: this,\n chainedMethods: [{ args: [1], method: 'limit' }],\n db,\n joins,\n selectFields,\n tableName,\n where,\n })\n\n if (selectDistinctResult?.[0]?.id) {\n 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 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 })\n\n await this.deleteWhere({\n db,\n tableName,\n where: eq(this.tables[tableName].id, docToDelete.id),\n })\n\n return result\n}\n"],"names":["eq","toSnakeCase","buildFindManyArgs","buildQuery","selectDistinct","transform","getTransaction","deleteOne","collection","collectionSlug","req","select","where","whereArg","returning","db","payload","collections","config","tableName","tableNameMap","get","slug","docToDelete","joins","selectFields","adapter","fields","flattenedFields","locale","selectDistinctResult","chainedMethods","args","method","id","query","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,OAAOC,gBAAgB,0BAAyB;AAChD,SAASC,cAAc,QAAQ,8BAA6B;AAC5D,SAASC,SAAS,QAAQ,4BAA2B;AACrD,SAASC,cAAc,QAAQ,gCAA+B;AAE9D,OAAO,MAAMC,YAAuB,eAAeA,UAEjD,EAAEC,YAAYC,cAAc,EAAEC,GAAG,EAAEC,MAAM,EAAEC,OAAOC,QAAQ,EAAEC,SAAS,EAAE;IAEvE,MAAMC,KAAK,MAAMT,eAAe,IAAI,EAAEI;IACtC,MAAMF,aAAa,IAAI,CAACQ,OAAO,CAACC,WAAW,CAACR,eAAe,CAACS,MAAM;IAElE,MAAMC,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAACpB,YAAYO,WAAWc,IAAI;IAEnE,IAAIC;IAEJ,MAAM,EAAEC,KAAK,EAAEC,YAAY,EAAEb,KAAK,EAAE,GAAGT,WAAW;QAChDuB,SAAS,IAAI;QACbC,QAAQnB,WAAWoB,eAAe;QAClCC,QAAQnB,KAAKmB;QACbV;QACAP,OAAOC;IACT;IAEA,MAAMiB,uBAAuB,MAAM1B,eAAe;QAChDsB,SAAS,IAAI;QACbK,gBAAgB;YAAC;gBAAEC,MAAM;oBAAC;iBAAE;gBAAEC,QAAQ;YAAQ;SAAE;QAChDlB;QACAS;QACAC;QACAN;QACAP;IACF;IAEA,IAAIkB,sBAAsB,CAAC,EAAE,EAAEI,IAAI;QACjCX,cAAc,MAAMR,GAAGoB,KAAK,CAAChB,UAAU,CAACiB,SAAS,CAAC;YAChDxB,OAAOZ,GAAG,IAAI,CAACqC,MAAM,CAAClB,UAAU,CAACe,EAAE,EAAEJ,oBAAoB,CAAC,EAAE,CAACI,EAAE;QACjE;IACF,OAAO;QACL,MAAMI,eAAepC,kBAAkB;YACrCwB,SAAS,IAAI;YACba,OAAO;YACPZ,QAAQnB,WAAWoB,eAAe;YAClCY,WAAW;YACX7B;YACAQ;QACF;QAEAmB,aAAa1B,KAAK,GAAGA;QAErBW,cAAc,MAAMR,GAAGoB,KAAK,CAAChB,UAAU,CAACiB,SAAS,CAACE;IACpD;IAEA,MAAMG,SACJ3B,cAAc,QACV,OACAT,UAAU;QACRqB,SAAS,IAAI;QACbR,QAAQ,IAAI,CAACF,OAAO,CAACE,MAAM;QAC3BwB,MAAMnB;QACNI,QAAQnB,WAAWoB,eAAe;QAClCY,WAAW;IACb;IAEN,MAAM,IAAI,CAACG,WAAW,CAAC;QACrB5B;QACAI;QACAP,OAAOZ,GAAG,IAAI,CAACqC,MAAM,CAAClB,UAAU,CAACe,EAAE,EAAEX,YAAYW,EAAE;IACrD;IAEA,OAAOO;AACT,EAAC"}
@@ -1,4 +1,4 @@
1
- import type { FlattenedField } from 'payload';
1
+ import type { FlattenedField, SanitizedCompoundIndex } from 'payload';
2
2
  import type { DrizzleAdapter, IDType, RawColumn, RawForeignKey, RawIndex, RelationMap, SetColumnID } from '../types.js';
3
3
  type Args = {
4
4
  adapter: DrizzleAdapter;
@@ -15,6 +15,7 @@ type Args = {
15
15
  baseIndexes?: Record<string, RawIndex>;
16
16
  buildNumbers?: boolean;
17
17
  buildRelationships?: boolean;
18
+ compoundIndexes?: SanitizedCompoundIndex[];
18
19
  disableNotNull: boolean;
19
20
  disableRelsTableUnique?: boolean;
20
21
  disableUnique: boolean;
@@ -43,6 +44,6 @@ type Result = {
43
44
  hasManyTextField: 'index' | boolean;
44
45
  relationsToBuild: RelationMap;
45
46
  };
46
- export declare const buildTable: ({ adapter, baseColumns, baseForeignKeys, baseIndexes, disableNotNull, disableRelsTableUnique, disableUnique, fields, parentIsLocalized, rootRelationships, rootRelationsToBuild, rootTableIDColType, rootTableName: incomingRootTableName, rootUniqueRelationships, setColumnID, tableName, timestamps, versions, withinLocalizedArrayOrBlock, }: Args) => Result;
47
+ export declare const buildTable: ({ adapter, baseColumns, baseForeignKeys, baseIndexes, compoundIndexes, disableNotNull, disableRelsTableUnique, disableUnique, fields, parentIsLocalized, rootRelationships, rootRelationsToBuild, rootTableIDColType, rootTableName: incomingRootTableName, rootUniqueRelationships, setColumnID, tableName, timestamps, versions, withinLocalizedArrayOrBlock, }: Args) => Result;
47
48
  export {};
48
49
  //# sourceMappingURL=build.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/schema/build.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAI7C,OAAO,KAAK,EACV,cAAc,EACd,MAAM,EACN,SAAS,EACT,aAAa,EACb,QAAQ,EAGR,WAAW,EACX,WAAW,EACZ,MAAM,aAAa,CAAA;AAMpB,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,cAAc,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACvC;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAC/C;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACtC,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,cAAc,EAAE,OAAO,CAAA;IACvB,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,aAAa,EAAE,OAAO,CAAA;IACtB,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC/B,oBAAoB,CAAC,EAAE,WAAW,CAAA;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,uBAAuB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACrC,WAAW,EAAE,WAAW,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,OAAO,CAAA;IACjB;;;OAGG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAA;CACtC,CAAA;AAED,KAAK,MAAM,GAAG;IACZ,2BAA2B,EAAE,OAAO,CAAA;IACpC,yBAAyB,EAAE,OAAO,CAAA;IAClC,6BAA6B,EAAE,OAAO,CAAA;IACtC,kBAAkB,EAAE,OAAO,GAAG,OAAO,CAAA;IACrC,gBAAgB,EAAE,OAAO,GAAG,OAAO,CAAA;IACnC,gBAAgB,EAAE,WAAW,CAAA;CAC9B,CAAA;AAED,eAAO,MAAM,UAAU,qVAoBpB,IAAI,KAAG,MA8mBT,CAAA"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/schema/build.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAKrE,OAAO,KAAK,EACV,cAAc,EACd,MAAM,EACN,SAAS,EACT,aAAa,EACb,QAAQ,EAGR,WAAW,EACX,WAAW,EACZ,MAAM,aAAa,CAAA;AAMpB,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,cAAc,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACvC;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAC/C;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACtC,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,eAAe,CAAC,EAAE,sBAAsB,EAAE,CAAA;IAC1C,cAAc,EAAE,OAAO,CAAA;IACvB,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,aAAa,EAAE,OAAO,CAAA;IACtB,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC/B,oBAAoB,CAAC,EAAE,WAAW,CAAA;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,uBAAuB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACrC,WAAW,EAAE,WAAW,CAAA;IACxB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,OAAO,CAAA;IACjB;;;OAGG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAA;CACtC,CAAA;AAED,KAAK,MAAM,GAAG;IACZ,2BAA2B,EAAE,OAAO,CAAA;IACpC,yBAAyB,EAAE,OAAO,CAAA;IAClC,6BAA6B,EAAE,OAAO,CAAA;IACtC,kBAAkB,EAAE,OAAO,GAAG,OAAO,CAAA;IACrC,gBAAgB,EAAE,OAAO,GAAG,OAAO,CAAA;IACnC,gBAAgB,EAAE,WAAW,CAAA;CAC9B,CAAA;AAED,eAAO,MAAM,UAAU,sWAqBpB,IAAI,KAAG,MAqqBT,CAAA"}
@@ -1,8 +1,9 @@
1
+ import { InvalidConfiguration } from 'payload';
1
2
  import toSnakeCase from 'to-snake-case';
2
3
  import { createTableName } from '../createTableName.js';
3
4
  import { buildIndexName } from '../utilities/buildIndexName.js';
4
5
  import { traverseFields } from './traverseFields.js';
5
- export const buildTable = ({ adapter, baseColumns = {}, baseForeignKeys = {}, baseIndexes = {}, disableNotNull, disableRelsTableUnique = false, disableUnique = false, fields, parentIsLocalized, rootRelationships, rootRelationsToBuild, rootTableIDColType, rootTableName: incomingRootTableName, rootUniqueRelationships, setColumnID, tableName, timestamps, versions, withinLocalizedArrayOrBlock })=>{
6
+ export const buildTable = ({ adapter, baseColumns = {}, baseForeignKeys = {}, baseIndexes = {}, compoundIndexes, disableNotNull, disableRelsTableUnique = false, disableUnique = false, fields, parentIsLocalized, rootRelationships, rootRelationsToBuild, rootTableIDColType, rootTableName: incomingRootTableName, rootUniqueRelationships, setColumnID, tableName, timestamps, versions, withinLocalizedArrayOrBlock })=>{
6
7
  const isRoot = !incomingRootTableName;
7
8
  const rootTableName = incomingRootTableName || tableName;
8
9
  const columns = baseColumns;
@@ -175,6 +176,48 @@ export const buildTable = ({ adapter, baseColumns = {}, baseForeignKeys = {}, ba
175
176
  });
176
177
  adapter.rawRelations[localeTableName] = localeRelations;
177
178
  }
179
+ if (compoundIndexes) {
180
+ for (const index of compoundIndexes){
181
+ let someLocalized = null;
182
+ const columns = [];
183
+ const getTableToUse = ()=>{
184
+ if (someLocalized) {
185
+ return localesTable;
186
+ }
187
+ return table;
188
+ };
189
+ for (const { path, pathHasLocalized } of index.fields){
190
+ if (someLocalized === null) {
191
+ someLocalized = pathHasLocalized;
192
+ }
193
+ if (someLocalized !== pathHasLocalized) {
194
+ throw new InvalidConfiguration(`Compound indexes within localized and non localized fields are not supported in SQL. Expected ${path} to be ${someLocalized ? 'non' : ''} localized.`);
195
+ }
196
+ const columnPath = path.replaceAll('.', '_');
197
+ if (!getTableToUse().columns[columnPath]) {
198
+ throw new InvalidConfiguration(`Column ${columnPath} for compound index on ${path} was not found in the ${getTableToUse().name} table.`);
199
+ }
200
+ columns.push(columnPath);
201
+ }
202
+ if (someLocalized) {
203
+ columns.push('_locale');
204
+ }
205
+ let name = columns.join('_');
206
+ // truncate against the limit, buildIndexName will handle collisions
207
+ if (name.length > 63) {
208
+ name = 'compound_index';
209
+ }
210
+ const indexName = buildIndexName({
211
+ name,
212
+ adapter
213
+ });
214
+ getTableToUse().indexes[indexName] = {
215
+ name: indexName,
216
+ on: columns,
217
+ unique: disableUnique ? false : index.unique
218
+ };
219
+ }
220
+ }
178
221
  if (isRoot) {
179
222
  if (hasManyTextField) {
180
223
  const textsTableName = `${rootTableName}_texts`;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schema/build.ts"],"sourcesContent":["import type { FlattenedField } from 'payload'\n\nimport toSnakeCase from 'to-snake-case'\n\nimport type {\n DrizzleAdapter,\n IDType,\n RawColumn,\n RawForeignKey,\n RawIndex,\n RawRelation,\n RawTable,\n RelationMap,\n SetColumnID,\n} from '../types.js'\n\nimport { createTableName } from '../createTableName.js'\nimport { buildIndexName } from '../utilities/buildIndexName.js'\nimport { traverseFields } from './traverseFields.js'\n\ntype Args = {\n adapter: DrizzleAdapter\n baseColumns?: Record<string, RawColumn>\n /**\n * After table is created, run these functions to add extra config to the table\n * ie. indexes, multiple columns, etc\n */\n baseForeignKeys?: Record<string, RawForeignKey>\n /**\n * After table is created, run these functions to add extra config to the table\n * ie. indexes, multiple columns, etc\n */\n baseIndexes?: Record<string, RawIndex>\n buildNumbers?: boolean\n buildRelationships?: boolean\n disableNotNull: boolean\n disableRelsTableUnique?: boolean\n disableUnique: boolean\n fields: FlattenedField[]\n parentIsLocalized: boolean\n rootRelationships?: Set<string>\n rootRelationsToBuild?: RelationMap\n rootTableIDColType?: IDType\n rootTableName?: string\n rootUniqueRelationships?: Set<string>\n setColumnID: SetColumnID\n tableName: string\n timestamps?: boolean\n versions: boolean\n /**\n * Tracks whether or not this table is built\n * from the result of a localized array or block field at some point\n */\n withinLocalizedArrayOrBlock?: boolean\n}\n\ntype Result = {\n hasLocalizedManyNumberField: boolean\n hasLocalizedManyTextField: boolean\n hasLocalizedRelationshipField: boolean\n hasManyNumberField: 'index' | boolean\n hasManyTextField: 'index' | boolean\n relationsToBuild: RelationMap\n}\n\nexport const buildTable = ({\n adapter,\n baseColumns = {},\n baseForeignKeys = {},\n baseIndexes = {},\n disableNotNull,\n disableRelsTableUnique = false,\n disableUnique = false,\n fields,\n parentIsLocalized,\n rootRelationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName: incomingRootTableName,\n rootUniqueRelationships,\n setColumnID,\n tableName,\n timestamps,\n versions,\n withinLocalizedArrayOrBlock,\n}: Args): Result => {\n const isRoot = !incomingRootTableName\n const rootTableName = incomingRootTableName || tableName\n const columns: Record<string, RawColumn> = baseColumns\n const indexes: Record<string, RawIndex> = baseIndexes\n\n const localesColumns: Record<string, RawColumn> = {}\n const localesIndexes: Record<string, RawIndex> = {}\n let localesTable: RawTable\n let textsTable: RawTable\n let numbersTable: RawTable\n\n // Relationships to the base collection\n const relationships: Set<string> = rootRelationships || new Set()\n\n // Unique relationships to the base collection\n const uniqueRelationships: Set<string> = rootUniqueRelationships || new Set()\n\n let relationshipsTable: RawTable\n\n // Drizzle relations\n const relationsToBuild: RelationMap = new Map()\n\n const idColType: IDType = setColumnID({ adapter, columns, fields })\n\n const {\n hasLocalizedField,\n hasLocalizedManyNumberField,\n hasLocalizedManyTextField,\n hasLocalizedRelationshipField,\n hasManyNumberField,\n hasManyTextField,\n } = traverseFields({\n adapter,\n columns,\n disableNotNull,\n disableRelsTableUnique,\n disableUnique,\n fields,\n indexes,\n localesColumns,\n localesIndexes,\n newTableName: tableName,\n parentIsLocalized,\n parentTableName: tableName,\n relationships,\n relationsToBuild,\n rootRelationsToBuild: rootRelationsToBuild || relationsToBuild,\n rootTableIDColType: rootTableIDColType || idColType,\n rootTableName,\n setColumnID,\n uniqueRelationships,\n versions,\n withinLocalizedArrayOrBlock,\n })\n\n // split the relationsToBuild by localized and non-localized\n const localizedRelations = new Map()\n const nonLocalizedRelations = new Map()\n\n relationsToBuild.forEach(({ type, localized, relationName, target }, key) => {\n const map = localized ? localizedRelations : nonLocalizedRelations\n map.set(key, { type, relationName, target })\n })\n\n if (timestamps) {\n columns.createdAt = {\n name: 'created_at',\n type: 'timestamp',\n defaultNow: true,\n mode: 'string',\n notNull: true,\n precision: 3,\n withTimezone: true,\n }\n\n columns.updatedAt = {\n name: 'updated_at',\n type: 'timestamp',\n defaultNow: true,\n mode: 'string',\n notNull: true,\n precision: 3,\n withTimezone: true,\n }\n }\n\n const table: RawTable = {\n name: tableName,\n columns,\n foreignKeys: baseForeignKeys,\n indexes,\n }\n\n adapter.rawTables[tableName] = table\n\n if (hasLocalizedField || localizedRelations.size) {\n const localeTableName = `${tableName}${adapter.localesSuffix}`\n localesColumns.id = {\n name: 'id',\n type: 'serial',\n primaryKey: true,\n }\n\n localesColumns._locale = {\n name: '_locale',\n type: 'enum',\n locale: true,\n notNull: true,\n }\n\n localesColumns._parentID = {\n name: '_parent_id',\n type: idColType,\n notNull: true,\n }\n\n localesIndexes._localeParent = {\n name: `${localeTableName}_locale_parent_id_unique`,\n on: ['_locale', '_parentID'],\n unique: true,\n }\n\n localesTable = {\n name: localeTableName,\n columns: localesColumns,\n foreignKeys: {\n _parentIdFk: {\n name: `${localeTableName}_parent_id_fk`,\n columns: ['_parentID'],\n foreignColumns: [\n {\n name: 'id',\n table: tableName,\n },\n ],\n onDelete: 'cascade',\n },\n },\n indexes: localesIndexes,\n }\n\n adapter.rawTables[localeTableName] = localesTable\n\n const localeRelations: Record<string, RawRelation> = {\n _parentID: {\n type: 'one',\n fields: [\n {\n name: '_parentID',\n table: localeTableName,\n },\n ],\n references: ['id'],\n relationName: '_locales',\n to: tableName,\n },\n }\n\n localizedRelations.forEach(({ type, target }, key) => {\n if (type === 'one') {\n localeRelations[key] = {\n type: 'one',\n fields: [\n {\n name: key,\n table: localeTableName,\n },\n ],\n references: ['id'],\n relationName: key,\n to: target,\n }\n }\n if (type === 'many') {\n localeRelations[key] = {\n type: 'many',\n relationName: key,\n to: target,\n }\n }\n })\n adapter.rawRelations[localeTableName] = localeRelations\n }\n\n if (isRoot) {\n if (hasManyTextField) {\n const textsTableName = `${rootTableName}_texts`\n\n const columns: Record<string, RawColumn> = {\n id: {\n name: 'id',\n type: 'serial',\n primaryKey: true,\n },\n order: {\n name: 'order',\n type: 'integer',\n notNull: true,\n },\n parent: {\n name: 'parent_id',\n type: idColType,\n notNull: true,\n },\n path: {\n name: 'path',\n type: 'varchar',\n\n notNull: true,\n },\n text: {\n name: 'text',\n type: 'varchar',\n },\n }\n\n if (hasLocalizedManyTextField) {\n columns.locale = {\n name: 'locale',\n type: 'enum',\n locale: true,\n }\n }\n\n const textsTableIndexes: Record<string, RawIndex> = {\n orderParentIdx: {\n name: `${textsTableName}_order_parent_idx`,\n on: ['order', 'parent'],\n },\n }\n\n if (hasManyTextField === 'index') {\n textsTableIndexes.text_idx = {\n name: `${textsTableName}_text_idx`,\n on: 'text',\n }\n }\n\n if (hasLocalizedManyTextField) {\n textsTableIndexes.localeParent = {\n name: `${textsTableName}_locale_parent`,\n on: ['locale', 'parent'],\n }\n }\n\n textsTable = {\n name: textsTableName,\n columns,\n foreignKeys: {\n parentFk: {\n name: `${textsTableName}_parent_fk`,\n columns: ['parent'],\n foreignColumns: [\n {\n name: 'id',\n table: tableName,\n },\n ],\n onDelete: 'cascade',\n },\n },\n indexes: textsTableIndexes,\n }\n\n adapter.rawTables[textsTableName] = textsTable\n\n adapter.rawRelations[textsTableName] = {\n parent: {\n type: 'one',\n fields: [\n {\n name: 'parent',\n table: textsTableName,\n },\n ],\n references: ['id'],\n relationName: '_texts',\n to: tableName,\n },\n }\n }\n\n if (hasManyNumberField) {\n const numbersTableName = `${rootTableName}_numbers`\n const columns: Record<string, RawColumn> = {\n id: {\n name: 'id',\n type: 'serial',\n primaryKey: true,\n },\n number: {\n name: 'number',\n type: 'numeric',\n },\n order: {\n name: 'order',\n type: 'integer',\n notNull: true,\n },\n parent: {\n name: 'parent_id',\n type: idColType,\n notNull: true,\n },\n path: {\n name: 'path',\n type: 'varchar',\n notNull: true,\n },\n }\n\n if (hasLocalizedManyNumberField) {\n columns.locale = {\n name: 'locale',\n type: 'enum',\n locale: true,\n }\n }\n\n const numbersTableIndexes: Record<string, RawIndex> = {\n orderParentIdx: { name: `${numbersTableName}_order_parent_idx`, on: ['order', 'parent'] },\n }\n\n if (hasManyNumberField === 'index') {\n numbersTableIndexes.numberIdx = {\n name: `${numbersTableName}_number_idx`,\n on: 'number',\n }\n }\n\n if (hasLocalizedManyNumberField) {\n numbersTableIndexes.localeParent = {\n name: `${numbersTableName}_locale_parent`,\n on: ['locale', 'parent'],\n }\n }\n\n numbersTable = {\n name: numbersTableName,\n columns,\n foreignKeys: {\n parentFk: {\n name: `${numbersTableName}_parent_fk`,\n columns: ['parent'],\n foreignColumns: [\n {\n name: 'id',\n table: tableName,\n },\n ],\n onDelete: 'cascade',\n },\n },\n indexes: numbersTableIndexes,\n }\n\n adapter.rawTables[numbersTableName] = numbersTable\n\n adapter.rawRelations[numbersTableName] = {\n parent: {\n type: 'one',\n fields: [\n {\n name: 'parent',\n table: numbersTableName,\n },\n ],\n references: ['id'],\n relationName: '_numbers',\n to: tableName,\n },\n }\n }\n\n if (relationships.size) {\n const relationshipColumns: Record<string, RawColumn> = {\n id: {\n name: 'id',\n type: 'serial',\n primaryKey: true,\n },\n order: {\n name: 'order',\n type: 'integer',\n },\n parent: {\n name: 'parent_id',\n type: idColType,\n notNull: true,\n },\n path: {\n name: 'path',\n type: 'varchar',\n notNull: true,\n },\n }\n\n if (hasLocalizedRelationshipField) {\n relationshipColumns.locale = {\n name: 'locale',\n type: 'enum',\n locale: true,\n }\n }\n\n const relationshipsTableName = `${tableName}${adapter.relationshipsSuffix}`\n\n const relationshipIndexes: Record<string, RawIndex> = {\n order: {\n name: `${relationshipsTableName}_order_idx`,\n on: 'order',\n },\n parentIdx: {\n name: `${relationshipsTableName}_parent_idx`,\n on: 'parent',\n },\n pathIdx: {\n name: `${relationshipsTableName}_path_idx`,\n on: 'path',\n },\n }\n\n if (hasLocalizedRelationshipField) {\n relationshipIndexes.localeIdx = {\n name: `${relationshipsTableName}_locale_idx`,\n on: 'locale',\n }\n }\n\n const relationshipForeignKeys: Record<string, RawForeignKey> = {\n parentFk: {\n name: `${relationshipsTableName}_parent_fk`,\n columns: ['parent'],\n foreignColumns: [\n {\n name: 'id',\n table: tableName,\n },\n ],\n onDelete: 'cascade',\n },\n }\n\n relationships.forEach((relationTo) => {\n const relationshipConfig = adapter.payload.collections[relationTo].config\n const formattedRelationTo = createTableName({\n adapter,\n config: relationshipConfig,\n throwValidationError: true,\n })\n let colType: 'integer' | 'numeric' | 'uuid' | 'varchar' =\n adapter.idType === 'uuid' ? 'uuid' : 'integer'\n const relatedCollectionCustomIDType =\n adapter.payload.collections[relationshipConfig.slug]?.customIDType\n\n if (relatedCollectionCustomIDType === 'number') {\n colType = 'numeric'\n }\n if (relatedCollectionCustomIDType === 'text') {\n colType = 'varchar'\n }\n\n const colName = `${relationTo}ID`\n\n relationshipColumns[colName] = {\n name: `${formattedRelationTo}_id`,\n type: colType,\n }\n\n relationshipForeignKeys[`${relationTo}IdFk`] = {\n name: `${relationshipsTableName}_${toSnakeCase(relationTo)}_fk`,\n columns: [colName],\n foreignColumns: [\n {\n name: 'id',\n table: formattedRelationTo,\n },\n ],\n onDelete: 'cascade',\n }\n\n const indexColumns = [colName]\n\n const unique = !disableUnique && uniqueRelationships.has(relationTo)\n\n if (unique) {\n indexColumns.push('path')\n }\n if (hasLocalizedRelationshipField) {\n indexColumns.push('locale')\n }\n\n const indexName = buildIndexName({\n name: `${relationshipsTableName}_${formattedRelationTo}_id`,\n adapter,\n })\n\n relationshipIndexes[indexName] = {\n name: indexName,\n on: indexColumns,\n unique,\n }\n })\n\n relationshipsTable = {\n name: relationshipsTableName,\n columns: relationshipColumns,\n foreignKeys: relationshipForeignKeys,\n indexes: relationshipIndexes,\n }\n\n adapter.rawTables[relationshipsTableName] = relationshipsTable\n\n const relationshipsTableRelations: Record<string, RawRelation> = {\n parent: {\n type: 'one',\n fields: [\n {\n name: 'parent',\n table: relationshipsTableName,\n },\n ],\n references: ['id'],\n relationName: '_rels',\n to: tableName,\n },\n }\n\n relationships.forEach((relationTo) => {\n const relatedTableName = createTableName({\n adapter,\n config: adapter.payload.collections[relationTo].config,\n throwValidationError: true,\n })\n const idColumnName = `${relationTo}ID`\n\n relationshipsTableRelations[idColumnName] = {\n type: 'one',\n fields: [\n {\n name: idColumnName,\n table: relationshipsTableName,\n },\n ],\n references: ['id'],\n relationName: relationTo,\n to: relatedTableName,\n }\n })\n adapter.rawRelations[relationshipsTableName] = relationshipsTableRelations\n }\n }\n\n const tableRelations: Record<string, RawRelation> = {}\n\n nonLocalizedRelations.forEach(({ type, relationName, target }, key) => {\n if (type === 'one') {\n tableRelations[key] = {\n type: 'one',\n fields: [\n {\n name: key,\n table: tableName,\n },\n ],\n references: ['id'],\n relationName: key,\n to: target,\n }\n }\n if (type === 'many') {\n tableRelations[key] = {\n type: 'many',\n relationName: relationName || key,\n to: target,\n }\n }\n })\n\n if (hasLocalizedField) {\n tableRelations._locales = {\n type: 'many',\n relationName: '_locales',\n to: localesTable.name,\n }\n }\n\n if (isRoot && textsTable) {\n tableRelations._texts = {\n type: 'many',\n relationName: '_texts',\n to: textsTable.name,\n }\n }\n\n if (isRoot && numbersTable) {\n tableRelations._numbers = {\n type: 'many',\n relationName: '_numbers',\n to: numbersTable.name,\n }\n }\n\n if (relationships.size && relationshipsTable) {\n tableRelations._rels = {\n type: 'many',\n relationName: '_rels',\n to: relationshipsTable.name,\n }\n }\n\n adapter.rawRelations[tableName] = tableRelations\n\n return {\n hasLocalizedManyNumberField,\n hasLocalizedManyTextField,\n hasLocalizedRelationshipField,\n hasManyNumberField,\n hasManyTextField,\n relationsToBuild,\n }\n}\n"],"names":["toSnakeCase","createTableName","buildIndexName","traverseFields","buildTable","adapter","baseColumns","baseForeignKeys","baseIndexes","disableNotNull","disableRelsTableUnique","disableUnique","fields","parentIsLocalized","rootRelationships","rootRelationsToBuild","rootTableIDColType","rootTableName","incomingRootTableName","rootUniqueRelationships","setColumnID","tableName","timestamps","versions","withinLocalizedArrayOrBlock","isRoot","columns","indexes","localesColumns","localesIndexes","localesTable","textsTable","numbersTable","relationships","Set","uniqueRelationships","relationshipsTable","relationsToBuild","Map","idColType","hasLocalizedField","hasLocalizedManyNumberField","hasLocalizedManyTextField","hasLocalizedRelationshipField","hasManyNumberField","hasManyTextField","newTableName","parentTableName","localizedRelations","nonLocalizedRelations","forEach","type","localized","relationName","target","key","map","set","createdAt","name","defaultNow","mode","notNull","precision","withTimezone","updatedAt","table","foreignKeys","rawTables","size","localeTableName","localesSuffix","id","primaryKey","_locale","locale","_parentID","_localeParent","on","unique","_parentIdFk","foreignColumns","onDelete","localeRelations","references","to","rawRelations","textsTableName","order","parent","path","text","textsTableIndexes","orderParentIdx","text_idx","localeParent","parentFk","numbersTableName","number","numbersTableIndexes","numberIdx","relationshipColumns","relationshipsTableName","relationshipsSuffix","relationshipIndexes","parentIdx","pathIdx","localeIdx","relationshipForeignKeys","relationTo","relationshipConfig","payload","collections","config","formattedRelationTo","throwValidationError","colType","idType","relatedCollectionCustomIDType","slug","customIDType","colName","indexColumns","has","push","indexName","relationshipsTableRelations","relatedTableName","idColumnName","tableRelations","_locales","_texts","_numbers","_rels"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/schema/build.ts"],"sourcesContent":["import type { FlattenedField, SanitizedCompoundIndex } from 'payload'\n\nimport { InvalidConfiguration } from 'payload'\nimport toSnakeCase from 'to-snake-case'\n\nimport type {\n DrizzleAdapter,\n IDType,\n RawColumn,\n RawForeignKey,\n RawIndex,\n RawRelation,\n RawTable,\n RelationMap,\n SetColumnID,\n} from '../types.js'\n\nimport { createTableName } from '../createTableName.js'\nimport { buildIndexName } from '../utilities/buildIndexName.js'\nimport { traverseFields } from './traverseFields.js'\n\ntype Args = {\n adapter: DrizzleAdapter\n baseColumns?: Record<string, RawColumn>\n /**\n * After table is created, run these functions to add extra config to the table\n * ie. indexes, multiple columns, etc\n */\n baseForeignKeys?: Record<string, RawForeignKey>\n /**\n * After table is created, run these functions to add extra config to the table\n * ie. indexes, multiple columns, etc\n */\n baseIndexes?: Record<string, RawIndex>\n buildNumbers?: boolean\n buildRelationships?: boolean\n compoundIndexes?: SanitizedCompoundIndex[]\n disableNotNull: boolean\n disableRelsTableUnique?: boolean\n disableUnique: boolean\n fields: FlattenedField[]\n parentIsLocalized: boolean\n rootRelationships?: Set<string>\n rootRelationsToBuild?: RelationMap\n rootTableIDColType?: IDType\n rootTableName?: string\n rootUniqueRelationships?: Set<string>\n setColumnID: SetColumnID\n tableName: string\n timestamps?: boolean\n versions: boolean\n /**\n * Tracks whether or not this table is built\n * from the result of a localized array or block field at some point\n */\n withinLocalizedArrayOrBlock?: boolean\n}\n\ntype Result = {\n hasLocalizedManyNumberField: boolean\n hasLocalizedManyTextField: boolean\n hasLocalizedRelationshipField: boolean\n hasManyNumberField: 'index' | boolean\n hasManyTextField: 'index' | boolean\n relationsToBuild: RelationMap\n}\n\nexport const buildTable = ({\n adapter,\n baseColumns = {},\n baseForeignKeys = {},\n baseIndexes = {},\n compoundIndexes,\n disableNotNull,\n disableRelsTableUnique = false,\n disableUnique = false,\n fields,\n parentIsLocalized,\n rootRelationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName: incomingRootTableName,\n rootUniqueRelationships,\n setColumnID,\n tableName,\n timestamps,\n versions,\n withinLocalizedArrayOrBlock,\n}: Args): Result => {\n const isRoot = !incomingRootTableName\n const rootTableName = incomingRootTableName || tableName\n const columns: Record<string, RawColumn> = baseColumns\n const indexes: Record<string, RawIndex> = baseIndexes\n\n const localesColumns: Record<string, RawColumn> = {}\n const localesIndexes: Record<string, RawIndex> = {}\n let localesTable: RawTable\n let textsTable: RawTable\n let numbersTable: RawTable\n\n // Relationships to the base collection\n const relationships: Set<string> = rootRelationships || new Set()\n\n // Unique relationships to the base collection\n const uniqueRelationships: Set<string> = rootUniqueRelationships || new Set()\n\n let relationshipsTable: RawTable\n\n // Drizzle relations\n const relationsToBuild: RelationMap = new Map()\n\n const idColType: IDType = setColumnID({ adapter, columns, fields })\n\n const {\n hasLocalizedField,\n hasLocalizedManyNumberField,\n hasLocalizedManyTextField,\n hasLocalizedRelationshipField,\n hasManyNumberField,\n hasManyTextField,\n } = traverseFields({\n adapter,\n columns,\n disableNotNull,\n disableRelsTableUnique,\n disableUnique,\n fields,\n indexes,\n localesColumns,\n localesIndexes,\n newTableName: tableName,\n parentIsLocalized,\n parentTableName: tableName,\n relationships,\n relationsToBuild,\n rootRelationsToBuild: rootRelationsToBuild || relationsToBuild,\n rootTableIDColType: rootTableIDColType || idColType,\n rootTableName,\n setColumnID,\n uniqueRelationships,\n versions,\n withinLocalizedArrayOrBlock,\n })\n\n // split the relationsToBuild by localized and non-localized\n const localizedRelations = new Map()\n const nonLocalizedRelations = new Map()\n\n relationsToBuild.forEach(({ type, localized, relationName, target }, key) => {\n const map = localized ? localizedRelations : nonLocalizedRelations\n map.set(key, { type, relationName, target })\n })\n\n if (timestamps) {\n columns.createdAt = {\n name: 'created_at',\n type: 'timestamp',\n defaultNow: true,\n mode: 'string',\n notNull: true,\n precision: 3,\n withTimezone: true,\n }\n\n columns.updatedAt = {\n name: 'updated_at',\n type: 'timestamp',\n defaultNow: true,\n mode: 'string',\n notNull: true,\n precision: 3,\n withTimezone: true,\n }\n }\n\n const table: RawTable = {\n name: tableName,\n columns,\n foreignKeys: baseForeignKeys,\n indexes,\n }\n\n adapter.rawTables[tableName] = table\n\n if (hasLocalizedField || localizedRelations.size) {\n const localeTableName = `${tableName}${adapter.localesSuffix}`\n localesColumns.id = {\n name: 'id',\n type: 'serial',\n primaryKey: true,\n }\n\n localesColumns._locale = {\n name: '_locale',\n type: 'enum',\n locale: true,\n notNull: true,\n }\n\n localesColumns._parentID = {\n name: '_parent_id',\n type: idColType,\n notNull: true,\n }\n\n localesIndexes._localeParent = {\n name: `${localeTableName}_locale_parent_id_unique`,\n on: ['_locale', '_parentID'],\n unique: true,\n }\n\n localesTable = {\n name: localeTableName,\n columns: localesColumns,\n foreignKeys: {\n _parentIdFk: {\n name: `${localeTableName}_parent_id_fk`,\n columns: ['_parentID'],\n foreignColumns: [\n {\n name: 'id',\n table: tableName,\n },\n ],\n onDelete: 'cascade',\n },\n },\n indexes: localesIndexes,\n }\n\n adapter.rawTables[localeTableName] = localesTable\n\n const localeRelations: Record<string, RawRelation> = {\n _parentID: {\n type: 'one',\n fields: [\n {\n name: '_parentID',\n table: localeTableName,\n },\n ],\n references: ['id'],\n relationName: '_locales',\n to: tableName,\n },\n }\n\n localizedRelations.forEach(({ type, target }, key) => {\n if (type === 'one') {\n localeRelations[key] = {\n type: 'one',\n fields: [\n {\n name: key,\n table: localeTableName,\n },\n ],\n references: ['id'],\n relationName: key,\n to: target,\n }\n }\n if (type === 'many') {\n localeRelations[key] = {\n type: 'many',\n relationName: key,\n to: target,\n }\n }\n })\n adapter.rawRelations[localeTableName] = localeRelations\n }\n\n if (compoundIndexes) {\n for (const index of compoundIndexes) {\n let someLocalized: boolean | null = null\n const columns: string[] = []\n\n const getTableToUse = () => {\n if (someLocalized) {\n return localesTable\n }\n\n return table\n }\n\n for (const { path, pathHasLocalized } of index.fields) {\n if (someLocalized === null) {\n someLocalized = pathHasLocalized\n }\n\n if (someLocalized !== pathHasLocalized) {\n throw new InvalidConfiguration(\n `Compound indexes within localized and non localized fields are not supported in SQL. Expected ${path} to be ${someLocalized ? 'non' : ''} localized.`,\n )\n }\n\n const columnPath = path.replaceAll('.', '_')\n\n if (!getTableToUse().columns[columnPath]) {\n throw new InvalidConfiguration(\n `Column ${columnPath} for compound index on ${path} was not found in the ${getTableToUse().name} table.`,\n )\n }\n\n columns.push(columnPath)\n }\n\n if (someLocalized) {\n columns.push('_locale')\n }\n\n let name = columns.join('_')\n // truncate against the limit, buildIndexName will handle collisions\n if (name.length > 63) {\n name = 'compound_index'\n }\n\n const indexName = buildIndexName({ name, adapter })\n\n getTableToUse().indexes[indexName] = {\n name: indexName,\n on: columns,\n unique: disableUnique ? false : index.unique,\n }\n }\n }\n\n if (isRoot) {\n if (hasManyTextField) {\n const textsTableName = `${rootTableName}_texts`\n\n const columns: Record<string, RawColumn> = {\n id: {\n name: 'id',\n type: 'serial',\n primaryKey: true,\n },\n order: {\n name: 'order',\n type: 'integer',\n notNull: true,\n },\n parent: {\n name: 'parent_id',\n type: idColType,\n notNull: true,\n },\n path: {\n name: 'path',\n type: 'varchar',\n\n notNull: true,\n },\n text: {\n name: 'text',\n type: 'varchar',\n },\n }\n\n if (hasLocalizedManyTextField) {\n columns.locale = {\n name: 'locale',\n type: 'enum',\n locale: true,\n }\n }\n\n const textsTableIndexes: Record<string, RawIndex> = {\n orderParentIdx: {\n name: `${textsTableName}_order_parent_idx`,\n on: ['order', 'parent'],\n },\n }\n\n if (hasManyTextField === 'index') {\n textsTableIndexes.text_idx = {\n name: `${textsTableName}_text_idx`,\n on: 'text',\n }\n }\n\n if (hasLocalizedManyTextField) {\n textsTableIndexes.localeParent = {\n name: `${textsTableName}_locale_parent`,\n on: ['locale', 'parent'],\n }\n }\n\n textsTable = {\n name: textsTableName,\n columns,\n foreignKeys: {\n parentFk: {\n name: `${textsTableName}_parent_fk`,\n columns: ['parent'],\n foreignColumns: [\n {\n name: 'id',\n table: tableName,\n },\n ],\n onDelete: 'cascade',\n },\n },\n indexes: textsTableIndexes,\n }\n\n adapter.rawTables[textsTableName] = textsTable\n\n adapter.rawRelations[textsTableName] = {\n parent: {\n type: 'one',\n fields: [\n {\n name: 'parent',\n table: textsTableName,\n },\n ],\n references: ['id'],\n relationName: '_texts',\n to: tableName,\n },\n }\n }\n\n if (hasManyNumberField) {\n const numbersTableName = `${rootTableName}_numbers`\n const columns: Record<string, RawColumn> = {\n id: {\n name: 'id',\n type: 'serial',\n primaryKey: true,\n },\n number: {\n name: 'number',\n type: 'numeric',\n },\n order: {\n name: 'order',\n type: 'integer',\n notNull: true,\n },\n parent: {\n name: 'parent_id',\n type: idColType,\n notNull: true,\n },\n path: {\n name: 'path',\n type: 'varchar',\n notNull: true,\n },\n }\n\n if (hasLocalizedManyNumberField) {\n columns.locale = {\n name: 'locale',\n type: 'enum',\n locale: true,\n }\n }\n\n const numbersTableIndexes: Record<string, RawIndex> = {\n orderParentIdx: { name: `${numbersTableName}_order_parent_idx`, on: ['order', 'parent'] },\n }\n\n if (hasManyNumberField === 'index') {\n numbersTableIndexes.numberIdx = {\n name: `${numbersTableName}_number_idx`,\n on: 'number',\n }\n }\n\n if (hasLocalizedManyNumberField) {\n numbersTableIndexes.localeParent = {\n name: `${numbersTableName}_locale_parent`,\n on: ['locale', 'parent'],\n }\n }\n\n numbersTable = {\n name: numbersTableName,\n columns,\n foreignKeys: {\n parentFk: {\n name: `${numbersTableName}_parent_fk`,\n columns: ['parent'],\n foreignColumns: [\n {\n name: 'id',\n table: tableName,\n },\n ],\n onDelete: 'cascade',\n },\n },\n indexes: numbersTableIndexes,\n }\n\n adapter.rawTables[numbersTableName] = numbersTable\n\n adapter.rawRelations[numbersTableName] = {\n parent: {\n type: 'one',\n fields: [\n {\n name: 'parent',\n table: numbersTableName,\n },\n ],\n references: ['id'],\n relationName: '_numbers',\n to: tableName,\n },\n }\n }\n\n if (relationships.size) {\n const relationshipColumns: Record<string, RawColumn> = {\n id: {\n name: 'id',\n type: 'serial',\n primaryKey: true,\n },\n order: {\n name: 'order',\n type: 'integer',\n },\n parent: {\n name: 'parent_id',\n type: idColType,\n notNull: true,\n },\n path: {\n name: 'path',\n type: 'varchar',\n notNull: true,\n },\n }\n\n if (hasLocalizedRelationshipField) {\n relationshipColumns.locale = {\n name: 'locale',\n type: 'enum',\n locale: true,\n }\n }\n\n const relationshipsTableName = `${tableName}${adapter.relationshipsSuffix}`\n\n const relationshipIndexes: Record<string, RawIndex> = {\n order: {\n name: `${relationshipsTableName}_order_idx`,\n on: 'order',\n },\n parentIdx: {\n name: `${relationshipsTableName}_parent_idx`,\n on: 'parent',\n },\n pathIdx: {\n name: `${relationshipsTableName}_path_idx`,\n on: 'path',\n },\n }\n\n if (hasLocalizedRelationshipField) {\n relationshipIndexes.localeIdx = {\n name: `${relationshipsTableName}_locale_idx`,\n on: 'locale',\n }\n }\n\n const relationshipForeignKeys: Record<string, RawForeignKey> = {\n parentFk: {\n name: `${relationshipsTableName}_parent_fk`,\n columns: ['parent'],\n foreignColumns: [\n {\n name: 'id',\n table: tableName,\n },\n ],\n onDelete: 'cascade',\n },\n }\n\n relationships.forEach((relationTo) => {\n const relationshipConfig = adapter.payload.collections[relationTo].config\n const formattedRelationTo = createTableName({\n adapter,\n config: relationshipConfig,\n throwValidationError: true,\n })\n let colType: 'integer' | 'numeric' | 'uuid' | 'varchar' =\n adapter.idType === 'uuid' ? 'uuid' : 'integer'\n const relatedCollectionCustomIDType =\n adapter.payload.collections[relationshipConfig.slug]?.customIDType\n\n if (relatedCollectionCustomIDType === 'number') {\n colType = 'numeric'\n }\n if (relatedCollectionCustomIDType === 'text') {\n colType = 'varchar'\n }\n\n const colName = `${relationTo}ID`\n\n relationshipColumns[colName] = {\n name: `${formattedRelationTo}_id`,\n type: colType,\n }\n\n relationshipForeignKeys[`${relationTo}IdFk`] = {\n name: `${relationshipsTableName}_${toSnakeCase(relationTo)}_fk`,\n columns: [colName],\n foreignColumns: [\n {\n name: 'id',\n table: formattedRelationTo,\n },\n ],\n onDelete: 'cascade',\n }\n\n const indexColumns = [colName]\n\n const unique = !disableUnique && uniqueRelationships.has(relationTo)\n\n if (unique) {\n indexColumns.push('path')\n }\n if (hasLocalizedRelationshipField) {\n indexColumns.push('locale')\n }\n\n const indexName = buildIndexName({\n name: `${relationshipsTableName}_${formattedRelationTo}_id`,\n adapter,\n })\n\n relationshipIndexes[indexName] = {\n name: indexName,\n on: indexColumns,\n unique,\n }\n })\n\n relationshipsTable = {\n name: relationshipsTableName,\n columns: relationshipColumns,\n foreignKeys: relationshipForeignKeys,\n indexes: relationshipIndexes,\n }\n\n adapter.rawTables[relationshipsTableName] = relationshipsTable\n\n const relationshipsTableRelations: Record<string, RawRelation> = {\n parent: {\n type: 'one',\n fields: [\n {\n name: 'parent',\n table: relationshipsTableName,\n },\n ],\n references: ['id'],\n relationName: '_rels',\n to: tableName,\n },\n }\n\n relationships.forEach((relationTo) => {\n const relatedTableName = createTableName({\n adapter,\n config: adapter.payload.collections[relationTo].config,\n throwValidationError: true,\n })\n const idColumnName = `${relationTo}ID`\n\n relationshipsTableRelations[idColumnName] = {\n type: 'one',\n fields: [\n {\n name: idColumnName,\n table: relationshipsTableName,\n },\n ],\n references: ['id'],\n relationName: relationTo,\n to: relatedTableName,\n }\n })\n adapter.rawRelations[relationshipsTableName] = relationshipsTableRelations\n }\n }\n\n const tableRelations: Record<string, RawRelation> = {}\n\n nonLocalizedRelations.forEach(({ type, relationName, target }, key) => {\n if (type === 'one') {\n tableRelations[key] = {\n type: 'one',\n fields: [\n {\n name: key,\n table: tableName,\n },\n ],\n references: ['id'],\n relationName: key,\n to: target,\n }\n }\n if (type === 'many') {\n tableRelations[key] = {\n type: 'many',\n relationName: relationName || key,\n to: target,\n }\n }\n })\n\n if (hasLocalizedField) {\n tableRelations._locales = {\n type: 'many',\n relationName: '_locales',\n to: localesTable.name,\n }\n }\n\n if (isRoot && textsTable) {\n tableRelations._texts = {\n type: 'many',\n relationName: '_texts',\n to: textsTable.name,\n }\n }\n\n if (isRoot && numbersTable) {\n tableRelations._numbers = {\n type: 'many',\n relationName: '_numbers',\n to: numbersTable.name,\n }\n }\n\n if (relationships.size && relationshipsTable) {\n tableRelations._rels = {\n type: 'many',\n relationName: '_rels',\n to: relationshipsTable.name,\n }\n }\n\n adapter.rawRelations[tableName] = tableRelations\n\n return {\n hasLocalizedManyNumberField,\n hasLocalizedManyTextField,\n hasLocalizedRelationshipField,\n hasManyNumberField,\n hasManyTextField,\n relationsToBuild,\n }\n}\n"],"names":["InvalidConfiguration","toSnakeCase","createTableName","buildIndexName","traverseFields","buildTable","adapter","baseColumns","baseForeignKeys","baseIndexes","compoundIndexes","disableNotNull","disableRelsTableUnique","disableUnique","fields","parentIsLocalized","rootRelationships","rootRelationsToBuild","rootTableIDColType","rootTableName","incomingRootTableName","rootUniqueRelationships","setColumnID","tableName","timestamps","versions","withinLocalizedArrayOrBlock","isRoot","columns","indexes","localesColumns","localesIndexes","localesTable","textsTable","numbersTable","relationships","Set","uniqueRelationships","relationshipsTable","relationsToBuild","Map","idColType","hasLocalizedField","hasLocalizedManyNumberField","hasLocalizedManyTextField","hasLocalizedRelationshipField","hasManyNumberField","hasManyTextField","newTableName","parentTableName","localizedRelations","nonLocalizedRelations","forEach","type","localized","relationName","target","key","map","set","createdAt","name","defaultNow","mode","notNull","precision","withTimezone","updatedAt","table","foreignKeys","rawTables","size","localeTableName","localesSuffix","id","primaryKey","_locale","locale","_parentID","_localeParent","on","unique","_parentIdFk","foreignColumns","onDelete","localeRelations","references","to","rawRelations","index","someLocalized","getTableToUse","path","pathHasLocalized","columnPath","replaceAll","push","join","length","indexName","textsTableName","order","parent","text","textsTableIndexes","orderParentIdx","text_idx","localeParent","parentFk","numbersTableName","number","numbersTableIndexes","numberIdx","relationshipColumns","relationshipsTableName","relationshipsSuffix","relationshipIndexes","parentIdx","pathIdx","localeIdx","relationshipForeignKeys","relationTo","relationshipConfig","payload","collections","config","formattedRelationTo","throwValidationError","colType","idType","relatedCollectionCustomIDType","slug","customIDType","colName","indexColumns","has","relationshipsTableRelations","relatedTableName","idColumnName","tableRelations","_locales","_texts","_numbers","_rels"],"mappings":"AAEA,SAASA,oBAAoB,QAAQ,UAAS;AAC9C,OAAOC,iBAAiB,gBAAe;AAcvC,SAASC,eAAe,QAAQ,wBAAuB;AACvD,SAASC,cAAc,QAAQ,iCAAgC;AAC/D,SAASC,cAAc,QAAQ,sBAAqB;AAgDpD,OAAO,MAAMC,aAAa,CAAC,EACzBC,OAAO,EACPC,cAAc,CAAC,CAAC,EAChBC,kBAAkB,CAAC,CAAC,EACpBC,cAAc,CAAC,CAAC,EAChBC,eAAe,EACfC,cAAc,EACdC,yBAAyB,KAAK,EAC9BC,gBAAgB,KAAK,EACrBC,MAAM,EACNC,iBAAiB,EACjBC,iBAAiB,EACjBC,oBAAoB,EACpBC,kBAAkB,EAClBC,eAAeC,qBAAqB,EACpCC,uBAAuB,EACvBC,WAAW,EACXC,SAAS,EACTC,UAAU,EACVC,QAAQ,EACRC,2BAA2B,EACtB;IACL,MAAMC,SAAS,CAACP;IAChB,MAAMD,gBAAgBC,yBAAyBG;IAC/C,MAAMK,UAAqCrB;IAC3C,MAAMsB,UAAoCpB;IAE1C,MAAMqB,iBAA4C,CAAC;IACnD,MAAMC,iBAA2C,CAAC;IAClD,IAAIC;IACJ,IAAIC;IACJ,IAAIC;IAEJ,uCAAuC;IACvC,MAAMC,gBAA6BnB,qBAAqB,IAAIoB;IAE5D,8CAA8C;IAC9C,MAAMC,sBAAmChB,2BAA2B,IAAIe;IAExE,IAAIE;IAEJ,oBAAoB;IACpB,MAAMC,mBAAgC,IAAIC;IAE1C,MAAMC,YAAoBnB,YAAY;QAAEhB;QAASsB;QAASd;IAAO;IAEjE,MAAM,EACJ4B,iBAAiB,EACjBC,2BAA2B,EAC3BC,yBAAyB,EACzBC,6BAA6B,EAC7BC,kBAAkB,EAClBC,gBAAgB,EACjB,GAAG3C,eAAe;QACjBE;QACAsB;QACAjB;QACAC;QACAC;QACAC;QACAe;QACAC;QACAC;QACAiB,cAAczB;QACdR;QACAkC,iBAAiB1B;QACjBY;QACAI;QACAtB,sBAAsBA,wBAAwBsB;QAC9CrB,oBAAoBA,sBAAsBuB;QAC1CtB;QACAG;QACAe;QACAZ;QACAC;IACF;IAEA,4DAA4D;IAC5D,MAAMwB,qBAAqB,IAAIV;IAC/B,MAAMW,wBAAwB,IAAIX;IAElCD,iBAAiBa,OAAO,CAAC,CAAC,EAAEC,IAAI,EAAEC,SAAS,EAAEC,YAAY,EAAEC,MAAM,EAAE,EAAEC;QACnE,MAAMC,MAAMJ,YAAYJ,qBAAqBC;QAC7CO,IAAIC,GAAG,CAACF,KAAK;YAAEJ;YAAME;YAAcC;QAAO;IAC5C;IAEA,IAAIhC,YAAY;QACdI,QAAQgC,SAAS,GAAG;YAClBC,MAAM;YACNR,MAAM;YACNS,YAAY;YACZC,MAAM;YACNC,SAAS;YACTC,WAAW;YACXC,cAAc;QAChB;QAEAtC,QAAQuC,SAAS,GAAG;YAClBN,MAAM;YACNR,MAAM;YACNS,YAAY;YACZC,MAAM;YACNC,SAAS;YACTC,WAAW;YACXC,cAAc;QAChB;IACF;IAEA,MAAME,QAAkB;QACtBP,MAAMtC;QACNK;QACAyC,aAAa7D;QACbqB;IACF;IAEAvB,QAAQgE,SAAS,CAAC/C,UAAU,GAAG6C;IAE/B,IAAI1B,qBAAqBQ,mBAAmBqB,IAAI,EAAE;QAChD,MAAMC,kBAAkB,GAAGjD,YAAYjB,QAAQmE,aAAa,EAAE;QAC9D3C,eAAe4C,EAAE,GAAG;YAClBb,MAAM;YACNR,MAAM;YACNsB,YAAY;QACd;QAEA7C,eAAe8C,OAAO,GAAG;YACvBf,MAAM;YACNR,MAAM;YACNwB,QAAQ;YACRb,SAAS;QACX;QAEAlC,eAAegD,SAAS,GAAG;YACzBjB,MAAM;YACNR,MAAMZ;YACNuB,SAAS;QACX;QAEAjC,eAAegD,aAAa,GAAG;YAC7BlB,MAAM,GAAGW,gBAAgB,wBAAwB,CAAC;YAClDQ,IAAI;gBAAC;gBAAW;aAAY;YAC5BC,QAAQ;QACV;QAEAjD,eAAe;YACb6B,MAAMW;YACN5C,SAASE;YACTuC,aAAa;gBACXa,aAAa;oBACXrB,MAAM,GAAGW,gBAAgB,aAAa,CAAC;oBACvC5C,SAAS;wBAAC;qBAAY;oBACtBuD,gBAAgB;wBACd;4BACEtB,MAAM;4BACNO,OAAO7C;wBACT;qBACD;oBACD6D,UAAU;gBACZ;YACF;YACAvD,SAASE;QACX;QAEAzB,QAAQgE,SAAS,CAACE,gBAAgB,GAAGxC;QAErC,MAAMqD,kBAA+C;YACnDP,WAAW;gBACTzB,MAAM;gBACNvC,QAAQ;oBACN;wBACE+C,MAAM;wBACNO,OAAOI;oBACT;iBACD;gBACDc,YAAY;oBAAC;iBAAK;gBAClB/B,cAAc;gBACdgC,IAAIhE;YACN;QACF;QAEA2B,mBAAmBE,OAAO,CAAC,CAAC,EAAEC,IAAI,EAAEG,MAAM,EAAE,EAAEC;YAC5C,IAAIJ,SAAS,OAAO;gBAClBgC,eAAe,CAAC5B,IAAI,GAAG;oBACrBJ,MAAM;oBACNvC,QAAQ;wBACN;4BACE+C,MAAMJ;4BACNW,OAAOI;wBACT;qBACD;oBACDc,YAAY;wBAAC;qBAAK;oBAClB/B,cAAcE;oBACd8B,IAAI/B;gBACN;YACF;YACA,IAAIH,SAAS,QAAQ;gBACnBgC,eAAe,CAAC5B,IAAI,GAAG;oBACrBJ,MAAM;oBACNE,cAAcE;oBACd8B,IAAI/B;gBACN;YACF;QACF;QACAlD,QAAQkF,YAAY,CAAChB,gBAAgB,GAAGa;IAC1C;IAEA,IAAI3E,iBAAiB;QACnB,KAAK,MAAM+E,SAAS/E,gBAAiB;YACnC,IAAIgF,gBAAgC;YACpC,MAAM9D,UAAoB,EAAE;YAE5B,MAAM+D,gBAAgB;gBACpB,IAAID,eAAe;oBACjB,OAAO1D;gBACT;gBAEA,OAAOoC;YACT;YAEA,KAAK,MAAM,EAAEwB,IAAI,EAAEC,gBAAgB,EAAE,IAAIJ,MAAM3E,MAAM,CAAE;gBACrD,IAAI4E,kBAAkB,MAAM;oBAC1BA,gBAAgBG;gBAClB;gBAEA,IAAIH,kBAAkBG,kBAAkB;oBACtC,MAAM,IAAI7F,qBACR,CAAC,8FAA8F,EAAE4F,KAAK,OAAO,EAAEF,gBAAgB,QAAQ,GAAG,WAAW,CAAC;gBAE1J;gBAEA,MAAMI,aAAaF,KAAKG,UAAU,CAAC,KAAK;gBAExC,IAAI,CAACJ,gBAAgB/D,OAAO,CAACkE,WAAW,EAAE;oBACxC,MAAM,IAAI9F,qBACR,CAAC,OAAO,EAAE8F,WAAW,uBAAuB,EAAEF,KAAK,sBAAsB,EAAED,gBAAgB9B,IAAI,CAAC,OAAO,CAAC;gBAE5G;gBAEAjC,QAAQoE,IAAI,CAACF;YACf;YAEA,IAAIJ,eAAe;gBACjB9D,QAAQoE,IAAI,CAAC;YACf;YAEA,IAAInC,OAAOjC,QAAQqE,IAAI,CAAC;YACxB,oEAAoE;YACpE,IAAIpC,KAAKqC,MAAM,GAAG,IAAI;gBACpBrC,OAAO;YACT;YAEA,MAAMsC,YAAYhG,eAAe;gBAAE0D;gBAAMvD;YAAQ;YAEjDqF,gBAAgB9D,OAAO,CAACsE,UAAU,GAAG;gBACnCtC,MAAMsC;gBACNnB,IAAIpD;gBACJqD,QAAQpE,gBAAgB,QAAQ4E,MAAMR,MAAM;YAC9C;QACF;IACF;IAEA,IAAItD,QAAQ;QACV,IAAIoB,kBAAkB;YACpB,MAAMqD,iBAAiB,GAAGjF,cAAc,MAAM,CAAC;YAE/C,MAAMS,UAAqC;gBACzC8C,IAAI;oBACFb,MAAM;oBACNR,MAAM;oBACNsB,YAAY;gBACd;gBACA0B,OAAO;oBACLxC,MAAM;oBACNR,MAAM;oBACNW,SAAS;gBACX;gBACAsC,QAAQ;oBACNzC,MAAM;oBACNR,MAAMZ;oBACNuB,SAAS;gBACX;gBACA4B,MAAM;oBACJ/B,MAAM;oBACNR,MAAM;oBAENW,SAAS;gBACX;gBACAuC,MAAM;oBACJ1C,MAAM;oBACNR,MAAM;gBACR;YACF;YAEA,IAAIT,2BAA2B;gBAC7BhB,QAAQiD,MAAM,GAAG;oBACfhB,MAAM;oBACNR,MAAM;oBACNwB,QAAQ;gBACV;YACF;YAEA,MAAM2B,oBAA8C;gBAClDC,gBAAgB;oBACd5C,MAAM,GAAGuC,eAAe,iBAAiB,CAAC;oBAC1CpB,IAAI;wBAAC;wBAAS;qBAAS;gBACzB;YACF;YAEA,IAAIjC,qBAAqB,SAAS;gBAChCyD,kBAAkBE,QAAQ,GAAG;oBAC3B7C,MAAM,GAAGuC,eAAe,SAAS,CAAC;oBAClCpB,IAAI;gBACN;YACF;YAEA,IAAIpC,2BAA2B;gBAC7B4D,kBAAkBG,YAAY,GAAG;oBAC/B9C,MAAM,GAAGuC,eAAe,cAAc,CAAC;oBACvCpB,IAAI;wBAAC;wBAAU;qBAAS;gBAC1B;YACF;YAEA/C,aAAa;gBACX4B,MAAMuC;gBACNxE;gBACAyC,aAAa;oBACXuC,UAAU;wBACR/C,MAAM,GAAGuC,eAAe,UAAU,CAAC;wBACnCxE,SAAS;4BAAC;yBAAS;wBACnBuD,gBAAgB;4BACd;gCACEtB,MAAM;gCACNO,OAAO7C;4BACT;yBACD;wBACD6D,UAAU;oBACZ;gBACF;gBACAvD,SAAS2E;YACX;YAEAlG,QAAQgE,SAAS,CAAC8B,eAAe,GAAGnE;YAEpC3B,QAAQkF,YAAY,CAACY,eAAe,GAAG;gBACrCE,QAAQ;oBACNjD,MAAM;oBACNvC,QAAQ;wBACN;4BACE+C,MAAM;4BACNO,OAAOgC;wBACT;qBACD;oBACDd,YAAY;wBAAC;qBAAK;oBAClB/B,cAAc;oBACdgC,IAAIhE;gBACN;YACF;QACF;QAEA,IAAIuB,oBAAoB;YACtB,MAAM+D,mBAAmB,GAAG1F,cAAc,QAAQ,CAAC;YACnD,MAAMS,UAAqC;gBACzC8C,IAAI;oBACFb,MAAM;oBACNR,MAAM;oBACNsB,YAAY;gBACd;gBACAmC,QAAQ;oBACNjD,MAAM;oBACNR,MAAM;gBACR;gBACAgD,OAAO;oBACLxC,MAAM;oBACNR,MAAM;oBACNW,SAAS;gBACX;gBACAsC,QAAQ;oBACNzC,MAAM;oBACNR,MAAMZ;oBACNuB,SAAS;gBACX;gBACA4B,MAAM;oBACJ/B,MAAM;oBACNR,MAAM;oBACNW,SAAS;gBACX;YACF;YAEA,IAAIrB,6BAA6B;gBAC/Bf,QAAQiD,MAAM,GAAG;oBACfhB,MAAM;oBACNR,MAAM;oBACNwB,QAAQ;gBACV;YACF;YAEA,MAAMkC,sBAAgD;gBACpDN,gBAAgB;oBAAE5C,MAAM,GAAGgD,iBAAiB,iBAAiB,CAAC;oBAAE7B,IAAI;wBAAC;wBAAS;qBAAS;gBAAC;YAC1F;YAEA,IAAIlC,uBAAuB,SAAS;gBAClCiE,oBAAoBC,SAAS,GAAG;oBAC9BnD,MAAM,GAAGgD,iBAAiB,WAAW,CAAC;oBACtC7B,IAAI;gBACN;YACF;YAEA,IAAIrC,6BAA6B;gBAC/BoE,oBAAoBJ,YAAY,GAAG;oBACjC9C,MAAM,GAAGgD,iBAAiB,cAAc,CAAC;oBACzC7B,IAAI;wBAAC;wBAAU;qBAAS;gBAC1B;YACF;YAEA9C,eAAe;gBACb2B,MAAMgD;gBACNjF;gBACAyC,aAAa;oBACXuC,UAAU;wBACR/C,MAAM,GAAGgD,iBAAiB,UAAU,CAAC;wBACrCjF,SAAS;4BAAC;yBAAS;wBACnBuD,gBAAgB;4BACd;gCACEtB,MAAM;gCACNO,OAAO7C;4BACT;yBACD;wBACD6D,UAAU;oBACZ;gBACF;gBACAvD,SAASkF;YACX;YAEAzG,QAAQgE,SAAS,CAACuC,iBAAiB,GAAG3E;YAEtC5B,QAAQkF,YAAY,CAACqB,iBAAiB,GAAG;gBACvCP,QAAQ;oBACNjD,MAAM;oBACNvC,QAAQ;wBACN;4BACE+C,MAAM;4BACNO,OAAOyC;wBACT;qBACD;oBACDvB,YAAY;wBAAC;qBAAK;oBAClB/B,cAAc;oBACdgC,IAAIhE;gBACN;YACF;QACF;QAEA,IAAIY,cAAcoC,IAAI,EAAE;YACtB,MAAM0C,sBAAiD;gBACrDvC,IAAI;oBACFb,MAAM;oBACNR,MAAM;oBACNsB,YAAY;gBACd;gBACA0B,OAAO;oBACLxC,MAAM;oBACNR,MAAM;gBACR;gBACAiD,QAAQ;oBACNzC,MAAM;oBACNR,MAAMZ;oBACNuB,SAAS;gBACX;gBACA4B,MAAM;oBACJ/B,MAAM;oBACNR,MAAM;oBACNW,SAAS;gBACX;YACF;YAEA,IAAInB,+BAA+B;gBACjCoE,oBAAoBpC,MAAM,GAAG;oBAC3BhB,MAAM;oBACNR,MAAM;oBACNwB,QAAQ;gBACV;YACF;YAEA,MAAMqC,yBAAyB,GAAG3F,YAAYjB,QAAQ6G,mBAAmB,EAAE;YAE3E,MAAMC,sBAAgD;gBACpDf,OAAO;oBACLxC,MAAM,GAAGqD,uBAAuB,UAAU,CAAC;oBAC3ClC,IAAI;gBACN;gBACAqC,WAAW;oBACTxD,MAAM,GAAGqD,uBAAuB,WAAW,CAAC;oBAC5ClC,IAAI;gBACN;gBACAsC,SAAS;oBACPzD,MAAM,GAAGqD,uBAAuB,SAAS,CAAC;oBAC1ClC,IAAI;gBACN;YACF;YAEA,IAAInC,+BAA+B;gBACjCuE,oBAAoBG,SAAS,GAAG;oBAC9B1D,MAAM,GAAGqD,uBAAuB,WAAW,CAAC;oBAC5ClC,IAAI;gBACN;YACF;YAEA,MAAMwC,0BAAyD;gBAC7DZ,UAAU;oBACR/C,MAAM,GAAGqD,uBAAuB,UAAU,CAAC;oBAC3CtF,SAAS;wBAAC;qBAAS;oBACnBuD,gBAAgB;wBACd;4BACEtB,MAAM;4BACNO,OAAO7C;wBACT;qBACD;oBACD6D,UAAU;gBACZ;YACF;YAEAjD,cAAciB,OAAO,CAAC,CAACqE;gBACrB,MAAMC,qBAAqBpH,QAAQqH,OAAO,CAACC,WAAW,CAACH,WAAW,CAACI,MAAM;gBACzE,MAAMC,sBAAsB5H,gBAAgB;oBAC1CI;oBACAuH,QAAQH;oBACRK,sBAAsB;gBACxB;gBACA,IAAIC,UACF1H,QAAQ2H,MAAM,KAAK,SAAS,SAAS;gBACvC,MAAMC,gCACJ5H,QAAQqH,OAAO,CAACC,WAAW,CAACF,mBAAmBS,IAAI,CAAC,EAAEC;gBAExD,IAAIF,kCAAkC,UAAU;oBAC9CF,UAAU;gBACZ;gBACA,IAAIE,kCAAkC,QAAQ;oBAC5CF,UAAU;gBACZ;gBAEA,MAAMK,UAAU,GAAGZ,WAAW,EAAE,CAAC;gBAEjCR,mBAAmB,CAACoB,QAAQ,GAAG;oBAC7BxE,MAAM,GAAGiE,oBAAoB,GAAG,CAAC;oBACjCzE,MAAM2E;gBACR;gBAEAR,uBAAuB,CAAC,GAAGC,WAAW,IAAI,CAAC,CAAC,GAAG;oBAC7C5D,MAAM,GAAGqD,uBAAuB,CAAC,EAAEjH,YAAYwH,YAAY,GAAG,CAAC;oBAC/D7F,SAAS;wBAACyG;qBAAQ;oBAClBlD,gBAAgB;wBACd;4BACEtB,MAAM;4BACNO,OAAO0D;wBACT;qBACD;oBACD1C,UAAU;gBACZ;gBAEA,MAAMkD,eAAe;oBAACD;iBAAQ;gBAE9B,MAAMpD,SAAS,CAACpE,iBAAiBwB,oBAAoBkG,GAAG,CAACd;gBAEzD,IAAIxC,QAAQ;oBACVqD,aAAatC,IAAI,CAAC;gBACpB;gBACA,IAAInD,+BAA+B;oBACjCyF,aAAatC,IAAI,CAAC;gBACpB;gBAEA,MAAMG,YAAYhG,eAAe;oBAC/B0D,MAAM,GAAGqD,uBAAuB,CAAC,EAAEY,oBAAoB,GAAG,CAAC;oBAC3DxH;gBACF;gBAEA8G,mBAAmB,CAACjB,UAAU,GAAG;oBAC/BtC,MAAMsC;oBACNnB,IAAIsD;oBACJrD;gBACF;YACF;YAEA3C,qBAAqB;gBACnBuB,MAAMqD;gBACNtF,SAASqF;gBACT5C,aAAamD;gBACb3F,SAASuF;YACX;YAEA9G,QAAQgE,SAAS,CAAC4C,uBAAuB,GAAG5E;YAE5C,MAAMkG,8BAA2D;gBAC/DlC,QAAQ;oBACNjD,MAAM;oBACNvC,QAAQ;wBACN;4BACE+C,MAAM;4BACNO,OAAO8C;wBACT;qBACD;oBACD5B,YAAY;wBAAC;qBAAK;oBAClB/B,cAAc;oBACdgC,IAAIhE;gBACN;YACF;YAEAY,cAAciB,OAAO,CAAC,CAACqE;gBACrB,MAAMgB,mBAAmBvI,gBAAgB;oBACvCI;oBACAuH,QAAQvH,QAAQqH,OAAO,CAACC,WAAW,CAACH,WAAW,CAACI,MAAM;oBACtDE,sBAAsB;gBACxB;gBACA,MAAMW,eAAe,GAAGjB,WAAW,EAAE,CAAC;gBAEtCe,2BAA2B,CAACE,aAAa,GAAG;oBAC1CrF,MAAM;oBACNvC,QAAQ;wBACN;4BACE+C,MAAM6E;4BACNtE,OAAO8C;wBACT;qBACD;oBACD5B,YAAY;wBAAC;qBAAK;oBAClB/B,cAAckE;oBACdlC,IAAIkD;gBACN;YACF;YACAnI,QAAQkF,YAAY,CAAC0B,uBAAuB,GAAGsB;QACjD;IACF;IAEA,MAAMG,iBAA8C,CAAC;IAErDxF,sBAAsBC,OAAO,CAAC,CAAC,EAAEC,IAAI,EAAEE,YAAY,EAAEC,MAAM,EAAE,EAAEC;QAC7D,IAAIJ,SAAS,OAAO;YAClBsF,cAAc,CAAClF,IAAI,GAAG;gBACpBJ,MAAM;gBACNvC,QAAQ;oBACN;wBACE+C,MAAMJ;wBACNW,OAAO7C;oBACT;iBACD;gBACD+D,YAAY;oBAAC;iBAAK;gBAClB/B,cAAcE;gBACd8B,IAAI/B;YACN;QACF;QACA,IAAIH,SAAS,QAAQ;YACnBsF,cAAc,CAAClF,IAAI,GAAG;gBACpBJ,MAAM;gBACNE,cAAcA,gBAAgBE;gBAC9B8B,IAAI/B;YACN;QACF;IACF;IAEA,IAAId,mBAAmB;QACrBiG,eAAeC,QAAQ,GAAG;YACxBvF,MAAM;YACNE,cAAc;YACdgC,IAAIvD,aAAa6B,IAAI;QACvB;IACF;IAEA,IAAIlC,UAAUM,YAAY;QACxB0G,eAAeE,MAAM,GAAG;YACtBxF,MAAM;YACNE,cAAc;YACdgC,IAAItD,WAAW4B,IAAI;QACrB;IACF;IAEA,IAAIlC,UAAUO,cAAc;QAC1ByG,eAAeG,QAAQ,GAAG;YACxBzF,MAAM;YACNE,cAAc;YACdgC,IAAIrD,aAAa2B,IAAI;QACvB;IACF;IAEA,IAAI1B,cAAcoC,IAAI,IAAIjC,oBAAoB;QAC5CqG,eAAeI,KAAK,GAAG;YACrB1F,MAAM;YACNE,cAAc;YACdgC,IAAIjD,mBAAmBuB,IAAI;QAC7B;IACF;IAEAvD,QAAQkF,YAAY,CAACjE,UAAU,GAAGoH;IAElC,OAAO;QACLhG;QACAC;QACAC;QACAC;QACAC;QACAR;IACF;AACF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"buildRawSchema.d.ts","sourceRoot":"","sources":["../../src/schema/buildRawSchema.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAY,WAAW,EAAE,MAAM,aAAa,CAAA;AAKxE;;GAEG;AACH,eAAO,MAAM,cAAc,8BAGxB;IACD,OAAO,EAAE,cAAc,CAAA;IACvB,WAAW,EAAE,WAAW,CAAA;CACzB,SA4GA,CAAA"}
1
+ {"version":3,"file":"buildRawSchema.d.ts","sourceRoot":"","sources":["../../src/schema/buildRawSchema.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAY,WAAW,EAAE,MAAM,aAAa,CAAA;AAKxE;;GAEG;AACH,eAAO,MAAM,cAAc,8BAGxB;IACD,OAAO,EAAE,cAAc,CAAA;IACvB,WAAW,EAAE,WAAW,CAAA;CACzB,SA8GA,CAAA"}
@@ -1,4 +1,4 @@
1
- import { buildVersionCollectionFields, buildVersionGlobalFields } from 'payload';
1
+ import { buildVersionCollectionFields, buildVersionCompoundIndexes, buildVersionGlobalFields } from 'payload';
2
2
  import toSnakeCase from 'to-snake-case';
3
3
  import { createTableName } from '../createTableName.js';
4
4
  import { buildTable } from './build.js';
@@ -34,6 +34,7 @@ import { buildTable } from './build.js';
34
34
  }
35
35
  buildTable({
36
36
  adapter,
37
+ compoundIndexes: collection.sanitizedIndexes,
37
38
  disableNotNull: !!collection?.versions?.drafts,
38
39
  disableUnique: false,
39
40
  fields: collection.flattenedFields,
@@ -48,6 +49,9 @@ import { buildTable } from './build.js';
48
49
  const versionFields = buildVersionCollectionFields(config, collection, true);
49
50
  buildTable({
50
51
  adapter,
52
+ compoundIndexes: buildVersionCompoundIndexes({
53
+ indexes: collection.sanitizedIndexes
54
+ }),
51
55
  disableNotNull: !!collection.versions?.drafts,
52
56
  disableUnique: true,
53
57
  fields: versionFields,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schema/buildRawSchema.ts"],"sourcesContent":["import { buildVersionCollectionFields, buildVersionGlobalFields } from 'payload'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter, RawIndex, SetColumnID } from '../types.js'\n\nimport { createTableName } from '../createTableName.js'\nimport { buildTable } from './build.js'\n\n/**\n * Builds abstract Payload SQL schema\n */\nexport const buildRawSchema = ({\n adapter,\n setColumnID,\n}: {\n adapter: DrizzleAdapter\n setColumnID: SetColumnID\n}) => {\n adapter.indexes = new Set()\n\n adapter.payload.config.collections.forEach((collection) => {\n createTableName({\n adapter,\n config: collection,\n })\n\n if (collection.versions) {\n createTableName({\n adapter,\n config: collection,\n versions: true,\n versionsCustomName: true,\n })\n }\n })\n\n adapter.payload.config.collections.forEach((collection) => {\n const tableName = adapter.tableNameMap.get(toSnakeCase(collection.slug))\n const config = adapter.payload.config\n\n const baseIndexes: Record<string, RawIndex> = {}\n\n if (collection.upload.filenameCompoundIndex) {\n const indexName = `${tableName}_filename_compound_idx`\n\n baseIndexes.filename_compound_index = {\n name: indexName,\n on: collection.upload.filenameCompoundIndex.map((f) => f),\n unique: true,\n }\n }\n\n buildTable({\n adapter,\n disableNotNull: !!collection?.versions?.drafts,\n disableUnique: false,\n fields: collection.flattenedFields,\n parentIsLocalized: false,\n setColumnID,\n tableName,\n timestamps: collection.timestamps,\n versions: false,\n })\n\n if (collection.versions) {\n const versionsTableName = adapter.tableNameMap.get(\n `_${toSnakeCase(collection.slug)}${adapter.versionsSuffix}`,\n )\n const versionFields = buildVersionCollectionFields(config, collection, true)\n\n buildTable({\n adapter,\n disableNotNull: !!collection.versions?.drafts,\n disableUnique: true,\n fields: versionFields,\n parentIsLocalized: false,\n setColumnID,\n tableName: versionsTableName,\n timestamps: true,\n versions: true,\n })\n }\n })\n\n adapter.payload.config.globals.forEach((global) => {\n const tableName = createTableName({\n adapter,\n config: global,\n })\n\n buildTable({\n adapter,\n disableNotNull: !!global?.versions?.drafts,\n disableUnique: false,\n fields: global.flattenedFields,\n parentIsLocalized: false,\n setColumnID,\n tableName,\n timestamps: false,\n versions: false,\n })\n\n if (global.versions) {\n const versionsTableName = createTableName({\n adapter,\n config: global,\n versions: true,\n versionsCustomName: true,\n })\n const config = adapter.payload.config\n const versionFields = buildVersionGlobalFields(config, global, true)\n\n buildTable({\n adapter,\n disableNotNull: !!global.versions?.drafts,\n disableUnique: true,\n fields: versionFields,\n parentIsLocalized: false,\n setColumnID,\n tableName: versionsTableName,\n timestamps: true,\n versions: true,\n })\n }\n })\n}\n"],"names":["buildVersionCollectionFields","buildVersionGlobalFields","toSnakeCase","createTableName","buildTable","buildRawSchema","adapter","setColumnID","indexes","Set","payload","config","collections","forEach","collection","versions","versionsCustomName","tableName","tableNameMap","get","slug","baseIndexes","upload","filenameCompoundIndex","indexName","filename_compound_index","name","on","map","f","unique","disableNotNull","drafts","disableUnique","fields","flattenedFields","parentIsLocalized","timestamps","versionsTableName","versionsSuffix","versionFields","globals","global"],"mappings":"AAAA,SAASA,4BAA4B,EAAEC,wBAAwB,QAAQ,UAAS;AAChF,OAAOC,iBAAiB,gBAAe;AAIvC,SAASC,eAAe,QAAQ,wBAAuB;AACvD,SAASC,UAAU,QAAQ,aAAY;AAEvC;;CAEC,GACD,OAAO,MAAMC,iBAAiB,CAAC,EAC7BC,OAAO,EACPC,WAAW,EAIZ;IACCD,QAAQE,OAAO,GAAG,IAAIC;IAEtBH,QAAQI,OAAO,CAACC,MAAM,CAACC,WAAW,CAACC,OAAO,CAAC,CAACC;QAC1CX,gBAAgB;YACdG;YACAK,QAAQG;QACV;QAEA,IAAIA,WAAWC,QAAQ,EAAE;YACvBZ,gBAAgB;gBACdG;gBACAK,QAAQG;gBACRC,UAAU;gBACVC,oBAAoB;YACtB;QACF;IACF;IAEAV,QAAQI,OAAO,CAACC,MAAM,CAACC,WAAW,CAACC,OAAO,CAAC,CAACC;QAC1C,MAAMG,YAAYX,QAAQY,YAAY,CAACC,GAAG,CAACjB,YAAYY,WAAWM,IAAI;QACtE,MAAMT,SAASL,QAAQI,OAAO,CAACC,MAAM;QAErC,MAAMU,cAAwC,CAAC;QAE/C,IAAIP,WAAWQ,MAAM,CAACC,qBAAqB,EAAE;YAC3C,MAAMC,YAAY,GAAGP,UAAU,sBAAsB,CAAC;YAEtDI,YAAYI,uBAAuB,GAAG;gBACpCC,MAAMF;gBACNG,IAAIb,WAAWQ,MAAM,CAACC,qBAAqB,CAACK,GAAG,CAAC,CAACC,IAAMA;gBACvDC,QAAQ;YACV;QACF;QAEA1B,WAAW;YACTE;YACAyB,gBAAgB,CAAC,CAACjB,YAAYC,UAAUiB;YACxCC,eAAe;YACfC,QAAQpB,WAAWqB,eAAe;YAClCC,mBAAmB;YACnB7B;YACAU;YACAoB,YAAYvB,WAAWuB,UAAU;YACjCtB,UAAU;QACZ;QAEA,IAAID,WAAWC,QAAQ,EAAE;YACvB,MAAMuB,oBAAoBhC,QAAQY,YAAY,CAACC,GAAG,CAChD,CAAC,CAAC,EAAEjB,YAAYY,WAAWM,IAAI,IAAId,QAAQiC,cAAc,EAAE;YAE7D,MAAMC,gBAAgBxC,6BAA6BW,QAAQG,YAAY;YAEvEV,WAAW;gBACTE;gBACAyB,gBAAgB,CAAC,CAACjB,WAAWC,QAAQ,EAAEiB;gBACvCC,eAAe;gBACfC,QAAQM;gBACRJ,mBAAmB;gBACnB7B;gBACAU,WAAWqB;gBACXD,YAAY;gBACZtB,UAAU;YACZ;QACF;IACF;IAEAT,QAAQI,OAAO,CAACC,MAAM,CAAC8B,OAAO,CAAC5B,OAAO,CAAC,CAAC6B;QACtC,MAAMzB,YAAYd,gBAAgB;YAChCG;YACAK,QAAQ+B;QACV;QAEAtC,WAAW;YACTE;YACAyB,gBAAgB,CAAC,CAACW,QAAQ3B,UAAUiB;YACpCC,eAAe;YACfC,QAAQQ,OAAOP,eAAe;YAC9BC,mBAAmB;YACnB7B;YACAU;YACAoB,YAAY;YACZtB,UAAU;QACZ;QAEA,IAAI2B,OAAO3B,QAAQ,EAAE;YACnB,MAAMuB,oBAAoBnC,gBAAgB;gBACxCG;gBACAK,QAAQ+B;gBACR3B,UAAU;gBACVC,oBAAoB;YACtB;YACA,MAAML,SAASL,QAAQI,OAAO,CAACC,MAAM;YACrC,MAAM6B,gBAAgBvC,yBAAyBU,QAAQ+B,QAAQ;YAE/DtC,WAAW;gBACTE;gBACAyB,gBAAgB,CAAC,CAACW,OAAO3B,QAAQ,EAAEiB;gBACnCC,eAAe;gBACfC,QAAQM;gBACRJ,mBAAmB;gBACnB7B;gBACAU,WAAWqB;gBACXD,YAAY;gBACZtB,UAAU;YACZ;QACF;IACF;AACF,EAAC"}
1
+ {"version":3,"sources":["../../src/schema/buildRawSchema.ts"],"sourcesContent":["import {\n buildVersionCollectionFields,\n buildVersionCompoundIndexes,\n buildVersionGlobalFields,\n} from 'payload'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter, RawIndex, SetColumnID } from '../types.js'\n\nimport { createTableName } from '../createTableName.js'\nimport { buildTable } from './build.js'\n\n/**\n * Builds abstract Payload SQL schema\n */\nexport const buildRawSchema = ({\n adapter,\n setColumnID,\n}: {\n adapter: DrizzleAdapter\n setColumnID: SetColumnID\n}) => {\n adapter.indexes = new Set()\n\n adapter.payload.config.collections.forEach((collection) => {\n createTableName({\n adapter,\n config: collection,\n })\n\n if (collection.versions) {\n createTableName({\n adapter,\n config: collection,\n versions: true,\n versionsCustomName: true,\n })\n }\n })\n\n adapter.payload.config.collections.forEach((collection) => {\n const tableName = adapter.tableNameMap.get(toSnakeCase(collection.slug))\n const config = adapter.payload.config\n\n const baseIndexes: Record<string, RawIndex> = {}\n\n if (collection.upload.filenameCompoundIndex) {\n const indexName = `${tableName}_filename_compound_idx`\n\n baseIndexes.filename_compound_index = {\n name: indexName,\n on: collection.upload.filenameCompoundIndex.map((f) => f),\n unique: true,\n }\n }\n\n buildTable({\n adapter,\n compoundIndexes: collection.sanitizedIndexes,\n disableNotNull: !!collection?.versions?.drafts,\n disableUnique: false,\n fields: collection.flattenedFields,\n parentIsLocalized: false,\n setColumnID,\n tableName,\n timestamps: collection.timestamps,\n versions: false,\n })\n\n if (collection.versions) {\n const versionsTableName = adapter.tableNameMap.get(\n `_${toSnakeCase(collection.slug)}${adapter.versionsSuffix}`,\n )\n const versionFields = buildVersionCollectionFields(config, collection, true)\n\n buildTable({\n adapter,\n compoundIndexes: buildVersionCompoundIndexes({ indexes: collection.sanitizedIndexes }),\n disableNotNull: !!collection.versions?.drafts,\n disableUnique: true,\n fields: versionFields,\n parentIsLocalized: false,\n setColumnID,\n tableName: versionsTableName,\n timestamps: true,\n versions: true,\n })\n }\n })\n\n adapter.payload.config.globals.forEach((global) => {\n const tableName = createTableName({\n adapter,\n config: global,\n })\n\n buildTable({\n adapter,\n disableNotNull: !!global?.versions?.drafts,\n disableUnique: false,\n fields: global.flattenedFields,\n parentIsLocalized: false,\n setColumnID,\n tableName,\n timestamps: false,\n versions: false,\n })\n\n if (global.versions) {\n const versionsTableName = createTableName({\n adapter,\n config: global,\n versions: true,\n versionsCustomName: true,\n })\n const config = adapter.payload.config\n const versionFields = buildVersionGlobalFields(config, global, true)\n\n buildTable({\n adapter,\n disableNotNull: !!global.versions?.drafts,\n disableUnique: true,\n fields: versionFields,\n parentIsLocalized: false,\n setColumnID,\n tableName: versionsTableName,\n timestamps: true,\n versions: true,\n })\n }\n })\n}\n"],"names":["buildVersionCollectionFields","buildVersionCompoundIndexes","buildVersionGlobalFields","toSnakeCase","createTableName","buildTable","buildRawSchema","adapter","setColumnID","indexes","Set","payload","config","collections","forEach","collection","versions","versionsCustomName","tableName","tableNameMap","get","slug","baseIndexes","upload","filenameCompoundIndex","indexName","filename_compound_index","name","on","map","f","unique","compoundIndexes","sanitizedIndexes","disableNotNull","drafts","disableUnique","fields","flattenedFields","parentIsLocalized","timestamps","versionsTableName","versionsSuffix","versionFields","globals","global"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../src/schema/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAW7C,OAAO,KAAK,EACV,cAAc,EACd,MAAM,EACN,SAAS,EAET,QAAQ,EAER,WAAW,EACX,WAAW,EACZ,MAAM,aAAa,CAAA;AAUpB,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,cAAc,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAClC,cAAc,EAAE,OAAO,CAAA;IACvB,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACjC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACzC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACxC,YAAY,EAAE,MAAM,CAAA;IACpB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1B,gBAAgB,EAAE,WAAW,CAAA;IAC7B,oBAAoB,CAAC,EAAE,WAAW,CAAA;IAClC,kBAAkB,EAAE,MAAM,CAAA;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,WAAW,CAAA;IACxB,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAChC,QAAQ,EAAE,OAAO,CAAA;IACjB;;;OAGG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAA;CACtC,CAAA;AAED,KAAK,MAAM,GAAG;IACZ,iBAAiB,EAAE,OAAO,CAAA;IAC1B,2BAA2B,EAAE,OAAO,CAAA;IACpC,yBAAyB,EAAE,OAAO,CAAA;IAClC,6BAA6B,EAAE,OAAO,CAAA;IACtC,kBAAkB,EAAE,OAAO,GAAG,OAAO,CAAA;IACrC,gBAAgB,EAAE,OAAO,GAAG,OAAO,CAAA;CACpC,CAAA;AAED,eAAO,MAAM,cAAc,kYAyBxB,IAAI,KAAG,MAk5BT,CAAA"}
1
+ {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../src/schema/traverseFields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,cAAc,EAAE,MAAM,SAAS,CAAA;AAW5D,OAAO,KAAK,EACV,cAAc,EACd,MAAM,EACN,SAAS,EAET,QAAQ,EAER,WAAW,EACX,WAAW,EACZ,MAAM,aAAa,CAAA;AAUpB,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,cAAc,CAAA;IACvB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IAClC,cAAc,EAAE,OAAO,CAAA;IACvB,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACjC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;IACzC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IACxC,YAAY,EAAE,MAAM,CAAA;IACpB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,eAAe,EAAE,MAAM,CAAA;IACvB,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1B,gBAAgB,EAAE,WAAW,CAAA;IAC7B,oBAAoB,CAAC,EAAE,WAAW,CAAA;IAClC,kBAAkB,EAAE,MAAM,CAAA;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,WAAW,CAAA;IACxB,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAChC,QAAQ,EAAE,OAAO,CAAA;IACjB;;;OAGG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAA;CACtC,CAAA;AAED,KAAK,MAAM,GAAG;IACZ,iBAAiB,EAAE,OAAO,CAAA;IAC1B,2BAA2B,EAAE,OAAO,CAAA;IACpC,yBAAyB,EAAE,OAAO,CAAA;IAClC,6BAA6B,EAAE,OAAO,CAAA;IACtC,kBAAkB,EAAE,OAAO,GAAG,OAAO,CAAA;IACrC,gBAAgB,EAAE,OAAO,GAAG,OAAO,CAAA;CACpC,CAAA;AAED,eAAO,MAAM,cAAc,kYAyBxB,IAAI,KAAG,MAk5BT,CAAA"}