@payloadcms/db-postgres 3.0.0-canary.a192632 → 3.0.0-canary.a6e7305

Sign up to get free protection for your applications and to get access to all the features.
Files changed (99) hide show
  1. package/dist/connect.d.ts.map +1 -1
  2. package/dist/connect.js +24 -6
  3. package/dist/connect.js.map +1 -1
  4. package/dist/index.d.ts +2 -2
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +12 -16
  7. package/dist/index.js.map +1 -1
  8. package/dist/predefinedMigrations/v2-v3/fetchAndResave/traverseFields.d.ts.map +1 -1
  9. package/dist/predefinedMigrations/v2-v3/fetchAndResave/traverseFields.js +3 -1
  10. package/dist/predefinedMigrations/v2-v3/fetchAndResave/traverseFields.js.map +1 -1
  11. package/dist/predefinedMigrations/v2-v3/index.js +2 -2
  12. package/dist/predefinedMigrations/v2-v3/index.js.map +1 -1
  13. package/dist/predefinedMigrations/v2-v3/migrateRelationships.d.ts.map +1 -1
  14. package/dist/predefinedMigrations/v2-v3/migrateRelationships.js +9 -3
  15. package/dist/predefinedMigrations/v2-v3/migrateRelationships.js.map +1 -1
  16. package/dist/types.d.ts +27 -106
  17. package/dist/types.d.ts.map +1 -1
  18. package/dist/types.js.map +1 -1
  19. package/package.json +12 -10
  20. package/dist/countDistinct.d.ts +0 -3
  21. package/dist/countDistinct.d.ts.map +0 -1
  22. package/dist/countDistinct.js +0 -24
  23. package/dist/countDistinct.js.map +0 -1
  24. package/dist/createJSONQuery/convertPathToJSONTraversal.d.ts +0 -2
  25. package/dist/createJSONQuery/convertPathToJSONTraversal.d.ts.map +0 -1
  26. package/dist/createJSONQuery/convertPathToJSONTraversal.js +0 -14
  27. package/dist/createJSONQuery/convertPathToJSONTraversal.js.map +0 -1
  28. package/dist/createJSONQuery/formatJSONPathSegment.d.ts +0 -2
  29. package/dist/createJSONQuery/formatJSONPathSegment.d.ts.map +0 -1
  30. package/dist/createJSONQuery/formatJSONPathSegment.js +0 -5
  31. package/dist/createJSONQuery/formatJSONPathSegment.js.map +0 -1
  32. package/dist/createJSONQuery/index.d.ts +0 -10
  33. package/dist/createJSONQuery/index.d.ts.map +0 -1
  34. package/dist/createJSONQuery/index.js +0 -54
  35. package/dist/createJSONQuery/index.js.map +0 -1
  36. package/dist/createMigration.d.ts +0 -3
  37. package/dist/createMigration.d.ts.map +0 -1
  38. package/dist/createMigration.js +0 -91
  39. package/dist/createMigration.js.map +0 -1
  40. package/dist/defaultSnapshot.d.ts +0 -3
  41. package/dist/defaultSnapshot.d.ts.map +0 -1
  42. package/dist/defaultSnapshot.js +0 -17
  43. package/dist/defaultSnapshot.js.map +0 -1
  44. package/dist/deleteWhere.d.ts +0 -3
  45. package/dist/deleteWhere.d.ts.map +0 -1
  46. package/dist/deleteWhere.js +0 -6
  47. package/dist/deleteWhere.js.map +0 -1
  48. package/dist/dropDatabase.d.ts +0 -3
  49. package/dist/dropDatabase.d.ts.map +0 -1
  50. package/dist/dropDatabase.js +0 -9
  51. package/dist/dropDatabase.js.map +0 -1
  52. package/dist/execute.d.ts +0 -3
  53. package/dist/execute.d.ts.map +0 -1
  54. package/dist/execute.js +0 -11
  55. package/dist/execute.js.map +0 -1
  56. package/dist/getMigrationTemplate.d.ts +0 -4
  57. package/dist/getMigrationTemplate.d.ts.map +0 -1
  58. package/dist/getMigrationTemplate.js +0 -13
  59. package/dist/getMigrationTemplate.js.map +0 -1
  60. package/dist/init.d.ts +0 -3
  61. package/dist/init.d.ts.map +0 -1
  62. package/dist/init.js +0 -95
  63. package/dist/init.js.map +0 -1
  64. package/dist/insert.d.ts +0 -3
  65. package/dist/insert.d.ts.map +0 -1
  66. package/dist/insert.js +0 -12
  67. package/dist/insert.js.map +0 -1
  68. package/dist/requireDrizzleKit.d.ts +0 -3
  69. package/dist/requireDrizzleKit.d.ts.map +0 -1
  70. package/dist/requireDrizzleKit.js +0 -5
  71. package/dist/requireDrizzleKit.js.map +0 -1
  72. package/dist/schema/build.d.ts +0 -38
  73. package/dist/schema/build.d.ts.map +0 -1
  74. package/dist/schema/build.js +0 -369
  75. package/dist/schema/build.js.map +0 -1
  76. package/dist/schema/createIndex.d.ts +0 -12
  77. package/dist/schema/createIndex.d.ts.map +0 -1
  78. package/dist/schema/createIndex.js +0 -18
  79. package/dist/schema/createIndex.js.map +0 -1
  80. package/dist/schema/idToUUID.d.ts +0 -3
  81. package/dist/schema/idToUUID.d.ts.map +0 -1
  82. package/dist/schema/idToUUID.js +0 -11
  83. package/dist/schema/idToUUID.js.map +0 -1
  84. package/dist/schema/parentIDColumnMap.d.ts +0 -4
  85. package/dist/schema/parentIDColumnMap.d.ts.map +0 -1
  86. package/dist/schema/parentIDColumnMap.js +0 -9
  87. package/dist/schema/parentIDColumnMap.js.map +0 -1
  88. package/dist/schema/setColumnID.d.ts +0 -11
  89. package/dist/schema/setColumnID.d.ts.map +0 -1
  90. package/dist/schema/setColumnID.js +0 -24
  91. package/dist/schema/setColumnID.js.map +0 -1
  92. package/dist/schema/traverseFields.d.ts +0 -36
  93. package/dist/schema/traverseFields.d.ts.map +0 -1
  94. package/dist/schema/traverseFields.js +0 -613
  95. package/dist/schema/traverseFields.js.map +0 -1
  96. package/dist/schema/withDefault.d.ts +0 -4
  97. package/dist/schema/withDefault.d.ts.map +0 -1
  98. package/dist/schema/withDefault.js +0 -10
  99. package/dist/schema/withDefault.js.map +0 -1
@@ -1,9 +0,0 @@
1
- export const dropDatabase = async function dropDatabase({ adapter }) {
2
- await adapter.execute({
3
- drizzle: adapter.drizzle,
4
- raw: `drop schema if exists ${this.schemaName || 'public'} cascade;
5
- create schema ${this.schemaName || 'public'};`
6
- });
7
- };
8
-
9
- //# sourceMappingURL=dropDatabase.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/dropDatabase.ts"],"sourcesContent":["import type { DropDatabase } from './types.js'\n\nexport const dropDatabase: DropDatabase = async function dropDatabase({ adapter }) {\n await adapter.execute({\n drizzle: adapter.drizzle,\n raw: `drop schema if exists ${this.schemaName || 'public'} cascade;\n create schema ${this.schemaName || 'public'};`,\n })\n}\n"],"names":["dropDatabase","adapter","execute","drizzle","raw","schemaName"],"mappings":"AAEA,OAAO,MAAMA,eAA6B,eAAeA,aAAa,EAAEC,OAAO,EAAE;IAC/E,MAAMA,QAAQC,OAAO,CAAC;QACpBC,SAASF,QAAQE,OAAO;QACxBC,KAAK,CAAC,sBAAsB,EAAE,IAAI,CAACC,UAAU,IAAI,SAAS;kBAC5C,EAAE,IAAI,CAACA,UAAU,IAAI,SAAS,CAAC,CAAC;IAChD;AACF,EAAC"}
package/dist/execute.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import type { Execute } from './types.js';
2
- export declare const execute: Execute<any>;
3
- //# sourceMappingURL=execute.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"execute.d.ts","sourceRoot":"","sources":["../src/execute.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEzC,eAAO,MAAM,OAAO,EAAE,OAAO,CAAC,GAAG,CAQhC,CAAA"}
package/dist/execute.js DELETED
@@ -1,11 +0,0 @@
1
- import { sql } from 'drizzle-orm';
2
- export const execute = function execute({ db, drizzle, raw, sql: statement }) {
3
- const executeFrom = db ?? drizzle;
4
- if (raw) {
5
- return executeFrom.execute(sql.raw(raw));
6
- } else {
7
- return executeFrom.execute(sql`${statement}`);
8
- }
9
- };
10
-
11
- //# sourceMappingURL=execute.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/execute.ts"],"sourcesContent":["import { sql } from 'drizzle-orm'\n\nimport type { Execute } from './types.js'\n\nexport const execute: Execute<any> = function execute({ db, drizzle, raw, sql: statement }) {\n const executeFrom = db ?? drizzle\n\n if (raw) {\n return executeFrom.execute(sql.raw(raw))\n } else {\n return executeFrom.execute(sql`${statement}`)\n }\n}\n"],"names":["sql","execute","db","drizzle","raw","statement","executeFrom"],"mappings":"AAAA,SAASA,GAAG,QAAQ,cAAa;AAIjC,OAAO,MAAMC,UAAwB,SAASA,QAAQ,EAAEC,EAAE,EAAEC,OAAO,EAAEC,GAAG,EAAEJ,KAAKK,SAAS,EAAE;IACxF,MAAMC,cAAcJ,MAAMC;IAE1B,IAAIC,KAAK;QACP,OAAOE,YAAYL,OAAO,CAACD,IAAII,GAAG,CAACA;IACrC,OAAO;QACL,OAAOE,YAAYL,OAAO,CAACD,GAAG,CAAC,EAAEK,UAAU,CAAC;IAC9C;AACF,EAAC"}
@@ -1,4 +0,0 @@
1
- import type { MigrationTemplateArgs } from 'payload';
2
- export declare const indent: (text: string) => string;
3
- export declare const getMigrationTemplate: ({ downSQL, imports, upSQL, }: MigrationTemplateArgs) => string;
4
- //# sourceMappingURL=getMigrationTemplate.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getMigrationTemplate.d.ts","sourceRoot":"","sources":["../src/getMigrationTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAEpD,eAAO,MAAM,MAAM,SAAU,MAAM,WAIpB,CAAA;AAEf,eAAO,MAAM,oBAAoB,iCAI9B,qBAAqB,KAAG,MAS1B,CAAA"}
@@ -1,13 +0,0 @@
1
- export const indent = (text)=>text.split('\n').map((line)=>` ${line}`).join('\n');
2
- export const getMigrationTemplate = ({ downSQL, imports, upSQL })=>`import { MigrateUpArgs, MigrateDownArgs, sql } from '@payloadcms/db-postgres'
3
- ${imports ? `${imports}\n` : ''}
4
- export async function up({ payload, req }: MigrateUpArgs): Promise<void> {
5
- ${indent(upSQL)}
6
- }
7
-
8
- export async function down({ payload, req }: MigrateDownArgs): Promise<void> {
9
- ${indent(downSQL)}
10
- }
11
- `;
12
-
13
- //# sourceMappingURL=getMigrationTemplate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/getMigrationTemplate.ts"],"sourcesContent":["import type { MigrationTemplateArgs } from 'payload'\n\nexport const indent = (text: string) =>\n text\n .split('\\n')\n .map((line) => ` ${line}`)\n .join('\\n')\n\nexport const getMigrationTemplate = ({\n downSQL,\n imports,\n upSQL,\n}: MigrationTemplateArgs): string => `import { MigrateUpArgs, MigrateDownArgs, sql } from '@payloadcms/db-postgres'\n${imports ? `${imports}\\n` : ''}\nexport async function up({ payload, req }: MigrateUpArgs): Promise<void> {\n${indent(upSQL)}\n}\n\nexport async function down({ payload, req }: MigrateDownArgs): Promise<void> {\n${indent(downSQL)}\n}\n`\n"],"names":["indent","text","split","map","line","join","getMigrationTemplate","downSQL","imports","upSQL"],"mappings":"AAEA,OAAO,MAAMA,SAAS,CAACC,OACrBA,KACGC,KAAK,CAAC,MACNC,GAAG,CAAC,CAACC,OAAS,CAAC,EAAE,EAAEA,KAAK,CAAC,EACzBC,IAAI,CAAC,MAAK;AAEf,OAAO,MAAMC,uBAAuB,CAAC,EACnCC,OAAO,EACPC,OAAO,EACPC,KAAK,EACiB,GAAa,CAAC;AACtC,EAAED,UAAU,CAAC,EAAEA,QAAQ,EAAE,CAAC,GAAG,GAAG;;AAEhC,EAAER,OAAOS,OAAO;;;;AAIhB,EAAET,OAAOO,SAAS;;AAElB,CAAC,CAAA"}
package/dist/init.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import type { Init } from 'payload';
2
- export declare const init: Init;
3
- //# sourceMappingURL=init.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAA6B,MAAM,SAAS,CAAA;AAY9D,eAAO,MAAM,IAAI,EAAE,IAqGlB,CAAA"}
package/dist/init.js DELETED
@@ -1,95 +0,0 @@
1
- import { createTableName } from '@payloadcms/drizzle';
2
- import { uniqueIndex } from 'drizzle-orm/pg-core';
3
- import { buildVersionCollectionFields, buildVersionGlobalFields } from 'payload';
4
- import toSnakeCase from 'to-snake-case';
5
- import { buildTable } from './schema/build.js';
6
- export const init = function init() {
7
- if (this.payload.config.localization) {
8
- this.enums.enum__locales = this.pgSchema.enum('_locales', this.payload.config.localization.locales.map(({ code })=>code));
9
- }
10
- this.payload.config.collections.forEach((collection)=>{
11
- createTableName({
12
- adapter: this,
13
- config: collection
14
- });
15
- if (collection.versions) {
16
- createTableName({
17
- adapter: this,
18
- config: collection,
19
- versions: true,
20
- versionsCustomName: true
21
- });
22
- }
23
- });
24
- this.payload.config.collections.forEach((collection)=>{
25
- const tableName = this.tableNameMap.get(toSnakeCase(collection.slug));
26
- const baseExtraConfig = {};
27
- if (collection.upload.filenameCompoundIndex) {
28
- const indexName = `${tableName}_filename_compound_idx`;
29
- baseExtraConfig.filename_compound_index = (cols)=>{
30
- const colsConstraint = collection.upload.filenameCompoundIndex.map((f)=>{
31
- return cols[f];
32
- });
33
- return uniqueIndex(indexName).on(colsConstraint[0], ...colsConstraint.slice(1));
34
- };
35
- }
36
- buildTable({
37
- adapter: this,
38
- baseExtraConfig,
39
- disableNotNull: !!collection?.versions?.drafts,
40
- disableUnique: false,
41
- fields: collection.fields,
42
- tableName,
43
- timestamps: collection.timestamps,
44
- versions: false
45
- });
46
- if (collection.versions) {
47
- const versionsTableName = this.tableNameMap.get(`_${toSnakeCase(collection.slug)}${this.versionsSuffix}`);
48
- const versionFields = buildVersionCollectionFields(collection);
49
- buildTable({
50
- adapter: this,
51
- disableNotNull: !!collection.versions?.drafts,
52
- disableUnique: true,
53
- fields: versionFields,
54
- tableName: versionsTableName,
55
- timestamps: true,
56
- versions: true
57
- });
58
- }
59
- });
60
- this.payload.config.globals.forEach((global)=>{
61
- const tableName = createTableName({
62
- adapter: this,
63
- config: global
64
- });
65
- buildTable({
66
- adapter: this,
67
- disableNotNull: !!global?.versions?.drafts,
68
- disableUnique: false,
69
- fields: global.fields,
70
- tableName,
71
- timestamps: false,
72
- versions: false
73
- });
74
- if (global.versions) {
75
- const versionsTableName = createTableName({
76
- adapter: this,
77
- config: global,
78
- versions: true,
79
- versionsCustomName: true
80
- });
81
- const versionFields = buildVersionGlobalFields(global);
82
- buildTable({
83
- adapter: this,
84
- disableNotNull: !!global.versions?.drafts,
85
- disableUnique: true,
86
- fields: versionFields,
87
- tableName: versionsTableName,
88
- timestamps: true,
89
- versions: true
90
- });
91
- }
92
- });
93
- };
94
-
95
- //# sourceMappingURL=init.js.map
package/dist/init.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/init.ts"],"sourcesContent":["import type { Init, SanitizedCollectionConfig } from 'payload'\n\nimport { createTableName } from '@payloadcms/drizzle'\nimport { uniqueIndex } from 'drizzle-orm/pg-core'\nimport { buildVersionCollectionFields, buildVersionGlobalFields } from 'payload'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { BaseExtraConfig } from './schema/build.js'\nimport type { PostgresAdapter } from './types.js'\n\nimport { buildTable } from './schema/build.js'\n\nexport const init: Init = function init(this: PostgresAdapter) {\n if (this.payload.config.localization) {\n this.enums.enum__locales = this.pgSchema.enum(\n '_locales',\n this.payload.config.localization.locales.map(({ code }) => code) as [string, ...string[]],\n )\n }\n\n this.payload.config.collections.forEach((collection: SanitizedCollectionConfig) => {\n createTableName({\n adapter: this,\n config: collection,\n })\n\n if (collection.versions) {\n createTableName({\n adapter: this,\n config: collection,\n versions: true,\n versionsCustomName: true,\n })\n }\n })\n this.payload.config.collections.forEach((collection: SanitizedCollectionConfig) => {\n const tableName = this.tableNameMap.get(toSnakeCase(collection.slug))\n\n const baseExtraConfig: BaseExtraConfig = {}\n\n if (collection.upload.filenameCompoundIndex) {\n const indexName = `${tableName}_filename_compound_idx`\n\n baseExtraConfig.filename_compound_index = (cols) => {\n const colsConstraint = collection.upload.filenameCompoundIndex.map((f) => {\n return cols[f]\n })\n return uniqueIndex(indexName).on(colsConstraint[0], ...colsConstraint.slice(1))\n }\n }\n\n buildTable({\n adapter: this,\n baseExtraConfig,\n disableNotNull: !!collection?.versions?.drafts,\n disableUnique: false,\n fields: collection.fields,\n tableName,\n timestamps: collection.timestamps,\n versions: false,\n })\n\n if (collection.versions) {\n const versionsTableName = this.tableNameMap.get(\n `_${toSnakeCase(collection.slug)}${this.versionsSuffix}`,\n )\n const versionFields = buildVersionCollectionFields(collection)\n\n buildTable({\n adapter: this,\n disableNotNull: !!collection.versions?.drafts,\n disableUnique: true,\n fields: versionFields,\n tableName: versionsTableName,\n timestamps: true,\n versions: true,\n })\n }\n })\n\n this.payload.config.globals.forEach((global) => {\n const tableName = createTableName({ adapter: this, config: global })\n\n buildTable({\n adapter: this,\n disableNotNull: !!global?.versions?.drafts,\n disableUnique: false,\n fields: global.fields,\n tableName,\n timestamps: false,\n versions: false,\n })\n\n if (global.versions) {\n const versionsTableName = createTableName({\n adapter: this,\n config: global,\n versions: true,\n versionsCustomName: true,\n })\n const versionFields = buildVersionGlobalFields(global)\n\n buildTable({\n adapter: this,\n disableNotNull: !!global.versions?.drafts,\n disableUnique: true,\n fields: versionFields,\n tableName: versionsTableName,\n timestamps: true,\n versions: true,\n })\n }\n })\n}\n"],"names":["createTableName","uniqueIndex","buildVersionCollectionFields","buildVersionGlobalFields","toSnakeCase","buildTable","init","payload","config","localization","enums","enum__locales","pgSchema","enum","locales","map","code","collections","forEach","collection","adapter","versions","versionsCustomName","tableName","tableNameMap","get","slug","baseExtraConfig","upload","filenameCompoundIndex","indexName","filename_compound_index","cols","colsConstraint","f","on","slice","disableNotNull","drafts","disableUnique","fields","timestamps","versionsTableName","versionsSuffix","versionFields","globals","global"],"mappings":"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"}
package/dist/insert.d.ts DELETED
@@ -1,3 +0,0 @@
1
- import type { Insert } from './types.js';
2
- export declare const insert: Insert;
3
- //# sourceMappingURL=insert.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"insert.d.ts","sourceRoot":"","sources":["../src/insert.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC,eAAO,MAAM,MAAM,EAAE,MAoBpB,CAAA"}
package/dist/insert.js DELETED
@@ -1,12 +0,0 @@
1
- export const insert = async function insert({ db, onConflictDoUpdate, tableName, values }) {
2
- const table = this.tables[tableName];
3
- let result;
4
- if (onConflictDoUpdate) {
5
- result = await db.insert(table).values(values).onConflictDoUpdate(onConflictDoUpdate).returning();
6
- } else {
7
- result = await db.insert(table).values(values).returning();
8
- }
9
- return result;
10
- };
11
-
12
- //# sourceMappingURL=insert.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/insert.ts"],"sourcesContent":["import type { TransactionPg } from '@payloadcms/drizzle/types'\n\nimport type { Insert } from './types.js'\n\nexport const insert: Insert = async function insert({\n db,\n onConflictDoUpdate,\n tableName,\n values,\n}): Promise<Record<string, unknown>[]> {\n const table = this.tables[tableName]\n let result\n\n if (onConflictDoUpdate) {\n result = await (db as TransactionPg)\n .insert(table)\n .values(values)\n .onConflictDoUpdate(onConflictDoUpdate)\n .returning()\n } else {\n result = await (db as TransactionPg).insert(table).values(values).returning()\n }\n\n return result\n}\n"],"names":["insert","db","onConflictDoUpdate","tableName","values","table","tables","result","returning"],"mappings":"AAIA,OAAO,MAAMA,SAAiB,eAAeA,OAAO,EAClDC,EAAE,EACFC,kBAAkB,EAClBC,SAAS,EACTC,MAAM,EACP;IACC,MAAMC,QAAQ,IAAI,CAACC,MAAM,CAACH,UAAU;IACpC,IAAII;IAEJ,IAAIL,oBAAoB;QACtBK,SAAS,MAAM,AAACN,GACbD,MAAM,CAACK,OACPD,MAAM,CAACA,QACPF,kBAAkB,CAACA,oBACnBM,SAAS;IACd,OAAO;QACLD,SAAS,MAAM,AAACN,GAAqBD,MAAM,CAACK,OAAOD,MAAM,CAACA,QAAQI,SAAS;IAC7E;IAEA,OAAOD;AACT,EAAC"}
@@ -1,3 +0,0 @@
1
- import type { RequireDrizzleKit } from '@payloadcms/drizzle/types';
2
- export declare const requireDrizzleKit: RequireDrizzleKit;
3
- //# sourceMappingURL=requireDrizzleKit.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"requireDrizzleKit.d.ts","sourceRoot":"","sources":["../src/requireDrizzleKit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAIlE,eAAO,MAAM,iBAAiB,EAAE,iBAAoD,CAAA"}
@@ -1,5 +0,0 @@
1
- import { createRequire } from 'module';
2
- const require = createRequire(import.meta.url);
3
- export const requireDrizzleKit = ()=>require('drizzle-kit/api');
4
-
5
- //# sourceMappingURL=requireDrizzleKit.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/requireDrizzleKit.ts"],"sourcesContent":["import type { RequireDrizzleKit } from '@payloadcms/drizzle/types'\n\nimport { createRequire } from 'module'\nconst require = createRequire(import.meta.url)\nexport const requireDrizzleKit: RequireDrizzleKit = () => require('drizzle-kit/api')\n"],"names":["createRequire","require","url","requireDrizzleKit"],"mappings":"AAEA,SAASA,aAAa,QAAQ,SAAQ;AACtC,MAAMC,UAAUD,cAAc,YAAYE,GAAG;AAC7C,OAAO,MAAMC,oBAAuC,IAAMF,QAAQ,mBAAkB"}
@@ -1,38 +0,0 @@
1
- import type { ForeignKeyBuilder, IndexBuilder, PgColumnBuilder, UniqueConstraintBuilder } from 'drizzle-orm/pg-core';
2
- import type { Field } from 'payload';
3
- import type { GenericColumns, PostgresAdapter } from '../types.js';
4
- export type BaseExtraConfig = Record<string, (cols: GenericColumns) => ForeignKeyBuilder | IndexBuilder | UniqueConstraintBuilder>;
5
- export type RelationMap = Map<string, {
6
- localized: boolean;
7
- target: string;
8
- type: 'many' | 'one';
9
- }>;
10
- type Args = {
11
- adapter: PostgresAdapter;
12
- baseColumns?: Record<string, PgColumnBuilder>;
13
- /**
14
- * After table is created, run these functions to add extra config to the table
15
- * ie. indexes, multiple columns, etc
16
- */
17
- baseExtraConfig?: BaseExtraConfig;
18
- buildNumbers?: boolean;
19
- buildRelationships?: boolean;
20
- disableNotNull: boolean;
21
- disableUnique: boolean;
22
- fields: Field[];
23
- rootRelationsToBuild?: RelationMap;
24
- rootRelationships?: Set<string>;
25
- rootTableIDColType?: string;
26
- rootTableName?: string;
27
- tableName: string;
28
- timestamps?: boolean;
29
- versions: boolean;
30
- };
31
- type Result = {
32
- hasManyNumberField: 'index' | boolean;
33
- hasManyTextField: 'index' | boolean;
34
- relationsToBuild: RelationMap;
35
- };
36
- export declare const buildTable: ({ adapter, baseColumns, baseExtraConfig, disableNotNull, disableUnique, fields, rootRelationsToBuild, rootRelationships, rootTableIDColType, rootTableName: incomingRootTableName, tableName, timestamps, versions, }: Args) => Result;
37
- export {};
38
- //# sourceMappingURL=build.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/schema/build.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,iBAAiB,EACjB,YAAY,EACZ,eAAe,EAEf,uBAAuB,EACxB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAgBpC,OAAO,KAAK,EAAE,cAAc,EAAwB,eAAe,EAAE,MAAM,aAAa,CAAA;AAMxF,MAAM,MAAM,eAAe,GAAG,MAAM,CAClC,MAAM,EACN,CAAC,IAAI,EAAE,cAAc,KAAK,iBAAiB,GAAG,YAAY,GAAG,uBAAuB,CACrF,CAAA;AAED,MAAM,MAAM,WAAW,GAAG,GAAG,CAAC,MAAM,EAAE;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAA;CAAE,CAAC,CAAA;AAEnG,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,eAAe,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IAC7C;;;OAGG;IACH,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,cAAc,EAAE,OAAO,CAAA;IACvB,aAAa,EAAE,OAAO,CAAA;IACtB,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,oBAAoB,CAAC,EAAE,WAAW,CAAA;IAClC,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,KAAK,MAAM,GAAG;IACZ,kBAAkB,EAAE,OAAO,GAAG,OAAO,CAAA;IACrC,gBAAgB,EAAE,OAAO,GAAG,OAAO,CAAA;IACnC,gBAAgB,EAAE,WAAW,CAAA;CAC9B,CAAA;AAED,eAAO,MAAM,UAAU,0NAcpB,IAAI,KAAG,MAqYT,CAAA"}
@@ -1,369 +0,0 @@
1
- import { createTableName } from '@payloadcms/drizzle';
2
- import { relations } from 'drizzle-orm';
3
- import { foreignKey, index, integer, numeric, serial, timestamp, unique, varchar } from 'drizzle-orm/pg-core';
4
- import toSnakeCase from 'to-snake-case';
5
- import { parentIDColumnMap } from './parentIDColumnMap.js';
6
- import { setColumnID } from './setColumnID.js';
7
- import { traverseFields } from './traverseFields.js';
8
- export const buildTable = ({ adapter, baseColumns = {}, baseExtraConfig = {}, disableNotNull, disableUnique = false, fields, rootRelationsToBuild, rootRelationships, rootTableIDColType, rootTableName: incomingRootTableName, tableName, timestamps, versions })=>{
9
- const isRoot = !incomingRootTableName;
10
- const rootTableName = incomingRootTableName || tableName;
11
- const columns = baseColumns;
12
- const indexes = {};
13
- const localesColumns = {};
14
- const localesIndexes = {};
15
- let localesTable;
16
- let textsTable;
17
- let numbersTable;
18
- // Relationships to the base collection
19
- const relationships = rootRelationships || new Set();
20
- let relationshipsTable;
21
- // Drizzle relations
22
- const relationsToBuild = new Map();
23
- const idColType = setColumnID({
24
- adapter,
25
- columns,
26
- fields
27
- });
28
- const { hasLocalizedField, hasLocalizedManyNumberField, hasLocalizedManyTextField, hasLocalizedRelationshipField, hasManyNumberField, hasManyTextField } = traverseFields({
29
- adapter,
30
- columns,
31
- disableNotNull,
32
- disableUnique,
33
- fields,
34
- indexes,
35
- localesColumns,
36
- localesIndexes,
37
- newTableName: tableName,
38
- parentTableName: tableName,
39
- relationsToBuild,
40
- relationships,
41
- rootRelationsToBuild: rootRelationsToBuild || relationsToBuild,
42
- rootTableIDColType: rootTableIDColType || idColType,
43
- rootTableName,
44
- versions
45
- });
46
- // split the relationsToBuild by localized and non-localized
47
- const localizedRelations = new Map();
48
- const nonLocalizedRelations = new Map();
49
- relationsToBuild.forEach(({ type, localized, target }, key)=>{
50
- const map = localized ? localizedRelations : nonLocalizedRelations;
51
- map.set(key, {
52
- type,
53
- target
54
- });
55
- });
56
- if (timestamps) {
57
- columns.createdAt = timestamp('created_at', {
58
- mode: 'string',
59
- precision: 3,
60
- withTimezone: true
61
- }).defaultNow().notNull();
62
- columns.updatedAt = timestamp('updated_at', {
63
- mode: 'string',
64
- precision: 3,
65
- withTimezone: true
66
- }).defaultNow().notNull();
67
- }
68
- const table = adapter.pgSchema.table(tableName, columns, (cols)=>{
69
- const extraConfig = Object.entries(baseExtraConfig).reduce((config, [key, func])=>{
70
- config[key] = func(cols);
71
- return config;
72
- }, {});
73
- const result = Object.entries(indexes).reduce((acc, [colName, func])=>{
74
- acc[colName] = func(cols);
75
- return acc;
76
- }, extraConfig);
77
- return result;
78
- });
79
- adapter.tables[tableName] = table;
80
- if (hasLocalizedField || localizedRelations.size) {
81
- const localeTableName = `${tableName}${adapter.localesSuffix}`;
82
- localesColumns.id = serial('id').primaryKey();
83
- localesColumns._locale = adapter.enums.enum__locales('_locale').notNull();
84
- localesColumns._parentID = parentIDColumnMap[idColType]('_parent_id').notNull();
85
- localesTable = adapter.pgSchema.table(localeTableName, localesColumns, (cols)=>{
86
- return Object.entries(localesIndexes).reduce((acc, [colName, func])=>{
87
- acc[colName] = func(cols);
88
- return acc;
89
- }, {
90
- _localeParent: unique(`${localeTableName}_locale_parent_id_unique`).on(cols._locale, cols._parentID),
91
- _parentIdFk: foreignKey({
92
- name: `${localeTableName}_parent_id_fk`,
93
- columns: [
94
- cols._parentID
95
- ],
96
- foreignColumns: [
97
- table.id
98
- ]
99
- }).onDelete('cascade')
100
- });
101
- });
102
- adapter.tables[localeTableName] = localesTable;
103
- adapter.relations[`relations_${localeTableName}`] = relations(localesTable, ({ many, one })=>{
104
- const result = {};
105
- result._parentID = one(table, {
106
- fields: [
107
- localesTable._parentID
108
- ],
109
- references: [
110
- table.id
111
- ],
112
- // name the relationship by what the many() relationName is
113
- relationName: '_locales'
114
- });
115
- localizedRelations.forEach(({ type, target }, key)=>{
116
- if (type === 'one') {
117
- result[key] = one(adapter.tables[target], {
118
- fields: [
119
- localesTable[key]
120
- ],
121
- references: [
122
- adapter.tables[target].id
123
- ],
124
- relationName: key
125
- });
126
- }
127
- if (type === 'many') {
128
- result[key] = many(adapter.tables[target], {
129
- relationName: key
130
- });
131
- }
132
- });
133
- return result;
134
- });
135
- }
136
- if (isRoot) {
137
- if (hasManyTextField) {
138
- const textsTableName = `${rootTableName}_texts`;
139
- const columns = {
140
- id: serial('id').primaryKey(),
141
- order: integer('order').notNull(),
142
- parent: parentIDColumnMap[idColType]('parent_id').notNull(),
143
- path: varchar('path').notNull(),
144
- text: varchar('text')
145
- };
146
- if (hasLocalizedManyTextField) {
147
- columns.locale = adapter.enums.enum__locales('locale');
148
- }
149
- textsTable = adapter.pgSchema.table(textsTableName, columns, (cols)=>{
150
- const config = {
151
- orderParentIdx: index(`${textsTableName}_order_parent_idx`).on(cols.order, cols.parent),
152
- parentFk: foreignKey({
153
- name: `${textsTableName}_parent_fk`,
154
- columns: [
155
- cols.parent
156
- ],
157
- foreignColumns: [
158
- table.id
159
- ]
160
- }).onDelete('cascade')
161
- };
162
- if (hasManyTextField === 'index') {
163
- config.text_idx = index(`${textsTableName}_text_idx`).on(cols.text);
164
- }
165
- if (hasLocalizedManyTextField) {
166
- config.localeParent = index(`${textsTableName}_locale_parent`).on(cols.locale, cols.parent);
167
- }
168
- return config;
169
- });
170
- adapter.tables[textsTableName] = textsTable;
171
- adapter.relations[`relations_${textsTableName}`] = relations(textsTable, ({ one })=>({
172
- parent: one(table, {
173
- fields: [
174
- textsTable.parent
175
- ],
176
- references: [
177
- table.id
178
- ],
179
- relationName: '_texts'
180
- })
181
- }));
182
- }
183
- if (hasManyNumberField) {
184
- const numbersTableName = `${rootTableName}_numbers`;
185
- const columns = {
186
- id: serial('id').primaryKey(),
187
- number: numeric('number'),
188
- order: integer('order').notNull(),
189
- parent: parentIDColumnMap[idColType]('parent_id').notNull(),
190
- path: varchar('path').notNull()
191
- };
192
- if (hasLocalizedManyNumberField) {
193
- columns.locale = adapter.enums.enum__locales('locale');
194
- }
195
- numbersTable = adapter.pgSchema.table(numbersTableName, columns, (cols)=>{
196
- const config = {
197
- orderParentIdx: index(`${numbersTableName}_order_parent_idx`).on(cols.order, cols.parent),
198
- parentFk: foreignKey({
199
- name: `${numbersTableName}_parent_fk`,
200
- columns: [
201
- cols.parent
202
- ],
203
- foreignColumns: [
204
- table.id
205
- ]
206
- }).onDelete('cascade')
207
- };
208
- if (hasManyNumberField === 'index') {
209
- config.numberIdx = index(`${numbersTableName}_number_idx`).on(cols.number);
210
- }
211
- if (hasLocalizedManyNumberField) {
212
- config.localeParent = index(`${numbersTableName}_locale_parent`).on(cols.locale, cols.parent);
213
- }
214
- return config;
215
- });
216
- adapter.tables[numbersTableName] = numbersTable;
217
- adapter.relations[`relations_${numbersTableName}`] = relations(numbersTable, ({ one })=>({
218
- parent: one(table, {
219
- fields: [
220
- numbersTable.parent
221
- ],
222
- references: [
223
- table.id
224
- ],
225
- relationName: '_numbers'
226
- })
227
- }));
228
- }
229
- if (relationships.size) {
230
- const relationshipColumns = {
231
- id: serial('id').primaryKey(),
232
- order: integer('order'),
233
- parent: parentIDColumnMap[idColType]('parent_id').notNull(),
234
- path: varchar('path').notNull()
235
- };
236
- if (hasLocalizedRelationshipField) {
237
- relationshipColumns.locale = adapter.enums.enum__locales('locale');
238
- }
239
- const relationExtraConfig = {};
240
- const relationshipsTableName = `${tableName}${adapter.relationshipsSuffix}`;
241
- relationships.forEach((relationTo)=>{
242
- const relationshipConfig = adapter.payload.collections[relationTo].config;
243
- const formattedRelationTo = createTableName({
244
- adapter,
245
- config: relationshipConfig,
246
- throwValidationError: true
247
- });
248
- let colType = adapter.idType === 'uuid' ? 'uuid' : 'integer';
249
- const relatedCollectionCustomIDType = adapter.payload.collections[relationshipConfig.slug]?.customIDType;
250
- if (relatedCollectionCustomIDType === 'number') colType = 'numeric';
251
- if (relatedCollectionCustomIDType === 'text') colType = 'varchar';
252
- relationshipColumns[`${relationTo}ID`] = parentIDColumnMap[colType](`${formattedRelationTo}_id`);
253
- relationExtraConfig[`${relationTo}IdFk`] = (cols)=>foreignKey({
254
- name: `${relationshipsTableName}_${toSnakeCase(relationTo)}_fk`,
255
- columns: [
256
- cols[`${relationTo}ID`]
257
- ],
258
- foreignColumns: [
259
- adapter.tables[formattedRelationTo].id
260
- ]
261
- }).onDelete('cascade');
262
- });
263
- relationshipsTable = adapter.pgSchema.table(relationshipsTableName, relationshipColumns, (cols)=>{
264
- const result = Object.entries(relationExtraConfig).reduce((config, [key, func])=>{
265
- config[key] = func(cols);
266
- return config;
267
- }, {
268
- order: index(`${relationshipsTableName}_order_idx`).on(cols.order),
269
- parentFk: foreignKey({
270
- name: `${relationshipsTableName}_parent_fk`,
271
- columns: [
272
- cols.parent
273
- ],
274
- foreignColumns: [
275
- table.id
276
- ]
277
- }).onDelete('cascade'),
278
- parentIdx: index(`${relationshipsTableName}_parent_idx`).on(cols.parent),
279
- pathIdx: index(`${relationshipsTableName}_path_idx`).on(cols.path)
280
- });
281
- if (hasLocalizedRelationshipField) {
282
- result.localeIdx = index(`${relationshipsTableName}_locale_idx`).on(cols.locale);
283
- }
284
- return result;
285
- });
286
- adapter.tables[relationshipsTableName] = relationshipsTable;
287
- adapter.relations[`relations_${relationshipsTableName}`] = relations(relationshipsTable, ({ one })=>{
288
- const result = {
289
- parent: one(table, {
290
- fields: [
291
- relationshipsTable.parent
292
- ],
293
- references: [
294
- table.id
295
- ],
296
- relationName: '_rels'
297
- })
298
- };
299
- relationships.forEach((relationTo)=>{
300
- const relatedTableName = createTableName({
301
- adapter,
302
- config: adapter.payload.collections[relationTo].config,
303
- throwValidationError: true
304
- });
305
- const idColumnName = `${relationTo}ID`;
306
- result[idColumnName] = one(adapter.tables[relatedTableName], {
307
- fields: [
308
- relationshipsTable[idColumnName]
309
- ],
310
- references: [
311
- adapter.tables[relatedTableName].id
312
- ],
313
- relationName: relationTo
314
- });
315
- });
316
- return result;
317
- });
318
- }
319
- }
320
- adapter.relations[`relations_${tableName}`] = relations(table, ({ many, one })=>{
321
- const result = {};
322
- nonLocalizedRelations.forEach(({ type, target }, key)=>{
323
- if (type === 'one') {
324
- result[key] = one(adapter.tables[target], {
325
- fields: [
326
- table[key]
327
- ],
328
- references: [
329
- adapter.tables[target].id
330
- ],
331
- relationName: key
332
- });
333
- }
334
- if (type === 'many') {
335
- result[key] = many(adapter.tables[target], {
336
- relationName: key
337
- });
338
- }
339
- });
340
- if (hasLocalizedField) {
341
- result._locales = many(localesTable, {
342
- relationName: '_locales'
343
- });
344
- }
345
- if (hasManyTextField) {
346
- result._texts = many(textsTable, {
347
- relationName: '_texts'
348
- });
349
- }
350
- if (hasManyNumberField) {
351
- result._numbers = many(numbersTable, {
352
- relationName: '_numbers'
353
- });
354
- }
355
- if (relationships.size && relationshipsTable) {
356
- result._rels = many(relationshipsTable, {
357
- relationName: '_rels'
358
- });
359
- }
360
- return result;
361
- });
362
- return {
363
- hasManyNumberField,
364
- hasManyTextField,
365
- relationsToBuild
366
- };
367
- };
368
-
369
- //# sourceMappingURL=build.js.map