@payloadcms/db-sqlite 4.0.0-internal.a0ef1b8 → 4.0.0-internal.bc5cf8c

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.
@@ -1,2 +1,4 @@
1
+ export { migrateLocalizeStatus } from '../predefinedMigrations/migrateLocalizeStatus.js';
1
2
  export { getBlocksToJsonMigrator } from '@payloadcms/drizzle';
3
+ export { migrateSqliteLocalizeStatus } from '@payloadcms/drizzle/sqlite';
2
4
  //# sourceMappingURL=migration-utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"migration-utils.d.ts","sourceRoot":"","sources":["../../src/exports/migration-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA"}
1
+ {"version":3,"file":"migration-utils.d.ts","sourceRoot":"","sources":["../../src/exports/migration-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,kDAAkD,CAAA;AACxF,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAA"}
@@ -1,3 +1,5 @@
1
+ export { migrateLocalizeStatus } from '../predefinedMigrations/migrateLocalizeStatus.js';
1
2
  export { getBlocksToJsonMigrator } from '@payloadcms/drizzle';
3
+ export { migrateSqliteLocalizeStatus } from '@payloadcms/drizzle/sqlite';
2
4
 
3
5
  //# sourceMappingURL=migration-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/exports/migration-utils.ts"],"sourcesContent":["export { getBlocksToJsonMigrator } from '@payloadcms/drizzle'\n"],"names":["getBlocksToJsonMigrator"],"mappings":"AAAA,SAASA,uBAAuB,QAAQ,sBAAqB"}
1
+ {"version":3,"sources":["../../src/exports/migration-utils.ts"],"sourcesContent":["export { migrateLocalizeStatus } from '../predefinedMigrations/migrateLocalizeStatus.js'\nexport { getBlocksToJsonMigrator } from '@payloadcms/drizzle'\nexport { migrateSqliteLocalizeStatus } from '@payloadcms/drizzle/sqlite'\n"],"names":["migrateLocalizeStatus","getBlocksToJsonMigrator","migrateSqliteLocalizeStatus"],"mappings":"AAAA,SAASA,qBAAqB,QAAQ,mDAAkD;AACxF,SAASC,uBAAuB,QAAQ,sBAAqB;AAC7D,SAASC,2BAA2B,QAAQ,6BAA4B"}
@@ -0,0 +1,4 @@
1
+ declare const imports = "import { migrateLocalizeStatus } from '@payloadcms/db-sqlite/migration-utils'";
2
+ declare const upSQL = " await migrateLocalizeStatus({\n db,\n payload,\n req,\n })\n";
3
+ export { imports, upSQL };
4
+ //# sourceMappingURL=localize-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localize-status.d.ts","sourceRoot":"","sources":["../../src/predefinedMigrations/localize-status.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,OAAO,kFAAkF,CAAA;AAC/F,QAAA,MAAM,KAAK,gGAKV,CAAA;AAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAA"}
@@ -0,0 +1,10 @@
1
+ const imports = `import { migrateLocalizeStatus } from '@payloadcms/db-sqlite/migration-utils'`;
2
+ const upSQL = ` await migrateLocalizeStatus({
3
+ db,
4
+ payload,
5
+ req,
6
+ })
7
+ `;
8
+ export { imports, upSQL };
9
+
10
+ //# sourceMappingURL=localize-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/predefinedMigrations/localize-status.ts"],"sourcesContent":["const imports = `import { migrateLocalizeStatus } from '@payloadcms/db-sqlite/migration-utils'`\nconst upSQL = ` await migrateLocalizeStatus({\n db,\n payload,\n req,\n })\n`\n\nexport { imports, upSQL }\n"],"names":["imports","upSQL"],"mappings":"AAAA,MAAMA,UAAU,CAAC,6EAA6E,CAAC;AAC/F,MAAMC,QAAQ,CAAC;;;;;AAKf,CAAC;AAED,SAASD,OAAO,EAAEC,KAAK,GAAE"}
@@ -0,0 +1,15 @@
1
+ import type { Payload, PayloadRequest } from 'payload';
2
+ /**
3
+ * Migrate all collections and globals with per-locale status enabled to use per-locale _status.
4
+ *
5
+ * This migration:
6
+ * 1. Converts version._status from a scalar string to a locale-keyed object for each entity
7
+ * 2. Deletes all snapshot=true rows from each version table
8
+ * 3. Drops the `snapshot` column from each version table
9
+ */
10
+ export declare function migrateLocalizeStatus({ db, payload, req, }: {
11
+ db: any;
12
+ payload: Payload;
13
+ req: PayloadRequest;
14
+ }): Promise<void>;
15
+ //# sourceMappingURL=migrateLocalizeStatus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrateLocalizeStatus.d.ts","sourceRoot":"","sources":["../../src/predefinedMigrations/migrateLocalizeStatus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAMtD;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CAAC,EAC1C,EAAE,EACF,OAAO,EACP,GAAG,GACJ,EAAE;IACD,EAAE,EAAE,GAAG,CAAA;IACP,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,cAAc,CAAA;CACpB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4ChB"}
@@ -0,0 +1,65 @@
1
+ import { migrateSqliteLocalizeStatus } from '@payloadcms/drizzle/sqlite';
2
+ import { sql } from 'drizzle-orm';
3
+ import { toSnakeCase } from 'payload/migrations';
4
+ /**
5
+ * Migrate all collections and globals with per-locale status enabled to use per-locale _status.
6
+ *
7
+ * This migration:
8
+ * 1. Converts version._status from a scalar string to a locale-keyed object for each entity
9
+ * 2. Deletes all snapshot=true rows from each version table
10
+ * 3. Drops the `snapshot` column from each version table
11
+ */ export async function migrateLocalizeStatus({ db, payload, req }) {
12
+ if (!payload.config.localization) {
13
+ payload.logger.info({
14
+ msg: 'Localization not enabled, skipping localize-status migration'
15
+ });
16
+ return;
17
+ }
18
+ const collections = payload.config.collections.filter((c)=>c.versions?.drafts && typeof c.versions.drafts === 'object' && c.versions.drafts.localizeStatus);
19
+ const globals = payload.config.globals.filter((g)=>g.versions?.drafts && typeof g.versions.drafts === 'object' && g.versions.drafts.localizeStatus);
20
+ payload.logger.info({
21
+ msg: `Starting localize-status migration for ${collections.length} collection(s) and ${globals.length} global(s)`
22
+ });
23
+ for (const collection of collections){
24
+ await migrateSqliteLocalizeStatus({
25
+ collectionSlug: collection.slug,
26
+ db,
27
+ payload,
28
+ req
29
+ });
30
+ await _cleanupSnapshotColumn({
31
+ db,
32
+ payload,
33
+ versionsTable: `_${toSnakeCase(collection.slug)}_v`
34
+ });
35
+ }
36
+ for (const global of globals){
37
+ await migrateSqliteLocalizeStatus({
38
+ db,
39
+ globalSlug: global.slug,
40
+ payload,
41
+ req
42
+ });
43
+ await _cleanupSnapshotColumn({
44
+ db,
45
+ payload,
46
+ versionsTable: `_${toSnakeCase(global.slug)}_v`
47
+ });
48
+ }
49
+ payload.logger.info({
50
+ msg: 'localize-status migration completed successfully'
51
+ });
52
+ }
53
+ async function _cleanupSnapshotColumn({ db, payload, versionsTable }) {
54
+ const columnCheck = await db.all(sql.raw(`SELECT COUNT(*) as count FROM pragma_table_info('${versionsTable}') WHERE name = 'snapshot'`));
55
+ if (Number(columnCheck[0]?.count ?? 0) === 0) {
56
+ return;
57
+ }
58
+ await db.run(sql.raw(`DELETE FROM "${versionsTable}" WHERE snapshot = 1`));
59
+ await db.run(sql.raw(`ALTER TABLE "${versionsTable}" DROP COLUMN snapshot`));
60
+ payload.logger.info({
61
+ msg: `Dropped snapshot column from ${versionsTable}`
62
+ });
63
+ }
64
+
65
+ //# sourceMappingURL=migrateLocalizeStatus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/predefinedMigrations/migrateLocalizeStatus.ts"],"sourcesContent":["import type { Payload, PayloadRequest } from 'payload'\n\nimport { migrateSqliteLocalizeStatus } from '@payloadcms/drizzle/sqlite'\nimport { sql } from 'drizzle-orm'\nimport { toSnakeCase } from 'payload/migrations'\n\n/**\n * Migrate all collections and globals with per-locale status enabled to use per-locale _status.\n *\n * This migration:\n * 1. Converts version._status from a scalar string to a locale-keyed object for each entity\n * 2. Deletes all snapshot=true rows from each version table\n * 3. Drops the `snapshot` column from each version table\n */\nexport async function migrateLocalizeStatus({\n db,\n payload,\n req,\n}: {\n db: any\n payload: Payload\n req: PayloadRequest\n}): Promise<void> {\n if (!payload.config.localization) {\n payload.logger.info({\n msg: 'Localization not enabled, skipping localize-status migration',\n })\n return\n }\n\n const collections = payload.config.collections.filter(\n (c) =>\n c.versions?.drafts &&\n typeof c.versions.drafts === 'object' &&\n c.versions.drafts.localizeStatus,\n )\n const globals = payload.config.globals.filter(\n (g) =>\n g.versions?.drafts &&\n typeof g.versions.drafts === 'object' &&\n g.versions.drafts.localizeStatus,\n )\n\n payload.logger.info({\n msg: `Starting localize-status migration for ${collections.length} collection(s) and ${globals.length} global(s)`,\n })\n\n for (const collection of collections) {\n await migrateSqliteLocalizeStatus({ collectionSlug: collection.slug, db, payload, req })\n await _cleanupSnapshotColumn({\n db,\n payload,\n versionsTable: `_${toSnakeCase(collection.slug)}_v`,\n })\n }\n\n for (const global of globals) {\n await migrateSqliteLocalizeStatus({ db, globalSlug: global.slug, payload, req })\n await _cleanupSnapshotColumn({\n db,\n payload,\n versionsTable: `_${toSnakeCase(global.slug)}_v`,\n })\n }\n\n payload.logger.info({ msg: 'localize-status migration completed successfully' })\n}\n\nasync function _cleanupSnapshotColumn({\n db,\n payload,\n versionsTable,\n}: {\n db: any\n payload: Payload\n versionsTable: string\n}): Promise<void> {\n const columnCheck: any[] = await db.all(\n sql.raw(\n `SELECT COUNT(*) as count FROM pragma_table_info('${versionsTable}') WHERE name = 'snapshot'`,\n ),\n )\n\n if (Number(columnCheck[0]?.count ?? 0) === 0) {\n return\n }\n\n await db.run(sql.raw(`DELETE FROM \"${versionsTable}\" WHERE snapshot = 1`))\n\n await db.run(sql.raw(`ALTER TABLE \"${versionsTable}\" DROP COLUMN snapshot`))\n\n payload.logger.info({ msg: `Dropped snapshot column from ${versionsTable}` })\n}\n"],"names":["migrateSqliteLocalizeStatus","sql","toSnakeCase","migrateLocalizeStatus","db","payload","req","config","localization","logger","info","msg","collections","filter","c","versions","drafts","localizeStatus","globals","g","length","collection","collectionSlug","slug","_cleanupSnapshotColumn","versionsTable","global","globalSlug","columnCheck","all","raw","Number","count","run"],"mappings":"AAEA,SAASA,2BAA2B,QAAQ,6BAA4B;AACxE,SAASC,GAAG,QAAQ,cAAa;AACjC,SAASC,WAAW,QAAQ,qBAAoB;AAEhD;;;;;;;CAOC,GACD,OAAO,eAAeC,sBAAsB,EAC1CC,EAAE,EACFC,OAAO,EACPC,GAAG,EAKJ;IACC,IAAI,CAACD,QAAQE,MAAM,CAACC,YAAY,EAAE;QAChCH,QAAQI,MAAM,CAACC,IAAI,CAAC;YAClBC,KAAK;QACP;QACA;IACF;IAEA,MAAMC,cAAcP,QAAQE,MAAM,CAACK,WAAW,CAACC,MAAM,CACnD,CAACC,IACCA,EAAEC,QAAQ,EAAEC,UACZ,OAAOF,EAAEC,QAAQ,CAACC,MAAM,KAAK,YAC7BF,EAAEC,QAAQ,CAACC,MAAM,CAACC,cAAc;IAEpC,MAAMC,UAAUb,QAAQE,MAAM,CAACW,OAAO,CAACL,MAAM,CAC3C,CAACM,IACCA,EAAEJ,QAAQ,EAAEC,UACZ,OAAOG,EAAEJ,QAAQ,CAACC,MAAM,KAAK,YAC7BG,EAAEJ,QAAQ,CAACC,MAAM,CAACC,cAAc;IAGpCZ,QAAQI,MAAM,CAACC,IAAI,CAAC;QAClBC,KAAK,CAAC,uCAAuC,EAAEC,YAAYQ,MAAM,CAAC,mBAAmB,EAAEF,QAAQE,MAAM,CAAC,UAAU,CAAC;IACnH;IAEA,KAAK,MAAMC,cAAcT,YAAa;QACpC,MAAMZ,4BAA4B;YAAEsB,gBAAgBD,WAAWE,IAAI;YAAEnB;YAAIC;YAASC;QAAI;QACtF,MAAMkB,uBAAuB;YAC3BpB;YACAC;YACAoB,eAAe,CAAC,CAAC,EAAEvB,YAAYmB,WAAWE,IAAI,EAAE,EAAE,CAAC;QACrD;IACF;IAEA,KAAK,MAAMG,UAAUR,QAAS;QAC5B,MAAMlB,4BAA4B;YAAEI;YAAIuB,YAAYD,OAAOH,IAAI;YAAElB;YAASC;QAAI;QAC9E,MAAMkB,uBAAuB;YAC3BpB;YACAC;YACAoB,eAAe,CAAC,CAAC,EAAEvB,YAAYwB,OAAOH,IAAI,EAAE,EAAE,CAAC;QACjD;IACF;IAEAlB,QAAQI,MAAM,CAACC,IAAI,CAAC;QAAEC,KAAK;IAAmD;AAChF;AAEA,eAAea,uBAAuB,EACpCpB,EAAE,EACFC,OAAO,EACPoB,aAAa,EAKd;IACC,MAAMG,cAAqB,MAAMxB,GAAGyB,GAAG,CACrC5B,IAAI6B,GAAG,CACL,CAAC,iDAAiD,EAAEL,cAAc,0BAA0B,CAAC;IAIjG,IAAIM,OAAOH,WAAW,CAAC,EAAE,EAAEI,SAAS,OAAO,GAAG;QAC5C;IACF;IAEA,MAAM5B,GAAG6B,GAAG,CAAChC,IAAI6B,GAAG,CAAC,CAAC,aAAa,EAAEL,cAAc,oBAAoB,CAAC;IAExE,MAAMrB,GAAG6B,GAAG,CAAChC,IAAI6B,GAAG,CAAC,CAAC,aAAa,EAAEL,cAAc,sBAAsB,CAAC;IAE1EpB,QAAQI,MAAM,CAACC,IAAI,CAAC;QAAEC,KAAK,CAAC,6BAA6B,EAAEc,eAAe;IAAC;AAC7E"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/db-sqlite",
3
- "version": "4.0.0-internal.a0ef1b8",
3
+ "version": "4.0.0-internal.bc5cf8c",
4
4
  "description": "The officially supported SQLite database adapter for Payload",
5
5
  "homepage": "https://payloadcms.com",
6
6
  "repository": {
@@ -65,16 +65,16 @@
65
65
  "prompts": "2.4.2",
66
66
  "to-snake-case": "1.0.0",
67
67
  "uuid": "14.0.0",
68
- "@payloadcms/drizzle": "4.0.0-internal.a0ef1b8"
68
+ "@payloadcms/drizzle": "4.0.0-internal.bc5cf8c"
69
69
  },
70
70
  "devDependencies": {
71
71
  "@types/pg": "8.20.0",
72
72
  "@types/to-snake-case": "1.0.0",
73
73
  "@payloadcms/eslint-config": "3.28.0",
74
- "payload": "4.0.0-internal.a0ef1b8"
74
+ "payload": "4.0.0-internal.bc5cf8c"
75
75
  },
76
76
  "peerDependencies": {
77
- "payload": "4.0.0-internal.a0ef1b8"
77
+ "payload": "4.0.0-internal.bc5cf8c"
78
78
  },
79
79
  "scripts": {
80
80
  "build": "pnpm build:swc && pnpm build:types",