@payloadcms/drizzle 3.92.1 → 3.93.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 (40) hide show
  1. package/dist/exports/postgres.d.ts +1 -1
  2. package/dist/exports/postgres.d.ts.map +1 -1
  3. package/dist/exports/postgres.js +1 -1
  4. package/dist/exports/postgres.js.map +1 -1
  5. package/dist/exports/sqlite.d.ts +1 -0
  6. package/dist/exports/sqlite.d.ts.map +1 -1
  7. package/dist/exports/sqlite.js +1 -0
  8. package/dist/exports/sqlite.js.map +1 -1
  9. package/dist/postgres/requireDrizzleKit.d.ts +4 -0
  10. package/dist/postgres/requireDrizzleKit.d.ts.map +1 -1
  11. package/dist/postgres/requireDrizzleKit.js +15 -10
  12. package/dist/postgres/requireDrizzleKit.js.map +1 -1
  13. package/dist/queries/getTableColumnFromPath.d.ts.map +1 -1
  14. package/dist/queries/getTableColumnFromPath.js +9 -1
  15. package/dist/queries/getTableColumnFromPath.js.map +1 -1
  16. package/dist/sqlite/createRequireDrizzleKit.d.ts +6 -0
  17. package/dist/sqlite/createRequireDrizzleKit.d.ts.map +1 -0
  18. package/dist/sqlite/createRequireDrizzleKit.js +28 -0
  19. package/dist/sqlite/createRequireDrizzleKit.js.map +1 -0
  20. package/dist/sqlite/createRequireDrizzleKit.spec.js +61 -0
  21. package/dist/sqlite/createRequireDrizzleKit.spec.js.map +1 -0
  22. package/dist/sqlite/drizzleKitTooling.spec.js +92 -0
  23. package/dist/sqlite/drizzleKitTooling.spec.js.map +1 -0
  24. package/dist/sqlite/requireDrizzleKit.d.ts +1 -2
  25. package/dist/sqlite/requireDrizzleKit.d.ts.map +1 -1
  26. package/dist/sqlite/requireDrizzleKit.js +4 -10
  27. package/dist/sqlite/requireDrizzleKit.js.map +1 -1
  28. package/dist/transform/getBlockFromField.d.ts +8 -0
  29. package/dist/transform/getBlockFromField.d.ts.map +1 -0
  30. package/dist/transform/getBlockFromField.js +6 -0
  31. package/dist/transform/getBlockFromField.js.map +1 -0
  32. package/dist/transform/read/traverseFields.d.ts.map +1 -1
  33. package/dist/transform/read/traverseFields.js +12 -3
  34. package/dist/transform/read/traverseFields.js.map +1 -1
  35. package/dist/transform/write/blocks.d.ts.map +1 -1
  36. package/dist/transform/write/blocks.js +6 -1
  37. package/dist/transform/write/blocks.js.map +1 -1
  38. package/dist/transform/write/traverseFields.js +1 -1
  39. package/dist/transform/write/traverseFields.js.map +1 -1
  40. package/package.json +4 -3
@@ -10,7 +10,7 @@ export { execute } from '../postgres/execute.js';
10
10
  export { init } from '../postgres/init.js';
11
11
  export { insert } from '../postgres/insert.js';
12
12
  export { migratePostgresV2toV3 } from '../postgres/predefinedMigrations/v2-v3/index.js';
13
- export { requireDrizzleKit } from '../postgres/requireDrizzleKit.js';
13
+ export { createRequireDrizzleKit, requireDrizzleKit } from '../postgres/requireDrizzleKit.js';
14
14
  export { geometryColumn } from '../postgres/schema/geometryColumn.js';
15
15
  export * from '../postgres/types.js';
16
16
  //# sourceMappingURL=postgres.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../src/exports/postgres.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAA;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAA;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAA;AACrE,cAAc,sBAAsB,CAAA"}
1
+ {"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../src/exports/postgres.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAA;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAA;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAA;AACvE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,iDAAiD,CAAA;AACvF,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AAC7F,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAA;AACrE,cAAc,sBAAsB,CAAA"}
@@ -10,7 +10,7 @@ export { execute } from '../postgres/execute.js';
10
10
  export { init } from '../postgres/init.js';
11
11
  export { insert } from '../postgres/insert.js';
12
12
  export { migratePostgresV2toV3 } from '../postgres/predefinedMigrations/v2-v3/index.js';
13
- export { requireDrizzleKit } from '../postgres/requireDrizzleKit.js';
13
+ export { createRequireDrizzleKit, requireDrizzleKit } from '../postgres/requireDrizzleKit.js';
14
14
  export { geometryColumn } from '../postgres/schema/geometryColumn.js';
15
15
  export * from '../postgres/types.js';
16
16
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/exports/postgres.ts"],"sourcesContent":["export { columnToCodeConverter } from '../postgres/columnToCodeConverter.js'\nexport { countDistinct } from '../postgres/countDistinct.js'\nexport { createDatabase } from '../postgres/createDatabase.js'\nexport { createExtensions } from '../postgres/createExtensions.js'\nexport { createJSONQuery } from '../postgres/createJSONQuery/index.js'\nexport { defaultDrizzleSnapshot } from '../postgres/defaultSnapshot.js'\nexport { deleteWhere } from '../postgres/deleteWhere.js'\nexport { dropDatabase } from '../postgres/dropDatabase.js'\nexport { execute } from '../postgres/execute.js'\nexport { init } from '../postgres/init.js'\nexport { insert } from '../postgres/insert.js'\nexport { migratePostgresV2toV3 } from '../postgres/predefinedMigrations/v2-v3/index.js'\nexport { requireDrizzleKit } from '../postgres/requireDrizzleKit.js'\nexport { geometryColumn } from '../postgres/schema/geometryColumn.js'\nexport * from '../postgres/types.js'\n"],"names":["columnToCodeConverter","countDistinct","createDatabase","createExtensions","createJSONQuery","defaultDrizzleSnapshot","deleteWhere","dropDatabase","execute","init","insert","migratePostgresV2toV3","requireDrizzleKit","geometryColumn"],"mappings":"AAAA,SAASA,qBAAqB,QAAQ,uCAAsC;AAC5E,SAASC,aAAa,QAAQ,+BAA8B;AAC5D,SAASC,cAAc,QAAQ,gCAA+B;AAC9D,SAASC,gBAAgB,QAAQ,kCAAiC;AAClE,SAASC,eAAe,QAAQ,uCAAsC;AACtE,SAASC,sBAAsB,QAAQ,iCAAgC;AACvE,SAASC,WAAW,QAAQ,6BAA4B;AACxD,SAASC,YAAY,QAAQ,8BAA6B;AAC1D,SAASC,OAAO,QAAQ,yBAAwB;AAChD,SAASC,IAAI,QAAQ,sBAAqB;AAC1C,SAASC,MAAM,QAAQ,wBAAuB;AAC9C,SAASC,qBAAqB,QAAQ,kDAAiD;AACvF,SAASC,iBAAiB,QAAQ,mCAAkC;AACpE,SAASC,cAAc,QAAQ,uCAAsC;AACrE,cAAc,uBAAsB"}
1
+ {"version":3,"sources":["../../src/exports/postgres.ts"],"sourcesContent":["export { columnToCodeConverter } from '../postgres/columnToCodeConverter.js'\nexport { countDistinct } from '../postgres/countDistinct.js'\nexport { createDatabase } from '../postgres/createDatabase.js'\nexport { createExtensions } from '../postgres/createExtensions.js'\nexport { createJSONQuery } from '../postgres/createJSONQuery/index.js'\nexport { defaultDrizzleSnapshot } from '../postgres/defaultSnapshot.js'\nexport { deleteWhere } from '../postgres/deleteWhere.js'\nexport { dropDatabase } from '../postgres/dropDatabase.js'\nexport { execute } from '../postgres/execute.js'\nexport { init } from '../postgres/init.js'\nexport { insert } from '../postgres/insert.js'\nexport { migratePostgresV2toV3 } from '../postgres/predefinedMigrations/v2-v3/index.js'\nexport { createRequireDrizzleKit, requireDrizzleKit } from '../postgres/requireDrizzleKit.js'\nexport { geometryColumn } from '../postgres/schema/geometryColumn.js'\nexport * from '../postgres/types.js'\n"],"names":["columnToCodeConverter","countDistinct","createDatabase","createExtensions","createJSONQuery","defaultDrizzleSnapshot","deleteWhere","dropDatabase","execute","init","insert","migratePostgresV2toV3","createRequireDrizzleKit","requireDrizzleKit","geometryColumn"],"mappings":"AAAA,SAASA,qBAAqB,QAAQ,uCAAsC;AAC5E,SAASC,aAAa,QAAQ,+BAA8B;AAC5D,SAASC,cAAc,QAAQ,gCAA+B;AAC9D,SAASC,gBAAgB,QAAQ,kCAAiC;AAClE,SAASC,eAAe,QAAQ,uCAAsC;AACtE,SAASC,sBAAsB,QAAQ,iCAAgC;AACvE,SAASC,WAAW,QAAQ,6BAA4B;AACxD,SAASC,YAAY,QAAQ,8BAA6B;AAC1D,SAASC,OAAO,QAAQ,yBAAwB;AAChD,SAASC,IAAI,QAAQ,sBAAqB;AAC1C,SAASC,MAAM,QAAQ,wBAAuB;AAC9C,SAASC,qBAAqB,QAAQ,kDAAiD;AACvF,SAASC,uBAAuB,EAAEC,iBAAiB,QAAQ,mCAAkC;AAC7F,SAASC,cAAc,QAAQ,uCAAsC;AACrE,cAAc,uBAAsB"}
@@ -2,6 +2,7 @@ export { columnToCodeConverter } from '../sqlite/columnToCodeConverter.js';
2
2
  export { countDistinct } from '../sqlite/countDistinct.js';
3
3
  export { convertPathToJSONTraversal } from '../sqlite/createJSONQuery/convertPathToJSONTraversal.js';
4
4
  export { createJSONQuery } from '../sqlite/createJSONQuery/index.js';
5
+ export { createRequireDrizzleKit } from '../sqlite/createRequireDrizzleKit.js';
5
6
  export { defaultDrizzleSnapshot } from '../sqlite/defaultSnapshot.js';
6
7
  export { deleteWhere } from '../sqlite/deleteWhere.js';
7
8
  export { dropDatabase } from '../sqlite/dropDatabase.js';
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/exports/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,yDAAyD,CAAA;AACpG,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,cAAc,oBAAoB,CAAA"}
1
+ {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/exports/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,yDAAyD,CAAA;AACpG,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAA;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAClE,cAAc,oBAAoB,CAAA"}
@@ -2,6 +2,7 @@ export { columnToCodeConverter } from '../sqlite/columnToCodeConverter.js';
2
2
  export { countDistinct } from '../sqlite/countDistinct.js';
3
3
  export { convertPathToJSONTraversal } from '../sqlite/createJSONQuery/convertPathToJSONTraversal.js';
4
4
  export { createJSONQuery } from '../sqlite/createJSONQuery/index.js';
5
+ export { createRequireDrizzleKit } from '../sqlite/createRequireDrizzleKit.js';
5
6
  export { defaultDrizzleSnapshot } from '../sqlite/defaultSnapshot.js';
6
7
  export { deleteWhere } from '../sqlite/deleteWhere.js';
7
8
  export { dropDatabase } from '../sqlite/dropDatabase.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/exports/sqlite.ts"],"sourcesContent":["export { columnToCodeConverter } from '../sqlite/columnToCodeConverter.js'\nexport { countDistinct } from '../sqlite/countDistinct.js'\nexport { convertPathToJSONTraversal } from '../sqlite/createJSONQuery/convertPathToJSONTraversal.js'\nexport { createJSONQuery } from '../sqlite/createJSONQuery/index.js'\nexport { defaultDrizzleSnapshot } from '../sqlite/defaultSnapshot.js'\nexport { deleteWhere } from '../sqlite/deleteWhere.js'\nexport { dropDatabase } from '../sqlite/dropDatabase.js'\nexport { execute } from '../sqlite/execute.js'\nexport { init } from '../sqlite/init.js'\nexport { insert } from '../sqlite/insert.js'\nexport { requireDrizzleKit } from '../sqlite/requireDrizzleKit.js'\nexport * from '../sqlite/types.js'\n"],"names":["columnToCodeConverter","countDistinct","convertPathToJSONTraversal","createJSONQuery","defaultDrizzleSnapshot","deleteWhere","dropDatabase","execute","init","insert","requireDrizzleKit"],"mappings":"AAAA,SAASA,qBAAqB,QAAQ,qCAAoC;AAC1E,SAASC,aAAa,QAAQ,6BAA4B;AAC1D,SAASC,0BAA0B,QAAQ,0DAAyD;AACpG,SAASC,eAAe,QAAQ,qCAAoC;AACpE,SAASC,sBAAsB,QAAQ,+BAA8B;AACrE,SAASC,WAAW,QAAQ,2BAA0B;AACtD,SAASC,YAAY,QAAQ,4BAA2B;AACxD,SAASC,OAAO,QAAQ,uBAAsB;AAC9C,SAASC,IAAI,QAAQ,oBAAmB;AACxC,SAASC,MAAM,QAAQ,sBAAqB;AAC5C,SAASC,iBAAiB,QAAQ,iCAAgC;AAClE,cAAc,qBAAoB"}
1
+ {"version":3,"sources":["../../src/exports/sqlite.ts"],"sourcesContent":["export { columnToCodeConverter } from '../sqlite/columnToCodeConverter.js'\nexport { countDistinct } from '../sqlite/countDistinct.js'\nexport { convertPathToJSONTraversal } from '../sqlite/createJSONQuery/convertPathToJSONTraversal.js'\nexport { createJSONQuery } from '../sqlite/createJSONQuery/index.js'\nexport { createRequireDrizzleKit } from '../sqlite/createRequireDrizzleKit.js'\nexport { defaultDrizzleSnapshot } from '../sqlite/defaultSnapshot.js'\nexport { deleteWhere } from '../sqlite/deleteWhere.js'\nexport { dropDatabase } from '../sqlite/dropDatabase.js'\nexport { execute } from '../sqlite/execute.js'\nexport { init } from '../sqlite/init.js'\nexport { insert } from '../sqlite/insert.js'\nexport { requireDrizzleKit } from '../sqlite/requireDrizzleKit.js'\nexport * from '../sqlite/types.js'\n"],"names":["columnToCodeConverter","countDistinct","convertPathToJSONTraversal","createJSONQuery","createRequireDrizzleKit","defaultDrizzleSnapshot","deleteWhere","dropDatabase","execute","init","insert","requireDrizzleKit"],"mappings":"AAAA,SAASA,qBAAqB,QAAQ,qCAAoC;AAC1E,SAASC,aAAa,QAAQ,6BAA4B;AAC1D,SAASC,0BAA0B,QAAQ,0DAAyD;AACpG,SAASC,eAAe,QAAQ,qCAAoC;AACpE,SAASC,uBAAuB,QAAQ,uCAAsC;AAC9E,SAASC,sBAAsB,QAAQ,+BAA8B;AACrE,SAASC,WAAW,QAAQ,2BAA0B;AACtD,SAASC,YAAY,QAAQ,4BAA2B;AACxD,SAASC,OAAO,QAAQ,uBAAsB;AAC9C,SAASC,IAAI,QAAQ,oBAAmB;AACxC,SAASC,MAAM,QAAQ,sBAAqB;AAC5C,SAASC,iBAAiB,QAAQ,iCAAgC;AAClE,cAAc,qBAAoB"}
@@ -1,3 +1,7 @@
1
1
  import type { RequireDrizzleKit } from '../types.js';
2
+ export declare const createRequireDrizzleKit: ({ from, }: {
3
+ /** Module URL of the adapter that owns the drizzle-kit dependency. */
4
+ from: string;
5
+ }) => RequireDrizzleKit;
2
6
  export declare const requireDrizzleKit: RequireDrizzleKit;
3
7
  //# sourceMappingURL=requireDrizzleKit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"requireDrizzleKit.d.ts","sourceRoot":"","sources":["../../src/postgres/requireDrizzleKit.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAIpD,eAAO,MAAM,iBAAiB,EAAE,iBAc/B,CAAA"}
1
+ {"version":3,"file":"requireDrizzleKit.d.ts","sourceRoot":"","sources":["../../src/postgres/requireDrizzleKit.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAEpD,eAAO,MAAM,uBAAuB,cAG/B;IACD,sEAAsE;IACtE,IAAI,EAAE,MAAM,CAAA;CACb,KAAG,iBAkBH,CAAA;AAEH,eAAO,MAAM,iBAAiB,mBAAqD,CAAA"}
@@ -1,13 +1,18 @@
1
- import { createRequire } from 'module';
2
- const require = createRequire(import.meta.url);
3
- export const requireDrizzleKit = ()=>{
4
- const { generateDrizzleJson, generateMigration, pushSchema, upPgSnapshot } = require('drizzle-kit/api');
5
- return {
6
- generateDrizzleJson,
7
- generateMigration,
8
- pushSchema,
9
- upSnapshot: upPgSnapshot
1
+ import nodeModule from 'node:module';
2
+ export const createRequireDrizzleKit = ({ from })=>()=>{
3
+ // Use the default import to preserve Node's loader instead of Webpack's createRequire transform.
4
+ const require = nodeModule.createRequire(from);
5
+ // Postgres snapshot generation and upgrading must remain synchronous in 3.x.
6
+ const { generateDrizzleJson, generateMigration, pushSchema, upPgSnapshot } = require('drizzle-kit/api');
7
+ return {
8
+ generateDrizzleJson,
9
+ generateMigration,
10
+ pushSchema,
11
+ upSnapshot: upPgSnapshot
12
+ };
10
13
  };
11
- };
14
+ export const requireDrizzleKit = createRequireDrizzleKit({
15
+ from: import.meta.url
16
+ });
12
17
 
13
18
  //# sourceMappingURL=requireDrizzleKit.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/postgres/requireDrizzleKit.ts"],"sourcesContent":["import { createRequire } from 'module'\n\nimport type { RequireDrizzleKit } from '../types.js'\n\nconst require = createRequire(import.meta.url)\n\nexport const requireDrizzleKit: RequireDrizzleKit = () => {\n const {\n generateDrizzleJson,\n generateMigration,\n pushSchema,\n upPgSnapshot,\n } = require('drizzle-kit/api')\n\n return {\n generateDrizzleJson,\n generateMigration,\n pushSchema,\n upSnapshot: upPgSnapshot,\n }\n}\n"],"names":["createRequire","require","url","requireDrizzleKit","generateDrizzleJson","generateMigration","pushSchema","upPgSnapshot","upSnapshot"],"mappings":"AAAA,SAASA,aAAa,QAAQ,SAAQ;AAItC,MAAMC,UAAUD,cAAc,YAAYE,GAAG;AAE7C,OAAO,MAAMC,oBAAuC;IAClD,MAAM,EACJC,mBAAmB,EACnBC,iBAAiB,EACjBC,UAAU,EACVC,YAAY,EACb,GAAGN,QAAQ;IAEZ,OAAO;QACLG;QACAC;QACAC;QACAE,YAAYD;IACd;AACF,EAAC"}
1
+ {"version":3,"sources":["../../src/postgres/requireDrizzleKit.ts"],"sourcesContent":["import nodeModule from 'node:module'\n\nimport type { RequireDrizzleKit } from '../types.js'\n\nexport const createRequireDrizzleKit =\n ({\n from,\n }: {\n /** Module URL of the adapter that owns the drizzle-kit dependency. */\n from: string\n }): RequireDrizzleKit =>\n () => {\n // Use the default import to preserve Node's loader instead of Webpack's createRequire transform.\n const require = nodeModule.createRequire(from)\n // Postgres snapshot generation and upgrading must remain synchronous in 3.x.\n const {\n generateDrizzleJson,\n generateMigration,\n pushSchema,\n upPgSnapshot,\n } = require('drizzle-kit/api')\n\n return {\n generateDrizzleJson,\n generateMigration,\n pushSchema,\n upSnapshot: upPgSnapshot,\n }\n }\n\nexport const requireDrizzleKit = createRequireDrizzleKit({ from: import.meta.url })\n"],"names":["nodeModule","createRequireDrizzleKit","from","require","createRequire","generateDrizzleJson","generateMigration","pushSchema","upPgSnapshot","upSnapshot","requireDrizzleKit","url"],"mappings":"AAAA,OAAOA,gBAAgB,cAAa;AAIpC,OAAO,MAAMC,0BACX,CAAC,EACCC,IAAI,EAIL,GACD;QACE,iGAAiG;QACjG,MAAMC,UAAUH,WAAWI,aAAa,CAACF;QACzC,6EAA6E;QAC7E,MAAM,EACJG,mBAAmB,EACnBC,iBAAiB,EACjBC,UAAU,EACVC,YAAY,EACb,GAAGL,QAAQ;QAEZ,OAAO;YACLE;YACAC;YACAC;YACAE,YAAYD;QACd;IACF,EAAC;AAEH,OAAO,MAAME,oBAAoBT,wBAAwB;IAAEC,MAAM,YAAYS,GAAG;AAAC,GAAE"}
@@ -1 +1 @@
1
- {"version":3,"file":"getTableColumnFromPath.d.ts","sourceRoot":"","sources":["../../src/queries/getTableColumnFromPath.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAS,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AACrE,OAAO,KAAK,EAEV,cAAc,EAIf,MAAM,SAAS,CAAA;AAGhB,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAM7D,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAU5D,KAAK,UAAU,GAAG;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;IAC5D,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AAED,KAAK,WAAW,GAAG;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE;QACR,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAA;QAClC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;KACxB,EAAE,CAAA;IACH,WAAW,EAAE,UAAU,EAAE,CAAA;IACzB,KAAK,EAAE,cAAc,CAAA;IACrB,uBAAuB,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAA;IAClD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,SAAS,CAAC,EAAE,GAAG,CAAA;IACf,KAAK,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;CAC7D,CAAA;AAED,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,cAAc,CAAA;IACvB,UAAU,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;IAClE,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAA;IAC1B,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,KAAK,EAAE,qBAAqB,CAAA;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,gBAAgB,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;IACxE,iBAAiB,EAAE,OAAO,CAAA;IAC1B,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAC3C,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;OAEG;IACH,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AACD;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,iUAmBhC,IAAI,KAAG,WA68BT,CAAA"}
1
+ {"version":3,"file":"getTableColumnFromPath.d.ts","sourceRoot":"","sources":["../../src/queries/getTableColumnFromPath.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAS,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AACrE,OAAO,KAAK,EAAE,cAAc,EAA6C,MAAM,SAAS,CAAA;AAGxF,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAM7D,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAW5D,KAAK,UAAU,GAAG;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;IAC5D,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AAED,KAAK,WAAW,GAAG;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE;QACR,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAA;QAClC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;KACxB,EAAE,CAAA;IACH,WAAW,EAAE,UAAU,EAAE,CAAA;IACzB,KAAK,EAAE,cAAc,CAAA;IACrB,uBAAuB,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAA;IAClD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,SAAS,CAAC,EAAE,GAAG,CAAA;IACf,KAAK,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;CAC7D,CAAA;AAED,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,cAAc,CAAA;IACvB,UAAU,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;IAClE,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAA;IAC1B,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,KAAK,EAAE,qBAAqB,CAAA;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,gBAAgB,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;IACxE,iBAAiB,EAAE,OAAO,CAAA;IAC1B,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAC3C,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;OAEG;IACH,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AACD;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,iUAmBhC,IAAI,KAAG,WA68BT,CAAA"}
@@ -3,6 +3,7 @@ import { APIError, getFieldByPath } from 'payload';
3
3
  import { fieldShouldBeLocalized, tabHasName } from 'payload/shared';
4
4
  import toSnakeCase from 'to-snake-case';
5
5
  import { validate as uuidValidate } from 'uuid';
6
+ import { getBlockFromField } from '../transform/getBlockFromField.js';
6
7
  import { isPolymorphicRelationship } from '../utilities/isPolymorphicRelationship.js';
7
8
  import { isUUIDType } from '../utilities/isUUIDType.js';
8
9
  import { jsonBuildObject } from '../utilities/json.js';
@@ -114,7 +115,14 @@ import { getTableAlias } from './getTableAlias.js';
114
115
  value
115
116
  ];
116
117
  blockTypes.forEach((blockType)=>{
117
- const block = adapter.payload.blocks[blockType] ?? (field.blockReferences ?? field.blocks).find((block)=>typeof block !== 'string' && block.slug === blockType);
118
+ const block = getBlockFromField({
119
+ adapter,
120
+ blockType,
121
+ field
122
+ });
123
+ if (!block) {
124
+ throw new APIError('Block was not found', 400);
125
+ }
118
126
  newTableName = resolveBlockTableName(block, adapter.tableNameMap.get(`${tableName}_blocks_${toSnakeCase(block.slug)}`));
119
127
  const { newAliasTable } = getTableAlias({
120
128
  adapter,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/queries/getTableColumnFromPath.ts"],"sourcesContent":["import type { SQL, Table } from 'drizzle-orm'\nimport type { SQLiteTableWithColumns } from 'drizzle-orm/sqlite-core'\nimport type {\n FlattenedBlock,\n FlattenedField,\n NumberField,\n RelationshipField,\n TextField,\n} from 'payload'\n\nimport { and, eq, getTableName, like, or, sql } from 'drizzle-orm'\nimport { type PgTableWithColumns } from 'drizzle-orm/pg-core'\nimport { APIError, getFieldByPath } from 'payload'\nimport { fieldShouldBeLocalized, tabHasName } from 'payload/shared'\nimport toSnakeCase from 'to-snake-case'\nimport { validate as uuidValidate } from 'uuid'\n\nimport type { DrizzleAdapter, GenericColumn } from '../types.js'\nimport type { BuildQueryJoinAliases } from './buildQuery.js'\n\nimport { isPolymorphicRelationship } from '../utilities/isPolymorphicRelationship.js'\nimport { isUUIDType } from '../utilities/isUUIDType.js'\nimport { jsonBuildObject } from '../utilities/json.js'\nimport { DistinctSymbol } from '../utilities/rawConstraint.js'\nimport { resolveBlockTableName } from '../utilities/validateExistingBlockIsIdentical.js'\nimport { addJoinTable } from './addJoinTable.js'\nimport { getTableAlias } from './getTableAlias.js'\n\ntype Constraint = {\n columnName: string\n table: PgTableWithColumns<any> | SQLiteTableWithColumns<any>\n value: unknown\n}\n\ntype TableColumn = {\n columnName?: string\n columns?: {\n idType: 'number' | 'text' | 'uuid'\n rawColumn: SQL<unknown>\n }[]\n constraints: Constraint[]\n field: FlattenedField\n getNotNullColumnByValue?: (val: unknown) => string\n pathSegments?: string[]\n rawColumn?: SQL\n table: PgTableWithColumns<any> | SQLiteTableWithColumns<any>\n}\n\ntype Args = {\n adapter: DrizzleAdapter\n aliasTable?: PgTableWithColumns<any> | SQLiteTableWithColumns<any>\n collectionPath: string\n columnPrefix?: string\n constraintPath?: string\n constraints?: Constraint[]\n fields: FlattenedField[]\n joins: BuildQueryJoinAliases\n locale?: string\n parentAliasTable?: PgTableWithColumns<any> | SQLiteTableWithColumns<any>\n parentIsLocalized: boolean\n pathSegments: string[]\n rootTableName?: string\n selectFields: Record<string, GenericColumn>\n selectLocale?: boolean\n tableName: string\n /**\n * If creating a new table name for arrays and blocks, this suffix should be appended to the table name\n */\n tableNameSuffix?: string\n /**\n * The raw value of the query before sanitization\n */\n value: unknown\n}\n/**\n * Transforms path to table and column name or to a list of OR columns\n * Adds tables to `join`\n * @returns TableColumn\n */\nexport const getTableColumnFromPath = ({\n adapter,\n aliasTable,\n collectionPath,\n columnPrefix = '',\n constraintPath: incomingConstraintPath,\n constraints = [],\n fields,\n joins,\n locale: incomingLocale,\n parentAliasTable,\n parentIsLocalized,\n pathSegments: incomingSegments,\n rootTableName: incomingRootTableName,\n selectFields,\n selectLocale,\n tableName,\n tableNameSuffix = '',\n value,\n}: Args): TableColumn => {\n const fieldPath = incomingSegments[0]\n let locale = incomingLocale\n const rootTableName = incomingRootTableName || tableName\n let constraintPath = incomingConstraintPath || ''\n\n const field = fields.find((fieldToFind) => fieldToFind.name === fieldPath)\n let newTableName = tableName\n\n if (!field && fieldPath === 'id') {\n selectFields.id = adapter.tables[newTableName].id\n return {\n columnName: 'id',\n constraints,\n field: {\n name: 'id',\n type: isUUIDType(adapter.idType) ? 'text' : 'number',\n } as NumberField | TextField,\n table: adapter.tables[newTableName],\n }\n }\n\n let localizedPathQuery = false\n if (field) {\n const pathSegments = [...incomingSegments]\n\n const isFieldLocalized = fieldShouldBeLocalized({ field, parentIsLocalized })\n\n // If next segment is a locale,\n // we need to take it out and use it as the locale from this point on\n if (isFieldLocalized && adapter.payload.config.localization) {\n const matchedLocale = adapter.payload.config.localization.localeCodes.find(\n (locale) => locale === pathSegments[1],\n )\n\n if (matchedLocale) {\n locale = matchedLocale\n localizedPathQuery = true\n pathSegments.splice(1, 1)\n }\n }\n\n switch (field.type) {\n case 'array': {\n newTableName = adapter.tableNameMap.get(\n `${tableName}_${tableNameSuffix}${toSnakeCase(field.name)}`,\n )\n\n const arrayParentTable = aliasTable || adapter.tables[tableName]\n\n constraintPath = `${constraintPath}${field.name}.%.`\n if (locale && isFieldLocalized && adapter.payload.config.localization) {\n const conditions = [eq(arrayParentTable.id, adapter.tables[newTableName]._parentID)]\n\n if (selectLocale) {\n selectFields._locale = adapter.tables[newTableName]._locale\n }\n\n if (locale !== 'all') {\n conditions.push(eq(adapter.tables[newTableName]._locale, locale))\n }\n addJoinTable({\n condition: and(...conditions),\n isOneToMany: true,\n joins,\n table: adapter.tables[newTableName],\n })\n } else {\n addJoinTable({\n condition: eq(arrayParentTable.id, adapter.tables[newTableName]._parentID),\n isOneToMany: true,\n joins,\n table: adapter.tables[newTableName],\n })\n }\n\n return getTableColumnFromPath({\n adapter,\n collectionPath,\n constraintPath,\n constraints,\n fields: field.flattenedFields,\n joins,\n locale,\n parentAliasTable: aliasTable,\n parentIsLocalized: parentIsLocalized || field.localized,\n pathSegments: pathSegments.slice(1),\n rootTableName,\n selectFields,\n selectLocale,\n tableName: newTableName,\n value,\n })\n }\n case 'blocks': {\n if (adapter.blocksAsJSON) {\n break\n }\n let blockTableColumn: TableColumn\n let newTableName: string\n\n // handle blockType queries\n if (pathSegments[1] === 'blockType') {\n // find the block config using the value\n const blockTypes = Array.isArray(value) ? value : [value]\n blockTypes.forEach((blockType) => {\n const block =\n adapter.payload.blocks[blockType] ??\n ((field.blockReferences ?? field.blocks).find(\n (block) => typeof block !== 'string' && block.slug === blockType,\n ) as FlattenedBlock | undefined)\n\n newTableName = resolveBlockTableName(\n block,\n adapter.tableNameMap.get(`${tableName}_blocks_${toSnakeCase(block.slug)}`),\n )\n\n const { newAliasTable } = getTableAlias({ adapter, tableName: newTableName })\n\n joins.push({\n condition: eq(adapter.tables[tableName].id, newAliasTable._parentID),\n table: newAliasTable,\n })\n constraints.push({\n columnName: '_path',\n table: newAliasTable,\n value: `${constraintPath}${pathSegments[0]}`,\n })\n })\n return {\n constraints,\n field,\n getNotNullColumnByValue: () => 'id',\n table: adapter.tables[tableName],\n }\n }\n\n const hasBlockField = (field.blockReferences ?? field.blocks).some((_block) => {\n const block = typeof _block === 'string' ? adapter.payload.blocks[_block] : _block\n\n newTableName = resolveBlockTableName(\n block,\n adapter.tableNameMap.get(`${tableName}_blocks_${toSnakeCase(block.slug)}`),\n )\n\n constraintPath = `${constraintPath}${field.name}.%.`\n\n let result: TableColumn\n const blockConstraints = []\n const blockSelectFields = {}\n\n let blockJoin: BuildQueryJoinAliases[0]\n if (isFieldLocalized && adapter.payload.config.localization) {\n const conditions = [\n eq(\n (aliasTable || adapter.tables[tableName]).id,\n adapter.tables[newTableName]._parentID,\n ),\n ]\n\n if (locale !== 'all') {\n conditions.push(eq(adapter.tables[newTableName]._locale, locale))\n }\n\n blockJoin = {\n condition: and(...conditions),\n table: adapter.tables[newTableName],\n }\n } else {\n blockJoin = {\n condition: eq(\n (aliasTable || adapter.tables[tableName]).id,\n adapter.tables[newTableName]._parentID,\n ),\n table: adapter.tables[newTableName],\n }\n }\n\n // Create a new reference for nested joins\n const newJoins = [...joins]\n\n try {\n result = getTableColumnFromPath({\n adapter,\n collectionPath,\n constraintPath,\n constraints: blockConstraints,\n fields: block.flattenedFields,\n joins: newJoins,\n locale,\n parentIsLocalized: parentIsLocalized || field.localized,\n pathSegments: pathSegments.slice(1),\n rootTableName,\n selectFields: blockSelectFields,\n selectLocale,\n tableName: newTableName,\n value,\n })\n } catch (_) {\n // this is fine, not every block will have the field\n }\n if (!result) {\n return\n }\n blockTableColumn = result\n constraints = constraints.concat(blockConstraints)\n selectFields = { ...selectFields, ...blockSelectFields }\n\n const previousLength = joins.length\n joins.push(blockJoin)\n // Append new joins AFTER the block join to prevent errors with missing FROM clause.\n if (newJoins.length > previousLength) {\n for (let i = previousLength; i < newJoins.length; i++) {\n joins.push(newJoins[i])\n }\n }\n return true\n })\n if (hasBlockField) {\n return {\n columnName: blockTableColumn.columnName,\n constraints,\n field: blockTableColumn.field,\n pathSegments: pathSegments.slice(1),\n rawColumn: blockTableColumn.rawColumn,\n table: blockTableColumn.table,\n }\n }\n break\n }\n\n case 'group': {\n if (locale && isFieldLocalized && adapter.payload.config.localization) {\n newTableName = `${tableName}${adapter.localesSuffix}`\n\n let condition = eq(adapter.tables[tableName].id, adapter.tables[newTableName]._parentID)\n\n if (locale !== 'all') {\n condition = and(condition, eq(adapter.tables[newTableName]._locale, locale))\n }\n\n addJoinTable({\n condition,\n joins,\n table: adapter.tables[newTableName],\n })\n }\n return getTableColumnFromPath({\n adapter,\n aliasTable,\n collectionPath,\n columnPrefix: `${columnPrefix}${field.name}_`,\n constraintPath: `${constraintPath}${field.name}.`,\n constraints,\n fields: field.flattenedFields,\n joins,\n locale,\n parentIsLocalized: parentIsLocalized || field.localized,\n pathSegments: pathSegments.slice(1),\n rootTableName,\n selectFields,\n selectLocale,\n tableName: newTableName,\n tableNameSuffix: `${tableNameSuffix}${toSnakeCase(field.name)}_`,\n value,\n })\n }\n\n case 'join': {\n if (Array.isArray(field.collection)) {\n throw new APIError('Not supported')\n }\n\n const newCollectionPath = pathSegments.slice(1).join('.')\n\n // Filtering through a polymorphic `on` relationship is not supported: it is stored in the\n // `_rels` table with no direct column to correlate on, which would otherwise build invalid SQL.\n const onRelationshipField = getFieldByPath({\n fields: adapter.payload.collections[field.collection].config.flattenedFields,\n path: field.on,\n })?.field\n\n if (\n onRelationshipField &&\n (onRelationshipField.type === 'relationship' || onRelationshipField.type === 'upload') &&\n Array.isArray(onRelationshipField.relationTo)\n ) {\n throw new APIError('Not supported')\n }\n\n if (field.hasMany) {\n const relationTableName = `${adapter.tableNameMap.get(toSnakeCase(field.collection))}${adapter.relationshipsSuffix}`\n\n const existingTable = joins.find(\n (e) => e.queryPath === `${constraintPath}${field.name}._rels`,\n )\n\n const aliasRelationshipTable = (existingTable?.table ??\n getTableAlias({\n adapter,\n tableName: relationTableName,\n }).newAliasTable) as PgTableWithColumns<any>\n\n const relationshipField = getFieldByPath({\n fields: adapter.payload.collections[field.collection].config.flattenedFields,\n path: field.on,\n })\n if (!relationshipField) {\n throw new APIError('Relationship was not found')\n }\n\n if (!existingTable) {\n addJoinTable({\n condition: and(\n eq(\n adapter.tables[rootTableName].id,\n aliasRelationshipTable[\n `${(relationshipField.field as RelationshipField).relationTo as string}ID`\n ],\n ),\n like(aliasRelationshipTable.path, field.on),\n ),\n joins,\n queryPath: `${constraintPath}${field.name}._rels`,\n table: aliasRelationshipTable,\n })\n }\n\n if (newCollectionPath === 'id') {\n return {\n columnName: 'parent',\n constraints,\n field: {\n name: 'id',\n type: isUUIDType(adapter.idType) ? 'text' : 'number',\n } as NumberField | TextField,\n table: aliasRelationshipTable,\n }\n }\n\n const relationshipConfig = adapter.payload.collections[field.collection].config\n const relationshipTableName = adapter.tableNameMap.get(\n toSnakeCase(relationshipConfig.slug),\n )\n\n // parent to relationship join table\n const relationshipFields = relationshipConfig.flattenedFields\n\n const existingMainTable = joins.find(\n (e) => e.queryPath === `${constraintPath}${field.name}`,\n )\n\n const relationshipTable = (existingMainTable?.table ??\n getTableAlias({\n adapter,\n tableName: relationshipTableName,\n }).newAliasTable) as PgTableWithColumns<any>\n\n if (!existingMainTable) {\n joins.push({\n condition: eq(aliasRelationshipTable.parent, relationshipTable.id),\n queryPath: `${constraintPath}${field.name}`,\n table: relationshipTable,\n })\n }\n\n return getTableColumnFromPath({\n adapter,\n aliasTable: relationshipTable,\n collectionPath: newCollectionPath,\n constraints,\n // relationshipFields are fields from a different collection => no parentIsLocalized\n fields: relationshipFields,\n joins,\n locale,\n parentIsLocalized: false,\n pathSegments: pathSegments.slice(1),\n rootTableName: relationshipTableName,\n selectFields,\n selectLocale,\n tableName: relationshipTableName,\n value,\n })\n }\n\n const newTableName = adapter.tableNameMap.get(\n toSnakeCase(adapter.payload.collections[field.collection].config.slug),\n )\n\n const existingTable = joins.find(\n (e) => e.queryPath === `${constraintPath}${field.name}`,\n )?.table\n const newAliasTable =\n existingTable || getTableAlias({ adapter, tableName: newTableName }).newAliasTable\n\n if (!existingTable) {\n const onSegments = field.on.split('.')\n const collectionFlattenedFields =\n adapter.payload.collections[field.collection].config.flattenedFields\n const firstSegField =\n onSegments.length > 1\n ? collectionFlattenedFields.find((f) => f.name === onSegments[0])\n : null\n\n const arrayTableName =\n firstSegField?.type === 'array'\n ? adapter.tableNameMap.get(`${newTableName}_${toSnakeCase(onSegments[0])}`)\n : undefined\n\n if (arrayTableName) {\n // join from main table to array table\n const { newAliasTable: arrayAliasTable } = getTableAlias({\n adapter,\n tableName: arrayTableName,\n })\n\n joins.push({\n condition: eq(\n arrayAliasTable[onSegments.slice(1).join('_')],\n aliasTable ? aliasTable.id : adapter.tables[tableName].id,\n ),\n queryPath: `${constraintPath}${field.name}._array`,\n table: arrayAliasTable,\n })\n\n joins.push({\n condition: eq(\n (newAliasTable as PgTableWithColumns<any>).id,\n arrayAliasTable._parentID,\n ),\n queryPath: `${constraintPath}${field.name}`,\n table: newAliasTable,\n })\n } else {\n joins.push({\n condition: eq(\n newAliasTable[field.on.replaceAll('.', '_')],\n aliasTable ? aliasTable.id : adapter.tables[tableName].id,\n ),\n queryPath: `${constraintPath}${field.name}`,\n table: newAliasTable,\n })\n }\n }\n\n if (newCollectionPath === 'id') {\n return {\n columnName: 'id',\n constraints,\n field: {\n name: 'id',\n type: isUUIDType(adapter.idType) ? 'text' : 'number',\n } as NumberField | TextField,\n table: newAliasTable,\n }\n }\n\n return getTableColumnFromPath({\n adapter,\n aliasTable: newAliasTable,\n collectionPath: newCollectionPath,\n constraintPath: '',\n constraints,\n fields: adapter.payload.collections[field.collection].config.flattenedFields,\n joins,\n locale,\n parentIsLocalized: parentIsLocalized || field.localized,\n pathSegments: pathSegments.slice(1),\n selectFields,\n tableName: newTableName,\n value,\n })\n\n break\n }\n\n case 'number':\n case 'text': {\n if (field.hasMany) {\n let tableType = 'texts'\n let columnName = 'text'\n if (field.type === 'number') {\n tableType = 'numbers'\n columnName = 'number'\n }\n newTableName = `${rootTableName}_${tableType}`\n\n const existingTable = joins.find((e) => e.queryPath === `${constraintPath}${field.name}`)\n\n const table = (existingTable?.table ??\n getTableAlias({ adapter, tableName: newTableName })\n .newAliasTable) as PgTableWithColumns<any>\n\n const joinConstraints = [\n eq(adapter.tables[rootTableName].id, table.parent),\n like(table.path, `${constraintPath}${field.name}`),\n ]\n\n if (locale && isFieldLocalized && adapter.payload.config.localization) {\n const conditions = [...joinConstraints]\n\n if (locale !== 'all') {\n conditions.push(eq(table._locale, locale))\n }\n\n addJoinTable({\n condition: and(...conditions),\n joins,\n queryPath: `${constraintPath}${field.name}`,\n table,\n })\n } else {\n addJoinTable({\n condition: and(...joinConstraints),\n joins,\n queryPath: `${constraintPath}${field.name}`,\n table,\n })\n }\n\n return {\n columnName,\n constraints,\n field,\n table,\n }\n }\n break\n }\n case 'relationship':\n case 'upload': {\n const newCollectionPath = pathSegments.slice(1).join('.')\n\n if (Array.isArray(field.relationTo) || field.hasMany) {\n let relationshipFields: FlattenedField[]\n const relationTableName = `${rootTableName}${adapter.relationshipsSuffix}`\n\n const existingJoin = joins.find((e) => e.queryPath === `${constraintPath}.${field.name}`)\n\n let aliasRelationshipTable: PgTableWithColumns<any> | SQLiteTableWithColumns<any>\n let aliasRelationshipTableName: string\n if (existingJoin) {\n aliasRelationshipTable = existingJoin.table\n aliasRelationshipTableName = getTableName(existingJoin.table)\n } else {\n const res = getTableAlias({\n adapter,\n tableName: relationTableName,\n })\n aliasRelationshipTable = res.newAliasTable\n aliasRelationshipTableName = res.newAliasTableName\n }\n\n if (selectLocale && isFieldLocalized && adapter.payload.config.localization) {\n selectFields._locale = aliasRelationshipTable.locale\n }\n\n // Join in the relationships table\n if (locale && isFieldLocalized && adapter.payload.config.localization) {\n const conditions = [\n eq(\n (parentAliasTable || aliasTable || adapter.tables[rootTableName]).id,\n aliasRelationshipTable.parent,\n ),\n like(aliasRelationshipTable.path, `${constraintPath}${field.name}`),\n ]\n\n if (locale !== 'all') {\n conditions.push(eq(aliasRelationshipTable.locale, locale))\n }\n\n addJoinTable({\n condition: and(...conditions),\n joins,\n queryPath: `${constraintPath}.${field.name}`,\n table: aliasRelationshipTable,\n })\n } else {\n // Join in the relationships table\n addJoinTable({\n condition: and(\n eq(\n (parentAliasTable || aliasTable || adapter.tables[rootTableName]).id,\n aliasRelationshipTable.parent,\n ),\n like(aliasRelationshipTable.path, `${constraintPath}${field.name}`),\n ),\n joins,\n queryPath: `${constraintPath}.${field.name}`,\n table: aliasRelationshipTable,\n })\n }\n\n selectFields[`${relationTableName}.path`] = aliasRelationshipTable.path\n\n let newAliasTable\n\n if (typeof field.relationTo === 'string') {\n const relationshipConfig = adapter.payload.collections[field.relationTo].config\n\n newTableName = adapter.tableNameMap.get(toSnakeCase(relationshipConfig.slug))\n\n // parent to relationship join table\n relationshipFields = relationshipConfig.flattenedFields\n ;({ newAliasTable } = getTableAlias({ adapter, tableName: newTableName }))\n\n joins.push({\n condition: eq(newAliasTable.id, aliasRelationshipTable[`${field.relationTo}ID`]),\n table: newAliasTable,\n })\n\n if (newCollectionPath === '' || newCollectionPath === 'id') {\n return {\n columnName: `${field.relationTo}ID`,\n constraints,\n field,\n table: aliasRelationshipTable,\n }\n }\n } else if (newCollectionPath === 'value') {\n const hasCustomCollectionWithCustomID = field.relationTo.some(\n (relationTo) => !!adapter.payload.collections[relationTo].customIDType,\n )\n\n const columns: TableColumn['columns'] = field.relationTo\n .map((relationTo) => {\n let idType: 'number' | 'text' | 'uuid' = isUUIDType(adapter.idType)\n ? 'uuid'\n : 'number'\n\n const { customIDType } = adapter.payload.collections[relationTo]\n\n if (customIDType) {\n idType = customIDType\n }\n\n const idTypeTextOrUuid = idType === 'text' || idType === 'uuid'\n\n // Do not add the column to OR if we know that it can't match by the type\n // We can't do the same with idType: 'number' because `value` can be from the REST search query params\n if (typeof value === 'number' && idTypeTextOrUuid) {\n return null\n }\n\n if (\n Array.isArray(value) &&\n value.every((val) => typeof val === 'number') &&\n idTypeTextOrUuid\n ) {\n return null\n }\n\n // Do not add the UUID type column if incoming query value doesn't match UUID. If there aren't any collections with\n // a custom ID type, we skip this check\n // We need this because Postgres throws an error if querying by UUID column with a value that isn't a valid UUID.\n if (\n value &&\n !Array.isArray(value) &&\n idType === 'uuid' &&\n hasCustomCollectionWithCustomID\n ) {\n if (!uuidValidate(value)) {\n return null\n }\n }\n\n if (\n Array.isArray(value) &&\n idType === 'uuid' &&\n hasCustomCollectionWithCustomID &&\n !value.some((val) => uuidValidate(val))\n ) {\n return null\n }\n\n const relationTableName = adapter.tableNameMap.get(\n toSnakeCase(adapter.payload.collections[relationTo].config.slug),\n )\n\n return {\n idType,\n rawColumn: sql.raw(`\"${aliasRelationshipTableName}\".\"${relationTableName}_id\"`),\n }\n })\n .filter(Boolean)\n\n return {\n columns,\n constraints,\n field,\n table: aliasRelationshipTable,\n }\n } else if (newCollectionPath === 'relationTo') {\n const relationTo = Array.isArray(field.relationTo)\n ? field.relationTo\n : [field.relationTo]\n\n return {\n constraints,\n field,\n getNotNullColumnByValue: (val) => {\n const matchedRelation = relationTo.find((relation) => relation === val)\n if (matchedRelation) {\n return `${matchedRelation}ID`\n }\n return undefined\n },\n table: aliasRelationshipTable,\n }\n } else if (isPolymorphicRelationship(value)) {\n const { relationTo } = value\n\n const relationTableName = adapter.tableNameMap.get(\n toSnakeCase(adapter.payload.collections[relationTo].config.slug),\n )\n\n return {\n constraints,\n field,\n rawColumn: sql.raw(`\"${aliasRelationshipTableName}\".\"${relationTableName}_id\"`),\n table: aliasRelationshipTable,\n }\n } else if (value === DistinctSymbol) {\n const obj: Record<string, SQL> = {}\n\n field.relationTo.forEach((relationTo) => {\n const relationTableName = adapter.tableNameMap.get(\n toSnakeCase(adapter.payload.collections[relationTo].config.slug),\n )\n\n obj[relationTo] = sql.raw(`\"${aliasRelationshipTableName}\".\"${relationTableName}_id\"`)\n })\n\n let rawColumn = jsonBuildObject(adapter, obj)\n if (adapter.name === 'postgres') {\n rawColumn = sql`${rawColumn}::text`\n }\n\n return {\n constraints,\n field,\n rawColumn,\n table: aliasRelationshipTable,\n }\n } else {\n throw new APIError('Not supported')\n }\n\n return getTableColumnFromPath({\n adapter,\n aliasTable: newAliasTable,\n collectionPath: newCollectionPath,\n constraints,\n // relationshipFields are fields from a different collection => no parentIsLocalized\n fields: relationshipFields,\n joins,\n locale,\n parentIsLocalized: false,\n pathSegments: pathSegments.slice(1),\n rootTableName: newTableName,\n selectFields,\n selectLocale,\n tableName: newTableName,\n value,\n })\n } else if (\n pathSegments.length > 1 &&\n !(pathSegments.length === 2 && pathSegments[1] === 'id')\n ) {\n // simple relationships\n const columnName = `${columnPrefix}${field.name}`\n const newTableName = adapter.tableNameMap.get(\n toSnakeCase(adapter.payload.collections[field.relationTo].config.slug),\n )\n const { newAliasTable } = getTableAlias({ adapter, tableName: newTableName })\n\n if (isFieldLocalized && adapter.payload.config.localization) {\n const { newAliasTable: aliasLocaleTable } = getTableAlias({\n adapter,\n tableName: `${rootTableName}${adapter.localesSuffix}`,\n })\n\n const condtions = [eq(aliasLocaleTable._parentID, adapter.tables[rootTableName].id)]\n\n if (selectLocale) {\n selectFields._locale = aliasLocaleTable._locale\n }\n\n if (locale !== 'all') {\n condtions.push(eq(aliasLocaleTable._locale, locale))\n }\n\n const localesTable = adapter.tables[`${rootTableName}${adapter.localesSuffix}`]\n\n addJoinTable({\n condition: and(...condtions),\n joins,\n table: localesTable,\n })\n\n joins.push({\n condition: eq(localesTable[columnName], newAliasTable.id),\n table: newAliasTable,\n })\n } else {\n joins.push({\n condition: eq(\n newAliasTable.id,\n aliasTable ? aliasTable[columnName] : adapter.tables[tableName][columnName],\n ),\n table: newAliasTable,\n })\n }\n\n return getTableColumnFromPath({\n adapter,\n aliasTable: newAliasTable,\n collectionPath: newCollectionPath,\n constraintPath: '',\n constraints,\n fields: adapter.payload.collections[field.relationTo].config.flattenedFields,\n joins,\n locale,\n parentIsLocalized: parentIsLocalized || field.localized,\n pathSegments: pathSegments.slice(1),\n selectFields,\n tableName: newTableName,\n value,\n })\n }\n\n break\n }\n\n case 'select': {\n if (field.hasMany) {\n const newTableName = adapter.tableNameMap.get(\n `${tableName}_${tableNameSuffix}${toSnakeCase(field.name)}`,\n )\n\n const idColumn = (aliasTable ?? adapter.tables[tableName]).id\n if (locale && isFieldLocalized && adapter.payload.config.localization) {\n const conditions = [\n eq(idColumn, adapter.tables[newTableName].parent),\n eq(adapter.tables[newTableName]._locale, locale),\n ]\n\n if (locale !== 'all') {\n conditions.push(eq(adapter.tables[newTableName]._locale, locale))\n }\n\n addJoinTable({\n condition: and(...conditions),\n joins,\n table: adapter.tables[newTableName],\n })\n } else {\n addJoinTable({\n condition: eq(idColumn, adapter.tables[newTableName].parent),\n joins,\n table: adapter.tables[newTableName],\n })\n }\n\n return {\n columnName: 'value',\n constraints,\n field,\n table: adapter.tables[newTableName],\n }\n }\n break\n }\n\n case 'tab': {\n if (tabHasName(field)) {\n return getTableColumnFromPath({\n adapter,\n aliasTable,\n collectionPath,\n columnPrefix: `${columnPrefix}${field.name}_`,\n constraintPath: `${constraintPath}${field.name}.`,\n constraints,\n fields: field.flattenedFields,\n joins,\n locale,\n parentIsLocalized: parentIsLocalized || field.localized,\n pathSegments: pathSegments.slice(1),\n rootTableName,\n selectFields,\n selectLocale,\n tableName: newTableName,\n tableNameSuffix: `${tableNameSuffix}${toSnakeCase(field.name)}_`,\n value,\n })\n }\n return getTableColumnFromPath({\n adapter,\n aliasTable,\n collectionPath,\n columnPrefix,\n constraintPath,\n constraints,\n fields: field.flattenedFields,\n joins,\n locale,\n parentIsLocalized: parentIsLocalized || field.localized,\n pathSegments: pathSegments.slice(1),\n rootTableName,\n selectFields,\n selectLocale,\n tableName: newTableName,\n tableNameSuffix,\n value,\n })\n }\n\n default: {\n // fall through\n break\n }\n }\n\n let newTable = adapter.tables[newTableName]\n\n if (isFieldLocalized && adapter.payload.config.localization) {\n // If localized, we go to localized table and set aliasTable to undefined\n // so it is not picked up below to be used as targetTable\n const parentTable = aliasTable || adapter.tables[tableName]\n newTableName = `${tableName}${adapter.localesSuffix}`\n\n // use an alias because the same query may contain constraints with different locale value\n if (localizedPathQuery) {\n const { newAliasTable } = getTableAlias({ adapter, tableName: newTableName })\n newTable = newAliasTable\n } else {\n newTable = adapter.tables[newTableName]\n }\n\n let condition = eq(parentTable.id, newTable._parentID)\n\n if (locale !== 'all') {\n condition = and(condition, eq(newTable._locale, locale))\n }\n\n if (selectLocale) {\n selectFields._locale = newTable._locale\n }\n\n addJoinTable({\n condition,\n joins,\n table: newTable,\n })\n\n aliasTable = undefined\n }\n\n const targetTable = aliasTable || newTable\n\n selectFields[`${newTableName}.${columnPrefix}${field.name}`] =\n targetTable[`${columnPrefix}${field.name}`]\n\n return {\n columnName: `${columnPrefix}${field.name}`,\n constraints,\n field,\n pathSegments,\n table: targetTable,\n }\n }\n\n throw new APIError(`Cannot find field for path at ${fieldPath}`)\n}\n"],"names":["and","eq","getTableName","like","sql","APIError","getFieldByPath","fieldShouldBeLocalized","tabHasName","toSnakeCase","validate","uuidValidate","isPolymorphicRelationship","isUUIDType","jsonBuildObject","DistinctSymbol","resolveBlockTableName","addJoinTable","getTableAlias","getTableColumnFromPath","adapter","aliasTable","collectionPath","columnPrefix","constraintPath","incomingConstraintPath","constraints","fields","joins","locale","incomingLocale","parentAliasTable","parentIsLocalized","pathSegments","incomingSegments","rootTableName","incomingRootTableName","selectFields","selectLocale","tableName","tableNameSuffix","value","fieldPath","field","find","fieldToFind","name","newTableName","id","tables","columnName","type","idType","table","localizedPathQuery","isFieldLocalized","payload","config","localization","matchedLocale","localeCodes","splice","tableNameMap","get","arrayParentTable","conditions","_parentID","_locale","push","condition","isOneToMany","flattenedFields","localized","slice","blocksAsJSON","blockTableColumn","blockTypes","Array","isArray","forEach","blockType","block","blocks","blockReferences","slug","newAliasTable","getNotNullColumnByValue","hasBlockField","some","_block","result","blockConstraints","blockSelectFields","blockJoin","newJoins","_","concat","previousLength","length","i","rawColumn","localesSuffix","collection","newCollectionPath","join","onRelationshipField","collections","path","on","relationTo","hasMany","relationTableName","relationshipsSuffix","existingTable","e","queryPath","aliasRelationshipTable","relationshipField","relationshipConfig","relationshipTableName","relationshipFields","existingMainTable","relationshipTable","parent","onSegments","split","collectionFlattenedFields","firstSegField","f","arrayTableName","undefined","arrayAliasTable","replaceAll","tableType","joinConstraints","existingJoin","aliasRelationshipTableName","res","newAliasTableName","hasCustomCollectionWithCustomID","customIDType","columns","map","idTypeTextOrUuid","every","val","raw","filter","Boolean","matchedRelation","relation","obj","aliasLocaleTable","condtions","localesTable","idColumn","newTable","parentTable","targetTable"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/queries/getTableColumnFromPath.ts"],"sourcesContent":["import type { SQL, Table } from 'drizzle-orm'\nimport type { SQLiteTableWithColumns } from 'drizzle-orm/sqlite-core'\nimport type { FlattenedField, NumberField, RelationshipField, TextField } from 'payload'\n\nimport { and, eq, getTableName, like, or, sql } from 'drizzle-orm'\nimport { type PgTableWithColumns } from 'drizzle-orm/pg-core'\nimport { APIError, getFieldByPath } from 'payload'\nimport { fieldShouldBeLocalized, tabHasName } from 'payload/shared'\nimport toSnakeCase from 'to-snake-case'\nimport { validate as uuidValidate } from 'uuid'\n\nimport type { DrizzleAdapter, GenericColumn } from '../types.js'\nimport type { BuildQueryJoinAliases } from './buildQuery.js'\n\nimport { getBlockFromField } from '../transform/getBlockFromField.js'\nimport { isPolymorphicRelationship } from '../utilities/isPolymorphicRelationship.js'\nimport { isUUIDType } from '../utilities/isUUIDType.js'\nimport { jsonBuildObject } from '../utilities/json.js'\nimport { DistinctSymbol } from '../utilities/rawConstraint.js'\nimport { resolveBlockTableName } from '../utilities/validateExistingBlockIsIdentical.js'\nimport { addJoinTable } from './addJoinTable.js'\nimport { getTableAlias } from './getTableAlias.js'\n\ntype Constraint = {\n columnName: string\n table: PgTableWithColumns<any> | SQLiteTableWithColumns<any>\n value: unknown\n}\n\ntype TableColumn = {\n columnName?: string\n columns?: {\n idType: 'number' | 'text' | 'uuid'\n rawColumn: SQL<unknown>\n }[]\n constraints: Constraint[]\n field: FlattenedField\n getNotNullColumnByValue?: (val: unknown) => string\n pathSegments?: string[]\n rawColumn?: SQL\n table: PgTableWithColumns<any> | SQLiteTableWithColumns<any>\n}\n\ntype Args = {\n adapter: DrizzleAdapter\n aliasTable?: PgTableWithColumns<any> | SQLiteTableWithColumns<any>\n collectionPath: string\n columnPrefix?: string\n constraintPath?: string\n constraints?: Constraint[]\n fields: FlattenedField[]\n joins: BuildQueryJoinAliases\n locale?: string\n parentAliasTable?: PgTableWithColumns<any> | SQLiteTableWithColumns<any>\n parentIsLocalized: boolean\n pathSegments: string[]\n rootTableName?: string\n selectFields: Record<string, GenericColumn>\n selectLocale?: boolean\n tableName: string\n /**\n * If creating a new table name for arrays and blocks, this suffix should be appended to the table name\n */\n tableNameSuffix?: string\n /**\n * The raw value of the query before sanitization\n */\n value: unknown\n}\n/**\n * Transforms path to table and column name or to a list of OR columns\n * Adds tables to `join`\n * @returns TableColumn\n */\nexport const getTableColumnFromPath = ({\n adapter,\n aliasTable,\n collectionPath,\n columnPrefix = '',\n constraintPath: incomingConstraintPath,\n constraints = [],\n fields,\n joins,\n locale: incomingLocale,\n parentAliasTable,\n parentIsLocalized,\n pathSegments: incomingSegments,\n rootTableName: incomingRootTableName,\n selectFields,\n selectLocale,\n tableName,\n tableNameSuffix = '',\n value,\n}: Args): TableColumn => {\n const fieldPath = incomingSegments[0]\n let locale = incomingLocale\n const rootTableName = incomingRootTableName || tableName\n let constraintPath = incomingConstraintPath || ''\n\n const field = fields.find((fieldToFind) => fieldToFind.name === fieldPath)\n let newTableName = tableName\n\n if (!field && fieldPath === 'id') {\n selectFields.id = adapter.tables[newTableName].id\n return {\n columnName: 'id',\n constraints,\n field: {\n name: 'id',\n type: isUUIDType(adapter.idType) ? 'text' : 'number',\n } as NumberField | TextField,\n table: adapter.tables[newTableName],\n }\n }\n\n let localizedPathQuery = false\n if (field) {\n const pathSegments = [...incomingSegments]\n\n const isFieldLocalized = fieldShouldBeLocalized({ field, parentIsLocalized })\n\n // If next segment is a locale,\n // we need to take it out and use it as the locale from this point on\n if (isFieldLocalized && adapter.payload.config.localization) {\n const matchedLocale = adapter.payload.config.localization.localeCodes.find(\n (locale) => locale === pathSegments[1],\n )\n\n if (matchedLocale) {\n locale = matchedLocale\n localizedPathQuery = true\n pathSegments.splice(1, 1)\n }\n }\n\n switch (field.type) {\n case 'array': {\n newTableName = adapter.tableNameMap.get(\n `${tableName}_${tableNameSuffix}${toSnakeCase(field.name)}`,\n )\n\n const arrayParentTable = aliasTable || adapter.tables[tableName]\n\n constraintPath = `${constraintPath}${field.name}.%.`\n if (locale && isFieldLocalized && adapter.payload.config.localization) {\n const conditions = [eq(arrayParentTable.id, adapter.tables[newTableName]._parentID)]\n\n if (selectLocale) {\n selectFields._locale = adapter.tables[newTableName]._locale\n }\n\n if (locale !== 'all') {\n conditions.push(eq(adapter.tables[newTableName]._locale, locale))\n }\n addJoinTable({\n condition: and(...conditions),\n isOneToMany: true,\n joins,\n table: adapter.tables[newTableName],\n })\n } else {\n addJoinTable({\n condition: eq(arrayParentTable.id, adapter.tables[newTableName]._parentID),\n isOneToMany: true,\n joins,\n table: adapter.tables[newTableName],\n })\n }\n\n return getTableColumnFromPath({\n adapter,\n collectionPath,\n constraintPath,\n constraints,\n fields: field.flattenedFields,\n joins,\n locale,\n parentAliasTable: aliasTable,\n parentIsLocalized: parentIsLocalized || field.localized,\n pathSegments: pathSegments.slice(1),\n rootTableName,\n selectFields,\n selectLocale,\n tableName: newTableName,\n value,\n })\n }\n case 'blocks': {\n if (adapter.blocksAsJSON) {\n break\n }\n let blockTableColumn: TableColumn\n let newTableName: string\n\n // handle blockType queries\n if (pathSegments[1] === 'blockType') {\n // find the block config using the value\n const blockTypes = Array.isArray(value) ? value : [value]\n blockTypes.forEach((blockType) => {\n const block = getBlockFromField({ adapter, blockType, field })\n\n if (!block) {\n throw new APIError('Block was not found', 400)\n }\n\n newTableName = resolveBlockTableName(\n block,\n adapter.tableNameMap.get(`${tableName}_blocks_${toSnakeCase(block.slug)}`),\n )\n\n const { newAliasTable } = getTableAlias({ adapter, tableName: newTableName })\n\n joins.push({\n condition: eq(adapter.tables[tableName].id, newAliasTable._parentID),\n table: newAliasTable,\n })\n constraints.push({\n columnName: '_path',\n table: newAliasTable,\n value: `${constraintPath}${pathSegments[0]}`,\n })\n })\n return {\n constraints,\n field,\n getNotNullColumnByValue: () => 'id',\n table: adapter.tables[tableName],\n }\n }\n\n const hasBlockField = (field.blockReferences ?? field.blocks).some((_block) => {\n const block = typeof _block === 'string' ? adapter.payload.blocks[_block] : _block\n\n newTableName = resolveBlockTableName(\n block,\n adapter.tableNameMap.get(`${tableName}_blocks_${toSnakeCase(block.slug)}`),\n )\n\n constraintPath = `${constraintPath}${field.name}.%.`\n\n let result: TableColumn\n const blockConstraints = []\n const blockSelectFields = {}\n\n let blockJoin: BuildQueryJoinAliases[0]\n if (isFieldLocalized && adapter.payload.config.localization) {\n const conditions = [\n eq(\n (aliasTable || adapter.tables[tableName]).id,\n adapter.tables[newTableName]._parentID,\n ),\n ]\n\n if (locale !== 'all') {\n conditions.push(eq(adapter.tables[newTableName]._locale, locale))\n }\n\n blockJoin = {\n condition: and(...conditions),\n table: adapter.tables[newTableName],\n }\n } else {\n blockJoin = {\n condition: eq(\n (aliasTable || adapter.tables[tableName]).id,\n adapter.tables[newTableName]._parentID,\n ),\n table: adapter.tables[newTableName],\n }\n }\n\n // Create a new reference for nested joins\n const newJoins = [...joins]\n\n try {\n result = getTableColumnFromPath({\n adapter,\n collectionPath,\n constraintPath,\n constraints: blockConstraints,\n fields: block.flattenedFields,\n joins: newJoins,\n locale,\n parentIsLocalized: parentIsLocalized || field.localized,\n pathSegments: pathSegments.slice(1),\n rootTableName,\n selectFields: blockSelectFields,\n selectLocale,\n tableName: newTableName,\n value,\n })\n } catch (_) {\n // this is fine, not every block will have the field\n }\n if (!result) {\n return\n }\n blockTableColumn = result\n constraints = constraints.concat(blockConstraints)\n selectFields = { ...selectFields, ...blockSelectFields }\n\n const previousLength = joins.length\n joins.push(blockJoin)\n // Append new joins AFTER the block join to prevent errors with missing FROM clause.\n if (newJoins.length > previousLength) {\n for (let i = previousLength; i < newJoins.length; i++) {\n joins.push(newJoins[i])\n }\n }\n return true\n })\n if (hasBlockField) {\n return {\n columnName: blockTableColumn.columnName,\n constraints,\n field: blockTableColumn.field,\n pathSegments: pathSegments.slice(1),\n rawColumn: blockTableColumn.rawColumn,\n table: blockTableColumn.table,\n }\n }\n break\n }\n\n case 'group': {\n if (locale && isFieldLocalized && adapter.payload.config.localization) {\n newTableName = `${tableName}${adapter.localesSuffix}`\n\n let condition = eq(adapter.tables[tableName].id, adapter.tables[newTableName]._parentID)\n\n if (locale !== 'all') {\n condition = and(condition, eq(adapter.tables[newTableName]._locale, locale))\n }\n\n addJoinTable({\n condition,\n joins,\n table: adapter.tables[newTableName],\n })\n }\n return getTableColumnFromPath({\n adapter,\n aliasTable,\n collectionPath,\n columnPrefix: `${columnPrefix}${field.name}_`,\n constraintPath: `${constraintPath}${field.name}.`,\n constraints,\n fields: field.flattenedFields,\n joins,\n locale,\n parentIsLocalized: parentIsLocalized || field.localized,\n pathSegments: pathSegments.slice(1),\n rootTableName,\n selectFields,\n selectLocale,\n tableName: newTableName,\n tableNameSuffix: `${tableNameSuffix}${toSnakeCase(field.name)}_`,\n value,\n })\n }\n\n case 'join': {\n if (Array.isArray(field.collection)) {\n throw new APIError('Not supported')\n }\n\n const newCollectionPath = pathSegments.slice(1).join('.')\n\n // Filtering through a polymorphic `on` relationship is not supported: it is stored in the\n // `_rels` table with no direct column to correlate on, which would otherwise build invalid SQL.\n const onRelationshipField = getFieldByPath({\n fields: adapter.payload.collections[field.collection].config.flattenedFields,\n path: field.on,\n })?.field\n\n if (\n onRelationshipField &&\n (onRelationshipField.type === 'relationship' || onRelationshipField.type === 'upload') &&\n Array.isArray(onRelationshipField.relationTo)\n ) {\n throw new APIError('Not supported')\n }\n\n if (field.hasMany) {\n const relationTableName = `${adapter.tableNameMap.get(toSnakeCase(field.collection))}${adapter.relationshipsSuffix}`\n\n const existingTable = joins.find(\n (e) => e.queryPath === `${constraintPath}${field.name}._rels`,\n )\n\n const aliasRelationshipTable = (existingTable?.table ??\n getTableAlias({\n adapter,\n tableName: relationTableName,\n }).newAliasTable) as PgTableWithColumns<any>\n\n const relationshipField = getFieldByPath({\n fields: adapter.payload.collections[field.collection].config.flattenedFields,\n path: field.on,\n })\n if (!relationshipField) {\n throw new APIError('Relationship was not found')\n }\n\n if (!existingTable) {\n addJoinTable({\n condition: and(\n eq(\n adapter.tables[rootTableName].id,\n aliasRelationshipTable[\n `${(relationshipField.field as RelationshipField).relationTo as string}ID`\n ],\n ),\n like(aliasRelationshipTable.path, field.on),\n ),\n joins,\n queryPath: `${constraintPath}${field.name}._rels`,\n table: aliasRelationshipTable,\n })\n }\n\n if (newCollectionPath === 'id') {\n return {\n columnName: 'parent',\n constraints,\n field: {\n name: 'id',\n type: isUUIDType(adapter.idType) ? 'text' : 'number',\n } as NumberField | TextField,\n table: aliasRelationshipTable,\n }\n }\n\n const relationshipConfig = adapter.payload.collections[field.collection].config\n const relationshipTableName = adapter.tableNameMap.get(\n toSnakeCase(relationshipConfig.slug),\n )\n\n // parent to relationship join table\n const relationshipFields = relationshipConfig.flattenedFields\n\n const existingMainTable = joins.find(\n (e) => e.queryPath === `${constraintPath}${field.name}`,\n )\n\n const relationshipTable = (existingMainTable?.table ??\n getTableAlias({\n adapter,\n tableName: relationshipTableName,\n }).newAliasTable) as PgTableWithColumns<any>\n\n if (!existingMainTable) {\n joins.push({\n condition: eq(aliasRelationshipTable.parent, relationshipTable.id),\n queryPath: `${constraintPath}${field.name}`,\n table: relationshipTable,\n })\n }\n\n return getTableColumnFromPath({\n adapter,\n aliasTable: relationshipTable,\n collectionPath: newCollectionPath,\n constraints,\n // relationshipFields are fields from a different collection => no parentIsLocalized\n fields: relationshipFields,\n joins,\n locale,\n parentIsLocalized: false,\n pathSegments: pathSegments.slice(1),\n rootTableName: relationshipTableName,\n selectFields,\n selectLocale,\n tableName: relationshipTableName,\n value,\n })\n }\n\n const newTableName = adapter.tableNameMap.get(\n toSnakeCase(adapter.payload.collections[field.collection].config.slug),\n )\n\n const existingTable = joins.find(\n (e) => e.queryPath === `${constraintPath}${field.name}`,\n )?.table\n const newAliasTable =\n existingTable || getTableAlias({ adapter, tableName: newTableName }).newAliasTable\n\n if (!existingTable) {\n const onSegments = field.on.split('.')\n const collectionFlattenedFields =\n adapter.payload.collections[field.collection].config.flattenedFields\n const firstSegField =\n onSegments.length > 1\n ? collectionFlattenedFields.find((f) => f.name === onSegments[0])\n : null\n\n const arrayTableName =\n firstSegField?.type === 'array'\n ? adapter.tableNameMap.get(`${newTableName}_${toSnakeCase(onSegments[0])}`)\n : undefined\n\n if (arrayTableName) {\n // join from main table to array table\n const { newAliasTable: arrayAliasTable } = getTableAlias({\n adapter,\n tableName: arrayTableName,\n })\n\n joins.push({\n condition: eq(\n arrayAliasTable[onSegments.slice(1).join('_')],\n aliasTable ? aliasTable.id : adapter.tables[tableName].id,\n ),\n queryPath: `${constraintPath}${field.name}._array`,\n table: arrayAliasTable,\n })\n\n joins.push({\n condition: eq(\n (newAliasTable as PgTableWithColumns<any>).id,\n arrayAliasTable._parentID,\n ),\n queryPath: `${constraintPath}${field.name}`,\n table: newAliasTable,\n })\n } else {\n joins.push({\n condition: eq(\n newAliasTable[field.on.replaceAll('.', '_')],\n aliasTable ? aliasTable.id : adapter.tables[tableName].id,\n ),\n queryPath: `${constraintPath}${field.name}`,\n table: newAliasTable,\n })\n }\n }\n\n if (newCollectionPath === 'id') {\n return {\n columnName: 'id',\n constraints,\n field: {\n name: 'id',\n type: isUUIDType(adapter.idType) ? 'text' : 'number',\n } as NumberField | TextField,\n table: newAliasTable,\n }\n }\n\n return getTableColumnFromPath({\n adapter,\n aliasTable: newAliasTable,\n collectionPath: newCollectionPath,\n constraintPath: '',\n constraints,\n fields: adapter.payload.collections[field.collection].config.flattenedFields,\n joins,\n locale,\n parentIsLocalized: parentIsLocalized || field.localized,\n pathSegments: pathSegments.slice(1),\n selectFields,\n tableName: newTableName,\n value,\n })\n\n break\n }\n\n case 'number':\n case 'text': {\n if (field.hasMany) {\n let tableType = 'texts'\n let columnName = 'text'\n if (field.type === 'number') {\n tableType = 'numbers'\n columnName = 'number'\n }\n newTableName = `${rootTableName}_${tableType}`\n\n const existingTable = joins.find((e) => e.queryPath === `${constraintPath}${field.name}`)\n\n const table = (existingTable?.table ??\n getTableAlias({ adapter, tableName: newTableName })\n .newAliasTable) as PgTableWithColumns<any>\n\n const joinConstraints = [\n eq(adapter.tables[rootTableName].id, table.parent),\n like(table.path, `${constraintPath}${field.name}`),\n ]\n\n if (locale && isFieldLocalized && adapter.payload.config.localization) {\n const conditions = [...joinConstraints]\n\n if (locale !== 'all') {\n conditions.push(eq(table._locale, locale))\n }\n\n addJoinTable({\n condition: and(...conditions),\n joins,\n queryPath: `${constraintPath}${field.name}`,\n table,\n })\n } else {\n addJoinTable({\n condition: and(...joinConstraints),\n joins,\n queryPath: `${constraintPath}${field.name}`,\n table,\n })\n }\n\n return {\n columnName,\n constraints,\n field,\n table,\n }\n }\n break\n }\n case 'relationship':\n case 'upload': {\n const newCollectionPath = pathSegments.slice(1).join('.')\n\n if (Array.isArray(field.relationTo) || field.hasMany) {\n let relationshipFields: FlattenedField[]\n const relationTableName = `${rootTableName}${adapter.relationshipsSuffix}`\n\n const existingJoin = joins.find((e) => e.queryPath === `${constraintPath}.${field.name}`)\n\n let aliasRelationshipTable: PgTableWithColumns<any> | SQLiteTableWithColumns<any>\n let aliasRelationshipTableName: string\n if (existingJoin) {\n aliasRelationshipTable = existingJoin.table\n aliasRelationshipTableName = getTableName(existingJoin.table)\n } else {\n const res = getTableAlias({\n adapter,\n tableName: relationTableName,\n })\n aliasRelationshipTable = res.newAliasTable\n aliasRelationshipTableName = res.newAliasTableName\n }\n\n if (selectLocale && isFieldLocalized && adapter.payload.config.localization) {\n selectFields._locale = aliasRelationshipTable.locale\n }\n\n // Join in the relationships table\n if (locale && isFieldLocalized && adapter.payload.config.localization) {\n const conditions = [\n eq(\n (parentAliasTable || aliasTable || adapter.tables[rootTableName]).id,\n aliasRelationshipTable.parent,\n ),\n like(aliasRelationshipTable.path, `${constraintPath}${field.name}`),\n ]\n\n if (locale !== 'all') {\n conditions.push(eq(aliasRelationshipTable.locale, locale))\n }\n\n addJoinTable({\n condition: and(...conditions),\n joins,\n queryPath: `${constraintPath}.${field.name}`,\n table: aliasRelationshipTable,\n })\n } else {\n // Join in the relationships table\n addJoinTable({\n condition: and(\n eq(\n (parentAliasTable || aliasTable || adapter.tables[rootTableName]).id,\n aliasRelationshipTable.parent,\n ),\n like(aliasRelationshipTable.path, `${constraintPath}${field.name}`),\n ),\n joins,\n queryPath: `${constraintPath}.${field.name}`,\n table: aliasRelationshipTable,\n })\n }\n\n selectFields[`${relationTableName}.path`] = aliasRelationshipTable.path\n\n let newAliasTable\n\n if (typeof field.relationTo === 'string') {\n const relationshipConfig = adapter.payload.collections[field.relationTo].config\n\n newTableName = adapter.tableNameMap.get(toSnakeCase(relationshipConfig.slug))\n\n // parent to relationship join table\n relationshipFields = relationshipConfig.flattenedFields\n ;({ newAliasTable } = getTableAlias({ adapter, tableName: newTableName }))\n\n joins.push({\n condition: eq(newAliasTable.id, aliasRelationshipTable[`${field.relationTo}ID`]),\n table: newAliasTable,\n })\n\n if (newCollectionPath === '' || newCollectionPath === 'id') {\n return {\n columnName: `${field.relationTo}ID`,\n constraints,\n field,\n table: aliasRelationshipTable,\n }\n }\n } else if (newCollectionPath === 'value') {\n const hasCustomCollectionWithCustomID = field.relationTo.some(\n (relationTo) => !!adapter.payload.collections[relationTo].customIDType,\n )\n\n const columns: TableColumn['columns'] = field.relationTo\n .map((relationTo) => {\n let idType: 'number' | 'text' | 'uuid' = isUUIDType(adapter.idType)\n ? 'uuid'\n : 'number'\n\n const { customIDType } = adapter.payload.collections[relationTo]\n\n if (customIDType) {\n idType = customIDType\n }\n\n const idTypeTextOrUuid = idType === 'text' || idType === 'uuid'\n\n // Do not add the column to OR if we know that it can't match by the type\n // We can't do the same with idType: 'number' because `value` can be from the REST search query params\n if (typeof value === 'number' && idTypeTextOrUuid) {\n return null\n }\n\n if (\n Array.isArray(value) &&\n value.every((val) => typeof val === 'number') &&\n idTypeTextOrUuid\n ) {\n return null\n }\n\n // Do not add the UUID type column if incoming query value doesn't match UUID. If there aren't any collections with\n // a custom ID type, we skip this check\n // We need this because Postgres throws an error if querying by UUID column with a value that isn't a valid UUID.\n if (\n value &&\n !Array.isArray(value) &&\n idType === 'uuid' &&\n hasCustomCollectionWithCustomID\n ) {\n if (!uuidValidate(value)) {\n return null\n }\n }\n\n if (\n Array.isArray(value) &&\n idType === 'uuid' &&\n hasCustomCollectionWithCustomID &&\n !value.some((val) => uuidValidate(val))\n ) {\n return null\n }\n\n const relationTableName = adapter.tableNameMap.get(\n toSnakeCase(adapter.payload.collections[relationTo].config.slug),\n )\n\n return {\n idType,\n rawColumn: sql.raw(`\"${aliasRelationshipTableName}\".\"${relationTableName}_id\"`),\n }\n })\n .filter(Boolean)\n\n return {\n columns,\n constraints,\n field,\n table: aliasRelationshipTable,\n }\n } else if (newCollectionPath === 'relationTo') {\n const relationTo = Array.isArray(field.relationTo)\n ? field.relationTo\n : [field.relationTo]\n\n return {\n constraints,\n field,\n getNotNullColumnByValue: (val) => {\n const matchedRelation = relationTo.find((relation) => relation === val)\n if (matchedRelation) {\n return `${matchedRelation}ID`\n }\n return undefined\n },\n table: aliasRelationshipTable,\n }\n } else if (isPolymorphicRelationship(value)) {\n const { relationTo } = value\n\n const relationTableName = adapter.tableNameMap.get(\n toSnakeCase(adapter.payload.collections[relationTo].config.slug),\n )\n\n return {\n constraints,\n field,\n rawColumn: sql.raw(`\"${aliasRelationshipTableName}\".\"${relationTableName}_id\"`),\n table: aliasRelationshipTable,\n }\n } else if (value === DistinctSymbol) {\n const obj: Record<string, SQL> = {}\n\n field.relationTo.forEach((relationTo) => {\n const relationTableName = adapter.tableNameMap.get(\n toSnakeCase(adapter.payload.collections[relationTo].config.slug),\n )\n\n obj[relationTo] = sql.raw(`\"${aliasRelationshipTableName}\".\"${relationTableName}_id\"`)\n })\n\n let rawColumn = jsonBuildObject(adapter, obj)\n if (adapter.name === 'postgres') {\n rawColumn = sql`${rawColumn}::text`\n }\n\n return {\n constraints,\n field,\n rawColumn,\n table: aliasRelationshipTable,\n }\n } else {\n throw new APIError('Not supported')\n }\n\n return getTableColumnFromPath({\n adapter,\n aliasTable: newAliasTable,\n collectionPath: newCollectionPath,\n constraints,\n // relationshipFields are fields from a different collection => no parentIsLocalized\n fields: relationshipFields,\n joins,\n locale,\n parentIsLocalized: false,\n pathSegments: pathSegments.slice(1),\n rootTableName: newTableName,\n selectFields,\n selectLocale,\n tableName: newTableName,\n value,\n })\n } else if (\n pathSegments.length > 1 &&\n !(pathSegments.length === 2 && pathSegments[1] === 'id')\n ) {\n // simple relationships\n const columnName = `${columnPrefix}${field.name}`\n const newTableName = adapter.tableNameMap.get(\n toSnakeCase(adapter.payload.collections[field.relationTo].config.slug),\n )\n const { newAliasTable } = getTableAlias({ adapter, tableName: newTableName })\n\n if (isFieldLocalized && adapter.payload.config.localization) {\n const { newAliasTable: aliasLocaleTable } = getTableAlias({\n adapter,\n tableName: `${rootTableName}${adapter.localesSuffix}`,\n })\n\n const condtions = [eq(aliasLocaleTable._parentID, adapter.tables[rootTableName].id)]\n\n if (selectLocale) {\n selectFields._locale = aliasLocaleTable._locale\n }\n\n if (locale !== 'all') {\n condtions.push(eq(aliasLocaleTable._locale, locale))\n }\n\n const localesTable = adapter.tables[`${rootTableName}${adapter.localesSuffix}`]\n\n addJoinTable({\n condition: and(...condtions),\n joins,\n table: localesTable,\n })\n\n joins.push({\n condition: eq(localesTable[columnName], newAliasTable.id),\n table: newAliasTable,\n })\n } else {\n joins.push({\n condition: eq(\n newAliasTable.id,\n aliasTable ? aliasTable[columnName] : adapter.tables[tableName][columnName],\n ),\n table: newAliasTable,\n })\n }\n\n return getTableColumnFromPath({\n adapter,\n aliasTable: newAliasTable,\n collectionPath: newCollectionPath,\n constraintPath: '',\n constraints,\n fields: adapter.payload.collections[field.relationTo].config.flattenedFields,\n joins,\n locale,\n parentIsLocalized: parentIsLocalized || field.localized,\n pathSegments: pathSegments.slice(1),\n selectFields,\n tableName: newTableName,\n value,\n })\n }\n\n break\n }\n\n case 'select': {\n if (field.hasMany) {\n const newTableName = adapter.tableNameMap.get(\n `${tableName}_${tableNameSuffix}${toSnakeCase(field.name)}`,\n )\n\n const idColumn = (aliasTable ?? adapter.tables[tableName]).id\n if (locale && isFieldLocalized && adapter.payload.config.localization) {\n const conditions = [\n eq(idColumn, adapter.tables[newTableName].parent),\n eq(adapter.tables[newTableName]._locale, locale),\n ]\n\n if (locale !== 'all') {\n conditions.push(eq(adapter.tables[newTableName]._locale, locale))\n }\n\n addJoinTable({\n condition: and(...conditions),\n joins,\n table: adapter.tables[newTableName],\n })\n } else {\n addJoinTable({\n condition: eq(idColumn, adapter.tables[newTableName].parent),\n joins,\n table: adapter.tables[newTableName],\n })\n }\n\n return {\n columnName: 'value',\n constraints,\n field,\n table: adapter.tables[newTableName],\n }\n }\n break\n }\n\n case 'tab': {\n if (tabHasName(field)) {\n return getTableColumnFromPath({\n adapter,\n aliasTable,\n collectionPath,\n columnPrefix: `${columnPrefix}${field.name}_`,\n constraintPath: `${constraintPath}${field.name}.`,\n constraints,\n fields: field.flattenedFields,\n joins,\n locale,\n parentIsLocalized: parentIsLocalized || field.localized,\n pathSegments: pathSegments.slice(1),\n rootTableName,\n selectFields,\n selectLocale,\n tableName: newTableName,\n tableNameSuffix: `${tableNameSuffix}${toSnakeCase(field.name)}_`,\n value,\n })\n }\n return getTableColumnFromPath({\n adapter,\n aliasTable,\n collectionPath,\n columnPrefix,\n constraintPath,\n constraints,\n fields: field.flattenedFields,\n joins,\n locale,\n parentIsLocalized: parentIsLocalized || field.localized,\n pathSegments: pathSegments.slice(1),\n rootTableName,\n selectFields,\n selectLocale,\n tableName: newTableName,\n tableNameSuffix,\n value,\n })\n }\n\n default: {\n // fall through\n break\n }\n }\n\n let newTable = adapter.tables[newTableName]\n\n if (isFieldLocalized && adapter.payload.config.localization) {\n // If localized, we go to localized table and set aliasTable to undefined\n // so it is not picked up below to be used as targetTable\n const parentTable = aliasTable || adapter.tables[tableName]\n newTableName = `${tableName}${adapter.localesSuffix}`\n\n // use an alias because the same query may contain constraints with different locale value\n if (localizedPathQuery) {\n const { newAliasTable } = getTableAlias({ adapter, tableName: newTableName })\n newTable = newAliasTable\n } else {\n newTable = adapter.tables[newTableName]\n }\n\n let condition = eq(parentTable.id, newTable._parentID)\n\n if (locale !== 'all') {\n condition = and(condition, eq(newTable._locale, locale))\n }\n\n if (selectLocale) {\n selectFields._locale = newTable._locale\n }\n\n addJoinTable({\n condition,\n joins,\n table: newTable,\n })\n\n aliasTable = undefined\n }\n\n const targetTable = aliasTable || newTable\n\n selectFields[`${newTableName}.${columnPrefix}${field.name}`] =\n targetTable[`${columnPrefix}${field.name}`]\n\n return {\n columnName: `${columnPrefix}${field.name}`,\n constraints,\n field,\n pathSegments,\n table: targetTable,\n }\n }\n\n throw new APIError(`Cannot find field for path at ${fieldPath}`)\n}\n"],"names":["and","eq","getTableName","like","sql","APIError","getFieldByPath","fieldShouldBeLocalized","tabHasName","toSnakeCase","validate","uuidValidate","getBlockFromField","isPolymorphicRelationship","isUUIDType","jsonBuildObject","DistinctSymbol","resolveBlockTableName","addJoinTable","getTableAlias","getTableColumnFromPath","adapter","aliasTable","collectionPath","columnPrefix","constraintPath","incomingConstraintPath","constraints","fields","joins","locale","incomingLocale","parentAliasTable","parentIsLocalized","pathSegments","incomingSegments","rootTableName","incomingRootTableName","selectFields","selectLocale","tableName","tableNameSuffix","value","fieldPath","field","find","fieldToFind","name","newTableName","id","tables","columnName","type","idType","table","localizedPathQuery","isFieldLocalized","payload","config","localization","matchedLocale","localeCodes","splice","tableNameMap","get","arrayParentTable","conditions","_parentID","_locale","push","condition","isOneToMany","flattenedFields","localized","slice","blocksAsJSON","blockTableColumn","blockTypes","Array","isArray","forEach","blockType","block","slug","newAliasTable","getNotNullColumnByValue","hasBlockField","blockReferences","blocks","some","_block","result","blockConstraints","blockSelectFields","blockJoin","newJoins","_","concat","previousLength","length","i","rawColumn","localesSuffix","collection","newCollectionPath","join","onRelationshipField","collections","path","on","relationTo","hasMany","relationTableName","relationshipsSuffix","existingTable","e","queryPath","aliasRelationshipTable","relationshipField","relationshipConfig","relationshipTableName","relationshipFields","existingMainTable","relationshipTable","parent","onSegments","split","collectionFlattenedFields","firstSegField","f","arrayTableName","undefined","arrayAliasTable","replaceAll","tableType","joinConstraints","existingJoin","aliasRelationshipTableName","res","newAliasTableName","hasCustomCollectionWithCustomID","customIDType","columns","map","idTypeTextOrUuid","every","val","raw","filter","Boolean","matchedRelation","relation","obj","aliasLocaleTable","condtions","localesTable","idColumn","newTable","parentTable","targetTable"],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { RequireDrizzleKit } from '../types.js';
2
+ export declare const createRequireDrizzleKit: ({ from, }: {
3
+ /** Module URL of the adapter that owns the drizzle-kit dependency. */
4
+ from: string;
5
+ }) => RequireDrizzleKit;
6
+ //# sourceMappingURL=createRequireDrizzleKit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createRequireDrizzleKit.d.ts","sourceRoot":"","sources":["../../src/sqlite/createRequireDrizzleKit.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAEpD,eAAO,MAAM,uBAAuB,cAEjC;IACD,sEAAsE;IACtE,IAAI,EAAE,MAAM,CAAA;CACb,KAAG,iBA4BH,CAAA"}
@@ -0,0 +1,28 @@
1
+ import nodeModule from 'node:module';
2
+ import { dynamicImport } from 'payload';
3
+ export const createRequireDrizzleKit = ({ from })=>{
4
+ const load = ()=>{
5
+ // Preserve Node's loader instead of Webpack's createRequire transform.
6
+ const require = nodeModule.createRequire(from);
7
+ return dynamicImport(require.resolve('drizzle-kit/api'));
8
+ };
9
+ // Keep the 3.x loader synchronous; SQLite tooling methods already return promises.
10
+ return ()=>({
11
+ generateDrizzleJson: async (...args)=>{
12
+ const { generateSQLiteDrizzleJson } = await load();
13
+ return generateSQLiteDrizzleJson(...args);
14
+ },
15
+ generateMigration: async (...args)=>{
16
+ const { generateSQLiteMigration } = await load();
17
+ return generateSQLiteMigration(...args);
18
+ },
19
+ pushSchema: async (...args)=>{
20
+ const { pushSQLiteSchema } = await load();
21
+ // Drizzle Kit bundles separate ORM types; this loader is used by SQLite adapters.
22
+ const pushSchema = pushSQLiteSchema;
23
+ return pushSchema(...args);
24
+ }
25
+ });
26
+ };
27
+
28
+ //# sourceMappingURL=createRequireDrizzleKit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/sqlite/createRequireDrizzleKit.ts"],"sourcesContent":["import type * as DrizzleKit from 'drizzle-kit/api'\n\nimport nodeModule from 'node:module'\nimport { dynamicImport } from 'payload'\n\nimport type { RequireDrizzleKit } from '../types.js'\n\nexport const createRequireDrizzleKit = ({\n from,\n}: {\n /** Module URL of the adapter that owns the drizzle-kit dependency. */\n from: string\n}): RequireDrizzleKit => {\n const load = () => {\n // Preserve Node's loader instead of Webpack's createRequire transform.\n const require = nodeModule.createRequire(from)\n\n return dynamicImport<typeof DrizzleKit>(require.resolve('drizzle-kit/api'))\n }\n\n // Keep the 3.x loader synchronous; SQLite tooling methods already return promises.\n return () => ({\n generateDrizzleJson: async (...args) => {\n const { generateSQLiteDrizzleJson } = await load()\n\n return generateSQLiteDrizzleJson(...args)\n },\n generateMigration: async (...args) => {\n const { generateSQLiteMigration } = await load()\n\n return generateSQLiteMigration(...args)\n },\n pushSchema: async (...args) => {\n const { pushSQLiteSchema } = await load()\n // Drizzle Kit bundles separate ORM types; this loader is used by SQLite adapters.\n const pushSchema = pushSQLiteSchema as unknown as ReturnType<RequireDrizzleKit>['pushSchema']\n\n return pushSchema(...args)\n },\n })\n}\n"],"names":["nodeModule","dynamicImport","createRequireDrizzleKit","from","load","require","createRequire","resolve","generateDrizzleJson","args","generateSQLiteDrizzleJson","generateMigration","generateSQLiteMigration","pushSchema","pushSQLiteSchema"],"mappings":"AAEA,OAAOA,gBAAgB,cAAa;AACpC,SAASC,aAAa,QAAQ,UAAS;AAIvC,OAAO,MAAMC,0BAA0B,CAAC,EACtCC,IAAI,EAIL;IACC,MAAMC,OAAO;QACX,uEAAuE;QACvE,MAAMC,UAAUL,WAAWM,aAAa,CAACH;QAEzC,OAAOF,cAAiCI,QAAQE,OAAO,CAAC;IAC1D;IAEA,mFAAmF;IACnF,OAAO,IAAO,CAAA;YACZC,qBAAqB,OAAO,GAAGC;gBAC7B,MAAM,EAAEC,yBAAyB,EAAE,GAAG,MAAMN;gBAE5C,OAAOM,6BAA6BD;YACtC;YACAE,mBAAmB,OAAO,GAAGF;gBAC3B,MAAM,EAAEG,uBAAuB,EAAE,GAAG,MAAMR;gBAE1C,OAAOQ,2BAA2BH;YACpC;YACAI,YAAY,OAAO,GAAGJ;gBACpB,MAAM,EAAEK,gBAAgB,EAAE,GAAG,MAAMV;gBACnC,kFAAkF;gBAClF,MAAMS,aAAaC;gBAEnB,OAAOD,cAAcJ;YACvB;QACF,CAAA;AACF,EAAC"}
@@ -0,0 +1,61 @@
1
+ import { mkdirSync, mkdtempSync, realpathSync, rmSync, writeFileSync } from 'node:fs';
2
+ import nodeModule from 'node:module';
3
+ import { tmpdir } from 'node:os';
4
+ import path from 'node:path';
5
+ import { pathToFileURL } from 'node:url';
6
+ import { afterEach, describe, expect, it } from 'vitest';
7
+ import { createRequireDrizzleKit } from './createRequireDrizzleKit.js';
8
+ const directories = [];
9
+ afterEach(()=>{
10
+ const require = nodeModule.createRequire(import.meta.url);
11
+ for (const directory of directories.splice(0)){
12
+ for (const filename of Object.keys(require.cache)){
13
+ if (filename.startsWith(`${directory}${path.sep}`)) {
14
+ delete require.cache[filename];
15
+ }
16
+ }
17
+ rmSync(directory, {
18
+ force: true,
19
+ recursive: true
20
+ });
21
+ }
22
+ });
23
+ describe('createRequireDrizzleKit', ()=>{
24
+ it('should lazily resolve tooling from each owning adapter', async ()=>{
25
+ for(let index = 0; index < 2; index++){
26
+ const directory = createDirectory();
27
+ const load = createRequireDrizzleKit({
28
+ from: pathToFileURL(path.join(directory, 'adapter.js')).href
29
+ });
30
+ const tooling = load();
31
+ await expect(tooling.generateDrizzleJson({})).rejects.toThrow(/drizzle-kit/);
32
+ installTooling({
33
+ directory
34
+ });
35
+ expect(await tooling.generateDrizzleJson({})).toEqual({
36
+ dialect: 'sqlite',
37
+ source: directory
38
+ });
39
+ }
40
+ });
41
+ });
42
+ function createDirectory() {
43
+ const directory = realpathSync(mkdtempSync(path.join(tmpdir(), 'payload-kit-loader-')));
44
+ directories.push(directory);
45
+ return directory;
46
+ }
47
+ function installTooling({ directory }) {
48
+ const packageDirectory = path.join(directory, 'node_modules', 'drizzle-kit');
49
+ mkdirSync(packageDirectory, {
50
+ recursive: true
51
+ });
52
+ writeFileSync(path.join(packageDirectory, 'package.json'), JSON.stringify({
53
+ exports: {
54
+ './api': './api.cjs'
55
+ },
56
+ name: 'drizzle-kit'
57
+ }));
58
+ writeFileSync(path.join(packageDirectory, 'api.cjs'), `exports.generateSQLiteDrizzleJson = () => ({ dialect: 'sqlite', source: ${JSON.stringify(directory)} })`);
59
+ }
60
+
61
+ //# sourceMappingURL=createRequireDrizzleKit.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/sqlite/createRequireDrizzleKit.spec.ts"],"sourcesContent":["import { mkdirSync, mkdtempSync, realpathSync, rmSync, writeFileSync } from 'node:fs'\nimport nodeModule from 'node:module'\nimport { tmpdir } from 'node:os'\nimport path from 'node:path'\nimport { pathToFileURL } from 'node:url'\nimport { afterEach, describe, expect, it } from 'vitest'\n\nimport { createRequireDrizzleKit } from './createRequireDrizzleKit.js'\n\nconst directories: string[] = []\n\nafterEach(() => {\n const require = nodeModule.createRequire(import.meta.url)\n\n for (const directory of directories.splice(0)) {\n for (const filename of Object.keys(require.cache)) {\n if (filename.startsWith(`${directory}${path.sep}`)) {\n delete require.cache[filename]\n }\n }\n rmSync(directory, { force: true, recursive: true })\n }\n})\n\ndescribe('createRequireDrizzleKit', () => {\n it('should lazily resolve tooling from each owning adapter', async () => {\n for (let index = 0; index < 2; index++) {\n const directory = createDirectory()\n const load = createRequireDrizzleKit({\n from: pathToFileURL(path.join(directory, 'adapter.js')).href,\n })\n\n const tooling = load()\n\n await expect(tooling.generateDrizzleJson({})).rejects.toThrow(/drizzle-kit/)\n installTooling({ directory })\n\n expect(await tooling.generateDrizzleJson({})).toEqual({\n dialect: 'sqlite',\n source: directory,\n })\n }\n })\n})\n\nfunction createDirectory() {\n const directory = realpathSync(mkdtempSync(path.join(tmpdir(), 'payload-kit-loader-')))\n\n directories.push(directory)\n return directory\n}\n\nfunction installTooling({ directory }: { directory: string }) {\n const packageDirectory = path.join(directory, 'node_modules', 'drizzle-kit')\n\n mkdirSync(packageDirectory, { recursive: true })\n writeFileSync(\n path.join(packageDirectory, 'package.json'),\n JSON.stringify({ exports: { './api': './api.cjs' }, name: 'drizzle-kit' }),\n )\n writeFileSync(\n path.join(packageDirectory, 'api.cjs'),\n `exports.generateSQLiteDrizzleJson = () => ({ dialect: 'sqlite', source: ${JSON.stringify(directory)} })`,\n )\n}\n"],"names":["mkdirSync","mkdtempSync","realpathSync","rmSync","writeFileSync","nodeModule","tmpdir","path","pathToFileURL","afterEach","describe","expect","it","createRequireDrizzleKit","directories","require","createRequire","url","directory","splice","filename","Object","keys","cache","startsWith","sep","force","recursive","index","createDirectory","load","from","join","href","tooling","generateDrizzleJson","rejects","toThrow","installTooling","toEqual","dialect","source","push","packageDirectory","JSON","stringify","exports","name"],"mappings":"AAAA,SAASA,SAAS,EAAEC,WAAW,EAAEC,YAAY,EAAEC,MAAM,EAAEC,aAAa,QAAQ,UAAS;AACrF,OAAOC,gBAAgB,cAAa;AACpC,SAASC,MAAM,QAAQ,UAAS;AAChC,OAAOC,UAAU,YAAW;AAC5B,SAASC,aAAa,QAAQ,WAAU;AACxC,SAASC,SAAS,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,SAAQ;AAExD,SAASC,uBAAuB,QAAQ,+BAA8B;AAEtE,MAAMC,cAAwB,EAAE;AAEhCL,UAAU;IACR,MAAMM,UAAUV,WAAWW,aAAa,CAAC,YAAYC,GAAG;IAExD,KAAK,MAAMC,aAAaJ,YAAYK,MAAM,CAAC,GAAI;QAC7C,KAAK,MAAMC,YAAYC,OAAOC,IAAI,CAACP,QAAQQ,KAAK,EAAG;YACjD,IAAIH,SAASI,UAAU,CAAC,GAAGN,YAAYX,KAAKkB,GAAG,EAAE,GAAG;gBAClD,OAAOV,QAAQQ,KAAK,CAACH,SAAS;YAChC;QACF;QACAjB,OAAOe,WAAW;YAAEQ,OAAO;YAAMC,WAAW;QAAK;IACnD;AACF;AAEAjB,SAAS,2BAA2B;IAClCE,GAAG,0DAA0D;QAC3D,IAAK,IAAIgB,QAAQ,GAAGA,QAAQ,GAAGA,QAAS;YACtC,MAAMV,YAAYW;YAClB,MAAMC,OAAOjB,wBAAwB;gBACnCkB,MAAMvB,cAAcD,KAAKyB,IAAI,CAACd,WAAW,eAAee,IAAI;YAC9D;YAEA,MAAMC,UAAUJ;YAEhB,MAAMnB,OAAOuB,QAAQC,mBAAmB,CAAC,CAAC,IAAIC,OAAO,CAACC,OAAO,CAAC;YAC9DC,eAAe;gBAAEpB;YAAU;YAE3BP,OAAO,MAAMuB,QAAQC,mBAAmB,CAAC,CAAC,IAAII,OAAO,CAAC;gBACpDC,SAAS;gBACTC,QAAQvB;YACV;QACF;IACF;AACF;AAEA,SAASW;IACP,MAAMX,YAAYhB,aAAaD,YAAYM,KAAKyB,IAAI,CAAC1B,UAAU;IAE/DQ,YAAY4B,IAAI,CAACxB;IACjB,OAAOA;AACT;AAEA,SAASoB,eAAe,EAAEpB,SAAS,EAAyB;IAC1D,MAAMyB,mBAAmBpC,KAAKyB,IAAI,CAACd,WAAW,gBAAgB;IAE9DlB,UAAU2C,kBAAkB;QAAEhB,WAAW;IAAK;IAC9CvB,cACEG,KAAKyB,IAAI,CAACW,kBAAkB,iBAC5BC,KAAKC,SAAS,CAAC;QAAEC,SAAS;YAAE,SAAS;QAAY;QAAGC,MAAM;IAAc;IAE1E3C,cACEG,KAAKyB,IAAI,CAACW,kBAAkB,YAC5B,CAAC,wEAAwE,EAAEC,KAAKC,SAAS,CAAC3B,WAAW,GAAG,CAAC;AAE7G"}