@payloadcms/db-sqlite 3.0.0-canary.ef0a8d0 → 3.0.0-canary.f118ee4

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 (47) hide show
  1. package/README.md +1 -1
  2. package/dist/connect.d.ts.map +1 -1
  3. package/dist/connect.js +5 -0
  4. package/dist/connect.js.map +1 -1
  5. package/dist/createMigration.d.ts.map +1 -1
  6. package/dist/createMigration.js +7 -4
  7. package/dist/createMigration.js.map +1 -1
  8. package/dist/defaultSnapshot.d.ts +1 -1
  9. package/dist/defaultSnapshot.d.ts.map +1 -1
  10. package/dist/defaultSnapshot.js.map +1 -1
  11. package/dist/getMigrationTemplate.d.ts +1 -0
  12. package/dist/getMigrationTemplate.d.ts.map +1 -1
  13. package/dist/getMigrationTemplate.js +5 -4
  14. package/dist/getMigrationTemplate.js.map +1 -1
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +5 -6
  17. package/dist/index.js.map +1 -1
  18. package/dist/init.d.ts.map +1 -1
  19. package/dist/init.js +12 -1
  20. package/dist/init.js.map +1 -1
  21. package/dist/requireDrizzleKit.d.ts +3 -0
  22. package/dist/requireDrizzleKit.d.ts.map +1 -1
  23. package/dist/requireDrizzleKit.js +5 -2
  24. package/dist/requireDrizzleKit.js.map +1 -1
  25. package/dist/schema/build.d.ts +6 -14
  26. package/dist/schema/build.d.ts.map +1 -1
  27. package/dist/schema/build.js +1 -1
  28. package/dist/schema/build.js.map +1 -1
  29. package/dist/schema/createIndex.d.ts +2 -2
  30. package/dist/schema/createIndex.d.ts.map +1 -1
  31. package/dist/schema/createIndex.js +1 -1
  32. package/dist/schema/createIndex.js.map +1 -1
  33. package/dist/schema/traverseFields.d.ts.map +1 -1
  34. package/dist/schema/traverseFields.js +12 -11
  35. package/dist/schema/traverseFields.js.map +1 -1
  36. package/dist/schema/withDefault.d.ts +4 -0
  37. package/dist/schema/withDefault.d.ts.map +1 -0
  38. package/dist/schema/withDefault.js +10 -0
  39. package/dist/schema/withDefault.js.map +1 -0
  40. package/dist/types.d.ts +25 -23
  41. package/dist/types.d.ts.map +1 -1
  42. package/dist/types.js.map +1 -1
  43. package/package.json +7 -7
  44. package/dist/generateDrizzleJSON.d.ts +0 -3
  45. package/dist/generateDrizzleJSON.d.ts.map +0 -1
  46. package/dist/generateDrizzleJSON.js +0 -8
  47. package/dist/generateDrizzleJSON.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"createIndex.d.ts","sourceRoot":"","sources":["../../src/schema/createIndex.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,KAAK,eAAe,GAAG;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,WAAW,4CAA6C,eAAe,aACnE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,aAAa,CAAA;CAAE,mDAc9C,CAAA"}
1
+ {"version":3,"file":"createIndex.d.ts","sourceRoot":"","sources":["../../src/schema/createIndex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAI9D,KAAK,eAAe,GAAG;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,WAAW,4CAA6C,eAAe,aACnE;IAAE,CAAC,CAAC,EAAE,MAAM,GAAG,eAAe,CAAA;CAAE,mDAchD,CAAA"}
@@ -1,4 +1,4 @@
1
- /* eslint-disable no-param-reassign */ import { index, uniqueIndex } from 'drizzle-orm/sqlite-core';
1
+ import { index, uniqueIndex } from 'drizzle-orm/sqlite-core';
2
2
  export const createIndex = ({ name, columnName, tableName, unique })=>{
3
3
  return (table)=>{
4
4
  let columns;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schema/createIndex.ts"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport { index, uniqueIndex } from 'drizzle-orm/sqlite-core'\n\nimport type { GenericColumn } from '../types.js'\n\ntype CreateIndexArgs = {\n columnName: string\n name: string | string[]\n tableName: string\n unique?: boolean\n}\n\nexport const createIndex = ({ name, columnName, tableName, unique }: CreateIndexArgs) => {\n return (table: { [x: string]: GenericColumn }) => {\n let columns\n if (Array.isArray(name)) {\n columns = name\n .map((columnName) => table[columnName])\n // exclude fields were included in compound indexes but do not exist on the table\n .filter((col) => typeof col !== 'undefined')\n } else {\n columns = [table[name]]\n }\n if (unique)\n return uniqueIndex(`${tableName}_${columnName}_idx`).on(columns[0], ...columns.slice(1))\n return index(`${tableName}_${columnName}_idx`).on(columns[0], ...columns.slice(1))\n }\n}\n"],"names":["index","uniqueIndex","createIndex","name","columnName","tableName","unique","table","columns","Array","isArray","map","filter","col","on","slice"],"mappings":"AAAA,oCAAoC,GACpC,SAASA,KAAK,EAAEC,WAAW,QAAQ,0BAAyB;AAW5D,OAAO,MAAMC,cAAc,CAAC,EAAEC,IAAI,EAAEC,UAAU,EAAEC,SAAS,EAAEC,MAAM,EAAmB;IAClF,OAAO,CAACC;QACN,IAAIC;QACJ,IAAIC,MAAMC,OAAO,CAACP,OAAO;YACvBK,UAAUL,KACPQ,GAAG,CAAC,CAACP,aAAeG,KAAK,CAACH,WAAW,CACtC,iFAAiF;aAChFQ,MAAM,CAAC,CAACC,MAAQ,OAAOA,QAAQ;QACpC,OAAO;YACLL,UAAU;gBAACD,KAAK,CAACJ,KAAK;aAAC;QACzB;QACA,IAAIG,QACF,OAAOL,YAAY,CAAC,EAAEI,UAAU,CAAC,EAAED,WAAW,IAAI,CAAC,EAAEU,EAAE,CAACN,OAAO,CAAC,EAAE,KAAKA,QAAQO,KAAK,CAAC;QACvF,OAAOf,MAAM,CAAC,EAAEK,UAAU,CAAC,EAAED,WAAW,IAAI,CAAC,EAAEU,EAAE,CAACN,OAAO,CAAC,EAAE,KAAKA,QAAQO,KAAK,CAAC;IACjF;AACF,EAAC"}
1
+ {"version":3,"sources":["../../src/schema/createIndex.ts"],"sourcesContent":["import type { AnySQLiteColumn } from 'drizzle-orm/sqlite-core'\n\nimport { index, uniqueIndex } from 'drizzle-orm/sqlite-core'\n\ntype CreateIndexArgs = {\n columnName: string\n name: string | string[]\n tableName: string\n unique?: boolean\n}\n\nexport const createIndex = ({ name, columnName, tableName, unique }: CreateIndexArgs) => {\n return (table: { [x: string]: AnySQLiteColumn }) => {\n let columns\n if (Array.isArray(name)) {\n columns = name\n .map((columnName) => table[columnName])\n // exclude fields were included in compound indexes but do not exist on the table\n .filter((col) => typeof col !== 'undefined')\n } else {\n columns = [table[name]]\n }\n if (unique)\n return uniqueIndex(`${tableName}_${columnName}_idx`).on(columns[0], ...columns.slice(1))\n return index(`${tableName}_${columnName}_idx`).on(columns[0], ...columns.slice(1))\n }\n}\n"],"names":["index","uniqueIndex","createIndex","name","columnName","tableName","unique","table","columns","Array","isArray","map","filter","col","on","slice"],"mappings":"AAEA,SAASA,KAAK,EAAEC,WAAW,QAAQ,0BAAyB;AAS5D,OAAO,MAAMC,cAAc,CAAC,EAAEC,IAAI,EAAEC,UAAU,EAAEC,SAAS,EAAEC,MAAM,EAAmB;IAClF,OAAO,CAACC;QACN,IAAIC;QACJ,IAAIC,MAAMC,OAAO,CAACP,OAAO;YACvBK,UAAUL,KACPQ,GAAG,CAAC,CAACP,aAAeG,KAAK,CAACH,WAAW,CACtC,iFAAiF;aAChFQ,MAAM,CAAC,CAACC,MAAQ,OAAOA,QAAQ;QACpC,OAAO;YACLL,UAAU;gBAACD,KAAK,CAACJ,KAAK;aAAC;QACzB;QACA,IAAIG,QACF,OAAOL,YAAY,CAAC,EAAEI,UAAU,CAAC,EAAED,WAAW,IAAI,CAAC,EAAEU,EAAE,CAACN,OAAO,CAAC,EAAE,KAAKA,QAAQO,KAAK,CAAC;QACvF,OAAOf,MAAM,CAAC,EAAEK,UAAU,CAAC,EAAED,WAAW,IAAI,CAAC,EAAEU,EAAE,CAACN,OAAO,CAAC,EAAE,KAAKA,QAAQO,KAAK,CAAC;IACjF;AACF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../src/schema/traverseFields.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAChF,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAsBhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AACxE,OAAO,KAAK,EAAmB,WAAW,EAAE,MAAM,YAAY,CAAA;AAO9D,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,aAAa,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;IAC5C,cAAc,EAAE,OAAO,CAAA;IACvB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE,CAAA;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,YAAY,CAAC,CAAA;IAC/D,OAAO,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAA;IAC9B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;IACnD,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,YAAY,CAAC,CAAA;IACtE,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;IACvB,gBAAgB,EAAE,WAAW,CAAA;IAC7B,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1B,oBAAoB,CAAC,EAAE,WAAW,CAAA;IAClC,kBAAkB,EAAE,MAAM,CAAA;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,KAAK,MAAM,GAAG;IACZ,iBAAiB,EAAE,OAAO,CAAA;IAC1B,2BAA2B,EAAE,OAAO,CAAA;IACpC,yBAAyB,EAAE,OAAO,CAAA;IAClC,6BAA6B,EAAE,OAAO,CAAA;IACtC,kBAAkB,EAAE,OAAO,GAAG,OAAO,CAAA;IACrC,gBAAgB,EAAE,OAAO,GAAG,OAAO,CAAA;CACpC,CAAA;AAED,eAAO,MAAM,cAAc,iSAqBxB,IAAI,KAAG,MA4rBT,CAAA"}
1
+ {"version":3,"file":"traverseFields.d.ts","sourceRoot":"","sources":["../../src/schema/traverseFields.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAChF,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAsBhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AACxE,OAAO,KAAK,EAAmB,WAAW,EAAE,MAAM,YAAY,CAAA;AAQ9D,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,aAAa,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;IAC5C,cAAc,EAAE,OAAO,CAAA;IACvB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,CAAC,KAAK,GAAG,UAAU,CAAC,EAAE,CAAA;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,YAAY,CAAC,CAAA;IAC/D,OAAO,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAA;IAC9B,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;IACnD,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,YAAY,CAAC,CAAA;IACtE,YAAY,EAAE,MAAM,CAAA;IACpB,eAAe,EAAE,MAAM,CAAA;IACvB,gBAAgB,EAAE,WAAW,CAAA;IAC7B,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1B,oBAAoB,CAAC,EAAE,WAAW,CAAA;IAClC,kBAAkB,EAAE,MAAM,CAAA;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,KAAK,MAAM,GAAG;IACZ,iBAAiB,EAAE,OAAO,CAAA;IAC1B,2BAA2B,EAAE,OAAO,CAAA;IACpC,yBAAyB,EAAE,OAAO,CAAA;IAClC,6BAA6B,EAAE,OAAO,CAAA;IACtC,kBAAkB,EAAE,OAAO,GAAG,OAAO,CAAA;IACrC,gBAAgB,EAAE,OAAO,GAAG,OAAO,CAAA;CACpC,CAAA;AAED,eAAO,MAAM,cAAc,iSAqBxB,IAAI,KAAG,MA4rBT,CAAA"}
@@ -1,4 +1,4 @@
1
- /* eslint-disable no-param-reassign */ import { createTableName, hasLocalesTable, validateExistingBlockIsIdentical } from '@payloadcms/drizzle';
1
+ import { createTableName, hasLocalesTable, validateExistingBlockIsIdentical } from '@payloadcms/drizzle';
2
2
  import { relations } from 'drizzle-orm';
3
3
  import { SQLiteIntegerBuilder, SQLiteNumericBuilder, SQLiteTextBuilder, foreignKey, index, integer, numeric, text } from 'drizzle-orm/sqlite-core';
4
4
  import { InvalidConfiguration } from 'payload';
@@ -8,6 +8,7 @@ import { buildTable } from './build.js';
8
8
  import { createIndex } from './createIndex.js';
9
9
  import { getIDColumn } from './getIDColumn.js';
10
10
  import { idToUUID } from './idToUUID.js';
11
+ import { withDefault } from './withDefault.js';
11
12
  export const traverseFields = ({ adapter, columnPrefix, columns, disableNotNull, disableUnique = false, fieldPrefix, fields, forceLocalized, indexes, locales, localesColumns, localesIndexes, newTableName, parentTableName, relationsToBuild, relationships, rootRelationsToBuild, rootTableIDColType, rootTableName, versions })=>{
12
13
  let hasLocalizedField = false;
13
14
  let hasLocalizedRelationshipField = false;
@@ -75,7 +76,7 @@ export const traverseFields = ({ adapter, columnPrefix, columns, disableNotNull,
75
76
  throw new InvalidConfiguration('Unique is not supported in SQLite for hasMany text fields.');
76
77
  }
77
78
  } else {
78
- targetTable[fieldName] = text(columnName);
79
+ targetTable[fieldName] = withDefault(text(columnName), field);
79
80
  }
80
81
  break;
81
82
  }
@@ -83,7 +84,7 @@ export const traverseFields = ({ adapter, columnPrefix, columns, disableNotNull,
83
84
  case 'code':
84
85
  case 'textarea':
85
86
  {
86
- targetTable[fieldName] = text(columnName);
87
+ targetTable[fieldName] = withDefault(text(columnName), field);
87
88
  break;
88
89
  }
89
90
  case 'number':
@@ -101,21 +102,21 @@ export const traverseFields = ({ adapter, columnPrefix, columns, disableNotNull,
101
102
  throw new InvalidConfiguration('Unique is not supported in Postgres for hasMany number fields.');
102
103
  }
103
104
  } else {
104
- targetTable[fieldName] = numeric(columnName);
105
+ targetTable[fieldName] = withDefault(numeric(columnName), field);
105
106
  }
106
107
  break;
107
108
  }
108
109
  case 'richText':
109
110
  case 'json':
110
111
  {
111
- targetTable[fieldName] = text(columnName, {
112
+ targetTable[fieldName] = withDefault(text(columnName, {
112
113
  mode: 'json'
113
- });
114
+ }), field);
114
115
  break;
115
116
  }
116
117
  case 'date':
117
118
  {
118
- targetTable[fieldName] = text(columnName);
119
+ targetTable[fieldName] = withDefault(text(columnName), field);
119
120
  break;
120
121
  }
121
122
  case 'point':
@@ -202,17 +203,17 @@ export const traverseFields = ({ adapter, columnPrefix, columns, disableNotNull,
202
203
  })
203
204
  }));
204
205
  } else {
205
- targetTable[fieldName] = text(fieldName, {
206
+ targetTable[fieldName] = withDefault(text(fieldName, {
206
207
  enum: options
207
- });
208
+ }), field);
208
209
  }
209
210
  break;
210
211
  }
211
212
  case 'checkbox':
212
213
  {
213
- targetTable[fieldName] = integer(columnName, {
214
+ targetTable[fieldName] = withDefault(integer(columnName, {
214
215
  mode: 'boolean'
215
- });
216
+ }), field);
216
217
  break;
217
218
  }
218
219
  case 'array':
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schema/traverseFields.ts"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport type { Relation } from 'drizzle-orm'\nimport type { IndexBuilder, SQLiteColumnBuilder } from 'drizzle-orm/sqlite-core'\nimport type { Field, TabAsField } from 'payload'\n\nimport {\n createTableName,\n hasLocalesTable,\n validateExistingBlockIsIdentical,\n} from '@payloadcms/drizzle'\nimport { relations } from 'drizzle-orm'\nimport {\n SQLiteIntegerBuilder,\n SQLiteNumericBuilder,\n SQLiteTextBuilder,\n foreignKey,\n index,\n integer,\n numeric,\n text,\n} from 'drizzle-orm/sqlite-core'\nimport { InvalidConfiguration } from 'payload'\nimport { fieldAffectsData, optionIsObject } from 'payload/shared'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { GenericColumns, IDType, SQLiteAdapter } from '../types.js'\nimport type { BaseExtraConfig, RelationMap } from './build.js'\n\nimport { buildTable } from './build.js'\nimport { createIndex } from './createIndex.js'\nimport { getIDColumn } from './getIDColumn.js'\nimport { idToUUID } from './idToUUID.js'\n\ntype Args = {\n adapter: SQLiteAdapter\n columnPrefix?: string\n columns: Record<string, SQLiteColumnBuilder>\n disableNotNull: boolean\n disableUnique?: boolean\n fieldPrefix?: string\n fields: (Field | TabAsField)[]\n forceLocalized?: boolean\n indexes: Record<string, (cols: GenericColumns) => IndexBuilder>\n locales: [string, ...string[]]\n localesColumns: Record<string, SQLiteColumnBuilder>\n localesIndexes: Record<string, (cols: GenericColumns) => IndexBuilder>\n newTableName: string\n parentTableName: string\n relationsToBuild: RelationMap\n relationships: Set<string>\n rootRelationsToBuild?: RelationMap\n rootTableIDColType: IDType\n rootTableName: string\n versions: boolean\n}\n\ntype Result = {\n hasLocalizedField: boolean\n hasLocalizedManyNumberField: boolean\n hasLocalizedManyTextField: boolean\n hasLocalizedRelationshipField: boolean\n hasManyNumberField: 'index' | boolean\n hasManyTextField: 'index' | boolean\n}\n\nexport const traverseFields = ({\n adapter,\n columnPrefix,\n columns,\n disableNotNull,\n disableUnique = false,\n fieldPrefix,\n fields,\n forceLocalized,\n indexes,\n locales,\n localesColumns,\n localesIndexes,\n newTableName,\n parentTableName,\n relationsToBuild,\n relationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n versions,\n}: Args): Result => {\n let hasLocalizedField = false\n let hasLocalizedRelationshipField = false\n let hasManyTextField: 'index' | boolean = false\n let hasLocalizedManyTextField = false\n let hasManyNumberField: 'index' | boolean = false\n let hasLocalizedManyNumberField = false\n\n let parentIDColType: IDType = 'integer'\n if (columns.id instanceof SQLiteIntegerBuilder) parentIDColType = 'integer'\n if (columns.id instanceof SQLiteNumericBuilder) parentIDColType = 'numeric'\n if (columns.id instanceof SQLiteTextBuilder) parentIDColType = 'text'\n\n fields.forEach((field) => {\n if ('name' in field && field.name === 'id') return\n let columnName: string\n let fieldName: string\n\n let targetTable = columns\n let targetIndexes = indexes\n\n if (fieldAffectsData(field)) {\n columnName = `${columnPrefix || ''}${field.name[0] === '_' ? '_' : ''}${toSnakeCase(\n field.name,\n )}`\n fieldName = `${fieldPrefix?.replace('.', '_') || ''}${field.name}`\n\n // If field is localized,\n // add the column to the locale table instead of main table\n if (\n adapter.payload.config.localization &&\n (field.localized || forceLocalized) &&\n field.type !== 'array' &&\n field.type !== 'blocks' &&\n (('hasMany' in field && field.hasMany !== true) || !('hasMany' in field))\n ) {\n hasLocalizedField = true\n targetTable = localesColumns\n targetIndexes = localesIndexes\n }\n\n if (\n (field.unique || field.index) &&\n !['array', 'blocks', 'group', 'point', 'relationship', 'upload'].includes(field.type) &&\n !('hasMany' in field && field.hasMany === true)\n ) {\n const unique = disableUnique !== true && field.unique\n if (unique) {\n const constraintValue = `${fieldPrefix || ''}${field.name}`\n if (!adapter.fieldConstraints?.[rootTableName]) {\n adapter.fieldConstraints[rootTableName] = {}\n }\n adapter.fieldConstraints[rootTableName][`${columnName}_idx`] = constraintValue\n }\n targetIndexes[`${newTableName}_${field.name}Idx`] = createIndex({\n name: fieldName,\n columnName,\n tableName: newTableName,\n unique,\n })\n }\n }\n\n switch (field.type) {\n case 'text': {\n if (field.hasMany) {\n if (field.localized) {\n hasLocalizedManyTextField = true\n }\n\n if (field.index) {\n hasManyTextField = 'index'\n } else if (!hasManyTextField) {\n hasManyTextField = true\n }\n\n if (field.unique) {\n throw new InvalidConfiguration(\n 'Unique is not supported in SQLite for hasMany text fields.',\n )\n }\n } else {\n targetTable[fieldName] = text(columnName)\n }\n break\n }\n case 'email':\n case 'code':\n case 'textarea': {\n targetTable[fieldName] = text(columnName)\n break\n }\n\n case 'number': {\n if (field.hasMany) {\n if (field.localized) {\n hasLocalizedManyNumberField = true\n }\n\n if (field.index) {\n hasManyNumberField = 'index'\n } else if (!hasManyNumberField) {\n hasManyNumberField = true\n }\n\n if (field.unique) {\n throw new InvalidConfiguration(\n 'Unique is not supported in Postgres for hasMany number fields.',\n )\n }\n } else {\n targetTable[fieldName] = numeric(columnName)\n }\n break\n }\n\n case 'richText':\n case 'json': {\n targetTable[fieldName] = text(columnName, { mode: 'json' })\n break\n }\n\n case 'date': {\n targetTable[fieldName] = text(columnName)\n break\n }\n\n case 'point': {\n break\n }\n\n case 'radio':\n case 'select': {\n const options = field.options.map((option) => {\n if (optionIsObject(option)) {\n return option.value\n }\n\n return option\n }) as [string, ...string[]]\n\n if (field.type === 'select' && field.hasMany) {\n const selectTableName = createTableName({\n adapter,\n config: field,\n parentTableName: newTableName,\n prefix: `${newTableName}_`,\n versionsCustomName: versions,\n })\n const baseColumns: Record<string, SQLiteColumnBuilder> = {\n order: integer('order').notNull(),\n parent: getIDColumn({\n name: 'parent_id',\n type: parentIDColType,\n notNull: true,\n primaryKey: false,\n }),\n value: text('value', { enum: options }),\n }\n\n const baseExtraConfig: BaseExtraConfig = {\n orderIdx: (cols) => index(`${selectTableName}_order_idx`).on(cols.order),\n parentFk: (cols) =>\n foreignKey({\n name: `${selectTableName}_parent_fk`,\n columns: [cols.parent],\n foreignColumns: [adapter.tables[parentTableName].id],\n }).onDelete('cascade'),\n parentIdx: (cols) => index(`${selectTableName}_parent_idx`).on(cols.parent),\n }\n\n if (field.localized) {\n baseColumns.locale = text('locale', { enum: locales }).notNull()\n baseExtraConfig.localeIdx = (cols) =>\n index(`${selectTableName}_locale_idx`).on(cols.locale)\n }\n\n if (field.index) {\n baseExtraConfig.value = (cols) => index(`${selectTableName}_value_idx`).on(cols.value)\n }\n\n buildTable({\n adapter,\n baseColumns,\n baseExtraConfig,\n disableNotNull,\n disableUnique,\n fields: [],\n rootTableName,\n tableName: selectTableName,\n versions,\n })\n\n relationsToBuild.set(fieldName, {\n type: 'many',\n // selects have their own localized table, independent of the base table.\n localized: false,\n target: selectTableName,\n })\n\n adapter.relations[`relations_${selectTableName}`] = relations(\n adapter.tables[selectTableName],\n ({ one }) => ({\n parent: one(adapter.tables[parentTableName], {\n fields: [adapter.tables[selectTableName].parent],\n references: [adapter.tables[parentTableName].id],\n relationName: fieldName,\n }),\n }),\n )\n } else {\n targetTable[fieldName] = text(fieldName, { enum: options })\n }\n break\n }\n\n case 'checkbox': {\n targetTable[fieldName] = integer(columnName, { mode: 'boolean' })\n break\n }\n\n case 'array': {\n const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull\n\n const arrayTableName = createTableName({\n adapter,\n config: field,\n parentTableName: newTableName,\n prefix: `${newTableName}_`,\n versionsCustomName: versions,\n })\n\n const baseColumns: Record<string, SQLiteColumnBuilder> = {\n _order: integer('_order').notNull(),\n _parentID: getIDColumn({\n name: '_parent_id',\n type: parentIDColType,\n notNull: true,\n primaryKey: false,\n }),\n }\n\n const baseExtraConfig: BaseExtraConfig = {\n _orderIdx: (cols) => index(`${arrayTableName}_order_idx`).on(cols._order),\n _parentIDFk: (cols) =>\n foreignKey({\n name: `${arrayTableName}_parent_id_fk`,\n columns: [cols['_parentID']],\n foreignColumns: [adapter.tables[parentTableName].id],\n }).onDelete('cascade'),\n _parentIDIdx: (cols) => index(`${arrayTableName}_parent_id_idx`).on(cols._parentID),\n }\n\n if (field.localized && adapter.payload.config.localization) {\n baseColumns._locale = text('_locale', { enum: locales }).notNull()\n baseExtraConfig._localeIdx = (cols) =>\n index(`${arrayTableName}_locale_idx`).on(cols._locale)\n }\n\n const {\n hasManyNumberField: subHasManyNumberField,\n hasManyTextField: subHasManyTextField,\n relationsToBuild: subRelationsToBuild,\n } = buildTable({\n adapter,\n baseColumns,\n baseExtraConfig,\n disableNotNull: disableNotNullFromHere,\n disableUnique,\n fields: disableUnique ? idToUUID(field.fields) : field.fields,\n rootRelationsToBuild,\n rootRelationships: relationships,\n rootTableIDColType,\n rootTableName,\n tableName: arrayTableName,\n versions,\n })\n\n if (subHasManyTextField) {\n if (!hasManyTextField || subHasManyTextField === 'index')\n hasManyTextField = subHasManyTextField\n }\n if (subHasManyNumberField) {\n if (!hasManyNumberField || subHasManyNumberField === 'index')\n hasManyNumberField = subHasManyNumberField\n }\n\n relationsToBuild.set(fieldName, {\n type: 'many',\n // arrays have their own localized table, independent of the base table.\n localized: false,\n target: arrayTableName,\n })\n\n adapter.relations[`relations_${arrayTableName}`] = relations(\n adapter.tables[arrayTableName],\n ({ many, one }) => {\n const result: Record<string, Relation<string>> = {\n _parentID: one(adapter.tables[parentTableName], {\n fields: [adapter.tables[arrayTableName]._parentID],\n references: [adapter.tables[parentTableName].id],\n relationName: fieldName,\n }),\n }\n\n if (hasLocalesTable(field.fields)) {\n result._locales = many(adapter.tables[`${arrayTableName}${adapter.localesSuffix}`], {\n relationName: '_locales',\n })\n }\n\n subRelationsToBuild.forEach(({ type, localized, target }, key) => {\n if (type === 'one') {\n const arrayWithLocalized = localized\n ? `${arrayTableName}${adapter.localesSuffix}`\n : arrayTableName\n result[key] = one(adapter.tables[target], {\n fields: [adapter.tables[arrayWithLocalized][key]],\n references: [adapter.tables[target].id],\n relationName: key,\n })\n }\n if (type === 'many') {\n result[key] = many(adapter.tables[target], { relationName: key })\n }\n })\n\n return result\n },\n )\n\n break\n }\n\n case 'blocks': {\n const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull\n\n field.blocks.forEach((block) => {\n const blockTableName = createTableName({\n adapter,\n config: block,\n parentTableName: rootTableName,\n prefix: `${rootTableName}_blocks_`,\n versionsCustomName: versions,\n })\n if (!adapter.tables[blockTableName]) {\n const baseColumns: Record<string, SQLiteColumnBuilder> = {\n _order: integer('_order').notNull(),\n _parentID: getIDColumn({\n name: '_parent_id',\n type: rootTableIDColType,\n notNull: true,\n primaryKey: false,\n }),\n _path: text('_path').notNull(),\n }\n\n const baseExtraConfig: BaseExtraConfig = {\n _orderIdx: (cols) => index(`${blockTableName}_order_idx`).on(cols._order),\n _parentIDIdx: (cols) => index(`${blockTableName}_parent_id_idx`).on(cols._parentID),\n _parentIdFk: (cols) =>\n foreignKey({\n name: `${blockTableName}_parent_id_fk`,\n columns: [cols._parentID],\n foreignColumns: [adapter.tables[rootTableName].id],\n }).onDelete('cascade'),\n _pathIdx: (cols) => index(`${blockTableName}_path_idx`).on(cols._path),\n }\n\n if (field.localized && adapter.payload.config.localization) {\n baseColumns._locale = text('_locale', { enum: locales }).notNull()\n baseExtraConfig._localeIdx = (cols) =>\n index(`${blockTableName}_locale_idx`).on(cols._locale)\n }\n\n const {\n hasManyNumberField: subHasManyNumberField,\n hasManyTextField: subHasManyTextField,\n relationsToBuild: subRelationsToBuild,\n } = buildTable({\n adapter,\n baseColumns,\n baseExtraConfig,\n disableNotNull: disableNotNullFromHere,\n disableUnique,\n fields: disableUnique ? idToUUID(block.fields) : block.fields,\n rootRelationsToBuild,\n rootRelationships: relationships,\n rootTableIDColType,\n rootTableName,\n tableName: blockTableName,\n versions,\n })\n\n if (subHasManyTextField) {\n if (!hasManyTextField || subHasManyTextField === 'index')\n hasManyTextField = subHasManyTextField\n }\n\n if (subHasManyNumberField) {\n if (!hasManyNumberField || subHasManyNumberField === 'index')\n hasManyNumberField = subHasManyNumberField\n }\n\n adapter.relations[`relations_${blockTableName}`] = relations(\n adapter.tables[blockTableName],\n ({ many, one }) => {\n const result: Record<string, Relation<string>> = {\n _parentID: one(adapter.tables[rootTableName], {\n fields: [adapter.tables[blockTableName]._parentID],\n references: [adapter.tables[rootTableName].id],\n relationName: `_blocks_${block.slug}`,\n }),\n }\n\n if (hasLocalesTable(block.fields)) {\n result._locales = many(\n adapter.tables[`${blockTableName}${adapter.localesSuffix}`],\n { relationName: '_locales' },\n )\n }\n\n subRelationsToBuild.forEach(({ type, localized, target }, key) => {\n if (type === 'one') {\n const blockWithLocalized = localized\n ? `${blockTableName}${adapter.localesSuffix}`\n : blockTableName\n result[key] = one(adapter.tables[target], {\n fields: [adapter.tables[blockWithLocalized][key]],\n references: [adapter.tables[target].id],\n relationName: key,\n })\n }\n if (type === 'many') {\n result[key] = many(adapter.tables[target], { relationName: key })\n }\n })\n\n return result\n },\n )\n } else if (process.env.NODE_ENV !== 'production' && !versions) {\n validateExistingBlockIsIdentical({\n block,\n localized: field.localized,\n rootTableName,\n table: adapter.tables[blockTableName],\n tableLocales: adapter.tables[`${blockTableName}${adapter.localesSuffix}`],\n })\n }\n // blocks relationships are defined from the collection or globals table down to the block, bypassing any subBlocks\n rootRelationsToBuild.set(`_blocks_${block.slug}`, {\n type: 'many',\n // blocks are not localized on the parent table\n localized: false,\n target: blockTableName,\n })\n })\n\n break\n }\n\n case 'tab':\n case 'group': {\n if (!('name' in field)) {\n const {\n hasLocalizedField: groupHasLocalizedField,\n hasLocalizedManyNumberField: groupHasLocalizedManyNumberField,\n hasLocalizedManyTextField: groupHasLocalizedManyTextField,\n hasLocalizedRelationshipField: groupHasLocalizedRelationshipField,\n hasManyNumberField: groupHasManyNumberField,\n hasManyTextField: groupHasManyTextField,\n } = traverseFields({\n adapter,\n columnPrefix,\n columns,\n disableNotNull,\n disableUnique,\n fieldPrefix,\n fields: field.fields,\n forceLocalized,\n indexes,\n locales,\n localesColumns,\n localesIndexes,\n newTableName,\n parentTableName,\n relationsToBuild,\n relationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n versions,\n })\n\n if (groupHasLocalizedField) hasLocalizedField = true\n if (groupHasLocalizedRelationshipField) hasLocalizedRelationshipField = true\n if (groupHasManyTextField) hasManyTextField = true\n if (groupHasLocalizedManyTextField) hasLocalizedManyTextField = true\n if (groupHasManyNumberField) hasManyNumberField = true\n if (groupHasLocalizedManyNumberField) hasLocalizedManyNumberField = true\n break\n }\n\n const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull\n\n const {\n hasLocalizedField: groupHasLocalizedField,\n hasLocalizedManyNumberField: groupHasLocalizedManyNumberField,\n hasLocalizedManyTextField: groupHasLocalizedManyTextField,\n hasLocalizedRelationshipField: groupHasLocalizedRelationshipField,\n hasManyNumberField: groupHasManyNumberField,\n hasManyTextField: groupHasManyTextField,\n } = traverseFields({\n adapter,\n columnPrefix: `${columnName}_`,\n columns,\n disableNotNull: disableNotNullFromHere,\n disableUnique,\n fieldPrefix: `${fieldName}.`,\n fields: field.fields,\n forceLocalized: field.localized,\n indexes,\n locales,\n localesColumns,\n localesIndexes,\n newTableName: `${parentTableName}_${columnName}`,\n parentTableName,\n relationsToBuild,\n relationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n versions,\n })\n\n if (groupHasLocalizedField) hasLocalizedField = true\n if (groupHasLocalizedRelationshipField) hasLocalizedRelationshipField = true\n if (groupHasManyTextField) hasManyTextField = true\n if (groupHasLocalizedManyTextField) hasLocalizedManyTextField = true\n if (groupHasManyNumberField) hasManyNumberField = true\n if (groupHasLocalizedManyNumberField) hasLocalizedManyNumberField = true\n break\n }\n\n case 'tabs': {\n const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull\n\n const {\n hasLocalizedField: tabHasLocalizedField,\n hasLocalizedManyNumberField: tabHasLocalizedManyNumberField,\n hasLocalizedManyTextField: tabHasLocalizedManyTextField,\n hasLocalizedRelationshipField: tabHasLocalizedRelationshipField,\n hasManyNumberField: tabHasManyNumberField,\n hasManyTextField: tabHasManyTextField,\n } = traverseFields({\n adapter,\n columnPrefix,\n columns,\n disableNotNull: disableNotNullFromHere,\n disableUnique,\n fieldPrefix,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n forceLocalized,\n indexes,\n locales,\n localesColumns,\n localesIndexes,\n newTableName,\n parentTableName,\n relationsToBuild,\n relationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n versions,\n })\n\n if (tabHasLocalizedField) hasLocalizedField = true\n if (tabHasLocalizedRelationshipField) hasLocalizedRelationshipField = true\n if (tabHasManyTextField) hasManyTextField = true\n if (tabHasLocalizedManyTextField) hasLocalizedManyTextField = true\n if (tabHasManyNumberField) hasManyNumberField = true\n if (tabHasLocalizedManyNumberField) hasLocalizedManyNumberField = true\n break\n }\n\n case 'row':\n case 'collapsible': {\n const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull\n const {\n hasLocalizedField: rowHasLocalizedField,\n hasLocalizedManyNumberField: rowHasLocalizedManyNumberField,\n hasLocalizedManyTextField: rowHasLocalizedManyTextField,\n hasLocalizedRelationshipField: rowHasLocalizedRelationshipField,\n hasManyNumberField: rowHasManyNumberField,\n hasManyTextField: rowHasManyTextField,\n } = traverseFields({\n adapter,\n columnPrefix,\n columns,\n disableNotNull: disableNotNullFromHere,\n disableUnique,\n fieldPrefix,\n fields: field.fields,\n forceLocalized,\n indexes,\n locales,\n localesColumns,\n localesIndexes,\n newTableName,\n parentTableName,\n relationsToBuild,\n relationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n versions,\n })\n\n if (rowHasLocalizedField) hasLocalizedField = true\n if (rowHasLocalizedRelationshipField) hasLocalizedRelationshipField = true\n if (rowHasManyTextField) hasManyTextField = true\n if (rowHasLocalizedManyTextField) hasLocalizedManyTextField = true\n if (rowHasManyNumberField) hasManyNumberField = true\n if (rowHasLocalizedManyNumberField) hasLocalizedManyNumberField = true\n break\n }\n\n case 'relationship':\n case 'upload':\n if (Array.isArray(field.relationTo)) {\n field.relationTo.forEach((relation) => relationships.add(relation))\n } else if (field.type === 'relationship' && field.hasMany) {\n relationships.add(field.relationTo)\n } else {\n // simple relationships get a column on the targetTable with a foreign key to the relationTo table\n const relationshipConfig = adapter.payload.collections[field.relationTo].config\n\n const tableName = adapter.tableNameMap.get(toSnakeCase(field.relationTo))\n\n // get the id type of the related collection\n let colType: IDType = 'integer'\n const relatedCollectionCustomID = relationshipConfig.fields.find(\n (field) => fieldAffectsData(field) && field.name === 'id',\n )\n if (relatedCollectionCustomID?.type === 'number') colType = 'numeric'\n if (relatedCollectionCustomID?.type === 'text') colType = 'text'\n\n // make the foreign key column for relationship using the correct id column type\n targetTable[fieldName] = getIDColumn({\n name: `${columnName}_id`,\n type: colType,\n primaryKey: false,\n }).references(() => adapter.tables[tableName].id, { onDelete: 'set null' })\n\n // add relationship to table\n relationsToBuild.set(fieldName, {\n type: 'one',\n localized: adapter.payload.config.localization && field.localized,\n target: tableName,\n })\n\n // add notNull when not required\n if (!disableNotNull && field.required && !field.admin?.condition) {\n targetTable[fieldName].notNull()\n }\n break\n }\n if (adapter.payload.config.localization && field.localized) {\n hasLocalizedRelationshipField = true\n }\n\n break\n\n default:\n break\n }\n\n const condition = field.admin && field.admin.condition\n\n if (\n !disableNotNull &&\n targetTable[fieldName] &&\n 'required' in field &&\n field.required &&\n !condition\n ) {\n targetTable[fieldName].notNull()\n }\n })\n\n return {\n hasLocalizedField,\n hasLocalizedManyNumberField,\n hasLocalizedManyTextField,\n hasLocalizedRelationshipField,\n hasManyNumberField,\n hasManyTextField,\n }\n}\n"],"names":["createTableName","hasLocalesTable","validateExistingBlockIsIdentical","relations","SQLiteIntegerBuilder","SQLiteNumericBuilder","SQLiteTextBuilder","foreignKey","index","integer","numeric","text","InvalidConfiguration","fieldAffectsData","optionIsObject","toSnakeCase","buildTable","createIndex","getIDColumn","idToUUID","traverseFields","adapter","columnPrefix","columns","disableNotNull","disableUnique","fieldPrefix","fields","forceLocalized","indexes","locales","localesColumns","localesIndexes","newTableName","parentTableName","relationsToBuild","relationships","rootRelationsToBuild","rootTableIDColType","rootTableName","versions","hasLocalizedField","hasLocalizedRelationshipField","hasManyTextField","hasLocalizedManyTextField","hasManyNumberField","hasLocalizedManyNumberField","parentIDColType","id","forEach","field","name","columnName","fieldName","targetTable","targetIndexes","replace","payload","config","localization","localized","type","hasMany","unique","includes","constraintValue","fieldConstraints","tableName","mode","options","map","option","value","selectTableName","prefix","versionsCustomName","baseColumns","order","notNull","parent","primaryKey","enum","baseExtraConfig","orderIdx","cols","on","parentFk","foreignColumns","tables","onDelete","parentIdx","locale","localeIdx","set","target","one","references","relationName","disableNotNullFromHere","Boolean","admin","condition","arrayTableName","_order","_parentID","_orderIdx","_parentIDFk","_parentIDIdx","_locale","_localeIdx","subHasManyNumberField","subHasManyTextField","subRelationsToBuild","rootRelationships","many","result","_locales","localesSuffix","key","arrayWithLocalized","blocks","block","blockTableName","_path","_parentIdFk","_pathIdx","slug","blockWithLocalized","process","env","NODE_ENV","table","tableLocales","groupHasLocalizedField","groupHasLocalizedManyNumberField","groupHasLocalizedManyTextField","groupHasLocalizedRelationshipField","groupHasManyNumberField","groupHasManyTextField","tabHasLocalizedField","tabHasLocalizedManyNumberField","tabHasLocalizedManyTextField","tabHasLocalizedRelationshipField","tabHasManyNumberField","tabHasManyTextField","tabs","tab","rowHasLocalizedField","rowHasLocalizedManyNumberField","rowHasLocalizedManyTextField","rowHasLocalizedRelationshipField","rowHasManyNumberField","rowHasManyTextField","Array","isArray","relationTo","relation","add","relationshipConfig","collections","tableNameMap","get","colType","relatedCollectionCustomID","find","required"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/schema/traverseFields.ts"],"sourcesContent":["import type { Relation } from 'drizzle-orm'\nimport type { IndexBuilder, SQLiteColumnBuilder } from 'drizzle-orm/sqlite-core'\nimport type { Field, TabAsField } from 'payload'\n\nimport {\n createTableName,\n hasLocalesTable,\n validateExistingBlockIsIdentical,\n} from '@payloadcms/drizzle'\nimport { relations } from 'drizzle-orm'\nimport {\n SQLiteIntegerBuilder,\n SQLiteNumericBuilder,\n SQLiteTextBuilder,\n foreignKey,\n index,\n integer,\n numeric,\n text,\n} from 'drizzle-orm/sqlite-core'\nimport { InvalidConfiguration } from 'payload'\nimport { fieldAffectsData, optionIsObject } from 'payload/shared'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { GenericColumns, IDType, SQLiteAdapter } from '../types.js'\nimport type { BaseExtraConfig, RelationMap } from './build.js'\n\nimport { buildTable } from './build.js'\nimport { createIndex } from './createIndex.js'\nimport { getIDColumn } from './getIDColumn.js'\nimport { idToUUID } from './idToUUID.js'\nimport { withDefault } from './withDefault.js'\n\ntype Args = {\n adapter: SQLiteAdapter\n columnPrefix?: string\n columns: Record<string, SQLiteColumnBuilder>\n disableNotNull: boolean\n disableUnique?: boolean\n fieldPrefix?: string\n fields: (Field | TabAsField)[]\n forceLocalized?: boolean\n indexes: Record<string, (cols: GenericColumns) => IndexBuilder>\n locales: [string, ...string[]]\n localesColumns: Record<string, SQLiteColumnBuilder>\n localesIndexes: Record<string, (cols: GenericColumns) => IndexBuilder>\n newTableName: string\n parentTableName: string\n relationsToBuild: RelationMap\n relationships: Set<string>\n rootRelationsToBuild?: RelationMap\n rootTableIDColType: IDType\n rootTableName: string\n versions: boolean\n}\n\ntype Result = {\n hasLocalizedField: boolean\n hasLocalizedManyNumberField: boolean\n hasLocalizedManyTextField: boolean\n hasLocalizedRelationshipField: boolean\n hasManyNumberField: 'index' | boolean\n hasManyTextField: 'index' | boolean\n}\n\nexport const traverseFields = ({\n adapter,\n columnPrefix,\n columns,\n disableNotNull,\n disableUnique = false,\n fieldPrefix,\n fields,\n forceLocalized,\n indexes,\n locales,\n localesColumns,\n localesIndexes,\n newTableName,\n parentTableName,\n relationsToBuild,\n relationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n versions,\n}: Args): Result => {\n let hasLocalizedField = false\n let hasLocalizedRelationshipField = false\n let hasManyTextField: 'index' | boolean = false\n let hasLocalizedManyTextField = false\n let hasManyNumberField: 'index' | boolean = false\n let hasLocalizedManyNumberField = false\n\n let parentIDColType: IDType = 'integer'\n if (columns.id instanceof SQLiteIntegerBuilder) parentIDColType = 'integer'\n if (columns.id instanceof SQLiteNumericBuilder) parentIDColType = 'numeric'\n if (columns.id instanceof SQLiteTextBuilder) parentIDColType = 'text'\n\n fields.forEach((field) => {\n if ('name' in field && field.name === 'id') return\n let columnName: string\n let fieldName: string\n\n let targetTable = columns\n let targetIndexes = indexes\n\n if (fieldAffectsData(field)) {\n columnName = `${columnPrefix || ''}${field.name[0] === '_' ? '_' : ''}${toSnakeCase(\n field.name,\n )}`\n fieldName = `${fieldPrefix?.replace('.', '_') || ''}${field.name}`\n\n // If field is localized,\n // add the column to the locale table instead of main table\n if (\n adapter.payload.config.localization &&\n (field.localized || forceLocalized) &&\n field.type !== 'array' &&\n field.type !== 'blocks' &&\n (('hasMany' in field && field.hasMany !== true) || !('hasMany' in field))\n ) {\n hasLocalizedField = true\n targetTable = localesColumns\n targetIndexes = localesIndexes\n }\n\n if (\n (field.unique || field.index) &&\n !['array', 'blocks', 'group', 'point', 'relationship', 'upload'].includes(field.type) &&\n !('hasMany' in field && field.hasMany === true)\n ) {\n const unique = disableUnique !== true && field.unique\n if (unique) {\n const constraintValue = `${fieldPrefix || ''}${field.name}`\n if (!adapter.fieldConstraints?.[rootTableName]) {\n adapter.fieldConstraints[rootTableName] = {}\n }\n adapter.fieldConstraints[rootTableName][`${columnName}_idx`] = constraintValue\n }\n targetIndexes[`${newTableName}_${field.name}Idx`] = createIndex({\n name: fieldName,\n columnName,\n tableName: newTableName,\n unique,\n })\n }\n }\n\n switch (field.type) {\n case 'text': {\n if (field.hasMany) {\n if (field.localized) {\n hasLocalizedManyTextField = true\n }\n\n if (field.index) {\n hasManyTextField = 'index'\n } else if (!hasManyTextField) {\n hasManyTextField = true\n }\n\n if (field.unique) {\n throw new InvalidConfiguration(\n 'Unique is not supported in SQLite for hasMany text fields.',\n )\n }\n } else {\n targetTable[fieldName] = withDefault(text(columnName), field)\n }\n break\n }\n case 'email':\n case 'code':\n case 'textarea': {\n targetTable[fieldName] = withDefault(text(columnName), field)\n break\n }\n\n case 'number': {\n if (field.hasMany) {\n if (field.localized) {\n hasLocalizedManyNumberField = true\n }\n\n if (field.index) {\n hasManyNumberField = 'index'\n } else if (!hasManyNumberField) {\n hasManyNumberField = true\n }\n\n if (field.unique) {\n throw new InvalidConfiguration(\n 'Unique is not supported in Postgres for hasMany number fields.',\n )\n }\n } else {\n targetTable[fieldName] = withDefault(numeric(columnName), field)\n }\n break\n }\n\n case 'richText':\n case 'json': {\n targetTable[fieldName] = withDefault(text(columnName, { mode: 'json' }), field)\n break\n }\n\n case 'date': {\n targetTable[fieldName] = withDefault(text(columnName), field)\n break\n }\n\n case 'point': {\n break\n }\n\n case 'radio':\n case 'select': {\n const options = field.options.map((option) => {\n if (optionIsObject(option)) {\n return option.value\n }\n\n return option\n }) as [string, ...string[]]\n\n if (field.type === 'select' && field.hasMany) {\n const selectTableName = createTableName({\n adapter,\n config: field,\n parentTableName: newTableName,\n prefix: `${newTableName}_`,\n versionsCustomName: versions,\n })\n const baseColumns: Record<string, SQLiteColumnBuilder> = {\n order: integer('order').notNull(),\n parent: getIDColumn({\n name: 'parent_id',\n type: parentIDColType,\n notNull: true,\n primaryKey: false,\n }),\n value: text('value', { enum: options }),\n }\n\n const baseExtraConfig: BaseExtraConfig = {\n orderIdx: (cols) => index(`${selectTableName}_order_idx`).on(cols.order),\n parentFk: (cols) =>\n foreignKey({\n name: `${selectTableName}_parent_fk`,\n columns: [cols.parent],\n foreignColumns: [adapter.tables[parentTableName].id],\n }).onDelete('cascade'),\n parentIdx: (cols) => index(`${selectTableName}_parent_idx`).on(cols.parent),\n }\n\n if (field.localized) {\n baseColumns.locale = text('locale', { enum: locales }).notNull()\n baseExtraConfig.localeIdx = (cols) =>\n index(`${selectTableName}_locale_idx`).on(cols.locale)\n }\n\n if (field.index) {\n baseExtraConfig.value = (cols) => index(`${selectTableName}_value_idx`).on(cols.value)\n }\n\n buildTable({\n adapter,\n baseColumns,\n baseExtraConfig,\n disableNotNull,\n disableUnique,\n fields: [],\n rootTableName,\n tableName: selectTableName,\n versions,\n })\n\n relationsToBuild.set(fieldName, {\n type: 'many',\n // selects have their own localized table, independent of the base table.\n localized: false,\n target: selectTableName,\n })\n\n adapter.relations[`relations_${selectTableName}`] = relations(\n adapter.tables[selectTableName],\n ({ one }) => ({\n parent: one(adapter.tables[parentTableName], {\n fields: [adapter.tables[selectTableName].parent],\n references: [adapter.tables[parentTableName].id],\n relationName: fieldName,\n }),\n }),\n )\n } else {\n targetTable[fieldName] = withDefault(text(fieldName, { enum: options }), field)\n }\n break\n }\n\n case 'checkbox': {\n targetTable[fieldName] = withDefault(integer(columnName, { mode: 'boolean' }), field)\n break\n }\n\n case 'array': {\n const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull\n\n const arrayTableName = createTableName({\n adapter,\n config: field,\n parentTableName: newTableName,\n prefix: `${newTableName}_`,\n versionsCustomName: versions,\n })\n\n const baseColumns: Record<string, SQLiteColumnBuilder> = {\n _order: integer('_order').notNull(),\n _parentID: getIDColumn({\n name: '_parent_id',\n type: parentIDColType,\n notNull: true,\n primaryKey: false,\n }),\n }\n\n const baseExtraConfig: BaseExtraConfig = {\n _orderIdx: (cols) => index(`${arrayTableName}_order_idx`).on(cols._order),\n _parentIDFk: (cols) =>\n foreignKey({\n name: `${arrayTableName}_parent_id_fk`,\n columns: [cols['_parentID']],\n foreignColumns: [adapter.tables[parentTableName].id],\n }).onDelete('cascade'),\n _parentIDIdx: (cols) => index(`${arrayTableName}_parent_id_idx`).on(cols._parentID),\n }\n\n if (field.localized && adapter.payload.config.localization) {\n baseColumns._locale = text('_locale', { enum: locales }).notNull()\n baseExtraConfig._localeIdx = (cols) =>\n index(`${arrayTableName}_locale_idx`).on(cols._locale)\n }\n\n const {\n hasManyNumberField: subHasManyNumberField,\n hasManyTextField: subHasManyTextField,\n relationsToBuild: subRelationsToBuild,\n } = buildTable({\n adapter,\n baseColumns,\n baseExtraConfig,\n disableNotNull: disableNotNullFromHere,\n disableUnique,\n fields: disableUnique ? idToUUID(field.fields) : field.fields,\n rootRelationsToBuild,\n rootRelationships: relationships,\n rootTableIDColType,\n rootTableName,\n tableName: arrayTableName,\n versions,\n })\n\n if (subHasManyTextField) {\n if (!hasManyTextField || subHasManyTextField === 'index')\n hasManyTextField = subHasManyTextField\n }\n if (subHasManyNumberField) {\n if (!hasManyNumberField || subHasManyNumberField === 'index')\n hasManyNumberField = subHasManyNumberField\n }\n\n relationsToBuild.set(fieldName, {\n type: 'many',\n // arrays have their own localized table, independent of the base table.\n localized: false,\n target: arrayTableName,\n })\n\n adapter.relations[`relations_${arrayTableName}`] = relations(\n adapter.tables[arrayTableName],\n ({ many, one }) => {\n const result: Record<string, Relation<string>> = {\n _parentID: one(adapter.tables[parentTableName], {\n fields: [adapter.tables[arrayTableName]._parentID],\n references: [adapter.tables[parentTableName].id],\n relationName: fieldName,\n }),\n }\n\n if (hasLocalesTable(field.fields)) {\n result._locales = many(adapter.tables[`${arrayTableName}${adapter.localesSuffix}`], {\n relationName: '_locales',\n })\n }\n\n subRelationsToBuild.forEach(({ type, localized, target }, key) => {\n if (type === 'one') {\n const arrayWithLocalized = localized\n ? `${arrayTableName}${adapter.localesSuffix}`\n : arrayTableName\n result[key] = one(adapter.tables[target], {\n fields: [adapter.tables[arrayWithLocalized][key]],\n references: [adapter.tables[target].id],\n relationName: key,\n })\n }\n if (type === 'many') {\n result[key] = many(adapter.tables[target], { relationName: key })\n }\n })\n\n return result\n },\n )\n\n break\n }\n\n case 'blocks': {\n const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull\n\n field.blocks.forEach((block) => {\n const blockTableName = createTableName({\n adapter,\n config: block,\n parentTableName: rootTableName,\n prefix: `${rootTableName}_blocks_`,\n versionsCustomName: versions,\n })\n if (!adapter.tables[blockTableName]) {\n const baseColumns: Record<string, SQLiteColumnBuilder> = {\n _order: integer('_order').notNull(),\n _parentID: getIDColumn({\n name: '_parent_id',\n type: rootTableIDColType,\n notNull: true,\n primaryKey: false,\n }),\n _path: text('_path').notNull(),\n }\n\n const baseExtraConfig: BaseExtraConfig = {\n _orderIdx: (cols) => index(`${blockTableName}_order_idx`).on(cols._order),\n _parentIDIdx: (cols) => index(`${blockTableName}_parent_id_idx`).on(cols._parentID),\n _parentIdFk: (cols) =>\n foreignKey({\n name: `${blockTableName}_parent_id_fk`,\n columns: [cols._parentID],\n foreignColumns: [adapter.tables[rootTableName].id],\n }).onDelete('cascade'),\n _pathIdx: (cols) => index(`${blockTableName}_path_idx`).on(cols._path),\n }\n\n if (field.localized && adapter.payload.config.localization) {\n baseColumns._locale = text('_locale', { enum: locales }).notNull()\n baseExtraConfig._localeIdx = (cols) =>\n index(`${blockTableName}_locale_idx`).on(cols._locale)\n }\n\n const {\n hasManyNumberField: subHasManyNumberField,\n hasManyTextField: subHasManyTextField,\n relationsToBuild: subRelationsToBuild,\n } = buildTable({\n adapter,\n baseColumns,\n baseExtraConfig,\n disableNotNull: disableNotNullFromHere,\n disableUnique,\n fields: disableUnique ? idToUUID(block.fields) : block.fields,\n rootRelationsToBuild,\n rootRelationships: relationships,\n rootTableIDColType,\n rootTableName,\n tableName: blockTableName,\n versions,\n })\n\n if (subHasManyTextField) {\n if (!hasManyTextField || subHasManyTextField === 'index')\n hasManyTextField = subHasManyTextField\n }\n\n if (subHasManyNumberField) {\n if (!hasManyNumberField || subHasManyNumberField === 'index')\n hasManyNumberField = subHasManyNumberField\n }\n\n adapter.relations[`relations_${blockTableName}`] = relations(\n adapter.tables[blockTableName],\n ({ many, one }) => {\n const result: Record<string, Relation<string>> = {\n _parentID: one(adapter.tables[rootTableName], {\n fields: [adapter.tables[blockTableName]._parentID],\n references: [adapter.tables[rootTableName].id],\n relationName: `_blocks_${block.slug}`,\n }),\n }\n\n if (hasLocalesTable(block.fields)) {\n result._locales = many(\n adapter.tables[`${blockTableName}${adapter.localesSuffix}`],\n { relationName: '_locales' },\n )\n }\n\n subRelationsToBuild.forEach(({ type, localized, target }, key) => {\n if (type === 'one') {\n const blockWithLocalized = localized\n ? `${blockTableName}${adapter.localesSuffix}`\n : blockTableName\n result[key] = one(adapter.tables[target], {\n fields: [adapter.tables[blockWithLocalized][key]],\n references: [adapter.tables[target].id],\n relationName: key,\n })\n }\n if (type === 'many') {\n result[key] = many(adapter.tables[target], { relationName: key })\n }\n })\n\n return result\n },\n )\n } else if (process.env.NODE_ENV !== 'production' && !versions) {\n validateExistingBlockIsIdentical({\n block,\n localized: field.localized,\n rootTableName,\n table: adapter.tables[blockTableName],\n tableLocales: adapter.tables[`${blockTableName}${adapter.localesSuffix}`],\n })\n }\n // blocks relationships are defined from the collection or globals table down to the block, bypassing any subBlocks\n rootRelationsToBuild.set(`_blocks_${block.slug}`, {\n type: 'many',\n // blocks are not localized on the parent table\n localized: false,\n target: blockTableName,\n })\n })\n\n break\n }\n\n case 'tab':\n case 'group': {\n if (!('name' in field)) {\n const {\n hasLocalizedField: groupHasLocalizedField,\n hasLocalizedManyNumberField: groupHasLocalizedManyNumberField,\n hasLocalizedManyTextField: groupHasLocalizedManyTextField,\n hasLocalizedRelationshipField: groupHasLocalizedRelationshipField,\n hasManyNumberField: groupHasManyNumberField,\n hasManyTextField: groupHasManyTextField,\n } = traverseFields({\n adapter,\n columnPrefix,\n columns,\n disableNotNull,\n disableUnique,\n fieldPrefix,\n fields: field.fields,\n forceLocalized,\n indexes,\n locales,\n localesColumns,\n localesIndexes,\n newTableName,\n parentTableName,\n relationsToBuild,\n relationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n versions,\n })\n\n if (groupHasLocalizedField) hasLocalizedField = true\n if (groupHasLocalizedRelationshipField) hasLocalizedRelationshipField = true\n if (groupHasManyTextField) hasManyTextField = true\n if (groupHasLocalizedManyTextField) hasLocalizedManyTextField = true\n if (groupHasManyNumberField) hasManyNumberField = true\n if (groupHasLocalizedManyNumberField) hasLocalizedManyNumberField = true\n break\n }\n\n const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull\n\n const {\n hasLocalizedField: groupHasLocalizedField,\n hasLocalizedManyNumberField: groupHasLocalizedManyNumberField,\n hasLocalizedManyTextField: groupHasLocalizedManyTextField,\n hasLocalizedRelationshipField: groupHasLocalizedRelationshipField,\n hasManyNumberField: groupHasManyNumberField,\n hasManyTextField: groupHasManyTextField,\n } = traverseFields({\n adapter,\n columnPrefix: `${columnName}_`,\n columns,\n disableNotNull: disableNotNullFromHere,\n disableUnique,\n fieldPrefix: `${fieldName}.`,\n fields: field.fields,\n forceLocalized: field.localized,\n indexes,\n locales,\n localesColumns,\n localesIndexes,\n newTableName: `${parentTableName}_${columnName}`,\n parentTableName,\n relationsToBuild,\n relationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n versions,\n })\n\n if (groupHasLocalizedField) hasLocalizedField = true\n if (groupHasLocalizedRelationshipField) hasLocalizedRelationshipField = true\n if (groupHasManyTextField) hasManyTextField = true\n if (groupHasLocalizedManyTextField) hasLocalizedManyTextField = true\n if (groupHasManyNumberField) hasManyNumberField = true\n if (groupHasLocalizedManyNumberField) hasLocalizedManyNumberField = true\n break\n }\n\n case 'tabs': {\n const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull\n\n const {\n hasLocalizedField: tabHasLocalizedField,\n hasLocalizedManyNumberField: tabHasLocalizedManyNumberField,\n hasLocalizedManyTextField: tabHasLocalizedManyTextField,\n hasLocalizedRelationshipField: tabHasLocalizedRelationshipField,\n hasManyNumberField: tabHasManyNumberField,\n hasManyTextField: tabHasManyTextField,\n } = traverseFields({\n adapter,\n columnPrefix,\n columns,\n disableNotNull: disableNotNullFromHere,\n disableUnique,\n fieldPrefix,\n fields: field.tabs.map((tab) => ({ ...tab, type: 'tab' })),\n forceLocalized,\n indexes,\n locales,\n localesColumns,\n localesIndexes,\n newTableName,\n parentTableName,\n relationsToBuild,\n relationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n versions,\n })\n\n if (tabHasLocalizedField) hasLocalizedField = true\n if (tabHasLocalizedRelationshipField) hasLocalizedRelationshipField = true\n if (tabHasManyTextField) hasManyTextField = true\n if (tabHasLocalizedManyTextField) hasLocalizedManyTextField = true\n if (tabHasManyNumberField) hasManyNumberField = true\n if (tabHasLocalizedManyNumberField) hasLocalizedManyNumberField = true\n break\n }\n\n case 'row':\n case 'collapsible': {\n const disableNotNullFromHere = Boolean(field.admin?.condition) || disableNotNull\n const {\n hasLocalizedField: rowHasLocalizedField,\n hasLocalizedManyNumberField: rowHasLocalizedManyNumberField,\n hasLocalizedManyTextField: rowHasLocalizedManyTextField,\n hasLocalizedRelationshipField: rowHasLocalizedRelationshipField,\n hasManyNumberField: rowHasManyNumberField,\n hasManyTextField: rowHasManyTextField,\n } = traverseFields({\n adapter,\n columnPrefix,\n columns,\n disableNotNull: disableNotNullFromHere,\n disableUnique,\n fieldPrefix,\n fields: field.fields,\n forceLocalized,\n indexes,\n locales,\n localesColumns,\n localesIndexes,\n newTableName,\n parentTableName,\n relationsToBuild,\n relationships,\n rootRelationsToBuild,\n rootTableIDColType,\n rootTableName,\n versions,\n })\n\n if (rowHasLocalizedField) hasLocalizedField = true\n if (rowHasLocalizedRelationshipField) hasLocalizedRelationshipField = true\n if (rowHasManyTextField) hasManyTextField = true\n if (rowHasLocalizedManyTextField) hasLocalizedManyTextField = true\n if (rowHasManyNumberField) hasManyNumberField = true\n if (rowHasLocalizedManyNumberField) hasLocalizedManyNumberField = true\n break\n }\n\n case 'relationship':\n case 'upload':\n if (Array.isArray(field.relationTo)) {\n field.relationTo.forEach((relation) => relationships.add(relation))\n } else if (field.type === 'relationship' && field.hasMany) {\n relationships.add(field.relationTo)\n } else {\n // simple relationships get a column on the targetTable with a foreign key to the relationTo table\n const relationshipConfig = adapter.payload.collections[field.relationTo].config\n\n const tableName = adapter.tableNameMap.get(toSnakeCase(field.relationTo))\n\n // get the id type of the related collection\n let colType: IDType = 'integer'\n const relatedCollectionCustomID = relationshipConfig.fields.find(\n (field) => fieldAffectsData(field) && field.name === 'id',\n )\n if (relatedCollectionCustomID?.type === 'number') colType = 'numeric'\n if (relatedCollectionCustomID?.type === 'text') colType = 'text'\n\n // make the foreign key column for relationship using the correct id column type\n targetTable[fieldName] = getIDColumn({\n name: `${columnName}_id`,\n type: colType,\n primaryKey: false,\n }).references(() => adapter.tables[tableName].id, { onDelete: 'set null' })\n\n // add relationship to table\n relationsToBuild.set(fieldName, {\n type: 'one',\n localized: adapter.payload.config.localization && field.localized,\n target: tableName,\n })\n\n // add notNull when not required\n if (!disableNotNull && field.required && !field.admin?.condition) {\n targetTable[fieldName].notNull()\n }\n break\n }\n if (adapter.payload.config.localization && field.localized) {\n hasLocalizedRelationshipField = true\n }\n\n break\n\n default:\n break\n }\n\n const condition = field.admin && field.admin.condition\n\n if (\n !disableNotNull &&\n targetTable[fieldName] &&\n 'required' in field &&\n field.required &&\n !condition\n ) {\n targetTable[fieldName].notNull()\n }\n })\n\n return {\n hasLocalizedField,\n hasLocalizedManyNumberField,\n hasLocalizedManyTextField,\n hasLocalizedRelationshipField,\n hasManyNumberField,\n hasManyTextField,\n }\n}\n"],"names":["createTableName","hasLocalesTable","validateExistingBlockIsIdentical","relations","SQLiteIntegerBuilder","SQLiteNumericBuilder","SQLiteTextBuilder","foreignKey","index","integer","numeric","text","InvalidConfiguration","fieldAffectsData","optionIsObject","toSnakeCase","buildTable","createIndex","getIDColumn","idToUUID","withDefault","traverseFields","adapter","columnPrefix","columns","disableNotNull","disableUnique","fieldPrefix","fields","forceLocalized","indexes","locales","localesColumns","localesIndexes","newTableName","parentTableName","relationsToBuild","relationships","rootRelationsToBuild","rootTableIDColType","rootTableName","versions","hasLocalizedField","hasLocalizedRelationshipField","hasManyTextField","hasLocalizedManyTextField","hasManyNumberField","hasLocalizedManyNumberField","parentIDColType","id","forEach","field","name","columnName","fieldName","targetTable","targetIndexes","replace","payload","config","localization","localized","type","hasMany","unique","includes","constraintValue","fieldConstraints","tableName","mode","options","map","option","value","selectTableName","prefix","versionsCustomName","baseColumns","order","notNull","parent","primaryKey","enum","baseExtraConfig","orderIdx","cols","on","parentFk","foreignColumns","tables","onDelete","parentIdx","locale","localeIdx","set","target","one","references","relationName","disableNotNullFromHere","Boolean","admin","condition","arrayTableName","_order","_parentID","_orderIdx","_parentIDFk","_parentIDIdx","_locale","_localeIdx","subHasManyNumberField","subHasManyTextField","subRelationsToBuild","rootRelationships","many","result","_locales","localesSuffix","key","arrayWithLocalized","blocks","block","blockTableName","_path","_parentIdFk","_pathIdx","slug","blockWithLocalized","process","env","NODE_ENV","table","tableLocales","groupHasLocalizedField","groupHasLocalizedManyNumberField","groupHasLocalizedManyTextField","groupHasLocalizedRelationshipField","groupHasManyNumberField","groupHasManyTextField","tabHasLocalizedField","tabHasLocalizedManyNumberField","tabHasLocalizedManyTextField","tabHasLocalizedRelationshipField","tabHasManyNumberField","tabHasManyTextField","tabs","tab","rowHasLocalizedField","rowHasLocalizedManyNumberField","rowHasLocalizedManyTextField","rowHasLocalizedRelationshipField","rowHasManyNumberField","rowHasManyTextField","Array","isArray","relationTo","relation","add","relationshipConfig","collections","tableNameMap","get","colType","relatedCollectionCustomID","find","required"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { SQLiteColumnBuilder } from 'drizzle-orm/sqlite-core';
2
+ import type { FieldAffectingData } from 'payload';
3
+ export declare const withDefault: (column: SQLiteColumnBuilder, field: FieldAffectingData) => SQLiteColumnBuilder;
4
+ //# sourceMappingURL=withDefault.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withDefault.d.ts","sourceRoot":"","sources":["../../src/schema/withDefault.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAClE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAEjD,eAAO,MAAM,WAAW,WACd,mBAAmB,SACpB,kBAAkB,KACxB,mBAUF,CAAA"}
@@ -0,0 +1,10 @@
1
+ export const withDefault = (column, field)=>{
2
+ if (typeof field.defaultValue === 'undefined' || typeof field.defaultValue === 'function') return column;
3
+ if (typeof field.defaultValue === 'string' && field.defaultValue.includes("'")) {
4
+ const escapedString = field.defaultValue.replaceAll("'", "''");
5
+ return column.default(escapedString);
6
+ }
7
+ return column.default(field.defaultValue);
8
+ };
9
+
10
+ //# sourceMappingURL=withDefault.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/schema/withDefault.ts"],"sourcesContent":["import type { SQLiteColumnBuilder } from 'drizzle-orm/sqlite-core'\nimport type { FieldAffectingData } from 'payload'\n\nexport const withDefault = (\n column: SQLiteColumnBuilder,\n field: FieldAffectingData,\n): SQLiteColumnBuilder => {\n if (typeof field.defaultValue === 'undefined' || typeof field.defaultValue === 'function')\n return column\n\n if (typeof field.defaultValue === 'string' && field.defaultValue.includes(\"'\")) {\n const escapedString = field.defaultValue.replaceAll(\"'\", \"''\")\n return column.default(escapedString)\n }\n\n return column.default(field.defaultValue)\n}\n"],"names":["withDefault","column","field","defaultValue","includes","escapedString","replaceAll","default"],"mappings":"AAGA,OAAO,MAAMA,cAAc,CACzBC,QACAC;IAEA,IAAI,OAAOA,MAAMC,YAAY,KAAK,eAAe,OAAOD,MAAMC,YAAY,KAAK,YAC7E,OAAOF;IAET,IAAI,OAAOC,MAAMC,YAAY,KAAK,YAAYD,MAAMC,YAAY,CAACC,QAAQ,CAAC,MAAM;QAC9E,MAAMC,gBAAgBH,MAAMC,YAAY,CAACG,UAAU,CAAC,KAAK;QACzD,OAAOL,OAAOM,OAAO,CAACF;IACxB;IAEA,OAAOJ,OAAOM,OAAO,CAACL,MAAMC,YAAY;AAC1C,EAAC"}
package/dist/types.d.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  import type { Client, Config, ResultSet } from '@libsql/client';
2
2
  import type { Operators } from '@payloadcms/drizzle';
3
3
  import type { BuildQueryJoinAliases, DrizzleAdapter } from '@payloadcms/drizzle/types';
4
- import type { ColumnDataType, DrizzleConfig, Relation, Relations, SQL } from 'drizzle-orm';
4
+ import type { DrizzleConfig, Relation, Relations, SQL } from 'drizzle-orm';
5
5
  import type { LibSQLDatabase } from 'drizzle-orm/libsql';
6
- import type { SQLiteColumn, SQLiteInsertOnConflictDoUpdateConfig, SQLiteTableWithColumns } from 'drizzle-orm/sqlite-core';
6
+ import type { AnySQLiteColumn, SQLiteInsertOnConflictDoUpdateConfig, SQLiteTableWithColumns, SQLiteTransactionConfig } from 'drizzle-orm/sqlite-core';
7
7
  import type { SQLiteRaw } from 'drizzle-orm/sqlite-core/query-builders/raw';
8
8
  import type { Payload, PayloadRequest } from 'payload';
9
9
  export type Args = {
@@ -12,25 +12,19 @@ export type Args = {
12
12
  localesSuffix?: string;
13
13
  logger?: DrizzleConfig['logger'];
14
14
  migrationDir?: string;
15
+ prodMigrations?: {
16
+ down: (args: MigrateDownArgs) => Promise<void>;
17
+ name: string;
18
+ up: (args: MigrateUpArgs) => Promise<void>;
19
+ }[];
15
20
  push?: boolean;
16
21
  relationshipsSuffix?: string;
17
22
  schemaName?: string;
23
+ transactionOptions?: SQLiteTransactionConfig | false;
18
24
  versionsSuffix?: string;
19
25
  };
20
- export type GenericColumn = SQLiteColumn<{
21
- baseColumn: never;
22
- columnType: string;
23
- data: unknown;
24
- dataType: ColumnDataType;
25
- driverParam: unknown;
26
- enumValues: string[];
27
- hasDefault: false;
28
- name: string;
29
- notNull: false;
30
- tableName: string;
31
- }, object>;
32
26
  export type GenericColumns = {
33
- [x: string]: GenericColumn;
27
+ [x: string]: AnySQLiteColumn;
34
28
  };
35
29
  export type GenericTable = SQLiteTableWithColumns<{
36
30
  columns: GenericColumns;
@@ -59,9 +53,6 @@ export type Execute<T> = (args: {
59
53
  raw?: string;
60
54
  sql?: SQL<unknown>;
61
55
  }) => SQLiteRaw<Promise<T>> | SQLiteRaw<ResultSet>;
62
- export type GenerateDrizzleJSON = (args: {
63
- schema: Record<string, GenericRelation | GenericTable>;
64
- }) => Record<string, unknown>;
65
56
  export type Insert = (args: {
66
57
  db: LibSQLDatabase;
67
58
  onConflictDoUpdate?: SQLiteInsertOnConflictDoUpdateConfig<any>;
@@ -69,7 +60,7 @@ export type Insert = (args: {
69
60
  values: Record<string, unknown> | Record<string, unknown>[];
70
61
  }) => Promise<Record<string, unknown>[]>;
71
62
  type SQLiteDrizzleAdapter = Omit<DrizzleAdapter, 'countDistinct' | 'deleteWhere' | 'drizzle' | 'dropDatabase' | 'execute' | 'insert' | 'operators' | 'relations'>;
72
- export type SQLiteAdapter = SQLiteDrizzleAdapter & {
63
+ export type SQLiteAdapter = {
73
64
  client: Client;
74
65
  clientConfig: Args['client'];
75
66
  countDistinct: CountDistinct;
@@ -83,13 +74,17 @@ export type SQLiteAdapter = SQLiteDrizzleAdapter & {
83
74
  * Used for returning properly formed errors from unique fields
84
75
  */
85
76
  fieldConstraints: Record<string, Record<string, string>>;
86
- generateDrizzleJSON: GenerateDrizzleJSON;
87
77
  idType: Args['idType'];
88
78
  initializing: Promise<void>;
89
79
  insert: Insert;
90
80
  localesSuffix?: string;
91
81
  logger: DrizzleConfig['logger'];
92
82
  operators: Operators;
83
+ prodMigrations?: {
84
+ down: (args: MigrateDownArgs) => Promise<void>;
85
+ name: string;
86
+ up: (args: MigrateUpArgs) => Promise<void>;
87
+ }[];
93
88
  push: boolean;
94
89
  rejectInitializing: () => void;
95
90
  relations: Record<string, GenericRelation>;
@@ -99,21 +94,22 @@ export type SQLiteAdapter = SQLiteDrizzleAdapter & {
99
94
  schemaName?: Args['schemaName'];
100
95
  tableNameMap: Map<string, string>;
101
96
  tables: Record<string, GenericTable>;
97
+ transactionOptions: SQLiteTransactionConfig;
102
98
  versionsSuffix?: string;
103
- };
99
+ } & SQLiteDrizzleAdapter;
104
100
  export type IDType = 'integer' | 'numeric' | 'text';
105
101
  export type MigrateUpArgs = {
106
- db: LibSQLDatabase;
107
102
  payload: Payload;
108
103
  req?: Partial<PayloadRequest>;
109
104
  };
110
105
  export type MigrateDownArgs = {
111
- db: LibSQLDatabase;
112
106
  payload: Payload;
113
107
  req?: Partial<PayloadRequest>;
114
108
  };
115
109
  declare module 'payload' {
116
110
  interface DatabaseAdapter extends Omit<Args, 'idType' | 'logger' | 'migrationDir' | 'pool'>, DrizzleAdapter {
111
+ beginTransaction: (options?: SQLiteTransactionConfig) => Promise<null | number | string>;
112
+ drizzle: LibSQLDatabase;
117
113
  /**
118
114
  * An object keyed on each table, with a key value pair where the constraint name is the key, followed by the dot-notation field name
119
115
  * Used for returning properly formed errors from unique fields
@@ -123,12 +119,18 @@ declare module 'payload' {
123
119
  initializing: Promise<void>;
124
120
  localesSuffix?: string;
125
121
  logger: DrizzleConfig['logger'];
122
+ prodMigrations?: {
123
+ down: (args: MigrateDownArgs) => Promise<void>;
124
+ name: string;
125
+ up: (args: MigrateUpArgs) => Promise<void>;
126
+ }[];
126
127
  push: boolean;
127
128
  rejectInitializing: () => void;
128
129
  relationshipsSuffix?: string;
129
130
  resolveInitializing: () => void;
130
131
  schema: Record<string, GenericRelation | GenericTable>;
131
132
  tableNameMap: Map<string, string>;
133
+ transactionOptions: SQLiteTransactionConfig;
132
134
  versionsSuffix?: string;
133
135
  }
134
136
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type { Client, Config, ResultSet } from '@libsql/client'\nimport type { Operators } from '@payloadcms/drizzle'\nimport type { BuildQueryJoinAliases, DrizzleAdapter } from '@payloadcms/drizzle/types'\nimport type { ColumnDataType, DrizzleConfig, Relation, Relations, SQL } from 'drizzle-orm'\nimport type { LibSQLDatabase } from 'drizzle-orm/libsql'\nimport type {\n SQLiteColumn,\n SQLiteInsertOnConflictDoUpdateConfig,\n SQLiteTableWithColumns,\n} from 'drizzle-orm/sqlite-core'\nimport type { SQLiteRaw } from 'drizzle-orm/sqlite-core/query-builders/raw'\nimport type { Payload, PayloadRequest } from 'payload'\n\nexport type Args = {\n client: Config\n idType?: 'serial' | 'uuid'\n localesSuffix?: string\n logger?: DrizzleConfig['logger']\n migrationDir?: string\n push?: boolean\n relationshipsSuffix?: string\n schemaName?: string\n versionsSuffix?: string\n}\n\nexport type GenericColumn = SQLiteColumn<\n {\n baseColumn: never\n columnType: string\n data: unknown\n dataType: ColumnDataType\n driverParam: unknown\n enumValues: string[]\n hasDefault: false\n name: string\n notNull: false\n tableName: string\n },\n object\n>\n\nexport type GenericColumns = {\n [x: string]: GenericColumn\n}\n\nexport type GenericTable = SQLiteTableWithColumns<{\n columns: GenericColumns\n dialect: string\n name: string\n schema: string\n}>\n\nexport type GenericRelation = Relations<string, Record<string, Relation<string>>>\n\nexport type CountDistinct = (args: {\n db: LibSQLDatabase\n joins: BuildQueryJoinAliases\n tableName: string\n where: SQL\n}) => Promise<number>\n\nexport type DeleteWhere = (args: {\n db: LibSQLDatabase\n tableName: string\n where: SQL\n}) => Promise<void>\n\nexport type DropDatabase = (args: { adapter: SQLiteAdapter }) => Promise<void>\n\nexport type Execute<T> = (args: {\n db?: LibSQLDatabase\n drizzle?: LibSQLDatabase\n raw?: string\n sql?: SQL<unknown>\n}) => SQLiteRaw<Promise<T>> | SQLiteRaw<ResultSet>\n\nexport type GenerateDrizzleJSON = (args: {\n schema: Record<string, GenericRelation | GenericTable>\n}) => Record<string, unknown>\n\nexport type Insert = (args: {\n db: LibSQLDatabase\n onConflictDoUpdate?: SQLiteInsertOnConflictDoUpdateConfig<any>\n tableName: string\n values: Record<string, unknown> | Record<string, unknown>[]\n}) => Promise<Record<string, unknown>[]>\n\n// Explicitly omit drizzle property for complete override in SQLiteAdapter, required in ts 5.5\ntype SQLiteDrizzleAdapter = Omit<\n DrizzleAdapter,\n | 'countDistinct'\n | 'deleteWhere'\n | 'drizzle'\n | 'dropDatabase'\n | 'execute'\n | 'insert'\n | 'operators'\n | 'relations'\n>\n\nexport type SQLiteAdapter = SQLiteDrizzleAdapter & {\n client: Client\n clientConfig: Args['client']\n countDistinct: CountDistinct\n defaultDrizzleSnapshot: any\n deleteWhere: DeleteWhere\n drizzle: LibSQLDatabase\n dropDatabase: DropDatabase\n execute: Execute<unknown>\n /**\n * An object keyed on each table, with a key value pair where the constraint name is the key, followed by the dot-notation field name\n * Used for returning properly formed errors from unique fields\n */\n fieldConstraints: Record<string, Record<string, string>>\n generateDrizzleJSON: GenerateDrizzleJSON\n idType: Args['idType']\n initializing: Promise<void>\n insert: Insert\n localesSuffix?: string\n logger: DrizzleConfig['logger']\n operators: Operators\n push: boolean\n rejectInitializing: () => void\n relations: Record<string, GenericRelation>\n relationshipsSuffix?: string\n resolveInitializing: () => void\n schema: Record<string, GenericRelation | GenericTable>\n schemaName?: Args['schemaName']\n tableNameMap: Map<string, string>\n tables: Record<string, GenericTable>\n versionsSuffix?: string\n}\n\nexport type IDType = 'integer' | 'numeric' | 'text'\n\nexport type MigrateUpArgs = {\n db: LibSQLDatabase\n payload: Payload\n req?: Partial<PayloadRequest>\n}\nexport type MigrateDownArgs = {\n db: LibSQLDatabase\n payload: Payload\n req?: Partial<PayloadRequest>\n}\n\ndeclare module 'payload' {\n export interface DatabaseAdapter\n extends Omit<Args, 'idType' | 'logger' | 'migrationDir' | 'pool'>,\n DrizzleAdapter {\n /**\n * An object keyed on each table, with a key value pair where the constraint name is the key, followed by the dot-notation field name\n * Used for returning properly formed errors from unique fields\n */\n fieldConstraints: Record<string, Record<string, string>>\n idType: Args['idType']\n initializing: Promise<void>\n localesSuffix?: string\n logger: DrizzleConfig['logger']\n push: boolean\n rejectInitializing: () => void\n relationshipsSuffix?: string\n resolveInitializing: () => void\n schema: Record<string, GenericRelation | GenericTable>\n tableNameMap: Map<string, string>\n versionsSuffix?: string\n }\n}\n"],"names":[],"mappings":"AA4IA,WAIC"}
1
+ {"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type { Client, Config, ResultSet } from '@libsql/client'\nimport type { Operators } from '@payloadcms/drizzle'\nimport type { BuildQueryJoinAliases, DrizzleAdapter } from '@payloadcms/drizzle/types'\nimport type { DrizzleConfig, Relation, Relations, SQL } from 'drizzle-orm'\nimport type { LibSQLDatabase } from 'drizzle-orm/libsql'\nimport type {\n AnySQLiteColumn,\n SQLiteInsertOnConflictDoUpdateConfig,\n SQLiteTableWithColumns,\n SQLiteTransactionConfig,\n} from 'drizzle-orm/sqlite-core'\nimport type { SQLiteRaw } from 'drizzle-orm/sqlite-core/query-builders/raw'\nimport type { Payload, PayloadRequest } from 'payload'\n\nexport type Args = {\n client: Config\n idType?: 'serial' | 'uuid'\n localesSuffix?: string\n logger?: DrizzleConfig['logger']\n migrationDir?: string\n prodMigrations?: {\n down: (args: MigrateDownArgs) => Promise<void>\n name: string\n up: (args: MigrateUpArgs) => Promise<void>\n }[]\n push?: boolean\n relationshipsSuffix?: string\n schemaName?: string\n transactionOptions?: SQLiteTransactionConfig | false\n versionsSuffix?: string\n}\n\nexport type GenericColumns = {\n [x: string]: AnySQLiteColumn\n}\n\nexport type GenericTable = SQLiteTableWithColumns<{\n columns: GenericColumns\n dialect: string\n name: string\n schema: string\n}>\n\nexport type GenericRelation = Relations<string, Record<string, Relation<string>>>\n\nexport type CountDistinct = (args: {\n db: LibSQLDatabase\n joins: BuildQueryJoinAliases\n tableName: string\n where: SQL\n}) => Promise<number>\n\nexport type DeleteWhere = (args: {\n db: LibSQLDatabase\n tableName: string\n where: SQL\n}) => Promise<void>\n\nexport type DropDatabase = (args: { adapter: SQLiteAdapter }) => Promise<void>\n\nexport type Execute<T> = (args: {\n db?: LibSQLDatabase\n drizzle?: LibSQLDatabase\n raw?: string\n sql?: SQL<unknown>\n}) => SQLiteRaw<Promise<T>> | SQLiteRaw<ResultSet>\n\nexport type Insert = (args: {\n db: LibSQLDatabase\n onConflictDoUpdate?: SQLiteInsertOnConflictDoUpdateConfig<any>\n tableName: string\n values: Record<string, unknown> | Record<string, unknown>[]\n}) => Promise<Record<string, unknown>[]>\n\n// Explicitly omit drizzle property for complete override in SQLiteAdapter, required in ts 5.5\ntype SQLiteDrizzleAdapter = Omit<\n DrizzleAdapter,\n | 'countDistinct'\n | 'deleteWhere'\n | 'drizzle'\n | 'dropDatabase'\n | 'execute'\n | 'insert'\n | 'operators'\n | 'relations'\n>\n\nexport type SQLiteAdapter = {\n client: Client\n clientConfig: Args['client']\n countDistinct: CountDistinct\n defaultDrizzleSnapshot: any\n deleteWhere: DeleteWhere\n drizzle: LibSQLDatabase\n dropDatabase: DropDatabase\n execute: Execute<unknown>\n /**\n * An object keyed on each table, with a key value pair where the constraint name is the key, followed by the dot-notation field name\n * Used for returning properly formed errors from unique fields\n */\n fieldConstraints: Record<string, Record<string, string>>\n idType: Args['idType']\n initializing: Promise<void>\n insert: Insert\n localesSuffix?: string\n logger: DrizzleConfig['logger']\n operators: Operators\n prodMigrations?: {\n down: (args: MigrateDownArgs) => Promise<void>\n name: string\n up: (args: MigrateUpArgs) => Promise<void>\n }[]\n push: boolean\n rejectInitializing: () => void\n relations: Record<string, GenericRelation>\n relationshipsSuffix?: string\n resolveInitializing: () => void\n schema: Record<string, GenericRelation | GenericTable>\n schemaName?: Args['schemaName']\n tableNameMap: Map<string, string>\n tables: Record<string, GenericTable>\n transactionOptions: SQLiteTransactionConfig\n versionsSuffix?: string\n} & SQLiteDrizzleAdapter\n\nexport type IDType = 'integer' | 'numeric' | 'text'\n\nexport type MigrateUpArgs = {\n payload: Payload\n req?: Partial<PayloadRequest>\n}\nexport type MigrateDownArgs = {\n payload: Payload\n req?: Partial<PayloadRequest>\n}\n\ndeclare module 'payload' {\n export interface DatabaseAdapter\n extends Omit<Args, 'idType' | 'logger' | 'migrationDir' | 'pool'>,\n DrizzleAdapter {\n beginTransaction: (options?: SQLiteTransactionConfig) => Promise<null | number | string>\n drizzle: LibSQLDatabase\n /**\n * An object keyed on each table, with a key value pair where the constraint name is the key, followed by the dot-notation field name\n * Used for returning properly formed errors from unique fields\n */\n fieldConstraints: Record<string, Record<string, string>>\n idType: Args['idType']\n initializing: Promise<void>\n localesSuffix?: string\n logger: DrizzleConfig['logger']\n prodMigrations?: {\n down: (args: MigrateDownArgs) => Promise<void>\n name: string\n up: (args: MigrateUpArgs) => Promise<void>\n }[]\n push: boolean\n rejectInitializing: () => void\n relationshipsSuffix?: string\n resolveInitializing: () => void\n schema: Record<string, GenericRelation | GenericTable>\n tableNameMap: Map<string, string>\n transactionOptions: SQLiteTransactionConfig\n versionsSuffix?: string\n }\n}\n"],"names":[],"mappings":"AAmIA,WAGC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/db-sqlite",
3
- "version": "3.0.0-canary.ef0a8d0",
3
+ "version": "3.0.0-canary.f118ee4",
4
4
  "description": "The officially supported SQLite database adapter for Payload",
5
5
  "homepage": "https://payloadcms.com",
6
6
  "repository": {
@@ -37,21 +37,21 @@
37
37
  "dependencies": {
38
38
  "@libsql/client": "^0.6.2",
39
39
  "console-table-printer": "2.11.2",
40
- "drizzle-kit": "0.22.7",
41
- "drizzle-orm": "0.31.2",
40
+ "drizzle-kit": "0.23.2-df9e596",
41
+ "drizzle-orm": "0.32.1",
42
42
  "prompts": "2.4.2",
43
43
  "to-snake-case": "1.0.0",
44
44
  "uuid": "9.0.0",
45
- "@payloadcms/drizzle": "3.0.0-canary.ef0a8d0"
45
+ "@payloadcms/drizzle": "3.0.0-canary.f118ee4"
46
46
  },
47
47
  "devDependencies": {
48
48
  "@types/pg": "8.10.2",
49
49
  "@types/to-snake-case": "1.0.0",
50
- "@payloadcms/eslint-config": "3.0.0-beta.59",
51
- "payload": "3.0.0-canary.ef0a8d0"
50
+ "payload": "3.0.0-canary.f118ee4",
51
+ "@payloadcms/eslint-config": "3.0.0-beta.59"
52
52
  },
53
53
  "peerDependencies": {
54
- "payload": "3.0.0-canary.ef0a8d0"
54
+ "payload": "3.0.0-canary.f118ee4"
55
55
  },
56
56
  "scripts": {
57
57
  "build": "pnpm build:swc && pnpm build:types",
@@ -1,3 +0,0 @@
1
- import type { SQLiteAdapter } from './types.js';
2
- export declare const generateDrizzleJSON: SQLiteAdapter['generateDrizzleJSON'];
3
- //# sourceMappingURL=generateDrizzleJSON.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateDrizzleJSON.d.ts","sourceRoot":"","sources":["../src/generateDrizzleJSON.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C,eAAO,MAAM,mBAAmB,EAAE,aAAa,CAAC,qBAAqB,CAKlE,CAAA"}
@@ -1,8 +0,0 @@
1
- import { createRequire } from 'module';
2
- const require = createRequire(import.meta.url);
3
- export const generateDrizzleJSON = function generateDrizzleJSON({ schema }) {
4
- const { generateSQLiteDrizzleJson } = require('drizzle-kit/payload');
5
- return generateSQLiteDrizzleJson(schema);
6
- };
7
-
8
- //# sourceMappingURL=generateDrizzleJSON.js.map