@payloadcms/drizzle 3.50.0-internal.ca62628 → 3.50.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 (88) hide show
  1. package/dist/createGlobalVersion.d.ts.map +1 -1
  2. package/dist/createGlobalVersion.js.map +1 -1
  3. package/dist/createVersion.d.ts.map +1 -1
  4. package/dist/createVersion.js.map +1 -1
  5. package/dist/find/traverseFields.d.ts.map +1 -1
  6. package/dist/find/traverseFields.js +48 -6
  7. package/dist/find/traverseFields.js.map +1 -1
  8. package/dist/findOne.d.ts +1 -1
  9. package/dist/findOne.d.ts.map +1 -1
  10. package/dist/findOne.js.map +1 -1
  11. package/dist/postgres/createJSONQuery/index.d.ts.map +1 -1
  12. package/dist/postgres/createJSONQuery/index.js +4 -3
  13. package/dist/postgres/createJSONQuery/index.js.map +1 -1
  14. package/dist/types.d.ts +2 -1
  15. package/dist/types.d.ts.map +1 -1
  16. package/dist/types.js.map +1 -1
  17. package/dist/updateGlobalVersion.d.ts.map +1 -1
  18. package/dist/updateGlobalVersion.js.map +1 -1
  19. package/dist/updateJobs.d.ts.map +1 -1
  20. package/dist/updateJobs.js +22 -1
  21. package/dist/updateJobs.js.map +1 -1
  22. package/dist/updateVersion.d.ts.map +1 -1
  23. package/dist/updateVersion.js.map +1 -1
  24. package/dist/utilities/buildCreateMigration.d.ts +1 -2
  25. package/dist/utilities/buildCreateMigration.d.ts.map +1 -1
  26. package/dist/utilities/buildCreateMigration.js +6 -8
  27. package/dist/utilities/buildCreateMigration.js.map +1 -1
  28. package/package.json +3 -8
  29. package/dist/exports/sqlite.d.ts +0 -13
  30. package/dist/exports/sqlite.d.ts.map +0 -1
  31. package/dist/exports/sqlite.js +0 -14
  32. package/dist/exports/sqlite.js.map +0 -1
  33. package/dist/sqlite/columnToCodeConverter.d.ts +0 -3
  34. package/dist/sqlite/columnToCodeConverter.d.ts.map +0 -1
  35. package/dist/sqlite/columnToCodeConverter.js +0 -107
  36. package/dist/sqlite/columnToCodeConverter.js.map +0 -1
  37. package/dist/sqlite/countDistinct.d.ts +0 -3
  38. package/dist/sqlite/countDistinct.d.ts.map +0 -1
  39. package/dist/sqlite/countDistinct.js +0 -24
  40. package/dist/sqlite/countDistinct.js.map +0 -1
  41. package/dist/sqlite/createJSONQuery/convertPathToJSONTraversal.d.ts +0 -2
  42. package/dist/sqlite/createJSONQuery/convertPathToJSONTraversal.d.ts.map +0 -1
  43. package/dist/sqlite/createJSONQuery/convertPathToJSONTraversal.js +0 -12
  44. package/dist/sqlite/createJSONQuery/convertPathToJSONTraversal.js.map +0 -1
  45. package/dist/sqlite/createJSONQuery/index.d.ts +0 -3
  46. package/dist/sqlite/createJSONQuery/index.d.ts.map +0 -1
  47. package/dist/sqlite/createJSONQuery/index.js +0 -60
  48. package/dist/sqlite/createJSONQuery/index.js.map +0 -1
  49. package/dist/sqlite/defaultSnapshot.d.ts +0 -3
  50. package/dist/sqlite/defaultSnapshot.d.ts.map +0 -1
  51. package/dist/sqlite/defaultSnapshot.js +0 -15
  52. package/dist/sqlite/defaultSnapshot.js.map +0 -1
  53. package/dist/sqlite/deleteWhere.d.ts +0 -3
  54. package/dist/sqlite/deleteWhere.d.ts.map +0 -1
  55. package/dist/sqlite/deleteWhere.js +0 -6
  56. package/dist/sqlite/deleteWhere.js.map +0 -1
  57. package/dist/sqlite/dropDatabase.d.ts +0 -3
  58. package/dist/sqlite/dropDatabase.d.ts.map +0 -1
  59. package/dist/sqlite/dropDatabase.js +0 -19
  60. package/dist/sqlite/dropDatabase.js.map +0 -1
  61. package/dist/sqlite/execute.d.ts +0 -3
  62. package/dist/sqlite/execute.d.ts.map +0 -1
  63. package/dist/sqlite/execute.js +0 -13
  64. package/dist/sqlite/execute.js.map +0 -1
  65. package/dist/sqlite/init.d.ts +0 -3
  66. package/dist/sqlite/init.d.ts.map +0 -1
  67. package/dist/sqlite/init.js +0 -42
  68. package/dist/sqlite/init.js.map +0 -1
  69. package/dist/sqlite/insert.d.ts +0 -3
  70. package/dist/sqlite/insert.d.ts.map +0 -1
  71. package/dist/sqlite/insert.js +0 -8
  72. package/dist/sqlite/insert.js.map +0 -1
  73. package/dist/sqlite/requireDrizzleKit.d.ts +0 -3
  74. package/dist/sqlite/requireDrizzleKit.d.ts.map +0 -1
  75. package/dist/sqlite/requireDrizzleKit.js +0 -12
  76. package/dist/sqlite/requireDrizzleKit.js.map +0 -1
  77. package/dist/sqlite/schema/buildDrizzleTable.d.ts +0 -3
  78. package/dist/sqlite/schema/buildDrizzleTable.d.ts.map +0 -1
  79. package/dist/sqlite/schema/buildDrizzleTable.js +0 -143
  80. package/dist/sqlite/schema/buildDrizzleTable.js.map +0 -1
  81. package/dist/sqlite/schema/setColumnID.d.ts +0 -3
  82. package/dist/sqlite/schema/setColumnID.d.ts.map +0 -1
  83. package/dist/sqlite/schema/setColumnID.js +0 -39
  84. package/dist/sqlite/schema/setColumnID.js.map +0 -1
  85. package/dist/sqlite/types.d.ts +0 -210
  86. package/dist/sqlite/types.d.ts.map +0 -1
  87. package/dist/sqlite/types.js +0 -3
  88. package/dist/sqlite/types.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"updateGlobalVersion.d.ts","sourceRoot":"","sources":["../src/updateGlobalVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,UAAU,EACV,eAAe,EACf,uBAAuB,EACxB,MAAM,SAAS,CAAA;AAKhB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAMhD,wBAAsB,mBAAmB,CAAC,CAAC,SAAS,UAAU,EAC5D,IAAI,EAAE,cAAc,EACpB,EACE,EAAE,EACF,MAAM,EACN,MAAM,EACN,GAAG,EACH,SAAS,EACT,MAAM,EACN,WAAW,EACX,KAAK,EAAE,QAAQ,GAChB,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAC5B,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAwC7B"}
1
+ {"version":3,"file":"updateGlobalVersion.d.ts","sourceRoot":"","sources":["../src/updateGlobalVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,UAAU,EACV,eAAe,EACf,uBAAuB,EACxB,MAAM,SAAS,CAAA;AAKhB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAMhD,wBAAsB,mBAAmB,CAAC,CAAC,SAAS,UAAU,EAC5D,IAAI,EAAE,cAAc,EACpB,EACE,EAAE,EACF,MAAM,EACN,MAAM,EACN,GAAG,EACH,SAAS,EACT,MAAM,EACN,WAAW,EACX,KAAK,EAAE,QAAQ,GAChB,EAAE,uBAAuB,CAAC,CAAC,CAAC,+BAyC9B"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/updateGlobalVersion.ts"],"sourcesContent":["import type {\n SanitizedGlobalConfig,\n TypeWithID,\n TypeWithVersion,\n UpdateGlobalVersionArgs,\n} from 'payload'\n\nimport { buildVersionGlobalFields } from 'payload'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { buildQuery } from './queries/buildQuery.js'\nimport { upsertRow } from './upsertRow/index.js'\nimport { getTransaction } from './utilities/getTransaction.js'\n\nexport async function updateGlobalVersion<T extends TypeWithID>(\n this: DrizzleAdapter,\n {\n id,\n global,\n locale,\n req,\n returning,\n select,\n versionData,\n where: whereArg,\n }: UpdateGlobalVersionArgs<T>,\n): Promise<TypeWithVersion<T>> {\n const db = await getTransaction(this, req)\n const globalConfig: SanitizedGlobalConfig = this.payload.globals.config.find(\n ({ slug }) => slug === global,\n )\n const whereToUse = whereArg || { id: { equals: id } }\n\n const tableName = this.tableNameMap.get(\n `_${toSnakeCase(globalConfig.slug)}${this.versionsSuffix}`,\n )\n\n const fields = buildVersionGlobalFields(this.payload.config, globalConfig, true)\n\n const { where } = buildQuery({\n adapter: this,\n fields,\n locale,\n tableName,\n where: whereToUse,\n })\n\n const result = await upsertRow<TypeWithVersion<T>>({\n id,\n adapter: this,\n data: versionData,\n db,\n fields,\n ignoreResult: returning === false,\n operation: 'update',\n req,\n select,\n tableName,\n where,\n })\n\n if (returning === false) {\n return null\n }\n\n return result\n}\n"],"names":["buildVersionGlobalFields","toSnakeCase","buildQuery","upsertRow","getTransaction","updateGlobalVersion","id","global","locale","req","returning","select","versionData","where","whereArg","db","globalConfig","payload","globals","config","find","slug","whereToUse","equals","tableName","tableNameMap","get","versionsSuffix","fields","adapter","result","data","ignoreResult","operation"],"mappings":"AAOA,SAASA,wBAAwB,QAAQ,UAAS;AAClD,OAAOC,iBAAiB,gBAAe;AAIvC,SAASC,UAAU,QAAQ,0BAAyB;AACpD,SAASC,SAAS,QAAQ,uBAAsB;AAChD,SAASC,cAAc,QAAQ,gCAA+B;AAE9D,OAAO,eAAeC,oBAEpB,EACEC,EAAE,EACFC,MAAM,EACNC,MAAM,EACNC,GAAG,EACHC,SAAS,EACTC,MAAM,EACNC,WAAW,EACXC,OAAOC,QAAQ,EACY;IAE7B,MAAMC,KAAK,MAAMX,eAAe,IAAI,EAAEK;IACtC,MAAMO,eAAsC,IAAI,CAACC,OAAO,CAACC,OAAO,CAACC,MAAM,CAACC,IAAI,CAC1E,CAAC,EAAEC,IAAI,EAAE,GAAKA,SAASd;IAEzB,MAAMe,aAAaR,YAAY;QAAER,IAAI;YAAEiB,QAAQjB;QAAG;IAAE;IAEpD,MAAMkB,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CACrC,CAAC,CAAC,EAAEzB,YAAYe,aAAaK,IAAI,IAAI,IAAI,CAACM,cAAc,EAAE;IAG5D,MAAMC,SAAS5B,yBAAyB,IAAI,CAACiB,OAAO,CAACE,MAAM,EAAEH,cAAc;IAE3E,MAAM,EAAEH,KAAK,EAAE,GAAGX,WAAW;QAC3B2B,SAAS,IAAI;QACbD;QACApB;QACAgB;QACAX,OAAOS;IACT;IAEA,MAAMQ,SAAS,MAAM3B,UAA8B;QACjDG;QACAuB,SAAS,IAAI;QACbE,MAAMnB;QACNG;QACAa;QACAI,cAActB,cAAc;QAC5BuB,WAAW;QACXxB;QACAE;QACAa;QACAX;IACF;IAEA,IAAIH,cAAc,OAAO;QACvB,OAAO;IACT;IAEA,OAAOoB;AACT"}
1
+ {"version":3,"sources":["../src/updateGlobalVersion.ts"],"sourcesContent":["import type {\n SanitizedGlobalConfig,\n TypeWithID,\n TypeWithVersion,\n UpdateGlobalVersionArgs,\n} from 'payload'\n\nimport { buildVersionGlobalFields } from 'payload'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { buildQuery } from './queries/buildQuery.js'\nimport { upsertRow } from './upsertRow/index.js'\nimport { getTransaction } from './utilities/getTransaction.js'\n\nexport async function updateGlobalVersion<T extends TypeWithID>(\n this: DrizzleAdapter,\n {\n id,\n global,\n locale,\n req,\n returning,\n select,\n versionData,\n where: whereArg,\n }: UpdateGlobalVersionArgs<T>,\n) {\n const db = await getTransaction(this, req)\n const globalConfig: SanitizedGlobalConfig = this.payload.globals.config.find(\n ({ slug }) => slug === global,\n )\n const whereToUse = whereArg || { id: { equals: id } }\n\n const tableName = this.tableNameMap.get(\n `_${toSnakeCase(globalConfig.slug)}${this.versionsSuffix}`,\n )\n\n const fields = buildVersionGlobalFields(this.payload.config, globalConfig, true)\n\n const { where } = buildQuery({\n adapter: this,\n fields,\n locale,\n tableName,\n where: whereToUse,\n })\n\n const result = await upsertRow<TypeWithVersion<T>>({\n id,\n adapter: this,\n data: versionData,\n db,\n fields,\n ignoreResult: returning === false,\n operation: 'update',\n req,\n select,\n tableName,\n where,\n })\n\n if (returning === false) {\n return null\n }\n\n return result\n}\n"],"names":["buildVersionGlobalFields","toSnakeCase","buildQuery","upsertRow","getTransaction","updateGlobalVersion","id","global","locale","req","returning","select","versionData","where","whereArg","db","globalConfig","payload","globals","config","find","slug","whereToUse","equals","tableName","tableNameMap","get","versionsSuffix","fields","adapter","result","data","ignoreResult","operation"],"mappings":"AAOA,SAASA,wBAAwB,QAAQ,UAAS;AAClD,OAAOC,iBAAiB,gBAAe;AAIvC,SAASC,UAAU,QAAQ,0BAAyB;AACpD,SAASC,SAAS,QAAQ,uBAAsB;AAChD,SAASC,cAAc,QAAQ,gCAA+B;AAE9D,OAAO,eAAeC,oBAEpB,EACEC,EAAE,EACFC,MAAM,EACNC,MAAM,EACNC,GAAG,EACHC,SAAS,EACTC,MAAM,EACNC,WAAW,EACXC,OAAOC,QAAQ,EACY;IAE7B,MAAMC,KAAK,MAAMX,eAAe,IAAI,EAAEK;IACtC,MAAMO,eAAsC,IAAI,CAACC,OAAO,CAACC,OAAO,CAACC,MAAM,CAACC,IAAI,CAC1E,CAAC,EAAEC,IAAI,EAAE,GAAKA,SAASd;IAEzB,MAAMe,aAAaR,YAAY;QAAER,IAAI;YAAEiB,QAAQjB;QAAG;IAAE;IAEpD,MAAMkB,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CACrC,CAAC,CAAC,EAAEzB,YAAYe,aAAaK,IAAI,IAAI,IAAI,CAACM,cAAc,EAAE;IAG5D,MAAMC,SAAS5B,yBAAyB,IAAI,CAACiB,OAAO,CAACE,MAAM,EAAEH,cAAc;IAE3E,MAAM,EAAEH,KAAK,EAAE,GAAGX,WAAW;QAC3B2B,SAAS,IAAI;QACbD;QACApB;QACAgB;QACAX,OAAOS;IACT;IAEA,MAAMQ,SAAS,MAAM3B,UAA8B;QACjDG;QACAuB,SAAS,IAAI;QACbE,MAAMnB;QACNG;QACAa;QACAI,cAActB,cAAc;QAC5BuB,WAAW;QACXxB;QACAE;QACAa;QACAX;IACF;IAEA,IAAIH,cAAc,OAAO;QACvB,OAAO;IACT;IAEA,OAAOoB;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"updateJobs.d.ts","sourceRoot":"","sources":["../src/updateJobs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAS,MAAM,SAAS,CAAA;AAUhD,eAAO,MAAM,UAAU,EAAE,UA2DxB,CAAA"}
1
+ {"version":3,"file":"updateJobs.d.ts","sourceRoot":"","sources":["../src/updateJobs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAS,MAAM,SAAS,CAAA;AAWhD,eAAO,MAAM,UAAU,EAAE,UAkFxB,CAAA"}
@@ -1,6 +1,7 @@
1
1
  import toSnakeCase from 'to-snake-case';
2
2
  import { findMany } from './find/findMany.js';
3
3
  import { upsertRow } from './upsertRow/index.js';
4
+ import { shouldUseOptimizedUpsertRow } from './upsertRow/shouldUseOptimizedUpsertRow.js';
4
5
  import { getTransaction } from './utilities/getTransaction.js';
5
6
  export const updateJobs = async function updateMany({ id, data, limit: limitArg, req, returning, sort: sortArg, where: whereArg }) {
6
7
  if (!data?.log?.length) {
@@ -16,6 +17,26 @@ export const updateJobs = async function updateMany({ id, data, limit: limitArg,
16
17
  const collection = this.payload.collections['payload-jobs'].config;
17
18
  const tableName = this.tableNameMap.get(toSnakeCase(collection.slug));
18
19
  const sort = sortArg !== undefined && sortArg !== null ? sortArg : collection.defaultSort;
20
+ const useOptimizedUpsertRow = shouldUseOptimizedUpsertRow({
21
+ data,
22
+ fields: collection.flattenedFields
23
+ });
24
+ if (useOptimizedUpsertRow && id) {
25
+ const result = await upsertRow({
26
+ id,
27
+ adapter: this,
28
+ data,
29
+ db,
30
+ fields: collection.flattenedFields,
31
+ ignoreResult: returning === false,
32
+ operation: 'update',
33
+ req,
34
+ tableName
35
+ });
36
+ return returning === false ? null : [
37
+ result
38
+ ];
39
+ }
19
40
  const jobs = await findMany({
20
41
  adapter: this,
21
42
  collectionSlug: 'payload-jobs',
@@ -33,7 +54,7 @@ export const updateJobs = async function updateMany({ id, data, limit: limitArg,
33
54
  const results = [];
34
55
  // TODO: We need to batch this to reduce the amount of db calls. This can get very slow if we are updating a lot of rows.
35
56
  for (const job of jobs.docs){
36
- const updateData = {
57
+ const updateData = useOptimizedUpsertRow ? data : {
37
58
  ...job,
38
59
  ...data
39
60
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/updateJobs.ts"],"sourcesContent":["import type { UpdateJobs, Where } from 'payload'\n\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { findMany } from './find/findMany.js'\nimport { upsertRow } from './upsertRow/index.js'\nimport { getTransaction } from './utilities/getTransaction.js'\n\nexport const updateJobs: UpdateJobs = async function updateMany(\n this: DrizzleAdapter,\n { id, data, limit: limitArg, req, returning, sort: sortArg, where: whereArg },\n) {\n if (!(data?.log as object[])?.length) {\n delete data.log\n }\n const whereToUse: Where = id ? { id: { equals: id } } : whereArg\n const limit = id ? 1 : limitArg\n\n const db = await getTransaction(this, req)\n const collection = this.payload.collections['payload-jobs'].config\n const tableName = this.tableNameMap.get(toSnakeCase(collection.slug))\n const sort = sortArg !== undefined && sortArg !== null ? sortArg : collection.defaultSort\n\n const jobs = await findMany({\n adapter: this,\n collectionSlug: 'payload-jobs',\n fields: collection.flattenedFields,\n limit: id ? 1 : limit,\n pagination: false,\n req,\n sort,\n tableName,\n where: whereToUse,\n })\n if (!jobs.docs.length) {\n return []\n }\n\n const results = []\n\n // TODO: We need to batch this to reduce the amount of db calls. This can get very slow if we are updating a lot of rows.\n for (const job of jobs.docs) {\n const updateData = {\n ...job,\n ...data,\n }\n\n const result = await upsertRow({\n id: job.id,\n adapter: this,\n data: updateData,\n db,\n fields: collection.flattenedFields,\n ignoreResult: returning === false,\n operation: 'update',\n req,\n tableName,\n })\n\n results.push(result)\n }\n\n if (returning === false) {\n return null\n }\n\n return results\n}\n"],"names":["toSnakeCase","findMany","upsertRow","getTransaction","updateJobs","updateMany","id","data","limit","limitArg","req","returning","sort","sortArg","where","whereArg","log","length","whereToUse","equals","db","collection","payload","collections","config","tableName","tableNameMap","get","slug","undefined","defaultSort","jobs","adapter","collectionSlug","fields","flattenedFields","pagination","docs","results","job","updateData","result","ignoreResult","operation","push"],"mappings":"AAEA,OAAOA,iBAAiB,gBAAe;AAIvC,SAASC,QAAQ,QAAQ,qBAAoB;AAC7C,SAASC,SAAS,QAAQ,uBAAsB;AAChD,SAASC,cAAc,QAAQ,gCAA+B;AAE9D,OAAO,MAAMC,aAAyB,eAAeC,WAEnD,EAAEC,EAAE,EAAEC,IAAI,EAAEC,OAAOC,QAAQ,EAAEC,GAAG,EAAEC,SAAS,EAAEC,MAAMC,OAAO,EAAEC,OAAOC,QAAQ,EAAE;IAE7E,IAAI,CAAER,MAAMS,KAAkBC,QAAQ;QACpC,OAAOV,KAAKS,GAAG;IACjB;IACA,MAAME,aAAoBZ,KAAK;QAAEA,IAAI;YAAEa,QAAQb;QAAG;IAAE,IAAIS;IACxD,MAAMP,QAAQF,KAAK,IAAIG;IAEvB,MAAMW,KAAK,MAAMjB,eAAe,IAAI,EAAEO;IACtC,MAAMW,aAAa,IAAI,CAACC,OAAO,CAACC,WAAW,CAAC,eAAe,CAACC,MAAM;IAClE,MAAMC,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAAC3B,YAAYqB,WAAWO,IAAI;IACnE,MAAMhB,OAAOC,YAAYgB,aAAahB,YAAY,OAAOA,UAAUQ,WAAWS,WAAW;IAEzF,MAAMC,OAAO,MAAM9B,SAAS;QAC1B+B,SAAS,IAAI;QACbC,gBAAgB;QAChBC,QAAQb,WAAWc,eAAe;QAClC3B,OAAOF,KAAK,IAAIE;QAChB4B,YAAY;QACZ1B;QACAE;QACAa;QACAX,OAAOI;IACT;IACA,IAAI,CAACa,KAAKM,IAAI,CAACpB,MAAM,EAAE;QACrB,OAAO,EAAE;IACX;IAEA,MAAMqB,UAAU,EAAE;IAElB,yHAAyH;IACzH,KAAK,MAAMC,OAAOR,KAAKM,IAAI,CAAE;QAC3B,MAAMG,aAAa;YACjB,GAAGD,GAAG;YACN,GAAGhC,IAAI;QACT;QAEA,MAAMkC,SAAS,MAAMvC,UAAU;YAC7BI,IAAIiC,IAAIjC,EAAE;YACV0B,SAAS,IAAI;YACbzB,MAAMiC;YACNpB;YACAc,QAAQb,WAAWc,eAAe;YAClCO,cAAc/B,cAAc;YAC5BgC,WAAW;YACXjC;YACAe;QACF;QAEAa,QAAQM,IAAI,CAACH;IACf;IAEA,IAAI9B,cAAc,OAAO;QACvB,OAAO;IACT;IAEA,OAAO2B;AACT,EAAC"}
1
+ {"version":3,"sources":["../src/updateJobs.ts"],"sourcesContent":["import type { UpdateJobs, Where } from 'payload'\n\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { findMany } from './find/findMany.js'\nimport { upsertRow } from './upsertRow/index.js'\nimport { shouldUseOptimizedUpsertRow } from './upsertRow/shouldUseOptimizedUpsertRow.js'\nimport { getTransaction } from './utilities/getTransaction.js'\n\nexport const updateJobs: UpdateJobs = async function updateMany(\n this: DrizzleAdapter,\n { id, data, limit: limitArg, req, returning, sort: sortArg, where: whereArg },\n) {\n if (!(data?.log as object[])?.length) {\n delete data.log\n }\n const whereToUse: Where = id ? { id: { equals: id } } : whereArg\n const limit = id ? 1 : limitArg\n\n const db = await getTransaction(this, req)\n const collection = this.payload.collections['payload-jobs'].config\n const tableName = this.tableNameMap.get(toSnakeCase(collection.slug))\n const sort = sortArg !== undefined && sortArg !== null ? sortArg : collection.defaultSort\n\n const useOptimizedUpsertRow = shouldUseOptimizedUpsertRow({\n data,\n fields: collection.flattenedFields,\n })\n\n if (useOptimizedUpsertRow && id) {\n const result = await upsertRow({\n id,\n adapter: this,\n data,\n db,\n fields: collection.flattenedFields,\n ignoreResult: returning === false,\n operation: 'update',\n req,\n tableName,\n })\n\n return returning === false ? null : [result]\n }\n\n const jobs = await findMany({\n adapter: this,\n collectionSlug: 'payload-jobs',\n fields: collection.flattenedFields,\n limit: id ? 1 : limit,\n pagination: false,\n req,\n sort,\n tableName,\n where: whereToUse,\n })\n if (!jobs.docs.length) {\n return []\n }\n\n const results = []\n\n // TODO: We need to batch this to reduce the amount of db calls. This can get very slow if we are updating a lot of rows.\n for (const job of jobs.docs) {\n const updateData = useOptimizedUpsertRow\n ? data\n : {\n ...job,\n ...data,\n }\n\n const result = await upsertRow({\n id: job.id,\n adapter: this,\n data: updateData,\n db,\n fields: collection.flattenedFields,\n ignoreResult: returning === false,\n operation: 'update',\n req,\n tableName,\n })\n\n results.push(result)\n }\n\n if (returning === false) {\n return null\n }\n\n return results\n}\n"],"names":["toSnakeCase","findMany","upsertRow","shouldUseOptimizedUpsertRow","getTransaction","updateJobs","updateMany","id","data","limit","limitArg","req","returning","sort","sortArg","where","whereArg","log","length","whereToUse","equals","db","collection","payload","collections","config","tableName","tableNameMap","get","slug","undefined","defaultSort","useOptimizedUpsertRow","fields","flattenedFields","result","adapter","ignoreResult","operation","jobs","collectionSlug","pagination","docs","results","job","updateData","push"],"mappings":"AAEA,OAAOA,iBAAiB,gBAAe;AAIvC,SAASC,QAAQ,QAAQ,qBAAoB;AAC7C,SAASC,SAAS,QAAQ,uBAAsB;AAChD,SAASC,2BAA2B,QAAQ,6CAA4C;AACxF,SAASC,cAAc,QAAQ,gCAA+B;AAE9D,OAAO,MAAMC,aAAyB,eAAeC,WAEnD,EAAEC,EAAE,EAAEC,IAAI,EAAEC,OAAOC,QAAQ,EAAEC,GAAG,EAAEC,SAAS,EAAEC,MAAMC,OAAO,EAAEC,OAAOC,QAAQ,EAAE;IAE7E,IAAI,CAAER,MAAMS,KAAkBC,QAAQ;QACpC,OAAOV,KAAKS,GAAG;IACjB;IACA,MAAME,aAAoBZ,KAAK;QAAEA,IAAI;YAAEa,QAAQb;QAAG;IAAE,IAAIS;IACxD,MAAMP,QAAQF,KAAK,IAAIG;IAEvB,MAAMW,KAAK,MAAMjB,eAAe,IAAI,EAAEO;IACtC,MAAMW,aAAa,IAAI,CAACC,OAAO,CAACC,WAAW,CAAC,eAAe,CAACC,MAAM;IAClE,MAAMC,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAAC5B,YAAYsB,WAAWO,IAAI;IACnE,MAAMhB,OAAOC,YAAYgB,aAAahB,YAAY,OAAOA,UAAUQ,WAAWS,WAAW;IAEzF,MAAMC,wBAAwB7B,4BAA4B;QACxDK;QACAyB,QAAQX,WAAWY,eAAe;IACpC;IAEA,IAAIF,yBAAyBzB,IAAI;QAC/B,MAAM4B,SAAS,MAAMjC,UAAU;YAC7BK;YACA6B,SAAS,IAAI;YACb5B;YACAa;YACAY,QAAQX,WAAWY,eAAe;YAClCG,cAAczB,cAAc;YAC5B0B,WAAW;YACX3B;YACAe;QACF;QAEA,OAAOd,cAAc,QAAQ,OAAO;YAACuB;SAAO;IAC9C;IAEA,MAAMI,OAAO,MAAMtC,SAAS;QAC1BmC,SAAS,IAAI;QACbI,gBAAgB;QAChBP,QAAQX,WAAWY,eAAe;QAClCzB,OAAOF,KAAK,IAAIE;QAChBgC,YAAY;QACZ9B;QACAE;QACAa;QACAX,OAAOI;IACT;IACA,IAAI,CAACoB,KAAKG,IAAI,CAACxB,MAAM,EAAE;QACrB,OAAO,EAAE;IACX;IAEA,MAAMyB,UAAU,EAAE;IAElB,yHAAyH;IACzH,KAAK,MAAMC,OAAOL,KAAKG,IAAI,CAAE;QAC3B,MAAMG,aAAab,wBACfxB,OACA;YACE,GAAGoC,GAAG;YACN,GAAGpC,IAAI;QACT;QAEJ,MAAM2B,SAAS,MAAMjC,UAAU;YAC7BK,IAAIqC,IAAIrC,EAAE;YACV6B,SAAS,IAAI;YACb5B,MAAMqC;YACNxB;YACAY,QAAQX,WAAWY,eAAe;YAClCG,cAAczB,cAAc;YAC5B0B,WAAW;YACX3B;YACAe;QACF;QAEAiB,QAAQG,IAAI,CAACX;IACf;IAEA,IAAIvB,cAAc,OAAO;QACvB,OAAO;IACT;IAEA,OAAO+B;AACT,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"updateVersion.d.ts","sourceRoot":"","sources":["../src/updateVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,UAAU,EACV,eAAe,EACf,iBAAiB,EAClB,MAAM,SAAS,CAAA;AAKhB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAMhD,wBAAsB,aAAa,CAAC,CAAC,SAAS,UAAU,EACtD,IAAI,EAAE,cAAc,EACpB,EACE,EAAE,EACF,UAAU,EACV,MAAM,EACN,GAAG,EACH,SAAS,EACT,MAAM,EACN,WAAW,EACX,KAAK,EAAE,QAAQ,GAChB,EAAE,iBAAiB,CAAC,CAAC,CAAC,GACtB,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAsC7B"}
1
+ {"version":3,"file":"updateVersion.d.ts","sourceRoot":"","sources":["../src/updateVersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,UAAU,EACV,eAAe,EACf,iBAAiB,EAClB,MAAM,SAAS,CAAA;AAKhB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAMhD,wBAAsB,aAAa,CAAC,CAAC,SAAS,UAAU,EACtD,IAAI,EAAE,cAAc,EACpB,EACE,EAAE,EACF,UAAU,EACV,MAAM,EACN,GAAG,EACH,SAAS,EACT,MAAM,EACN,WAAW,EACX,KAAK,EAAE,QAAQ,GAChB,EAAE,iBAAiB,CAAC,CAAC,CAAC,+BAuCxB"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/updateVersion.ts"],"sourcesContent":["import type {\n SanitizedCollectionConfig,\n TypeWithID,\n TypeWithVersion,\n UpdateVersionArgs,\n} from 'payload'\n\nimport { buildVersionCollectionFields } from 'payload'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { buildQuery } from './queries/buildQuery.js'\nimport { upsertRow } from './upsertRow/index.js'\nimport { getTransaction } from './utilities/getTransaction.js'\n\nexport async function updateVersion<T extends TypeWithID>(\n this: DrizzleAdapter,\n {\n id,\n collection,\n locale,\n req,\n returning,\n select,\n versionData,\n where: whereArg,\n }: UpdateVersionArgs<T>,\n): Promise<TypeWithVersion<T>> {\n const db = await getTransaction(this, req)\n const collectionConfig: SanitizedCollectionConfig = this.payload.collections[collection].config\n const whereToUse = whereArg || { id: { equals: id } }\n const tableName = this.tableNameMap.get(\n `_${toSnakeCase(collectionConfig.slug)}${this.versionsSuffix}`,\n )\n\n const fields = buildVersionCollectionFields(this.payload.config, collectionConfig, true)\n\n const { where } = buildQuery({\n adapter: this,\n fields,\n locale,\n tableName,\n where: whereToUse,\n })\n\n const result = await upsertRow<TypeWithVersion<T>>({\n id,\n adapter: this,\n data: versionData,\n db,\n fields,\n ignoreResult: returning === false,\n joinQuery: false,\n operation: 'update',\n req,\n select,\n tableName,\n where,\n })\n\n if (returning === false) {\n return null\n }\n\n return result\n}\n"],"names":["buildVersionCollectionFields","toSnakeCase","buildQuery","upsertRow","getTransaction","updateVersion","id","collection","locale","req","returning","select","versionData","where","whereArg","db","collectionConfig","payload","collections","config","whereToUse","equals","tableName","tableNameMap","get","slug","versionsSuffix","fields","adapter","result","data","ignoreResult","joinQuery","operation"],"mappings":"AAOA,SAASA,4BAA4B,QAAQ,UAAS;AACtD,OAAOC,iBAAiB,gBAAe;AAIvC,SAASC,UAAU,QAAQ,0BAAyB;AACpD,SAASC,SAAS,QAAQ,uBAAsB;AAChD,SAASC,cAAc,QAAQ,gCAA+B;AAE9D,OAAO,eAAeC,cAEpB,EACEC,EAAE,EACFC,UAAU,EACVC,MAAM,EACNC,GAAG,EACHC,SAAS,EACTC,MAAM,EACNC,WAAW,EACXC,OAAOC,QAAQ,EACM;IAEvB,MAAMC,KAAK,MAAMX,eAAe,IAAI,EAAEK;IACtC,MAAMO,mBAA8C,IAAI,CAACC,OAAO,CAACC,WAAW,CAACX,WAAW,CAACY,MAAM;IAC/F,MAAMC,aAAaN,YAAY;QAAER,IAAI;YAAEe,QAAQf;QAAG;IAAE;IACpD,MAAMgB,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CACrC,CAAC,CAAC,EAAEvB,YAAYe,iBAAiBS,IAAI,IAAI,IAAI,CAACC,cAAc,EAAE;IAGhE,MAAMC,SAAS3B,6BAA6B,IAAI,CAACiB,OAAO,CAACE,MAAM,EAAEH,kBAAkB;IAEnF,MAAM,EAAEH,KAAK,EAAE,GAAGX,WAAW;QAC3B0B,SAAS,IAAI;QACbD;QACAnB;QACAc;QACAT,OAAOO;IACT;IAEA,MAAMS,SAAS,MAAM1B,UAA8B;QACjDG;QACAsB,SAAS,IAAI;QACbE,MAAMlB;QACNG;QACAY;QACAI,cAAcrB,cAAc;QAC5BsB,WAAW;QACXC,WAAW;QACXxB;QACAE;QACAW;QACAT;IACF;IAEA,IAAIH,cAAc,OAAO;QACvB,OAAO;IACT;IAEA,OAAOmB;AACT"}
1
+ {"version":3,"sources":["../src/updateVersion.ts"],"sourcesContent":["import type {\n SanitizedCollectionConfig,\n TypeWithID,\n TypeWithVersion,\n UpdateVersionArgs,\n} from 'payload'\n\nimport { buildVersionCollectionFields } from 'payload'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { buildQuery } from './queries/buildQuery.js'\nimport { upsertRow } from './upsertRow/index.js'\nimport { getTransaction } from './utilities/getTransaction.js'\n\nexport async function updateVersion<T extends TypeWithID>(\n this: DrizzleAdapter,\n {\n id,\n collection,\n locale,\n req,\n returning,\n select,\n versionData,\n where: whereArg,\n }: UpdateVersionArgs<T>,\n) {\n const db = await getTransaction(this, req)\n const collectionConfig: SanitizedCollectionConfig = this.payload.collections[collection].config\n const whereToUse = whereArg || { id: { equals: id } }\n const tableName = this.tableNameMap.get(\n `_${toSnakeCase(collectionConfig.slug)}${this.versionsSuffix}`,\n )\n\n const fields = buildVersionCollectionFields(this.payload.config, collectionConfig, true)\n\n const { where } = buildQuery({\n adapter: this,\n fields,\n locale,\n tableName,\n where: whereToUse,\n })\n\n const result = await upsertRow<TypeWithVersion<T>>({\n id,\n adapter: this,\n data: versionData,\n db,\n fields,\n ignoreResult: returning === false,\n joinQuery: false,\n operation: 'update',\n req,\n select,\n tableName,\n where,\n })\n\n if (returning === false) {\n return null\n }\n\n return result\n}\n"],"names":["buildVersionCollectionFields","toSnakeCase","buildQuery","upsertRow","getTransaction","updateVersion","id","collection","locale","req","returning","select","versionData","where","whereArg","db","collectionConfig","payload","collections","config","whereToUse","equals","tableName","tableNameMap","get","slug","versionsSuffix","fields","adapter","result","data","ignoreResult","joinQuery","operation"],"mappings":"AAOA,SAASA,4BAA4B,QAAQ,UAAS;AACtD,OAAOC,iBAAiB,gBAAe;AAIvC,SAASC,UAAU,QAAQ,0BAAyB;AACpD,SAASC,SAAS,QAAQ,uBAAsB;AAChD,SAASC,cAAc,QAAQ,gCAA+B;AAE9D,OAAO,eAAeC,cAEpB,EACEC,EAAE,EACFC,UAAU,EACVC,MAAM,EACNC,GAAG,EACHC,SAAS,EACTC,MAAM,EACNC,WAAW,EACXC,OAAOC,QAAQ,EACM;IAEvB,MAAMC,KAAK,MAAMX,eAAe,IAAI,EAAEK;IACtC,MAAMO,mBAA8C,IAAI,CAACC,OAAO,CAACC,WAAW,CAACX,WAAW,CAACY,MAAM;IAC/F,MAAMC,aAAaN,YAAY;QAAER,IAAI;YAAEe,QAAQf;QAAG;IAAE;IACpD,MAAMgB,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CACrC,CAAC,CAAC,EAAEvB,YAAYe,iBAAiBS,IAAI,IAAI,IAAI,CAACC,cAAc,EAAE;IAGhE,MAAMC,SAAS3B,6BAA6B,IAAI,CAACiB,OAAO,CAACE,MAAM,EAAEH,kBAAkB;IAEnF,MAAM,EAAEH,KAAK,EAAE,GAAGX,WAAW;QAC3B0B,SAAS,IAAI;QACbD;QACAnB;QACAc;QACAT,OAAOO;IACT;IAEA,MAAMS,SAAS,MAAM1B,UAA8B;QACjDG;QACAsB,SAAS,IAAI;QACbE,MAAMlB;QACNG;QACAY;QACAI,cAAcrB,cAAc;QAC5BsB,WAAW;QACXC,WAAW;QACXxB;QACAE;QACAW;QACAT;IACF;IAEA,IAAIH,cAAc,OAAO;QACvB,OAAO;IACT;IAEA,OAAOmB;AACT"}
@@ -1,11 +1,10 @@
1
1
  import type { CreateMigration } from 'payload';
2
- export declare const buildCreateMigration: ({ executeMethod, filename, sanitizeStatements, sqlOnly, }: {
2
+ export declare const buildCreateMigration: ({ executeMethod, filename, sanitizeStatements, }: {
3
3
  executeMethod: string;
4
4
  filename: string;
5
5
  sanitizeStatements: (args: {
6
6
  sqlExecute: string;
7
7
  statements: string[];
8
8
  }) => string;
9
- sqlOnly?: boolean;
10
9
  }) => CreateMigration;
11
10
  //# sourceMappingURL=buildCreateMigration.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"buildCreateMigration.d.ts","sourceRoot":"","sources":["../../src/utilities/buildCreateMigration.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAW9C,eAAO,MAAM,oBAAoB,8DAK9B;IACD,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,kBAAkB,EAAE,CAAC,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,KAAK,MAAM,CAAA;IAClF,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,KAAG,eAsHH,CAAA"}
1
+ {"version":3,"file":"buildCreateMigration.d.ts","sourceRoot":"","sources":["../../src/utilities/buildCreateMigration.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAW9C,eAAO,MAAM,oBAAoB,qDAI9B;IACD,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,kBAAkB,EAAE,CAAC,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,KAAK,MAAM,CAAA;CACnF,KAAG,eAiHH,CAAA"}
@@ -3,7 +3,7 @@ import path from 'path';
3
3
  import { getPredefinedMigration, writeMigrationIndex } from 'payload';
4
4
  import prompts from 'prompts';
5
5
  import { getMigrationTemplate } from './getMigrationTemplate.js';
6
- export const buildCreateMigration = ({ executeMethod, filename, sanitizeStatements, sqlOnly })=>{
6
+ export const buildCreateMigration = ({ executeMethod, filename, sanitizeStatements })=>{
7
7
  const dirname = path.dirname(filename);
8
8
  return async function createMigration({ file, forceAcceptWarning, migrationName, payload, skipEmpty }) {
9
9
  const dir = payload.db.migrationDir;
@@ -44,7 +44,7 @@ export const buildCreateMigration = ({ executeMethod, filename, sanitizeStatemen
44
44
  }
45
45
  }
46
46
  const sqlStatementsUp = await generateMigration(drizzleJsonBefore, drizzleJsonAfter);
47
- const sqlStatementsDown = sqlOnly ? [] : await generateMigration(drizzleJsonAfter, drizzleJsonBefore);
47
+ const sqlStatementsDown = await generateMigration(drizzleJsonAfter, drizzleJsonBefore);
48
48
  const sqlExecute = `await db.${executeMethod}(` + 'sql`';
49
49
  if (sqlStatementsUp?.length) {
50
50
  upSQL = sanitizeStatements({
@@ -79,20 +79,18 @@ export const buildCreateMigration = ({ executeMethod, filename, sanitizeStatemen
79
79
  // write schema
80
80
  fs.writeFileSync(`${filePath}.json`, JSON.stringify(drizzleJsonAfter, null, 2));
81
81
  }
82
- const data = sqlOnly ? upSQL : getMigrationTemplate({
82
+ // write migration
83
+ fs.writeFileSync(`${filePath}.ts`, getMigrationTemplate({
83
84
  downSQL: downSQL || ` // Migration code`,
84
85
  imports,
85
86
  packageName: payload.db.packageName,
86
87
  upSQL: upSQL || ` // Migration code`
87
- });
88
- const fullPath = sqlOnly ? `${filePath}.sql` : `${filePath}.ts`;
89
- // write migration
90
- fs.writeFileSync(fullPath, data);
88
+ }));
91
89
  writeMigrationIndex({
92
90
  migrationsDir: payload.db.migrationDir
93
91
  });
94
92
  payload.logger.info({
95
- msg: `Migration created at ${fullPath}`
93
+ msg: `Migration created at ${filePath}.ts`
96
94
  });
97
95
  };
98
96
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/buildCreateMigration.ts"],"sourcesContent":["import type { DrizzleSnapshotJSON } from 'drizzle-kit/api'\nimport type { CreateMigration } from 'payload'\n\nimport fs from 'fs'\nimport path from 'path'\nimport { getPredefinedMigration, writeMigrationIndex } from 'payload'\nimport prompts from 'prompts'\n\nimport type { DrizzleAdapter } from '../types.js'\n\nimport { getMigrationTemplate } from './getMigrationTemplate.js'\n\nexport const buildCreateMigration = ({\n executeMethod,\n filename,\n sanitizeStatements,\n sqlOnly,\n}: {\n executeMethod: string\n filename: string\n sanitizeStatements: (args: { sqlExecute: string; statements: string[] }) => string\n sqlOnly?: boolean\n}): CreateMigration => {\n const dirname = path.dirname(filename)\n return async function createMigration(\n this: DrizzleAdapter,\n { file, forceAcceptWarning, migrationName, payload, skipEmpty },\n ) {\n const dir = payload.db.migrationDir\n if (!fs.existsSync(dir)) {\n fs.mkdirSync(dir)\n }\n\n const { generateDrizzleJson, generateMigration, upSnapshot } = this.requireDrizzleKit()\n\n const drizzleJsonAfter = await generateDrizzleJson(this.schema)\n\n const [yyymmdd, hhmmss] = new Date().toISOString().split('T')\n const formattedDate = yyymmdd.replace(/\\D/g, '')\n const formattedTime = hhmmss.split('.')[0].replace(/\\D/g, '')\n let imports: string = ''\n let downSQL: string\n let upSQL: string\n ;({ downSQL, imports, upSQL } = await getPredefinedMigration({\n dirname,\n file,\n migrationName,\n payload,\n }))\n\n const timestamp = `${formattedDate}_${formattedTime}`\n\n const name = migrationName || file?.split('/').slice(2).join('/')\n const fileName = `${timestamp}${name ? `_${name.replace(/\\W/g, '_')}` : ''}`\n\n const filePath = `${dir}/${fileName}`\n\n let drizzleJsonBefore = this.defaultDrizzleSnapshot as DrizzleSnapshotJSON\n\n if (this.schemaName) {\n drizzleJsonBefore.schemas = {\n [this.schemaName]: this.schemaName,\n }\n }\n\n if (!upSQL) {\n // Get latest migration snapshot\n const latestSnapshot = fs\n .readdirSync(dir)\n .filter((file) => file.endsWith('.json'))\n .sort()\n .reverse()?.[0]\n\n if (latestSnapshot) {\n drizzleJsonBefore = JSON.parse(fs.readFileSync(`${dir}/${latestSnapshot}`, 'utf8'))\n\n if (upSnapshot && drizzleJsonBefore.version < drizzleJsonAfter.version) {\n drizzleJsonBefore = upSnapshot(drizzleJsonBefore)\n }\n }\n\n const sqlStatementsUp = await generateMigration(drizzleJsonBefore, drizzleJsonAfter)\n const sqlStatementsDown = sqlOnly\n ? []\n : await generateMigration(drizzleJsonAfter, drizzleJsonBefore)\n const sqlExecute = `await db.${executeMethod}(` + 'sql`'\n\n if (sqlStatementsUp?.length) {\n upSQL = sanitizeStatements({ sqlExecute, statements: sqlStatementsUp })\n }\n if (sqlStatementsDown?.length) {\n downSQL = sanitizeStatements({ sqlExecute, statements: sqlStatementsDown })\n }\n\n if (!upSQL?.length && !downSQL?.length && !forceAcceptWarning) {\n if (skipEmpty) {\n process.exit(0)\n }\n\n const { confirm: shouldCreateBlankMigration } = await prompts(\n {\n name: 'confirm',\n type: 'confirm',\n initial: false,\n message: 'No schema changes detected. Would you like to create a blank migration file?',\n },\n {\n onCancel: () => {\n process.exit(0)\n },\n },\n )\n\n if (!shouldCreateBlankMigration) {\n process.exit(0)\n }\n }\n\n // write schema\n fs.writeFileSync(`${filePath}.json`, JSON.stringify(drizzleJsonAfter, null, 2))\n }\n\n const data = sqlOnly\n ? upSQL\n : getMigrationTemplate({\n downSQL: downSQL || ` // Migration code`,\n imports,\n packageName: payload.db.packageName,\n upSQL: upSQL || ` // Migration code`,\n })\n\n const fullPath = sqlOnly ? `${filePath}.sql` : `${filePath}.ts`\n\n // write migration\n fs.writeFileSync(fullPath, data)\n\n writeMigrationIndex({ migrationsDir: payload.db.migrationDir })\n\n payload.logger.info({ msg: `Migration created at ${fullPath}` })\n }\n}\n"],"names":["fs","path","getPredefinedMigration","writeMigrationIndex","prompts","getMigrationTemplate","buildCreateMigration","executeMethod","filename","sanitizeStatements","sqlOnly","dirname","createMigration","file","forceAcceptWarning","migrationName","payload","skipEmpty","dir","db","migrationDir","existsSync","mkdirSync","generateDrizzleJson","generateMigration","upSnapshot","requireDrizzleKit","drizzleJsonAfter","schema","yyymmdd","hhmmss","Date","toISOString","split","formattedDate","replace","formattedTime","imports","downSQL","upSQL","timestamp","name","slice","join","fileName","filePath","drizzleJsonBefore","defaultDrizzleSnapshot","schemaName","schemas","latestSnapshot","readdirSync","filter","endsWith","sort","reverse","JSON","parse","readFileSync","version","sqlStatementsUp","sqlStatementsDown","sqlExecute","length","statements","process","exit","confirm","shouldCreateBlankMigration","type","initial","message","onCancel","writeFileSync","stringify","data","packageName","fullPath","migrationsDir","logger","info","msg"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/utilities/buildCreateMigration.ts"],"sourcesContent":["import type { DrizzleSnapshotJSON } from 'drizzle-kit/api'\nimport type { CreateMigration } from 'payload'\n\nimport fs from 'fs'\nimport path from 'path'\nimport { getPredefinedMigration, writeMigrationIndex } from 'payload'\nimport prompts from 'prompts'\n\nimport type { DrizzleAdapter } from '../types.js'\n\nimport { getMigrationTemplate } from './getMigrationTemplate.js'\n\nexport const buildCreateMigration = ({\n executeMethod,\n filename,\n sanitizeStatements,\n}: {\n executeMethod: string\n filename: string\n sanitizeStatements: (args: { sqlExecute: string; statements: string[] }) => string\n}): CreateMigration => {\n const dirname = path.dirname(filename)\n return async function createMigration(\n this: DrizzleAdapter,\n { file, forceAcceptWarning, migrationName, payload, skipEmpty },\n ) {\n const dir = payload.db.migrationDir\n if (!fs.existsSync(dir)) {\n fs.mkdirSync(dir)\n }\n\n const { generateDrizzleJson, generateMigration, upSnapshot } = this.requireDrizzleKit()\n\n const drizzleJsonAfter = await generateDrizzleJson(this.schema)\n\n const [yyymmdd, hhmmss] = new Date().toISOString().split('T')\n const formattedDate = yyymmdd.replace(/\\D/g, '')\n const formattedTime = hhmmss.split('.')[0].replace(/\\D/g, '')\n let imports: string = ''\n let downSQL: string\n let upSQL: string\n ;({ downSQL, imports, upSQL } = await getPredefinedMigration({\n dirname,\n file,\n migrationName,\n payload,\n }))\n\n const timestamp = `${formattedDate}_${formattedTime}`\n\n const name = migrationName || file?.split('/').slice(2).join('/')\n const fileName = `${timestamp}${name ? `_${name.replace(/\\W/g, '_')}` : ''}`\n\n const filePath = `${dir}/${fileName}`\n\n let drizzleJsonBefore = this.defaultDrizzleSnapshot as DrizzleSnapshotJSON\n\n if (this.schemaName) {\n drizzleJsonBefore.schemas = {\n [this.schemaName]: this.schemaName,\n }\n }\n\n if (!upSQL) {\n // Get latest migration snapshot\n const latestSnapshot = fs\n .readdirSync(dir)\n .filter((file) => file.endsWith('.json'))\n .sort()\n .reverse()?.[0]\n\n if (latestSnapshot) {\n drizzleJsonBefore = JSON.parse(fs.readFileSync(`${dir}/${latestSnapshot}`, 'utf8'))\n\n if (upSnapshot && drizzleJsonBefore.version < drizzleJsonAfter.version) {\n drizzleJsonBefore = upSnapshot(drizzleJsonBefore)\n }\n }\n\n const sqlStatementsUp = await generateMigration(drizzleJsonBefore, drizzleJsonAfter)\n const sqlStatementsDown = await generateMigration(drizzleJsonAfter, drizzleJsonBefore)\n const sqlExecute = `await db.${executeMethod}(` + 'sql`'\n\n if (sqlStatementsUp?.length) {\n upSQL = sanitizeStatements({ sqlExecute, statements: sqlStatementsUp })\n }\n if (sqlStatementsDown?.length) {\n downSQL = sanitizeStatements({ sqlExecute, statements: sqlStatementsDown })\n }\n\n if (!upSQL?.length && !downSQL?.length && !forceAcceptWarning) {\n if (skipEmpty) {\n process.exit(0)\n }\n\n const { confirm: shouldCreateBlankMigration } = await prompts(\n {\n name: 'confirm',\n type: 'confirm',\n initial: false,\n message: 'No schema changes detected. Would you like to create a blank migration file?',\n },\n {\n onCancel: () => {\n process.exit(0)\n },\n },\n )\n\n if (!shouldCreateBlankMigration) {\n process.exit(0)\n }\n }\n\n // write schema\n fs.writeFileSync(`${filePath}.json`, JSON.stringify(drizzleJsonAfter, null, 2))\n }\n\n // write migration\n fs.writeFileSync(\n `${filePath}.ts`,\n getMigrationTemplate({\n downSQL: downSQL || ` // Migration code`,\n imports,\n packageName: payload.db.packageName,\n upSQL: upSQL || ` // Migration code`,\n }),\n )\n\n writeMigrationIndex({ migrationsDir: payload.db.migrationDir })\n\n payload.logger.info({ msg: `Migration created at ${filePath}.ts` })\n }\n}\n"],"names":["fs","path","getPredefinedMigration","writeMigrationIndex","prompts","getMigrationTemplate","buildCreateMigration","executeMethod","filename","sanitizeStatements","dirname","createMigration","file","forceAcceptWarning","migrationName","payload","skipEmpty","dir","db","migrationDir","existsSync","mkdirSync","generateDrizzleJson","generateMigration","upSnapshot","requireDrizzleKit","drizzleJsonAfter","schema","yyymmdd","hhmmss","Date","toISOString","split","formattedDate","replace","formattedTime","imports","downSQL","upSQL","timestamp","name","slice","join","fileName","filePath","drizzleJsonBefore","defaultDrizzleSnapshot","schemaName","schemas","latestSnapshot","readdirSync","filter","endsWith","sort","reverse","JSON","parse","readFileSync","version","sqlStatementsUp","sqlStatementsDown","sqlExecute","length","statements","process","exit","confirm","shouldCreateBlankMigration","type","initial","message","onCancel","writeFileSync","stringify","packageName","migrationsDir","logger","info","msg"],"mappings":"AAGA,OAAOA,QAAQ,KAAI;AACnB,OAAOC,UAAU,OAAM;AACvB,SAASC,sBAAsB,EAAEC,mBAAmB,QAAQ,UAAS;AACrE,OAAOC,aAAa,UAAS;AAI7B,SAASC,oBAAoB,QAAQ,4BAA2B;AAEhE,OAAO,MAAMC,uBAAuB,CAAC,EACnCC,aAAa,EACbC,QAAQ,EACRC,kBAAkB,EAKnB;IACC,MAAMC,UAAUT,KAAKS,OAAO,CAACF;IAC7B,OAAO,eAAeG,gBAEpB,EAAEC,IAAI,EAAEC,kBAAkB,EAAEC,aAAa,EAAEC,OAAO,EAAEC,SAAS,EAAE;QAE/D,MAAMC,MAAMF,QAAQG,EAAE,CAACC,YAAY;QACnC,IAAI,CAACnB,GAAGoB,UAAU,CAACH,MAAM;YACvBjB,GAAGqB,SAAS,CAACJ;QACf;QAEA,MAAM,EAAEK,mBAAmB,EAAEC,iBAAiB,EAAEC,UAAU,EAAE,GAAG,IAAI,CAACC,iBAAiB;QAErF,MAAMC,mBAAmB,MAAMJ,oBAAoB,IAAI,CAACK,MAAM;QAE9D,MAAM,CAACC,SAASC,OAAO,GAAG,IAAIC,OAAOC,WAAW,GAAGC,KAAK,CAAC;QACzD,MAAMC,gBAAgBL,QAAQM,OAAO,CAAC,OAAO;QAC7C,MAAMC,gBAAgBN,OAAOG,KAAK,CAAC,IAAI,CAAC,EAAE,CAACE,OAAO,CAAC,OAAO;QAC1D,IAAIE,UAAkB;QACtB,IAAIC;QACJ,IAAIC;QACF,CAAA,EAAED,OAAO,EAAED,OAAO,EAAEE,KAAK,EAAE,GAAG,MAAMpC,uBAAuB;YAC3DQ;YACAE;YACAE;YACAC;QACF,EAAC;QAED,MAAMwB,YAAY,GAAGN,cAAc,CAAC,EAAEE,eAAe;QAErD,MAAMK,OAAO1B,iBAAiBF,MAAMoB,MAAM,KAAKS,MAAM,GAAGC,KAAK;QAC7D,MAAMC,WAAW,GAAGJ,YAAYC,OAAO,CAAC,CAAC,EAAEA,KAAKN,OAAO,CAAC,OAAO,MAAM,GAAG,IAAI;QAE5E,MAAMU,WAAW,GAAG3B,IAAI,CAAC,EAAE0B,UAAU;QAErC,IAAIE,oBAAoB,IAAI,CAACC,sBAAsB;QAEnD,IAAI,IAAI,CAACC,UAAU,EAAE;YACnBF,kBAAkBG,OAAO,GAAG;gBAC1B,CAAC,IAAI,CAACD,UAAU,CAAC,EAAE,IAAI,CAACA,UAAU;YACpC;QACF;QAEA,IAAI,CAACT,OAAO;YACV,gCAAgC;YAChC,MAAMW,iBAAiBjD,GACpBkD,WAAW,CAACjC,KACZkC,MAAM,CAAC,CAACvC,OAASA,KAAKwC,QAAQ,CAAC,UAC/BC,IAAI,GACJC,OAAO,IAAI,CAAC,EAAE;YAEjB,IAAIL,gBAAgB;gBAClBJ,oBAAoBU,KAAKC,KAAK,CAACxD,GAAGyD,YAAY,CAAC,GAAGxC,IAAI,CAAC,EAAEgC,gBAAgB,EAAE;gBAE3E,IAAIzB,cAAcqB,kBAAkBa,OAAO,GAAGhC,iBAAiBgC,OAAO,EAAE;oBACtEb,oBAAoBrB,WAAWqB;gBACjC;YACF;YAEA,MAAMc,kBAAkB,MAAMpC,kBAAkBsB,mBAAmBnB;YACnE,MAAMkC,oBAAoB,MAAMrC,kBAAkBG,kBAAkBmB;YACpE,MAAMgB,aAAa,CAAC,SAAS,EAAEtD,cAAc,CAAC,CAAC,GAAG;YAElD,IAAIoD,iBAAiBG,QAAQ;gBAC3BxB,QAAQ7B,mBAAmB;oBAAEoD;oBAAYE,YAAYJ;gBAAgB;YACvE;YACA,IAAIC,mBAAmBE,QAAQ;gBAC7BzB,UAAU5B,mBAAmB;oBAAEoD;oBAAYE,YAAYH;gBAAkB;YAC3E;YAEA,IAAI,CAACtB,OAAOwB,UAAU,CAACzB,SAASyB,UAAU,CAACjD,oBAAoB;gBAC7D,IAAIG,WAAW;oBACbgD,QAAQC,IAAI,CAAC;gBACf;gBAEA,MAAM,EAAEC,SAASC,0BAA0B,EAAE,GAAG,MAAM/D,QACpD;oBACEoC,MAAM;oBACN4B,MAAM;oBACNC,SAAS;oBACTC,SAAS;gBACX,GACA;oBACEC,UAAU;wBACRP,QAAQC,IAAI,CAAC;oBACf;gBACF;gBAGF,IAAI,CAACE,4BAA4B;oBAC/BH,QAAQC,IAAI,CAAC;gBACf;YACF;YAEA,eAAe;YACfjE,GAAGwE,aAAa,CAAC,GAAG5B,SAAS,KAAK,CAAC,EAAEW,KAAKkB,SAAS,CAAC/C,kBAAkB,MAAM;QAC9E;QAEA,kBAAkB;QAClB1B,GAAGwE,aAAa,CACd,GAAG5B,SAAS,GAAG,CAAC,EAChBvC,qBAAqB;YACnBgC,SAASA,WAAW,CAAC,mBAAmB,CAAC;YACzCD;YACAsC,aAAa3D,QAAQG,EAAE,CAACwD,WAAW;YACnCpC,OAAOA,SAAS,CAAC,mBAAmB,CAAC;QACvC;QAGFnC,oBAAoB;YAAEwE,eAAe5D,QAAQG,EAAE,CAACC,YAAY;QAAC;QAE7DJ,QAAQ6D,MAAM,CAACC,IAAI,CAAC;YAAEC,KAAK,CAAC,qBAAqB,EAAElC,SAAS,GAAG,CAAC;QAAC;IACnE;AACF,EAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/drizzle",
3
- "version": "3.50.0-internal.ca62628",
3
+ "version": "3.50.0",
4
4
  "description": "A library of shared functions used by different payload database adapters",
5
5
  "homepage": "https://payloadcms.com",
6
6
  "repository": {
@@ -30,11 +30,6 @@
30
30
  "types": "./dist/exports/postgres.d.ts",
31
31
  "default": "./dist/exports/postgres.js"
32
32
  },
33
- "./sqlite": {
34
- "import": "./dist/exports/sqlite.js",
35
- "types": "./dist/exports/sqlite.d.ts",
36
- "default": "./dist/exports/sqlite.js"
37
- },
38
33
  "./types": {
39
34
  "import": "./dist/exports/types-deprecated.js",
40
35
  "types": "./dist/exports/types-deprecated.d.ts",
@@ -60,10 +55,10 @@
60
55
  "@types/pg": "8.10.2",
61
56
  "@types/to-snake-case": "1.0.0",
62
57
  "@payloadcms/eslint-config": "3.28.0",
63
- "payload": "3.50.0-internal.ca62628"
58
+ "payload": "3.50.0"
64
59
  },
65
60
  "peerDependencies": {
66
- "payload": "3.50.0-internal.ca62628"
61
+ "payload": "3.50.0"
67
62
  },
68
63
  "scripts": {
69
64
  "build": "pnpm build:swc && pnpm build:types",
@@ -1,13 +0,0 @@
1
- export { columnToCodeConverter } from '../sqlite/columnToCodeConverter.js';
2
- export { countDistinct } from '../sqlite/countDistinct.js';
3
- export { convertPathToJSONTraversal } from '../sqlite/createJSONQuery/convertPathToJSONTraversal.js';
4
- export { createJSONQuery } from '../sqlite/createJSONQuery/index.js';
5
- export { defaultDrizzleSnapshot } from '../sqlite/defaultSnapshot.js';
6
- export { deleteWhere } from '../sqlite/deleteWhere.js';
7
- export { dropDatabase } from '../sqlite/dropDatabase.js';
8
- export { execute } from '../sqlite/execute.js';
9
- export { init } from '../sqlite/init.js';
10
- export { insert } from '../sqlite/insert.js';
11
- export { requireDrizzleKit } from '../sqlite/requireDrizzleKit.js';
12
- export * from '../sqlite/types.js';
13
- //# sourceMappingURL=sqlite.d.ts.map
@@ -1 +0,0 @@
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,14 +0,0 @@
1
- export { columnToCodeConverter } from '../sqlite/columnToCodeConverter.js';
2
- export { countDistinct } from '../sqlite/countDistinct.js';
3
- export { convertPathToJSONTraversal } from '../sqlite/createJSONQuery/convertPathToJSONTraversal.js';
4
- export { createJSONQuery } from '../sqlite/createJSONQuery/index.js';
5
- export { defaultDrizzleSnapshot } from '../sqlite/defaultSnapshot.js';
6
- export { deleteWhere } from '../sqlite/deleteWhere.js';
7
- export { dropDatabase } from '../sqlite/dropDatabase.js';
8
- export { execute } from '../sqlite/execute.js';
9
- export { init } from '../sqlite/init.js';
10
- export { insert } from '../sqlite/insert.js';
11
- export { requireDrizzleKit } from '../sqlite/requireDrizzleKit.js';
12
- export * from '../sqlite/types.js';
13
-
14
- //# sourceMappingURL=sqlite.js.map
@@ -1 +0,0 @@
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,3 +0,0 @@
1
- import type { ColumnToCodeConverter } from '../types.js';
2
- export declare const columnToCodeConverter: ColumnToCodeConverter;
3
- //# sourceMappingURL=columnToCodeConverter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"columnToCodeConverter.d.ts","sourceRoot":"","sources":["../../src/sqlite/columnToCodeConverter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAExD,eAAO,MAAM,qBAAqB,EAAE,qBAoInC,CAAA"}
@@ -1,107 +0,0 @@
1
- export const columnToCodeConverter = ({ adapter, addImport, column, locales, tableKey })=>{
2
- let columnBuilderFn = column.type;
3
- const columnBuilderArgsArray = [];
4
- let defaultStatement = null;
5
- switch(column.type){
6
- case 'boolean':
7
- {
8
- columnBuilderFn = 'integer';
9
- columnBuilderArgsArray.push("mode: 'boolean'");
10
- break;
11
- }
12
- case 'enum':
13
- {
14
- let options;
15
- if ('locale' in column) {
16
- if (!locales?.length) {
17
- throw new Error('Locales must be defined for locale columns');
18
- }
19
- options = locales;
20
- } else {
21
- options = column.options;
22
- }
23
- columnBuilderFn = 'text';
24
- columnBuilderArgsArray.push(`enum: [${options.map((locale)=>`'${locale}'`).join(', ')}]`);
25
- break;
26
- }
27
- case 'geometry':
28
- case 'jsonb':
29
- {
30
- columnBuilderFn = 'text';
31
- columnBuilderArgsArray.push("mode: 'json'");
32
- break;
33
- }
34
- case 'serial':
35
- {
36
- columnBuilderFn = 'integer';
37
- break;
38
- }
39
- case 'timestamp':
40
- {
41
- columnBuilderFn = 'text';
42
- defaultStatement = `default(sql\`(strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))\`)`;
43
- break;
44
- }
45
- case 'uuid':
46
- {
47
- columnBuilderFn = 'text';
48
- if (column.defaultRandom) {
49
- addImport('crypto', 'randomUUID');
50
- defaultStatement = `$defaultFn(() => randomUUID())`;
51
- }
52
- break;
53
- }
54
- case 'varchar':
55
- {
56
- columnBuilderFn = 'text';
57
- break;
58
- }
59
- default:
60
- {
61
- columnBuilderFn = column.type;
62
- }
63
- }
64
- addImport(`${adapter.packageName}/drizzle/sqlite-core`, columnBuilderFn);
65
- let columnBuilderArgs = '';
66
- if (columnBuilderArgsArray.length) {
67
- columnBuilderArgs = `, {${columnBuilderArgsArray.join(',')}}`;
68
- }
69
- let code = `${columnBuilderFn}('${column.name}'${columnBuilderArgs})`;
70
- if (column.notNull) {
71
- code = `${code}.notNull()`;
72
- }
73
- if (column.primaryKey) {
74
- let arg = '';
75
- if (column.type === 'integer' && column.autoIncrement) {
76
- arg = `{ autoIncrement: true }`;
77
- }
78
- code = `${code}.primaryKey(${arg})`;
79
- }
80
- if (defaultStatement) {
81
- code = `${code}.${defaultStatement}`;
82
- } else if (typeof column.default !== 'undefined') {
83
- let sanitizedDefault = column.default;
84
- if (column.type === 'jsonb' || column.type === 'geometry') {
85
- sanitizedDefault = `'${JSON.stringify(column.default)}'`;
86
- } else if (typeof column.default === 'string') {
87
- sanitizedDefault = JSON.stringify(column.default);
88
- } else if (column.type === 'numeric') {
89
- sanitizedDefault = `'${column.default}'`;
90
- }
91
- code = `${code}.default(${sanitizedDefault})`;
92
- }
93
- if (column.reference) {
94
- let callback = `()`;
95
- if (column.reference.table === tableKey) {
96
- addImport(`${adapter.packageName}/drizzle/sqlite-core`, 'type AnySQLiteColumn');
97
- callback = `${callback}: AnySQLiteColumn`;
98
- }
99
- callback = `${callback} => ${column.reference.table}.${column.reference.name}`;
100
- code = `${code}.references(${callback}, {
101
- ${column.reference.onDelete ? `onDelete: '${column.reference.onDelete}'` : ''}
102
- })`;
103
- }
104
- return code;
105
- };
106
-
107
- //# sourceMappingURL=columnToCodeConverter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/sqlite/columnToCodeConverter.ts"],"sourcesContent":["import type { ColumnToCodeConverter } from '../types.js'\n\nexport const columnToCodeConverter: ColumnToCodeConverter = ({\n adapter,\n addImport,\n column,\n locales,\n tableKey,\n}) => {\n let columnBuilderFn: string = column.type\n\n const columnBuilderArgsArray: string[] = []\n\n let defaultStatement: null | string = null\n\n switch (column.type) {\n case 'boolean': {\n columnBuilderFn = 'integer'\n columnBuilderArgsArray.push(\"mode: 'boolean'\")\n break\n }\n\n case 'enum': {\n let options: string[]\n if ('locale' in column) {\n if (!locales?.length) {\n throw new Error('Locales must be defined for locale columns')\n }\n options = locales\n } else {\n options = column.options\n }\n\n columnBuilderFn = 'text'\n columnBuilderArgsArray.push(`enum: [${options.map((locale) => `'${locale}'`).join(', ')}]`)\n\n break\n }\n\n case 'geometry':\n case 'jsonb': {\n columnBuilderFn = 'text'\n columnBuilderArgsArray.push(\"mode: 'json'\")\n break\n }\n\n case 'serial': {\n columnBuilderFn = 'integer'\n break\n }\n\n case 'timestamp': {\n columnBuilderFn = 'text'\n defaultStatement = `default(sql\\`(strftime('%Y-%m-%dT%H:%M:%fZ', 'now'))\\`)`\n break\n }\n\n case 'uuid': {\n columnBuilderFn = 'text'\n\n if (column.defaultRandom) {\n addImport('crypto', 'randomUUID')\n defaultStatement = `$defaultFn(() => randomUUID())`\n }\n\n break\n }\n\n case 'varchar': {\n columnBuilderFn = 'text'\n break\n }\n\n default: {\n columnBuilderFn = column.type\n }\n }\n\n addImport(`${adapter.packageName}/drizzle/sqlite-core`, columnBuilderFn)\n\n let columnBuilderArgs = ''\n\n if (columnBuilderArgsArray.length) {\n columnBuilderArgs = `, {${columnBuilderArgsArray.join(',')}}`\n }\n\n let code = `${columnBuilderFn}('${column.name}'${columnBuilderArgs})`\n\n if (column.notNull) {\n code = `${code}.notNull()`\n }\n\n if (column.primaryKey) {\n let arg = ''\n\n if (column.type === 'integer' && column.autoIncrement) {\n arg = `{ autoIncrement: true }`\n }\n\n code = `${code}.primaryKey(${arg})`\n }\n\n if (defaultStatement) {\n code = `${code}.${defaultStatement}`\n } else if (typeof column.default !== 'undefined') {\n let sanitizedDefault = column.default\n\n if (column.type === 'jsonb' || column.type === 'geometry') {\n sanitizedDefault = `'${JSON.stringify(column.default)}'`\n } else if (typeof column.default === 'string') {\n sanitizedDefault = JSON.stringify(column.default)\n } else if (column.type === 'numeric') {\n sanitizedDefault = `'${column.default}'`\n }\n\n code = `${code}.default(${sanitizedDefault})`\n }\n\n if (column.reference) {\n let callback = `()`\n\n if (column.reference.table === tableKey) {\n addImport(`${adapter.packageName}/drizzle/sqlite-core`, 'type AnySQLiteColumn')\n callback = `${callback}: AnySQLiteColumn`\n }\n\n callback = `${callback} => ${column.reference.table}.${column.reference.name}`\n\n code = `${code}.references(${callback}, {\n ${column.reference.onDelete ? `onDelete: '${column.reference.onDelete}'` : ''}\n })`\n }\n\n return code\n}\n"],"names":["columnToCodeConverter","adapter","addImport","column","locales","tableKey","columnBuilderFn","type","columnBuilderArgsArray","defaultStatement","push","options","length","Error","map","locale","join","defaultRandom","packageName","columnBuilderArgs","code","name","notNull","primaryKey","arg","autoIncrement","default","sanitizedDefault","JSON","stringify","reference","callback","table","onDelete"],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { CountDistinct } from './types.js';
2
- export declare const countDistinct: CountDistinct;
3
- //# sourceMappingURL=countDistinct.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"countDistinct.d.ts","sourceRoot":"","sources":["../../src/sqlite/countDistinct.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAqB,aAAa,EAAE,MAAM,YAAY,CAAA;AAElE,eAAO,MAAM,aAAa,EAAE,aAoC3B,CAAA"}
@@ -1,24 +0,0 @@
1
- import { count, sql } from 'drizzle-orm';
2
- export const countDistinct = async function countDistinct({ column, db, joins, tableName, where }) {
3
- // When we don't have any joins - use a simple COUNT(*) query.
4
- if (joins.length === 0) {
5
- const countResult = await db.select({
6
- count: column ? count(sql`DISTINCT ${column}`) : count()
7
- }).from(this.tables[tableName]).where(where);
8
- return Number(countResult?.[0]?.count ?? 0);
9
- }
10
- let query = db.select({
11
- count: sql`COUNT(1) OVER()`
12
- }).from(this.tables[tableName]).where(where).groupBy(column ?? this.tables[tableName].id).limit(1).$dynamic();
13
- joins.forEach(({ type, condition, table })=>{
14
- query = query[type ?? 'leftJoin'](table, condition);
15
- });
16
- // When we have any joins, we need to count each individual ID only once.
17
- // COUNT(*) doesn't work for this well in this case, as it also counts joined tables.
18
- // SELECT (COUNT DISTINCT id) has a very slow performance on large tables.
19
- // Instead, COUNT (GROUP BY id) can be used which is still slower than COUNT(*) but acceptable.
20
- const countResult = await query;
21
- return Number(countResult?.[0]?.count ?? 0);
22
- };
23
-
24
- //# sourceMappingURL=countDistinct.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/sqlite/countDistinct.ts"],"sourcesContent":["import type { SQLiteSelect } from 'drizzle-orm/sqlite-core'\n\nimport { count, sql } from 'drizzle-orm'\n\nimport type { BaseSQLiteAdapter, CountDistinct } from './types.js'\n\nexport const countDistinct: CountDistinct = async function countDistinct(\n this: BaseSQLiteAdapter,\n { column, db, joins, tableName, where },\n) {\n // When we don't have any joins - use a simple COUNT(*) query.\n if (joins.length === 0) {\n const countResult = await db\n .select({\n count: column ? count(sql`DISTINCT ${column}`) : count(),\n })\n .from(this.tables[tableName])\n .where(where)\n return Number(countResult?.[0]?.count ?? 0)\n }\n\n let query: SQLiteSelect = db\n .select({\n count: sql`COUNT(1) OVER()`,\n })\n .from(this.tables[tableName])\n .where(where)\n .groupBy(column ?? this.tables[tableName].id)\n .limit(1)\n .$dynamic()\n\n joins.forEach(({ type, condition, table }) => {\n query = query[type ?? 'leftJoin'](table, condition)\n })\n\n // When we have any joins, we need to count each individual ID only once.\n // COUNT(*) doesn't work for this well in this case, as it also counts joined tables.\n // SELECT (COUNT DISTINCT id) has a very slow performance on large tables.\n // Instead, COUNT (GROUP BY id) can be used which is still slower than COUNT(*) but acceptable.\n const countResult = await query\n\n return Number(countResult?.[0]?.count ?? 0)\n}\n"],"names":["count","sql","countDistinct","column","db","joins","tableName","where","length","countResult","select","from","tables","Number","query","groupBy","id","limit","$dynamic","forEach","type","condition","table"],"mappings":"AAEA,SAASA,KAAK,EAAEC,GAAG,QAAQ,cAAa;AAIxC,OAAO,MAAMC,gBAA+B,eAAeA,cAEzD,EAAEC,MAAM,EAAEC,EAAE,EAAEC,KAAK,EAAEC,SAAS,EAAEC,KAAK,EAAE;IAEvC,8DAA8D;IAC9D,IAAIF,MAAMG,MAAM,KAAK,GAAG;QACtB,MAAMC,cAAc,MAAML,GACvBM,MAAM,CAAC;YACNV,OAAOG,SAASH,MAAMC,GAAG,CAAC,SAAS,EAAEE,OAAO,CAAC,IAAIH;QACnD,GACCW,IAAI,CAAC,IAAI,CAACC,MAAM,CAACN,UAAU,EAC3BC,KAAK,CAACA;QACT,OAAOM,OAAOJ,aAAa,CAAC,EAAE,EAAET,SAAS;IAC3C;IAEA,IAAIc,QAAsBV,GACvBM,MAAM,CAAC;QACNV,OAAOC,GAAG,CAAC,eAAe,CAAC;IAC7B,GACCU,IAAI,CAAC,IAAI,CAACC,MAAM,CAACN,UAAU,EAC3BC,KAAK,CAACA,OACNQ,OAAO,CAACZ,UAAU,IAAI,CAACS,MAAM,CAACN,UAAU,CAACU,EAAE,EAC3CC,KAAK,CAAC,GACNC,QAAQ;IAEXb,MAAMc,OAAO,CAAC,CAAC,EAAEC,IAAI,EAAEC,SAAS,EAAEC,KAAK,EAAE;QACvCR,QAAQA,KAAK,CAACM,QAAQ,WAAW,CAACE,OAAOD;IAC3C;IAEA,yEAAyE;IACzE,qFAAqF;IACrF,0EAA0E;IAC1E,+FAA+F;IAC/F,MAAMZ,cAAc,MAAMK;IAE1B,OAAOD,OAAOJ,aAAa,CAAC,EAAE,EAAET,SAAS;AAC3C,EAAC"}
@@ -1,2 +0,0 @@
1
- export declare const convertPathToJSONTraversal: (incomingSegments: string[]) => string;
2
- //# sourceMappingURL=convertPathToJSONTraversal.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"convertPathToJSONTraversal.d.ts","sourceRoot":"","sources":["../../../src/sqlite/createJSONQuery/convertPathToJSONTraversal.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0BAA0B,qBAAsB,MAAM,EAAE,KAAG,MAQvE,CAAA"}
@@ -1,12 +0,0 @@
1
- export const convertPathToJSONTraversal = (incomingSegments)=>{
2
- const segments = [
3
- ...incomingSegments
4
- ];
5
- segments.shift();
6
- return segments.reduce((res, segment)=>{
7
- const formattedSegment = Number.isNaN(parseInt(segment)) ? `'${segment}'` : segment;
8
- return `${res}->>${formattedSegment}`;
9
- }, '');
10
- };
11
-
12
- //# sourceMappingURL=convertPathToJSONTraversal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/sqlite/createJSONQuery/convertPathToJSONTraversal.ts"],"sourcesContent":["export const convertPathToJSONTraversal = (incomingSegments: string[]): string => {\n const segments = [...incomingSegments]\n segments.shift()\n\n return segments.reduce((res, segment) => {\n const formattedSegment = Number.isNaN(parseInt(segment)) ? `'${segment}'` : segment\n return `${res}->>${formattedSegment}`\n }, '')\n}\n"],"names":["convertPathToJSONTraversal","incomingSegments","segments","shift","reduce","res","segment","formattedSegment","Number","isNaN","parseInt"],"mappings":"AAAA,OAAO,MAAMA,6BAA6B,CAACC;IACzC,MAAMC,WAAW;WAAID;KAAiB;IACtCC,SAASC,KAAK;IAEd,OAAOD,SAASE,MAAM,CAAC,CAACC,KAAKC;QAC3B,MAAMC,mBAAmBC,OAAOC,KAAK,CAACC,SAASJ,YAAY,CAAC,CAAC,EAAEA,QAAQ,CAAC,CAAC,GAAGA;QAC5E,OAAO,GAAGD,IAAI,GAAG,EAAEE,kBAAkB;IACvC,GAAG;AACL,EAAC"}
@@ -1,3 +0,0 @@
1
- import type { CreateJSONQueryArgs } from '../../types.js';
2
- export declare const createJSONQuery: ({ operator, pathSegments, table, treatAsArray, value, }: CreateJSONQueryArgs) => string;
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sqlite/createJSONQuery/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAqEzD,eAAO,MAAM,eAAe,4DAMzB,mBAAmB,KAAG,MAYxB,CAAA"}
@@ -1,60 +0,0 @@
1
- const fromArray = ({ isRoot, operator, pathSegments, table, treatAsArray, value })=>{
2
- const newPathSegments = pathSegments.slice(1);
3
- const alias = `${pathSegments[isRoot ? 0 : 1]}_alias_${newPathSegments.length}`;
4
- return `EXISTS (
5
- SELECT 1
6
- FROM json_each(${table}.${pathSegments[0]}) AS ${alias}
7
- WHERE ${createJSONQuery({
8
- operator,
9
- pathSegments: newPathSegments,
10
- table: alias,
11
- treatAsArray,
12
- value
13
- })}
14
- )`;
15
- };
16
- const createConstraint = ({ alias, operator, pathSegments, value })=>{
17
- const newAlias = `${pathSegments[0]}_alias_${pathSegments.length - 1}`;
18
- let formattedValue = value;
19
- let formattedOperator = operator;
20
- if ([
21
- 'contains',
22
- 'like'
23
- ].includes(operator)) {
24
- formattedOperator = 'like';
25
- formattedValue = `%${value}%`;
26
- } else if ([
27
- 'not_like',
28
- 'notlike'
29
- ].includes(operator)) {
30
- formattedOperator = 'not like';
31
- formattedValue = `%${value}%`;
32
- } else if (operator === 'equals') {
33
- formattedOperator = '=';
34
- }
35
- return `EXISTS (
36
- SELECT 1
37
- FROM json_each(${alias}.value -> '${pathSegments[0]}') AS ${newAlias}
38
- WHERE COALESCE(${newAlias}.value ->> '${pathSegments[1]}', '') ${formattedOperator} '${formattedValue}'
39
- )`;
40
- };
41
- export const createJSONQuery = ({ operator, pathSegments, table, treatAsArray, value })=>{
42
- if (treatAsArray?.includes(pathSegments[1]) && table) {
43
- return fromArray({
44
- operator,
45
- pathSegments,
46
- table,
47
- treatAsArray,
48
- value
49
- });
50
- }
51
- return createConstraint({
52
- alias: table,
53
- operator,
54
- pathSegments,
55
- treatAsArray,
56
- value
57
- });
58
- };
59
-
60
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/sqlite/createJSONQuery/index.ts"],"sourcesContent":["import type { CreateJSONQueryArgs } from '../../types.js'\n\ntype FromArrayArgs = {\n isRoot?: true\n operator: string\n pathSegments: string[]\n table: string\n treatAsArray?: string[]\n value: boolean | number | string\n}\n\nconst fromArray = ({\n isRoot,\n operator,\n pathSegments,\n table,\n treatAsArray,\n value,\n}: FromArrayArgs) => {\n const newPathSegments = pathSegments.slice(1)\n const alias = `${pathSegments[isRoot ? 0 : 1]}_alias_${newPathSegments.length}`\n\n return `EXISTS (\n SELECT 1\n FROM json_each(${table}.${pathSegments[0]}) AS ${alias}\n WHERE ${createJSONQuery({\n operator,\n pathSegments: newPathSegments,\n table: alias,\n treatAsArray,\n value,\n })}\n )`\n}\n\ntype CreateConstraintArgs = {\n alias?: string\n operator: string\n pathSegments: string[]\n treatAsArray?: string[]\n value: boolean | number | string\n}\n\nconst createConstraint = ({\n alias,\n operator,\n pathSegments,\n value,\n}: CreateConstraintArgs): string => {\n const newAlias = `${pathSegments[0]}_alias_${pathSegments.length - 1}`\n let formattedValue = value\n let formattedOperator = operator\n if (['contains', 'like'].includes(operator)) {\n formattedOperator = 'like'\n formattedValue = `%${value}%`\n } else if (['not_like', 'notlike'].includes(operator)) {\n formattedOperator = 'not like'\n formattedValue = `%${value}%`\n } else if (operator === 'equals') {\n formattedOperator = '='\n }\n\n return `EXISTS (\n SELECT 1\n FROM json_each(${alias}.value -> '${pathSegments[0]}') AS ${newAlias}\n WHERE COALESCE(${newAlias}.value ->> '${pathSegments[1]}', '') ${formattedOperator} '${formattedValue}'\n )`\n}\n\nexport const createJSONQuery = ({\n operator,\n pathSegments,\n table,\n treatAsArray,\n value,\n}: CreateJSONQueryArgs): string => {\n if (treatAsArray?.includes(pathSegments[1]) && table) {\n return fromArray({\n operator,\n pathSegments,\n table,\n treatAsArray,\n value,\n })\n }\n\n return createConstraint({ alias: table, operator, pathSegments, treatAsArray, value })\n}\n"],"names":["fromArray","isRoot","operator","pathSegments","table","treatAsArray","value","newPathSegments","slice","alias","length","createJSONQuery","createConstraint","newAlias","formattedValue","formattedOperator","includes"],"mappings":"AAWA,MAAMA,YAAY,CAAC,EACjBC,MAAM,EACNC,QAAQ,EACRC,YAAY,EACZC,KAAK,EACLC,YAAY,EACZC,KAAK,EACS;IACd,MAAMC,kBAAkBJ,aAAaK,KAAK,CAAC;IAC3C,MAAMC,QAAQ,GAAGN,YAAY,CAACF,SAAS,IAAI,EAAE,CAAC,OAAO,EAAEM,gBAAgBG,MAAM,EAAE;IAE/E,OAAO,CAAC;;mBAES,EAAEN,MAAM,CAAC,EAAED,YAAY,CAAC,EAAE,CAAC,KAAK,EAAEM,MAAM;UACjD,EAAEE,gBAAgB;QACtBT;QACAC,cAAcI;QACdH,OAAOK;QACPJ;QACAC;IACF,GAAG;GACJ,CAAC;AACJ;AAUA,MAAMM,mBAAmB,CAAC,EACxBH,KAAK,EACLP,QAAQ,EACRC,YAAY,EACZG,KAAK,EACgB;IACrB,MAAMO,WAAW,GAAGV,YAAY,CAAC,EAAE,CAAC,OAAO,EAAEA,aAAaO,MAAM,GAAG,GAAG;IACtE,IAAII,iBAAiBR;IACrB,IAAIS,oBAAoBb;IACxB,IAAI;QAAC;QAAY;KAAO,CAACc,QAAQ,CAACd,WAAW;QAC3Ca,oBAAoB;QACpBD,iBAAiB,CAAC,CAAC,EAAER,MAAM,CAAC,CAAC;IAC/B,OAAO,IAAI;QAAC;QAAY;KAAU,CAACU,QAAQ,CAACd,WAAW;QACrDa,oBAAoB;QACpBD,iBAAiB,CAAC,CAAC,EAAER,MAAM,CAAC,CAAC;IAC/B,OAAO,IAAIJ,aAAa,UAAU;QAChCa,oBAAoB;IACtB;IAEA,OAAO,CAAC;;iBAEO,EAAEN,MAAM,WAAW,EAAEN,YAAY,CAAC,EAAE,CAAC,MAAM,EAAEU,SAAS;iBACtD,EAAEA,SAAS,YAAY,EAAEV,YAAY,CAAC,EAAE,CAAC,OAAO,EAAEY,kBAAkB,EAAE,EAAED,eAAe;GACrG,CAAC;AACJ;AAEA,OAAO,MAAMH,kBAAkB,CAAC,EAC9BT,QAAQ,EACRC,YAAY,EACZC,KAAK,EACLC,YAAY,EACZC,KAAK,EACe;IACpB,IAAID,cAAcW,SAASb,YAAY,CAAC,EAAE,KAAKC,OAAO;QACpD,OAAOJ,UAAU;YACfE;YACAC;YACAC;YACAC;YACAC;QACF;IACF;IAEA,OAAOM,iBAAiB;QAAEH,OAAOL;QAAOF;QAAUC;QAAcE;QAAcC;IAAM;AACtF,EAAC"}
@@ -1,3 +0,0 @@
1
- import type { DrizzleSQLiteSnapshotJSON } from 'drizzle-kit/api';
2
- export declare const defaultDrizzleSnapshot: DrizzleSQLiteSnapshotJSON;
3
- //# sourceMappingURL=defaultSnapshot.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"defaultSnapshot.d.ts","sourceRoot":"","sources":["../../src/sqlite/defaultSnapshot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAA;AAEhE,eAAO,MAAM,sBAAsB,EAAE,yBAYpC,CAAA"}