@payloadcms/db-sqlite 3.0.0-canary.6d066c2 → 3.0.0-canary.79ab53e

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 (43) hide show
  1. package/README.md +1 -1
  2. package/dist/connect.d.ts.map +1 -1
  3. package/dist/connect.js +15 -3
  4. package/dist/connect.js.map +1 -1
  5. package/dist/createMigration.d.ts.map +1 -1
  6. package/dist/createMigration.js +5 -2
  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 +1 -1
  11. package/dist/defaultSnapshot.js.map +1 -1
  12. package/dist/getMigrationTemplate.d.ts +1 -0
  13. package/dist/getMigrationTemplate.d.ts.map +1 -1
  14. package/dist/getMigrationTemplate.js +3 -2
  15. package/dist/getMigrationTemplate.js.map +1 -1
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +3 -1
  18. package/dist/index.js.map +1 -1
  19. package/dist/init.d.ts.map +1 -1
  20. package/dist/init.js +12 -1
  21. package/dist/init.js.map +1 -1
  22. package/dist/requireDrizzleKit.js +1 -1
  23. package/dist/requireDrizzleKit.js.map +1 -1
  24. package/dist/schema/build.d.ts +16 -16
  25. package/dist/schema/build.d.ts.map +1 -1
  26. package/dist/schema/build.js +14 -6
  27. package/dist/schema/build.js.map +1 -1
  28. package/dist/schema/createIndex.d.ts +2 -2
  29. package/dist/schema/createIndex.d.ts.map +1 -1
  30. package/dist/schema/createIndex.js +4 -2
  31. package/dist/schema/createIndex.js.map +1 -1
  32. package/dist/schema/traverseFields.d.ts +7 -2
  33. package/dist/schema/traverseFields.d.ts.map +1 -1
  34. package/dist/schema/traverseFields.js +167 -69
  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 +12 -0
  39. package/dist/schema/withDefault.js.map +1 -0
  40. package/dist/types.d.ts +20 -16
  41. package/dist/types.d.ts.map +1 -1
  42. package/dist/types.js.map +1 -1
  43. package/package.json +10 -8
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Payload Postgres Adapter
1
+ # Payload SQLite Adapter
2
2
 
3
3
  Official SQLite adapter for [Payload](https://payloadcms.com).
4
4
 
@@ -1 +1 @@
1
- {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAQtC,eAAO,MAAM,OAAO,EAAE,OA4CrB,CAAA"}
1
+ {"version":3,"file":"connect.d.ts","sourceRoot":"","sources":["../src/connect.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAQtC,eAAO,MAAM,OAAO,EAAE,OAoDrB,CAAA"}
package/dist/connect.js CHANGED
@@ -28,15 +28,27 @@ export const connect = async function connect(options = {
28
28
  }
29
29
  }
30
30
  } catch (err) {
31
- this.payload.logger.error(`Error: cannot connect to SQLite. Details: ${err.message}`, err);
32
- if (typeof this.rejectInitializing === 'function') this.rejectInitializing();
31
+ this.payload.logger.error({
32
+ err,
33
+ msg: `Error: cannot connect to SQLite: ${err.message}`
34
+ });
35
+ if (typeof this.rejectInitializing === 'function') {
36
+ this.rejectInitializing();
37
+ }
33
38
  process.exit(1);
34
39
  }
35
40
  // Only push schema if not in production
36
41
  if (process.env.NODE_ENV !== 'production' && process.env.PAYLOAD_MIGRATING !== 'true' && this.push !== false) {
37
42
  await pushDevSchema(this);
38
43
  }
39
- if (typeof this.resolveInitializing === 'function') this.resolveInitializing();
44
+ if (typeof this.resolveInitializing === 'function') {
45
+ this.resolveInitializing();
46
+ }
47
+ if (process.env.NODE_ENV === 'production' && this.prodMigrations) {
48
+ await this.migrate({
49
+ migrations: this.prodMigrations
50
+ });
51
+ }
40
52
  };
41
53
 
42
54
  //# sourceMappingURL=connect.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/connect.ts"],"sourcesContent":["import type { DrizzleAdapter } from '@payloadcms/drizzle/types'\nimport type { LibSQLDatabase } from 'drizzle-orm/libsql'\nimport type { Connect } from 'payload'\n\nimport { createClient } from '@libsql/client'\nimport { pushDevSchema } from '@payloadcms/drizzle'\nimport { drizzle } from 'drizzle-orm/libsql'\n\nimport type { SQLiteAdapter } from './types.js'\n\nexport const connect: Connect = async function connect(\n this: SQLiteAdapter,\n options = {\n hotReload: false,\n },\n) {\n const { hotReload } = options\n\n this.schema = {\n ...this.tables,\n ...this.relations,\n }\n\n try {\n if (!this.client) {\n this.client = createClient(this.clientConfig)\n }\n\n const logger = this.logger || false\n this.drizzle = drizzle(this.client, { logger, schema: this.schema }) as LibSQLDatabase\n\n if (!hotReload) {\n if (process.env.PAYLOAD_DROP_DATABASE === 'true') {\n this.payload.logger.info(`---- DROPPING TABLES ----`)\n await this.dropDatabase({ adapter: this })\n this.payload.logger.info('---- DROPPED TABLES ----')\n }\n }\n } catch (err) {\n this.payload.logger.error(`Error: cannot connect to SQLite. Details: ${err.message}`, err)\n if (typeof this.rejectInitializing === 'function') this.rejectInitializing()\n process.exit(1)\n }\n\n // Only push schema if not in production\n if (\n process.env.NODE_ENV !== 'production' &&\n process.env.PAYLOAD_MIGRATING !== 'true' &&\n this.push !== false\n ) {\n await pushDevSchema(this as unknown as DrizzleAdapter)\n }\n\n if (typeof this.resolveInitializing === 'function') this.resolveInitializing()\n}\n"],"names":["createClient","pushDevSchema","drizzle","connect","options","hotReload","schema","tables","relations","client","clientConfig","logger","process","env","PAYLOAD_DROP_DATABASE","payload","info","dropDatabase","adapter","err","error","message","rejectInitializing","exit","NODE_ENV","PAYLOAD_MIGRATING","push","resolveInitializing"],"mappings":"AAIA,SAASA,YAAY,QAAQ,iBAAgB;AAC7C,SAASC,aAAa,QAAQ,sBAAqB;AACnD,SAASC,OAAO,QAAQ,qBAAoB;AAI5C,OAAO,MAAMC,UAAmB,eAAeA,QAE7CC,UAAU;IACRC,WAAW;AACb,CAAC;IAED,MAAM,EAAEA,SAAS,EAAE,GAAGD;IAEtB,IAAI,CAACE,MAAM,GAAG;QACZ,GAAG,IAAI,CAACC,MAAM;QACd,GAAG,IAAI,CAACC,SAAS;IACnB;IAEA,IAAI;QACF,IAAI,CAAC,IAAI,CAACC,MAAM,EAAE;YAChB,IAAI,CAACA,MAAM,GAAGT,aAAa,IAAI,CAACU,YAAY;QAC9C;QAEA,MAAMC,SAAS,IAAI,CAACA,MAAM,IAAI;QAC9B,IAAI,CAACT,OAAO,GAAGA,QAAQ,IAAI,CAACO,MAAM,EAAE;YAAEE;YAAQL,QAAQ,IAAI,CAACA,MAAM;QAAC;QAElE,IAAI,CAACD,WAAW;YACd,IAAIO,QAAQC,GAAG,CAACC,qBAAqB,KAAK,QAAQ;gBAChD,IAAI,CAACC,OAAO,CAACJ,MAAM,CAACK,IAAI,CAAC,CAAC,yBAAyB,CAAC;gBACpD,MAAM,IAAI,CAACC,YAAY,CAAC;oBAAEC,SAAS,IAAI;gBAAC;gBACxC,IAAI,CAACH,OAAO,CAACJ,MAAM,CAACK,IAAI,CAAC;YAC3B;QACF;IACF,EAAE,OAAOG,KAAK;QACZ,IAAI,CAACJ,OAAO,CAACJ,MAAM,CAACS,KAAK,CAAC,CAAC,0CAA0C,EAAED,IAAIE,OAAO,CAAC,CAAC,EAAEF;QACtF,IAAI,OAAO,IAAI,CAACG,kBAAkB,KAAK,YAAY,IAAI,CAACA,kBAAkB;QAC1EV,QAAQW,IAAI,CAAC;IACf;IAEA,wCAAwC;IACxC,IACEX,QAAQC,GAAG,CAACW,QAAQ,KAAK,gBACzBZ,QAAQC,GAAG,CAACY,iBAAiB,KAAK,UAClC,IAAI,CAACC,IAAI,KAAK,OACd;QACA,MAAMzB,cAAc,IAAI;IAC1B;IAEA,IAAI,OAAO,IAAI,CAAC0B,mBAAmB,KAAK,YAAY,IAAI,CAACA,mBAAmB;AAC9E,EAAC"}
1
+ {"version":3,"sources":["../src/connect.ts"],"sourcesContent":["import type { DrizzleAdapter } from '@payloadcms/drizzle/types'\nimport type { LibSQLDatabase } from 'drizzle-orm/libsql'\nimport type { Connect } from 'payload'\n\nimport { createClient } from '@libsql/client'\nimport { pushDevSchema } from '@payloadcms/drizzle'\nimport { drizzle } from 'drizzle-orm/libsql'\n\nimport type { SQLiteAdapter } from './types.js'\n\nexport const connect: Connect = async function connect(\n this: SQLiteAdapter,\n options = {\n hotReload: false,\n },\n) {\n const { hotReload } = options\n\n this.schema = {\n ...this.tables,\n ...this.relations,\n }\n\n try {\n if (!this.client) {\n this.client = createClient(this.clientConfig)\n }\n\n const logger = this.logger || false\n this.drizzle = drizzle(this.client, { logger, schema: this.schema }) as LibSQLDatabase\n\n if (!hotReload) {\n if (process.env.PAYLOAD_DROP_DATABASE === 'true') {\n this.payload.logger.info(`---- DROPPING TABLES ----`)\n await this.dropDatabase({ adapter: this })\n this.payload.logger.info('---- DROPPED TABLES ----')\n }\n }\n } catch (err) {\n this.payload.logger.error({ err, msg: `Error: cannot connect to SQLite: ${err.message}` })\n if (typeof this.rejectInitializing === 'function') {\n this.rejectInitializing()\n }\n process.exit(1)\n }\n\n // Only push schema if not in production\n if (\n process.env.NODE_ENV !== 'production' &&\n process.env.PAYLOAD_MIGRATING !== 'true' &&\n this.push !== false\n ) {\n await pushDevSchema(this as unknown as DrizzleAdapter)\n }\n\n if (typeof this.resolveInitializing === 'function') {\n this.resolveInitializing()\n }\n\n if (process.env.NODE_ENV === 'production' && this.prodMigrations) {\n await this.migrate({ migrations: this.prodMigrations })\n }\n}\n"],"names":["createClient","pushDevSchema","drizzle","connect","options","hotReload","schema","tables","relations","client","clientConfig","logger","process","env","PAYLOAD_DROP_DATABASE","payload","info","dropDatabase","adapter","err","error","msg","message","rejectInitializing","exit","NODE_ENV","PAYLOAD_MIGRATING","push","resolveInitializing","prodMigrations","migrate","migrations"],"mappings":"AAIA,SAASA,YAAY,QAAQ,iBAAgB;AAC7C,SAASC,aAAa,QAAQ,sBAAqB;AACnD,SAASC,OAAO,QAAQ,qBAAoB;AAI5C,OAAO,MAAMC,UAAmB,eAAeA,QAE7CC,UAAU;IACRC,WAAW;AACb,CAAC;IAED,MAAM,EAAEA,SAAS,EAAE,GAAGD;IAEtB,IAAI,CAACE,MAAM,GAAG;QACZ,GAAG,IAAI,CAACC,MAAM;QACd,GAAG,IAAI,CAACC,SAAS;IACnB;IAEA,IAAI;QACF,IAAI,CAAC,IAAI,CAACC,MAAM,EAAE;YAChB,IAAI,CAACA,MAAM,GAAGT,aAAa,IAAI,CAACU,YAAY;QAC9C;QAEA,MAAMC,SAAS,IAAI,CAACA,MAAM,IAAI;QAC9B,IAAI,CAACT,OAAO,GAAGA,QAAQ,IAAI,CAACO,MAAM,EAAE;YAAEE;YAAQL,QAAQ,IAAI,CAACA,MAAM;QAAC;QAElE,IAAI,CAACD,WAAW;YACd,IAAIO,QAAQC,GAAG,CAACC,qBAAqB,KAAK,QAAQ;gBAChD,IAAI,CAACC,OAAO,CAACJ,MAAM,CAACK,IAAI,CAAC,CAAC,yBAAyB,CAAC;gBACpD,MAAM,IAAI,CAACC,YAAY,CAAC;oBAAEC,SAAS,IAAI;gBAAC;gBACxC,IAAI,CAACH,OAAO,CAACJ,MAAM,CAACK,IAAI,CAAC;YAC3B;QACF;IACF,EAAE,OAAOG,KAAK;QACZ,IAAI,CAACJ,OAAO,CAACJ,MAAM,CAACS,KAAK,CAAC;YAAED;YAAKE,KAAK,CAAC,iCAAiC,EAAEF,IAAIG,OAAO,CAAC,CAAC;QAAC;QACxF,IAAI,OAAO,IAAI,CAACC,kBAAkB,KAAK,YAAY;YACjD,IAAI,CAACA,kBAAkB;QACzB;QACAX,QAAQY,IAAI,CAAC;IACf;IAEA,wCAAwC;IACxC,IACEZ,QAAQC,GAAG,CAACY,QAAQ,KAAK,gBACzBb,QAAQC,GAAG,CAACa,iBAAiB,KAAK,UAClC,IAAI,CAACC,IAAI,KAAK,OACd;QACA,MAAM1B,cAAc,IAAI;IAC1B;IAEA,IAAI,OAAO,IAAI,CAAC2B,mBAAmB,KAAK,YAAY;QAClD,IAAI,CAACA,mBAAmB;IAC1B;IAEA,IAAIhB,QAAQC,GAAG,CAACY,QAAQ,KAAK,gBAAgB,IAAI,CAACI,cAAc,EAAE;QAChE,MAAM,IAAI,CAACC,OAAO,CAAC;YAAEC,YAAY,IAAI,CAACF,cAAc;QAAC;IACvD;AACF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"createMigration.d.ts","sourceRoot":"","sources":["../src/createMigration.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAgB9C,eAAO,MAAM,eAAe,EAAE,eAkG7B,CAAA"}
1
+ {"version":3,"file":"createMigration.d.ts","sourceRoot":"","sources":["../src/createMigration.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAgB9C,eAAO,MAAM,eAAe,EAAE,eAqG7B,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import fs from 'fs';
2
2
  import { createRequire } from 'module';
3
3
  import path from 'path';
4
- import { getPredefinedMigration } from 'payload';
4
+ import { getPredefinedMigration, writeMigrationIndex } from 'payload';
5
5
  import prompts from 'prompts';
6
6
  import { fileURLToPath } from 'url';
7
7
  import { defaultDrizzleSnapshot } from './defaultSnapshot.js';
@@ -14,7 +14,7 @@ export const createMigration = async function createMigration({ file, forceAccep
14
14
  if (!fs.existsSync(dir)) {
15
15
  fs.mkdirSync(dir);
16
16
  }
17
- const { generateSQLiteDrizzleJson, generateSQLiteMigration } = require('drizzle-kit/payload');
17
+ const { generateSQLiteDrizzleJson, generateSQLiteMigration } = require('drizzle-kit/api');
18
18
  const drizzleJsonAfter = await generateSQLiteDrizzleJson(this.schema);
19
19
  const [yyymmdd, hhmmss] = new Date().toISOString().split('T');
20
20
  const formattedDate = yyymmdd.replace(/\D/g, '');
@@ -73,6 +73,9 @@ export const createMigration = async function createMigration({ file, forceAccep
73
73
  imports,
74
74
  upSQL: upSQL || ` // Migration code`
75
75
  }));
76
+ writeMigrationIndex({
77
+ migrationsDir: payload.db.migrationDir
78
+ });
76
79
  payload.logger.info({
77
80
  msg: `Migration created at ${filePath}.ts`
78
81
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/createMigration.ts"],"sourcesContent":["import type { DrizzleSnapshotJSON } from 'drizzle-kit/payload'\nimport type { CreateMigration } from 'payload'\n\nimport fs from 'fs'\nimport { createRequire } from 'module'\nimport path from 'path'\nimport { getPredefinedMigration } from 'payload'\nimport prompts from 'prompts'\nimport { fileURLToPath } from 'url'\n\nimport type { SQLiteAdapter } from './types.js'\n\nimport { defaultDrizzleSnapshot } from './defaultSnapshot.js'\nimport { getMigrationTemplate } from './getMigrationTemplate.js'\n\nconst require = createRequire(import.meta.url)\n\nexport const createMigration: CreateMigration = async function createMigration(\n this: SQLiteAdapter,\n { file, forceAcceptWarning, migrationName, payload },\n) {\n const filename = fileURLToPath(import.meta.url)\n const dirname = path.dirname(filename)\n const dir = payload.db.migrationDir\n if (!fs.existsSync(dir)) {\n fs.mkdirSync(dir)\n }\n const { generateSQLiteDrizzleJson, generateSQLiteMigration } = require('drizzle-kit/payload')\n const drizzleJsonAfter = await generateSQLiteDrizzleJson(this.schema)\n const [yyymmdd, hhmmss] = new Date().toISOString().split('T')\n const formattedDate = yyymmdd.replace(/\\D/g, '')\n const formattedTime = hhmmss.split('.')[0].replace(/\\D/g, '')\n let imports: string = ''\n let downSQL: string\n let upSQL: string\n ;({ downSQL, imports, upSQL } = await getPredefinedMigration({\n dirname,\n file,\n migrationName,\n payload,\n }))\n\n const timestamp = `${formattedDate}_${formattedTime}`\n\n const name = migrationName || file?.split('/').slice(2).join('/')\n const fileName = `${timestamp}${name ? `_${name.replace(/\\W/g, '_')}` : ''}`\n\n const filePath = `${dir}/${fileName}`\n\n let drizzleJsonBefore = defaultDrizzleSnapshot as any\n\n if (!upSQL) {\n // Get latest migration snapshot\n const latestSnapshot = fs\n .readdirSync(dir)\n .filter((file) => file.endsWith('.json'))\n .sort()\n .reverse()?.[0]\n\n if (latestSnapshot) {\n drizzleJsonBefore = JSON.parse(\n fs.readFileSync(`${dir}/${latestSnapshot}`, 'utf8'),\n ) as DrizzleSnapshotJSON\n }\n\n const sqlStatementsUp = await generateSQLiteMigration(drizzleJsonBefore, drizzleJsonAfter)\n const sqlStatementsDown = await generateSQLiteMigration(drizzleJsonAfter, drizzleJsonBefore)\n // need to create tables as separate statements\n const sqlExecute = 'await payload.db.drizzle.run(sql`'\n\n if (sqlStatementsUp?.length) {\n upSQL = sqlStatementsUp\n .map((statement) => `${sqlExecute}${statement?.replaceAll('`', '\\\\`')}\\`)`)\n .join('\\n')\n }\n if (sqlStatementsDown?.length) {\n downSQL = sqlStatementsDown\n .map((statement) => `${sqlExecute}${statement?.replaceAll('`', '\\\\`')}\\`)`)\n .join('\\n')\n }\n\n if (!upSQL?.length && !downSQL?.length && !forceAcceptWarning) {\n const { confirm: shouldCreateBlankMigration } = await prompts(\n {\n name: 'confirm',\n type: 'confirm',\n initial: false,\n message: 'No schema changes detected. Would you like to create a blank migration file?',\n },\n {\n onCancel: () => {\n process.exit(0)\n },\n },\n )\n\n if (!shouldCreateBlankMigration) {\n process.exit(0)\n }\n }\n\n // write schema\n fs.writeFileSync(`${filePath}.json`, JSON.stringify(drizzleJsonAfter, null, 2))\n }\n\n // write migration\n fs.writeFileSync(\n `${filePath}.ts`,\n getMigrationTemplate({\n downSQL: downSQL || ` // Migration code`,\n imports,\n upSQL: upSQL || ` // Migration code`,\n }),\n )\n payload.logger.info({ msg: `Migration created at ${filePath}.ts` })\n}\n"],"names":["fs","createRequire","path","getPredefinedMigration","prompts","fileURLToPath","defaultDrizzleSnapshot","getMigrationTemplate","require","url","createMigration","file","forceAcceptWarning","migrationName","payload","filename","dirname","dir","db","migrationDir","existsSync","mkdirSync","generateSQLiteDrizzleJson","generateSQLiteMigration","drizzleJsonAfter","schema","yyymmdd","hhmmss","Date","toISOString","split","formattedDate","replace","formattedTime","imports","downSQL","upSQL","timestamp","name","slice","join","fileName","filePath","drizzleJsonBefore","latestSnapshot","readdirSync","filter","endsWith","sort","reverse","JSON","parse","readFileSync","sqlStatementsUp","sqlStatementsDown","sqlExecute","length","map","statement","replaceAll","confirm","shouldCreateBlankMigration","type","initial","message","onCancel","process","exit","writeFileSync","stringify","logger","info","msg"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/createMigration.ts"],"sourcesContent":["import type { DrizzleSnapshotJSON } from 'drizzle-kit/api'\nimport type { CreateMigration } from 'payload'\n\nimport fs from 'fs'\nimport { createRequire } from 'module'\nimport path from 'path'\nimport { getPredefinedMigration, writeMigrationIndex } from 'payload'\nimport prompts from 'prompts'\nimport { fileURLToPath } from 'url'\n\nimport type { SQLiteAdapter } from './types.js'\n\nimport { defaultDrizzleSnapshot } from './defaultSnapshot.js'\nimport { getMigrationTemplate } from './getMigrationTemplate.js'\n\nconst require = createRequire(import.meta.url)\n\nexport const createMigration: CreateMigration = async function createMigration(\n this: SQLiteAdapter,\n { file, forceAcceptWarning, migrationName, payload },\n) {\n const filename = fileURLToPath(import.meta.url)\n const dirname = path.dirname(filename)\n const dir = payload.db.migrationDir\n if (!fs.existsSync(dir)) {\n fs.mkdirSync(dir)\n }\n const { generateSQLiteDrizzleJson, generateSQLiteMigration } = require('drizzle-kit/api')\n const drizzleJsonAfter = await generateSQLiteDrizzleJson(this.schema)\n const [yyymmdd, hhmmss] = new Date().toISOString().split('T')\n const formattedDate = yyymmdd.replace(/\\D/g, '')\n const formattedTime = hhmmss.split('.')[0].replace(/\\D/g, '')\n let imports: string = ''\n let downSQL: string\n let upSQL: string\n ;({ downSQL, imports, upSQL } = await getPredefinedMigration({\n dirname,\n file,\n migrationName,\n payload,\n }))\n\n const timestamp = `${formattedDate}_${formattedTime}`\n\n const name = migrationName || file?.split('/').slice(2).join('/')\n const fileName = `${timestamp}${name ? `_${name.replace(/\\W/g, '_')}` : ''}`\n\n const filePath = `${dir}/${fileName}`\n\n let drizzleJsonBefore = defaultDrizzleSnapshot as any\n\n if (!upSQL) {\n // Get latest migration snapshot\n const latestSnapshot = fs\n .readdirSync(dir)\n .filter((file) => file.endsWith('.json'))\n .sort()\n .reverse()?.[0]\n\n if (latestSnapshot) {\n drizzleJsonBefore = JSON.parse(\n fs.readFileSync(`${dir}/${latestSnapshot}`, 'utf8'),\n ) as DrizzleSnapshotJSON\n }\n\n const sqlStatementsUp = await generateSQLiteMigration(drizzleJsonBefore, drizzleJsonAfter)\n const sqlStatementsDown = await generateSQLiteMigration(drizzleJsonAfter, drizzleJsonBefore)\n // need to create tables as separate statements\n const sqlExecute = 'await payload.db.drizzle.run(sql`'\n\n if (sqlStatementsUp?.length) {\n upSQL = sqlStatementsUp\n .map((statement) => `${sqlExecute}${statement?.replaceAll('`', '\\\\`')}\\`)`)\n .join('\\n')\n }\n if (sqlStatementsDown?.length) {\n downSQL = sqlStatementsDown\n .map((statement) => `${sqlExecute}${statement?.replaceAll('`', '\\\\`')}\\`)`)\n .join('\\n')\n }\n\n if (!upSQL?.length && !downSQL?.length && !forceAcceptWarning) {\n const { confirm: shouldCreateBlankMigration } = await prompts(\n {\n name: 'confirm',\n type: 'confirm',\n initial: false,\n message: 'No schema changes detected. Would you like to create a blank migration file?',\n },\n {\n onCancel: () => {\n process.exit(0)\n },\n },\n )\n\n if (!shouldCreateBlankMigration) {\n process.exit(0)\n }\n }\n\n // write schema\n fs.writeFileSync(`${filePath}.json`, JSON.stringify(drizzleJsonAfter, null, 2))\n }\n\n // write migration\n fs.writeFileSync(\n `${filePath}.ts`,\n getMigrationTemplate({\n downSQL: downSQL || ` // Migration code`,\n imports,\n upSQL: upSQL || ` // Migration code`,\n }),\n )\n\n writeMigrationIndex({ migrationsDir: payload.db.migrationDir })\n\n payload.logger.info({ msg: `Migration created at ${filePath}.ts` })\n}\n"],"names":["fs","createRequire","path","getPredefinedMigration","writeMigrationIndex","prompts","fileURLToPath","defaultDrizzleSnapshot","getMigrationTemplate","require","url","createMigration","file","forceAcceptWarning","migrationName","payload","filename","dirname","dir","db","migrationDir","existsSync","mkdirSync","generateSQLiteDrizzleJson","generateSQLiteMigration","drizzleJsonAfter","schema","yyymmdd","hhmmss","Date","toISOString","split","formattedDate","replace","formattedTime","imports","downSQL","upSQL","timestamp","name","slice","join","fileName","filePath","drizzleJsonBefore","latestSnapshot","readdirSync","filter","endsWith","sort","reverse","JSON","parse","readFileSync","sqlStatementsUp","sqlStatementsDown","sqlExecute","length","map","statement","replaceAll","confirm","shouldCreateBlankMigration","type","initial","message","onCancel","process","exit","writeFileSync","stringify","migrationsDir","logger","info","msg"],"mappings":"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"}
@@ -1,3 +1,3 @@
1
- import type { DrizzleSQLiteSnapshotJSON } from 'drizzle-kit/payload';
1
+ import type { DrizzleSQLiteSnapshotJSON } from 'drizzle-kit/api';
2
2
  export declare const defaultDrizzleSnapshot: DrizzleSQLiteSnapshotJSON;
3
3
  //# sourceMappingURL=defaultSnapshot.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaultSnapshot.d.ts","sourceRoot":"","sources":["../src/defaultSnapshot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAA;AAEpE,eAAO,MAAM,sBAAsB,EAAE,yBAWpC,CAAA"}
1
+ {"version":3,"file":"defaultSnapshot.d.ts","sourceRoot":"","sources":["../src/defaultSnapshot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAA;AAEhE,eAAO,MAAM,sBAAsB,EAAE,yBAWpC,CAAA"}
@@ -8,7 +8,7 @@ export const defaultDrizzleSnapshot = {
8
8
  enums: {},
9
9
  prevId: '00000000-0000-0000-0000-00000000000',
10
10
  tables: {},
11
- version: '5'
11
+ version: '6'
12
12
  };
13
13
 
14
14
  //# sourceMappingURL=defaultSnapshot.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/defaultSnapshot.ts"],"sourcesContent":["import type { DrizzleSQLiteSnapshotJSON } from 'drizzle-kit/payload'\n\nexport const defaultDrizzleSnapshot: DrizzleSQLiteSnapshotJSON = {\n id: '00000000-0000-0000-0000-000000000000',\n _meta: {\n columns: {},\n tables: {},\n },\n dialect: 'sqlite',\n enums: {},\n prevId: '00000000-0000-0000-0000-00000000000',\n tables: {},\n version: '5',\n}\n"],"names":["defaultDrizzleSnapshot","id","_meta","columns","tables","dialect","enums","prevId","version"],"mappings":"AAEA,OAAO,MAAMA,yBAAoD;IAC/DC,IAAI;IACJC,OAAO;QACLC,SAAS,CAAC;QACVC,QAAQ,CAAC;IACX;IACAC,SAAS;IACTC,OAAO,CAAC;IACRC,QAAQ;IACRH,QAAQ,CAAC;IACTI,SAAS;AACX,EAAC"}
1
+ {"version":3,"sources":["../src/defaultSnapshot.ts"],"sourcesContent":["import type { DrizzleSQLiteSnapshotJSON } from 'drizzle-kit/api'\n\nexport const defaultDrizzleSnapshot: DrizzleSQLiteSnapshotJSON = {\n id: '00000000-0000-0000-0000-000000000000',\n _meta: {\n columns: {},\n tables: {},\n },\n dialect: 'sqlite',\n enums: {},\n prevId: '00000000-0000-0000-0000-00000000000',\n tables: {},\n version: '6',\n}\n"],"names":["defaultDrizzleSnapshot","id","_meta","columns","tables","dialect","enums","prevId","version"],"mappings":"AAEA,OAAO,MAAMA,yBAAoD;IAC/DC,IAAI;IACJC,OAAO;QACLC,SAAS,CAAC;QACVC,QAAQ,CAAC;IACX;IACAC,SAAS;IACTC,OAAO,CAAC;IACRC,QAAQ;IACRH,QAAQ,CAAC;IACTI,SAAS;AACX,EAAC"}
@@ -1,3 +1,4 @@
1
1
  import type { MigrationTemplateArgs } from 'payload';
2
+ export declare const indent: (text: string) => string;
2
3
  export declare const getMigrationTemplate: ({ downSQL, imports, upSQL, }: MigrationTemplateArgs) => string;
3
4
  //# sourceMappingURL=getMigrationTemplate.d.ts.map
@@ -1 +1 @@
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,oBAAoB,iCAI9B,qBAAqB,KAAG,MAS1B,CAAA"}
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,11 +1,12 @@
1
+ export const indent = (text)=>text.split('\n').map((line)=>` ${line}`).join('\n');
1
2
  export const getMigrationTemplate = ({ downSQL, imports, upSQL })=>`import { MigrateUpArgs, MigrateDownArgs, sql } from '@payloadcms/db-sqlite'
2
3
  ${imports ? `${imports}\n` : ''}
3
4
  export async function up({ payload, req }: MigrateUpArgs): Promise<void> {
4
- ${upSQL}
5
+ ${indent(upSQL)}
5
6
  }
6
7
 
7
8
  export async function down({ payload, req }: MigrateDownArgs): Promise<void> {
8
- ${downSQL}
9
+ ${indent(downSQL)}
9
10
  }
10
11
  `;
11
12
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/getMigrationTemplate.ts"],"sourcesContent":["import type { MigrationTemplateArgs } from 'payload'\n\nexport const getMigrationTemplate = ({\n downSQL,\n imports,\n upSQL,\n}: MigrationTemplateArgs): string => `import { MigrateUpArgs, MigrateDownArgs, sql } from '@payloadcms/db-sqlite'\n${imports ? `${imports}\\n` : ''}\nexport async function up({ payload, req }: MigrateUpArgs): Promise<void> {\n${upSQL}\n}\n\nexport async function down({ payload, req }: MigrateDownArgs): Promise<void> {\n${downSQL}\n}\n`\n"],"names":["getMigrationTemplate","downSQL","imports","upSQL"],"mappings":"AAEA,OAAO,MAAMA,uBAAuB,CAAC,EACnCC,OAAO,EACPC,OAAO,EACPC,KAAK,EACiB,GAAa,CAAC;AACtC,EAAED,UAAU,CAAC,EAAEA,QAAQ,EAAE,CAAC,GAAG,GAAG;;AAEhC,EAAEC,MAAM;;;;AAIR,EAAEF,QAAQ;;AAEV,CAAC,CAAA"}
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-sqlite'\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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAW,MAAM,SAAS,CAAA;AAqC1D,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAgBrD,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAEhE,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAEjC,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAoG3E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAW,MAAM,SAAS,CAAA;AAqC1D,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAgBrD,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAEhE,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAEjC,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAsG3E"}
package/dist/index.js CHANGED
@@ -48,6 +48,7 @@ export function sqliteAdapter(args) {
48
48
  localesSuffix: args.localesSuffix || '_locales',
49
49
  logger: args.logger,
50
50
  operators,
51
+ prodMigrations: args.prodMigrations,
51
52
  push: args.push,
52
53
  relations: {},
53
54
  relationshipsSuffix: args.relationshipsSuffix || '_rels',
@@ -59,7 +60,7 @@ export function sqliteAdapter(args) {
59
60
  transactionOptions: args.transactionOptions || undefined,
60
61
  versionsSuffix: args.versionsSuffix || '_v',
61
62
  // DatabaseAdapter
62
- beginTransaction: args.transactionOptions === false ? undefined : beginTransaction,
63
+ beginTransaction: args.transactionOptions ? beginTransaction : undefined,
63
64
  commitTransaction,
64
65
  connect,
65
66
  convertPathToJSONTraversal,
@@ -93,6 +94,7 @@ export function sqliteAdapter(args) {
93
94
  migrateReset,
94
95
  migrateStatus,
95
96
  migrationDir,
97
+ packageName: '@payloadcms/db-sqlite',
96
98
  payload,
97
99
  queryDrafts,
98
100
  rejectInitializing,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type { Operators } from '@payloadcms/drizzle'\nimport type { DatabaseAdapterObj, Payload } from 'payload'\n\nimport {\n beginTransaction,\n commitTransaction,\n count,\n create,\n createGlobal,\n createGlobalVersion,\n createVersion,\n deleteMany,\n deleteOne,\n deleteVersions,\n destroy,\n find,\n findGlobal,\n findGlobalVersions,\n findMigrationDir,\n findOne,\n findVersions,\n migrate,\n migrateDown,\n migrateFresh,\n migrateRefresh,\n migrateReset,\n migrateStatus,\n operatorMap,\n queryDrafts,\n rollbackTransaction,\n updateGlobal,\n updateGlobalVersion,\n updateOne,\n updateVersion,\n} from '@payloadcms/drizzle'\nimport { like } from 'drizzle-orm'\nimport { createDatabaseAdapter } from 'payload'\n\nimport type { Args, SQLiteAdapter } from './types.js'\n\nimport { connect } from './connect.js'\nimport { countDistinct } from './countDistinct.js'\nimport { convertPathToJSONTraversal } from './createJSONQuery/convertPathToJSONTraversal.js'\nimport { createJSONQuery } from './createJSONQuery/index.js'\nimport { createMigration } from './createMigration.js'\nimport { defaultDrizzleSnapshot } from './defaultSnapshot.js'\nimport { deleteWhere } from './deleteWhere.js'\nimport { dropDatabase } from './dropDatabase.js'\nimport { execute } from './execute.js'\nimport { getMigrationTemplate } from './getMigrationTemplate.js'\nimport { init } from './init.js'\nimport { insert } from './insert.js'\nimport { requireDrizzleKit } from './requireDrizzleKit.js'\n\nexport type { MigrateDownArgs, MigrateUpArgs } from './types.js'\n\nexport { sql } from 'drizzle-orm'\n\nexport function sqliteAdapter(args: Args): DatabaseAdapterObj<SQLiteAdapter> {\n const postgresIDType = args.idType || 'serial'\n const payloadIDType = postgresIDType === 'serial' ? 'number' : 'text'\n\n function adapter({ payload }: { payload: Payload }) {\n const migrationDir = findMigrationDir(args.migrationDir)\n let resolveInitializing\n let rejectInitializing\n\n const initializing = new Promise<void>((res, rej) => {\n resolveInitializing = res\n rejectInitializing = rej\n })\n\n // sqlite's like operator is case-insensitive, so we overwrite the DrizzleAdapter operators to not use ilike\n const operators = {\n ...operatorMap,\n contains: like,\n like,\n } as unknown as Operators\n\n return createDatabaseAdapter<SQLiteAdapter>({\n name: 'sqlite',\n client: undefined,\n clientConfig: args.client,\n defaultDrizzleSnapshot,\n drizzle: undefined,\n features: {\n json: true,\n },\n fieldConstraints: {},\n getMigrationTemplate,\n idType: postgresIDType,\n initializing,\n localesSuffix: args.localesSuffix || '_locales',\n logger: args.logger,\n operators,\n push: args.push,\n relations: {},\n relationshipsSuffix: args.relationshipsSuffix || '_rels',\n schema: {},\n schemaName: args.schemaName,\n sessions: {},\n tableNameMap: new Map<string, string>(),\n tables: {},\n transactionOptions: args.transactionOptions || undefined,\n versionsSuffix: args.versionsSuffix || '_v',\n\n // DatabaseAdapter\n beginTransaction: args.transactionOptions === false ? undefined : beginTransaction,\n commitTransaction,\n connect,\n convertPathToJSONTraversal,\n count,\n countDistinct,\n create,\n createGlobal,\n createGlobalVersion,\n createJSONQuery,\n createMigration,\n createVersion,\n defaultIDType: payloadIDType,\n deleteMany,\n deleteOne,\n deleteVersions,\n deleteWhere,\n destroy,\n dropDatabase,\n execute,\n find,\n findGlobal,\n findGlobalVersions,\n findOne,\n findVersions,\n init,\n insert,\n migrate,\n migrateDown,\n migrateFresh,\n migrateRefresh,\n migrateReset,\n migrateStatus,\n migrationDir,\n payload,\n queryDrafts,\n rejectInitializing,\n requireDrizzleKit,\n resolveInitializing,\n rollbackTransaction,\n updateGlobal,\n updateGlobalVersion,\n updateOne,\n updateVersion,\n })\n }\n\n return {\n defaultIDType: payloadIDType,\n init: adapter,\n }\n}\n"],"names":["beginTransaction","commitTransaction","count","create","createGlobal","createGlobalVersion","createVersion","deleteMany","deleteOne","deleteVersions","destroy","find","findGlobal","findGlobalVersions","findMigrationDir","findOne","findVersions","migrate","migrateDown","migrateFresh","migrateRefresh","migrateReset","migrateStatus","operatorMap","queryDrafts","rollbackTransaction","updateGlobal","updateGlobalVersion","updateOne","updateVersion","like","createDatabaseAdapter","connect","countDistinct","convertPathToJSONTraversal","createJSONQuery","createMigration","defaultDrizzleSnapshot","deleteWhere","dropDatabase","execute","getMigrationTemplate","init","insert","requireDrizzleKit","sql","sqliteAdapter","args","postgresIDType","idType","payloadIDType","adapter","payload","migrationDir","resolveInitializing","rejectInitializing","initializing","Promise","res","rej","operators","contains","name","client","undefined","clientConfig","drizzle","features","json","fieldConstraints","localesSuffix","logger","push","relations","relationshipsSuffix","schema","schemaName","sessions","tableNameMap","Map","tables","transactionOptions","versionsSuffix","defaultIDType"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type { Operators } from '@payloadcms/drizzle'\nimport type { DatabaseAdapterObj, Payload } from 'payload'\n\nimport {\n beginTransaction,\n commitTransaction,\n count,\n create,\n createGlobal,\n createGlobalVersion,\n createVersion,\n deleteMany,\n deleteOne,\n deleteVersions,\n destroy,\n find,\n findGlobal,\n findGlobalVersions,\n findMigrationDir,\n findOne,\n findVersions,\n migrate,\n migrateDown,\n migrateFresh,\n migrateRefresh,\n migrateReset,\n migrateStatus,\n operatorMap,\n queryDrafts,\n rollbackTransaction,\n updateGlobal,\n updateGlobalVersion,\n updateOne,\n updateVersion,\n} from '@payloadcms/drizzle'\nimport { like } from 'drizzle-orm'\nimport { createDatabaseAdapter } from 'payload'\n\nimport type { Args, SQLiteAdapter } from './types.js'\n\nimport { connect } from './connect.js'\nimport { countDistinct } from './countDistinct.js'\nimport { convertPathToJSONTraversal } from './createJSONQuery/convertPathToJSONTraversal.js'\nimport { createJSONQuery } from './createJSONQuery/index.js'\nimport { createMigration } from './createMigration.js'\nimport { defaultDrizzleSnapshot } from './defaultSnapshot.js'\nimport { deleteWhere } from './deleteWhere.js'\nimport { dropDatabase } from './dropDatabase.js'\nimport { execute } from './execute.js'\nimport { getMigrationTemplate } from './getMigrationTemplate.js'\nimport { init } from './init.js'\nimport { insert } from './insert.js'\nimport { requireDrizzleKit } from './requireDrizzleKit.js'\n\nexport type { MigrateDownArgs, MigrateUpArgs } from './types.js'\n\nexport { sql } from 'drizzle-orm'\n\nexport function sqliteAdapter(args: Args): DatabaseAdapterObj<SQLiteAdapter> {\n const postgresIDType = args.idType || 'serial'\n const payloadIDType = postgresIDType === 'serial' ? 'number' : 'text'\n\n function adapter({ payload }: { payload: Payload }) {\n const migrationDir = findMigrationDir(args.migrationDir)\n let resolveInitializing\n let rejectInitializing\n\n const initializing = new Promise<void>((res, rej) => {\n resolveInitializing = res\n rejectInitializing = rej\n })\n\n // sqlite's like operator is case-insensitive, so we overwrite the DrizzleAdapter operators to not use ilike\n const operators = {\n ...operatorMap,\n contains: like,\n like,\n } as unknown as Operators\n\n return createDatabaseAdapter<SQLiteAdapter>({\n name: 'sqlite',\n client: undefined,\n clientConfig: args.client,\n defaultDrizzleSnapshot,\n drizzle: undefined,\n features: {\n json: true,\n },\n fieldConstraints: {},\n getMigrationTemplate,\n idType: postgresIDType,\n initializing,\n localesSuffix: args.localesSuffix || '_locales',\n logger: args.logger,\n operators,\n prodMigrations: args.prodMigrations,\n push: args.push,\n relations: {},\n relationshipsSuffix: args.relationshipsSuffix || '_rels',\n schema: {},\n schemaName: args.schemaName,\n sessions: {},\n tableNameMap: new Map<string, string>(),\n tables: {},\n transactionOptions: args.transactionOptions || undefined,\n versionsSuffix: args.versionsSuffix || '_v',\n\n // DatabaseAdapter\n beginTransaction: args.transactionOptions ? beginTransaction : undefined,\n commitTransaction,\n connect,\n convertPathToJSONTraversal,\n count,\n countDistinct,\n create,\n createGlobal,\n createGlobalVersion,\n createJSONQuery,\n createMigration,\n createVersion,\n defaultIDType: payloadIDType,\n deleteMany,\n deleteOne,\n deleteVersions,\n deleteWhere,\n destroy,\n dropDatabase,\n execute,\n find,\n findGlobal,\n findGlobalVersions,\n findOne,\n findVersions,\n init,\n insert,\n migrate,\n migrateDown,\n migrateFresh,\n migrateRefresh,\n migrateReset,\n migrateStatus,\n migrationDir,\n packageName: '@payloadcms/db-sqlite',\n payload,\n queryDrafts,\n rejectInitializing,\n requireDrizzleKit,\n resolveInitializing,\n rollbackTransaction,\n updateGlobal,\n updateGlobalVersion,\n updateOne,\n updateVersion,\n })\n }\n\n return {\n defaultIDType: payloadIDType,\n init: adapter,\n }\n}\n"],"names":["beginTransaction","commitTransaction","count","create","createGlobal","createGlobalVersion","createVersion","deleteMany","deleteOne","deleteVersions","destroy","find","findGlobal","findGlobalVersions","findMigrationDir","findOne","findVersions","migrate","migrateDown","migrateFresh","migrateRefresh","migrateReset","migrateStatus","operatorMap","queryDrafts","rollbackTransaction","updateGlobal","updateGlobalVersion","updateOne","updateVersion","like","createDatabaseAdapter","connect","countDistinct","convertPathToJSONTraversal","createJSONQuery","createMigration","defaultDrizzleSnapshot","deleteWhere","dropDatabase","execute","getMigrationTemplate","init","insert","requireDrizzleKit","sql","sqliteAdapter","args","postgresIDType","idType","payloadIDType","adapter","payload","migrationDir","resolveInitializing","rejectInitializing","initializing","Promise","res","rej","operators","contains","name","client","undefined","clientConfig","drizzle","features","json","fieldConstraints","localesSuffix","logger","prodMigrations","push","relations","relationshipsSuffix","schema","schemaName","sessions","tableNameMap","Map","tables","transactionOptions","versionsSuffix","defaultIDType","packageName"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAA6B,MAAM,SAAS,CAAA;AAU9D,eAAO,MAAM,IAAI,EAAE,IA+FlB,CAAA"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAA6B,MAAM,SAAS,CAAA;AAY9D,eAAO,MAAM,IAAI,EAAE,IA4GlB,CAAA"}
package/dist/init.js CHANGED
@@ -1,4 +1,5 @@
1
- /* eslint-disable no-param-reassign */ import { createTableName } from '@payloadcms/drizzle';
1
+ import { createTableName } from '@payloadcms/drizzle';
2
+ import { uniqueIndex } from 'drizzle-orm/sqlite-core';
2
3
  import { buildVersionCollectionFields, buildVersionGlobalFields } from 'payload';
3
4
  import toSnakeCase from 'to-snake-case';
4
5
  import { buildTable } from './schema/build.js';
@@ -23,6 +24,16 @@ export const init = function init() {
23
24
  });
24
25
  this.payload.config.collections.forEach((collection)=>{
25
26
  const tableName = this.tableNameMap.get(toSnakeCase(collection.slug));
27
+ const baseExtraConfig = {};
28
+ if (collection.upload.filenameCompoundIndex) {
29
+ const indexName = `${tableName}_filename_compound_idx`;
30
+ baseExtraConfig.filename_compound_index = (cols)=>{
31
+ const colsConstraint = collection.upload.filenameCompoundIndex.map((f)=>{
32
+ return cols[f];
33
+ });
34
+ return uniqueIndex(indexName).on(colsConstraint[0], ...colsConstraint.slice(1));
35
+ };
36
+ }
26
37
  buildTable({
27
38
  adapter: this,
28
39
  disableNotNull: !!collection?.versions?.drafts,
package/dist/init.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/init.ts"],"sourcesContent":["/* eslint-disable no-param-reassign */\nimport type { DrizzleAdapter } from '@payloadcms/drizzle/types'\nimport type { Init, SanitizedCollectionConfig } from 'payload'\n\nimport { createTableName } from '@payloadcms/drizzle'\nimport { buildVersionCollectionFields, buildVersionGlobalFields } from 'payload'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { SQLiteAdapter } from './types.js'\n\nimport { buildTable } from './schema/build.js'\n\nexport const init: Init = function init(this: SQLiteAdapter) {\n let locales: [string, ...string[]] | undefined\n if (this.payload.config.localization) {\n locales = this.payload.config.localization.locales.map(({ code }) => code) as [\n string,\n ...string[],\n ]\n }\n\n this.payload.config.collections.forEach((collection: SanitizedCollectionConfig) => {\n createTableName({\n adapter: this as unknown as DrizzleAdapter,\n config: collection,\n })\n\n if (collection.versions) {\n createTableName({\n adapter: this as unknown as DrizzleAdapter,\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 buildTable({\n adapter: this,\n disableNotNull: !!collection?.versions?.drafts,\n disableUnique: false,\n fields: collection.fields,\n locales,\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 locales,\n tableName: versionsTableName,\n timestamps: true,\n versions: true,\n })\n }\n })\n\n this.payload.config.globals.forEach((global) => {\n const tableName = createTableName({\n adapter: this as unknown as DrizzleAdapter,\n config: global,\n })\n\n buildTable({\n adapter: this,\n disableNotNull: !!global?.versions?.drafts,\n disableUnique: false,\n fields: global.fields,\n locales,\n tableName,\n timestamps: false,\n versions: false,\n })\n\n if (global.versions) {\n const versionsTableName = createTableName({\n adapter: this as unknown as DrizzleAdapter,\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 locales,\n tableName: versionsTableName,\n timestamps: true,\n versions: true,\n })\n }\n })\n}\n"],"names":["createTableName","buildVersionCollectionFields","buildVersionGlobalFields","toSnakeCase","buildTable","init","locales","payload","config","localization","map","code","collections","forEach","collection","adapter","versions","versionsCustomName","tableName","tableNameMap","get","slug","disableNotNull","drafts","disableUnique","fields","timestamps","versionsTableName","versionsSuffix","versionFields","globals","global"],"mappings":"AAAA,oCAAoC,GAIpC,SAASA,eAAe,QAAQ,sBAAqB;AACrD,SAASC,4BAA4B,EAAEC,wBAAwB,QAAQ,UAAS;AAChF,OAAOC,iBAAiB,gBAAe;AAIvC,SAASC,UAAU,QAAQ,oBAAmB;AAE9C,OAAO,MAAMC,OAAa,SAASA;IACjC,IAAIC;IACJ,IAAI,IAAI,CAACC,OAAO,CAACC,MAAM,CAACC,YAAY,EAAE;QACpCH,UAAU,IAAI,CAACC,OAAO,CAACC,MAAM,CAACC,YAAY,CAACH,OAAO,CAACI,GAAG,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAKA;IAIvE;IAEA,IAAI,CAACJ,OAAO,CAACC,MAAM,CAACI,WAAW,CAACC,OAAO,CAAC,CAACC;QACvCd,gBAAgB;YACde,SAAS,IAAI;YACbP,QAAQM;QACV;QAEA,IAAIA,WAAWE,QAAQ,EAAE;YACvBhB,gBAAgB;gBACde,SAAS,IAAI;gBACbP,QAAQM;gBACRE,UAAU;gBACVC,oBAAoB;YACtB;QACF;IACF;IACA,IAAI,CAACV,OAAO,CAACC,MAAM,CAACI,WAAW,CAACC,OAAO,CAAC,CAACC;QACvC,MAAMI,YAAY,IAAI,CAACC,YAAY,CAACC,GAAG,CAACjB,YAAYW,WAAWO,IAAI;QAEnEjB,WAAW;YACTW,SAAS,IAAI;YACbO,gBAAgB,CAAC,CAACR,YAAYE,UAAUO;YACxCC,eAAe;YACfC,QAAQX,WAAWW,MAAM;YACzBnB;YACAY;YACAQ,YAAYZ,WAAWY,UAAU;YACjCV,UAAU;QACZ;QAEA,IAAIF,WAAWE,QAAQ,EAAE;YACvB,MAAMW,oBAAoB,IAAI,CAACR,YAAY,CAACC,GAAG,CAC7C,CAAC,CAAC,EAAEjB,YAAYW,WAAWO,IAAI,EAAE,EAAE,IAAI,CAACO,cAAc,CAAC,CAAC;YAE1D,MAAMC,gBAAgB5B,6BAA6Ba;YAEnDV,WAAW;gBACTW,SAAS,IAAI;gBACbO,gBAAgB,CAAC,CAACR,WAAWE,QAAQ,EAAEO;gBACvCC,eAAe;gBACfC,QAAQI;gBACRvB;gBACAY,WAAWS;gBACXD,YAAY;gBACZV,UAAU;YACZ;QACF;IACF;IAEA,IAAI,CAACT,OAAO,CAACC,MAAM,CAACsB,OAAO,CAACjB,OAAO,CAAC,CAACkB;QACnC,MAAMb,YAAYlB,gBAAgB;YAChCe,SAAS,IAAI;YACbP,QAAQuB;QACV;QAEA3B,WAAW;YACTW,SAAS,IAAI;YACbO,gBAAgB,CAAC,CAACS,QAAQf,UAAUO;YACpCC,eAAe;YACfC,QAAQM,OAAON,MAAM;YACrBnB;YACAY;YACAQ,YAAY;YACZV,UAAU;QACZ;QAEA,IAAIe,OAAOf,QAAQ,EAAE;YACnB,MAAMW,oBAAoB3B,gBAAgB;gBACxCe,SAAS,IAAI;gBACbP,QAAQuB;gBACRf,UAAU;gBACVC,oBAAoB;YACtB;YACA,MAAMY,gBAAgB3B,yBAAyB6B;YAE/C3B,WAAW;gBACTW,SAAS,IAAI;gBACbO,gBAAgB,CAAC,CAACS,OAAOf,QAAQ,EAAEO;gBACnCC,eAAe;gBACfC,QAAQI;gBACRvB;gBACAY,WAAWS;gBACXD,YAAY;gBACZV,UAAU;YACZ;QACF;IACF;AACF,EAAC"}
1
+ {"version":3,"sources":["../src/init.ts"],"sourcesContent":["import type { DrizzleAdapter } from '@payloadcms/drizzle/types'\nimport type { Init, SanitizedCollectionConfig } from 'payload'\n\nimport { createTableName } from '@payloadcms/drizzle'\nimport { uniqueIndex } from 'drizzle-orm/sqlite-core'\nimport { buildVersionCollectionFields, buildVersionGlobalFields } from 'payload'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { BaseExtraConfig } from './schema/build.js'\nimport type { SQLiteAdapter } from './types.js'\n\nimport { buildTable } from './schema/build.js'\n\nexport const init: Init = function init(this: SQLiteAdapter) {\n let locales: [string, ...string[]] | undefined\n if (this.payload.config.localization) {\n locales = this.payload.config.localization.locales.map(({ code }) => code) as [\n string,\n ...string[],\n ]\n }\n\n this.payload.config.collections.forEach((collection: SanitizedCollectionConfig) => {\n createTableName({\n adapter: this as unknown as DrizzleAdapter,\n config: collection,\n })\n\n if (collection.versions) {\n createTableName({\n adapter: this as unknown as DrizzleAdapter,\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 disableNotNull: !!collection?.versions?.drafts,\n disableUnique: false,\n fields: collection.fields,\n locales,\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 locales,\n tableName: versionsTableName,\n timestamps: true,\n versions: true,\n })\n }\n })\n\n this.payload.config.globals.forEach((global) => {\n const tableName = createTableName({\n adapter: this as unknown as DrizzleAdapter,\n config: global,\n })\n\n buildTable({\n adapter: this,\n disableNotNull: !!global?.versions?.drafts,\n disableUnique: false,\n fields: global.fields,\n locales,\n tableName,\n timestamps: false,\n versions: false,\n })\n\n if (global.versions) {\n const versionsTableName = createTableName({\n adapter: this as unknown as DrizzleAdapter,\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 locales,\n tableName: versionsTableName,\n timestamps: true,\n versions: true,\n })\n }\n })\n}\n"],"names":["createTableName","uniqueIndex","buildVersionCollectionFields","buildVersionGlobalFields","toSnakeCase","buildTable","init","locales","payload","config","localization","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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"}
@@ -3,7 +3,7 @@ const require = createRequire(import.meta.url);
3
3
  /**
4
4
  * Dynamically requires the `drizzle-kit` package to access the `generateSQLiteDrizzleJson` and `pushSQLiteSchema` functions and exports them generically to call them from @payloadcms/drizzle.
5
5
  */ export const requireDrizzleKit = ()=>{
6
- const { generateSQLiteDrizzleJson: generateDrizzleJson, pushSQLiteSchema: pushSchema } = require('drizzle-kit/payload');
6
+ const { generateSQLiteDrizzleJson: generateDrizzleJson, pushSQLiteSchema: pushSchema } = require('drizzle-kit/api');
7
7
  return {
8
8
  generateDrizzleJson,
9
9
  pushSchema
@@ -1 +1 @@
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)\n\n/**\n * Dynamically requires the `drizzle-kit` package to access the `generateSQLiteDrizzleJson` and `pushSQLiteSchema` functions and exports them generically to call them from @payloadcms/drizzle.\n */\nexport const requireDrizzleKit: RequireDrizzleKit = () => {\n const {\n generateSQLiteDrizzleJson: generateDrizzleJson,\n pushSQLiteSchema: pushSchema,\n } = require('drizzle-kit/payload')\n return { generateDrizzleJson, pushSchema }\n}\n"],"names":["createRequire","require","url","requireDrizzleKit","generateSQLiteDrizzleJson","generateDrizzleJson","pushSQLiteSchema","pushSchema"],"mappings":"AAEA,SAASA,aAAa,QAAQ,SAAQ;AACtC,MAAMC,UAAUD,cAAc,YAAYE,GAAG;AAE7C;;CAEC,GACD,OAAO,MAAMC,oBAAuC;IAClD,MAAM,EACJC,2BAA2BC,mBAAmB,EAC9CC,kBAAkBC,UAAU,EAC7B,GAAGN,QAAQ;IACZ,OAAO;QAAEI;QAAqBE;IAAW;AAC3C,EAAC"}
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)\n\n/**\n * Dynamically requires the `drizzle-kit` package to access the `generateSQLiteDrizzleJson` and `pushSQLiteSchema` functions and exports them generically to call them from @payloadcms/drizzle.\n */\nexport const requireDrizzleKit: RequireDrizzleKit = () => {\n const {\n generateSQLiteDrizzleJson: generateDrizzleJson,\n pushSQLiteSchema: pushSchema,\n } = require('drizzle-kit/api')\n return { generateDrizzleJson, pushSchema }\n}\n"],"names":["createRequire","require","url","requireDrizzleKit","generateSQLiteDrizzleJson","generateDrizzleJson","pushSQLiteSchema","pushSchema"],"mappings":"AAEA,SAASA,aAAa,QAAQ,SAAQ;AACtC,MAAMC,UAAUD,cAAc,YAAYE,GAAG;AAE7C;;CAEC,GACD,OAAO,MAAMC,oBAAuC;IAClD,MAAM,EACJC,2BAA2BC,mBAAmB,EAC9CC,kBAAkBC,UAAU,EAC7B,GAAGN,QAAQ;IACZ,OAAO;QAAEI;QAAqBE;IAAW;AAC3C,EAAC"}
@@ -1,20 +1,8 @@
1
- import type { ColumnDataType } from 'drizzle-orm';
2
- import type { ForeignKeyBuilder, IndexBuilder, SQLiteColumn, SQLiteColumnBuilder, UniqueConstraintBuilder } from 'drizzle-orm/sqlite-core';
1
+ import type { AnySQLiteColumn, ForeignKeyBuilder, IndexBuilder, SQLiteColumnBuilder, UniqueConstraintBuilder } from 'drizzle-orm/sqlite-core';
3
2
  import type { Field } from 'payload';
4
3
  import type { IDType, SQLiteAdapter } from '../types.js';
5
4
  export type BaseExtraConfig = Record<string, (cols: {
6
- [x: string]: SQLiteColumn<{
7
- baseColumn: never;
8
- columnType: string;
9
- data: unknown;
10
- dataType: ColumnDataType;
11
- driverParam: unknown;
12
- enumValues: string[];
13
- hasDefault: false;
14
- name: string;
15
- notNull: false;
16
- tableName: string;
17
- }>;
5
+ [x: string]: AnySQLiteColumn;
18
6
  }) => ForeignKeyBuilder | IndexBuilder | UniqueConstraintBuilder>;
19
7
  export type RelationMap = Map<string, {
20
8
  localized: boolean;
@@ -24,6 +12,10 @@ export type RelationMap = Map<string, {
24
12
  type Args = {
25
13
  adapter: SQLiteAdapter;
26
14
  baseColumns?: Record<string, SQLiteColumnBuilder>;
15
+ /**
16
+ * After table is created, run these functions to add extra config to the table
17
+ * ie. indexes, multiple columns, etc
18
+ */
27
19
  baseExtraConfig?: BaseExtraConfig;
28
20
  buildNumbers?: boolean;
29
21
  buildRelationships?: boolean;
@@ -31,19 +23,27 @@ type Args = {
31
23
  disableUnique: boolean;
32
24
  fields: Field[];
33
25
  locales?: [string, ...string[]];
34
- rootRelationsToBuild?: RelationMap;
35
26
  rootRelationships?: Set<string>;
27
+ rootRelationsToBuild?: RelationMap;
36
28
  rootTableIDColType?: IDType;
37
29
  rootTableName?: string;
38
30
  tableName: string;
39
31
  timestamps?: boolean;
40
32
  versions: boolean;
33
+ /**
34
+ * Tracks whether or not this table is built
35
+ * from the result of a localized array or block field at some point
36
+ */
37
+ withinLocalizedArrayOrBlock?: boolean;
41
38
  };
42
39
  type Result = {
40
+ hasLocalizedManyNumberField: boolean;
41
+ hasLocalizedManyTextField: boolean;
42
+ hasLocalizedRelationshipField: boolean;
43
43
  hasManyNumberField: 'index' | boolean;
44
44
  hasManyTextField: 'index' | boolean;
45
45
  relationsToBuild: RelationMap;
46
46
  };
47
- export declare const buildTable: ({ adapter, baseColumns, baseExtraConfig, disableNotNull, disableUnique, fields, locales, rootRelationsToBuild, rootRelationships, rootTableIDColType, rootTableName: incomingRootTableName, tableName, timestamps, versions, }: Args) => Result;
47
+ export declare const buildTable: ({ adapter, baseColumns, baseExtraConfig, disableNotNull, disableUnique, fields, locales, rootRelationships, rootRelationsToBuild, rootTableIDColType, rootTableName: incomingRootTableName, tableName, timestamps, versions, withinLocalizedArrayOrBlock, }: Args) => Result;
48
48
  export {};
49
49
  //# sourceMappingURL=build.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/schema/build.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAY,MAAM,aAAa,CAAA;AAC3D,OAAO,KAAK,EACV,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,mBAAmB,EAEnB,uBAAuB,EACxB,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAepC,OAAO,KAAK,EAAgC,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAMtF,MAAM,MAAM,eAAe,GAAG,MAAM,CAClC,MAAM,EACN,CAAC,IAAI,EAAE;IACL,CAAC,CAAC,EAAE,MAAM,GAAG,YAAY,CAAC;QACxB,UAAU,EAAE,KAAK,CAAA;QACjB,UAAU,EAAE,MAAM,CAAA;QAClB,IAAI,EAAE,OAAO,CAAA;QACb,QAAQ,EAAE,cAAc,CAAA;QACxB,WAAW,EAAE,OAAO,CAAA;QACpB,UAAU,EAAE,MAAM,EAAE,CAAA;QACpB,UAAU,EAAE,KAAK,CAAA;QACjB,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE,KAAK,CAAA;QACd,SAAS,EAAE,MAAM,CAAA;KAClB,CAAC,CAAA;CACH,KAAK,iBAAiB,GAAG,YAAY,GAAG,uBAAuB,CACjE,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,aAAa,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;IACjD,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,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAA;IAC/B,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,mOAepB,IAAI,KAAG,MA8YT,CAAA"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/schema/build.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EAEnB,uBAAuB,EACxB,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAepC,OAAO,KAAK,EAAgC,MAAM,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAMtF,MAAM,MAAM,eAAe,GAAG,MAAM,CAClC,MAAM,EACN,CAAC,IAAI,EAAE;IACL,CAAC,CAAC,EAAE,MAAM,GAAG,eAAe,CAAA;CAC7B,KAAK,iBAAiB,GAAG,YAAY,GAAG,uBAAuB,CACjE,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,aAAa,CAAA;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;IACjD;;;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,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAA;IAC/B,iBAAiB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAC/B,oBAAoB,CAAC,EAAE,WAAW,CAAA;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,OAAO,CAAA;IACjB;;;OAGG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAA;CACtC,CAAA;AAED,KAAK,MAAM,GAAG;IACZ,2BAA2B,EAAE,OAAO,CAAA;IACpC,yBAAyB,EAAE,OAAO,CAAA;IAClC,6BAA6B,EAAE,OAAO,CAAA;IACtC,kBAAkB,EAAE,OAAO,GAAG,OAAO,CAAA;IACrC,gBAAgB,EAAE,OAAO,GAAG,OAAO,CAAA;IACnC,gBAAgB,EAAE,WAAW,CAAA;CAC9B,CAAA;AAED,eAAO,MAAM,UAAU,gQAgBpB,IAAI,KAAG,MA0ZT,CAAA"}
@@ -1,11 +1,11 @@
1
- /* eslint-disable no-param-reassign */ import { createTableName } from '@payloadcms/drizzle';
1
+ import { createTableName } from '@payloadcms/drizzle';
2
2
  import { relations, sql } from 'drizzle-orm';
3
3
  import { foreignKey, index, integer, numeric, sqliteTable, text, unique } from 'drizzle-orm/sqlite-core';
4
4
  import toSnakeCase from 'to-snake-case';
5
5
  import { getIDColumn } from './getIDColumn.js';
6
6
  import { setColumnID } from './setColumnID.js';
7
7
  import { traverseFields } from './traverseFields.js';
8
- export const buildTable = ({ adapter, baseColumns = {}, baseExtraConfig = {}, disableNotNull, disableUnique = false, fields, locales, rootRelationsToBuild, rootRelationships, rootTableIDColType, rootTableName: incomingRootTableName, tableName, timestamps, versions })=>{
8
+ export const buildTable = ({ adapter, baseColumns = {}, baseExtraConfig = {}, disableNotNull, disableUnique = false, fields, locales, rootRelationships, rootRelationsToBuild, rootTableIDColType, rootTableName: incomingRootTableName, tableName, timestamps, versions, withinLocalizedArrayOrBlock })=>{
9
9
  const isRoot = !incomingRootTableName;
10
10
  const rootTableName = incomingRootTableName || tableName;
11
11
  const columns = baseColumns;
@@ -36,12 +36,13 @@ export const buildTable = ({ adapter, baseColumns = {}, baseExtraConfig = {}, di
36
36
  localesIndexes,
37
37
  newTableName: tableName,
38
38
  parentTableName: tableName,
39
- relationsToBuild,
40
39
  relationships,
40
+ relationsToBuild,
41
41
  rootRelationsToBuild: rootRelationsToBuild || relationsToBuild,
42
42
  rootTableIDColType: rootTableIDColType || idColType,
43
43
  rootTableName,
44
- versions
44
+ versions,
45
+ withinLocalizedArrayOrBlock
45
46
  });
46
47
  // split the relationsToBuild by localized and non-localized
47
48
  const localizedRelations = new Map();
@@ -282,8 +283,12 @@ export const buildTable = ({ adapter, baseColumns = {}, baseExtraConfig = {}, di
282
283
  });
283
284
  let colType = 'integer';
284
285
  const relatedCollectionCustomIDType = adapter.payload.collections[relationshipConfig.slug]?.customIDType;
285
- if (relatedCollectionCustomIDType === 'number') colType = 'numeric';
286
- if (relatedCollectionCustomIDType === 'text') colType = 'text';
286
+ if (relatedCollectionCustomIDType === 'number') {
287
+ colType = 'numeric';
288
+ }
289
+ if (relatedCollectionCustomIDType === 'text') {
290
+ colType = 'text';
291
+ }
287
292
  relationshipColumns[`${relationTo}ID`] = getIDColumn({
288
293
  name: `${formattedRelationTo}_id`,
289
294
  type: colType,
@@ -398,6 +403,9 @@ export const buildTable = ({ adapter, baseColumns = {}, baseExtraConfig = {}, di
398
403
  return result;
399
404
  });
400
405
  return {
406
+ hasLocalizedManyNumberField,
407
+ hasLocalizedManyTextField,
408
+ hasLocalizedRelationshipField,
401
409
  hasManyNumberField,
402
410
  hasManyTextField,
403
411
  relationsToBuild