@payloadcms/drizzle 4.0.0-internal.314c594 → 4.0.0-internal.31ba7ee
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.
- package/dist/find/buildPolymorphicJoinQuery.d.ts +38 -0
- package/dist/find/buildPolymorphicJoinQuery.d.ts.map +1 -0
- package/dist/find/buildPolymorphicJoinQuery.js +135 -0
- package/dist/find/buildPolymorphicJoinQuery.js.map +1 -0
- package/dist/find/buildPolymorphicJoinWhere.d.ts +20 -0
- package/dist/find/buildPolymorphicJoinWhere.d.ts.map +1 -0
- package/dist/find/buildPolymorphicJoinWhere.js +301 -0
- package/dist/find/buildPolymorphicJoinWhere.js.map +1 -0
- package/dist/find/createPolymorphicJoinWherePlan.d.ts +37 -0
- package/dist/find/createPolymorphicJoinWherePlan.d.ts.map +1 -0
- package/dist/find/createPolymorphicJoinWherePlan.js +191 -0
- package/dist/find/createPolymorphicJoinWherePlan.js.map +1 -0
- package/dist/find/traverseFields.d.ts.map +1 -1
- package/dist/find/traverseFields.js +19 -191
- package/dist/find/traverseFields.js.map +1 -1
- package/dist/migrate.d.ts.map +1 -1
- package/dist/migrate.js +41 -15
- package/dist/migrate.js.map +1 -1
- package/dist/migrateDown.d.ts +2 -1
- package/dist/migrateDown.d.ts.map +1 -1
- package/dist/migrateDown.js +17 -4
- package/dist/migrateDown.js.map +1 -1
- package/dist/migrateFresh.d.ts +4 -2
- package/dist/migrateFresh.d.ts.map +1 -1
- package/dist/migrateFresh.js +26 -9
- package/dist/migrateFresh.js.map +1 -1
- package/dist/migrateRefresh.d.ts +2 -1
- package/dist/migrateRefresh.d.ts.map +1 -1
- package/dist/migrateRefresh.js +20 -5
- package/dist/migrateRefresh.js.map +1 -1
- package/dist/migrateReset.d.ts +2 -1
- package/dist/migrateReset.d.ts.map +1 -1
- package/dist/migrateReset.js +18 -4
- package/dist/migrateReset.js.map +1 -1
- package/dist/migrateStatus.d.ts +2 -1
- package/dist/migrateStatus.d.ts.map +1 -1
- package/dist/migrateStatus.js +11 -6
- package/dist/migrateStatus.js.map +1 -1
- package/dist/postgres/createJSONQuery/index.js +3 -3
- package/dist/postgres/createJSONQuery/index.js.map +1 -1
- package/dist/postgres/predefinedMigrations/v2-v3/fetchAndResave/index.d.ts.map +1 -1
- package/dist/postgres/predefinedMigrations/v2-v3/fetchAndResave/index.js +8 -4
- package/dist/postgres/predefinedMigrations/v2-v3/fetchAndResave/index.js.map +1 -1
- package/dist/postgres/predefinedMigrations/v2-v3/index.js +1 -1
- package/dist/postgres/predefinedMigrations/v2-v3/index.js.map +1 -1
- package/dist/queries/getTableColumnFromPath.d.ts.map +1 -1
- package/dist/queries/getTableColumnFromPath.js +9 -0
- package/dist/queries/getTableColumnFromPath.js.map +1 -1
- package/dist/queries/parseParams.d.ts.map +1 -1
- package/dist/queries/parseParams.js +59 -2
- package/dist/queries/parseParams.js.map +1 -1
- package/dist/sqlite/createJSONQuery/convertPathToJSONTraversal.js +3 -2
- package/dist/sqlite/createJSONQuery/convertPathToJSONTraversal.js.map +1 -1
- package/dist/sqlite/createJSONQuery/index.d.ts.map +1 -1
- package/dist/sqlite/createJSONQuery/index.js +6 -5
- package/dist/sqlite/createJSONQuery/index.js.map +1 -1
- package/dist/sqlite/insert.d.ts.map +1 -1
- package/dist/sqlite/insert.js +4 -1
- package/dist/sqlite/insert.js.map +1 -1
- package/dist/transform/write/traverseFields.d.ts.map +1 -1
- package/dist/transform/write/traverseFields.js +8 -14
- package/dist/transform/write/traverseFields.js.map +1 -1
- package/dist/updateOne.d.ts.map +1 -1
- package/dist/updateOne.js +41 -1
- package/dist/updateOne.js.map +1 -1
- package/dist/upsertRow/index.d.ts +1 -1
- package/dist/upsertRow/index.d.ts.map +1 -1
- package/dist/upsertRow/index.js +25 -5
- package/dist/upsertRow/index.js.map +1 -1
- package/dist/utilities/buildCreateMigration.d.ts.map +1 -1
- package/dist/utilities/buildCreateMigration.js +12 -8
- package/dist/utilities/buildCreateMigration.js.map +1 -1
- package/dist/utilities/createSchemaGenerator.d.ts.map +1 -1
- package/dist/utilities/createSchemaGenerator.js +3 -0
- package/dist/utilities/createSchemaGenerator.js.map +1 -1
- package/dist/utilities/parseJSONPathSegment.d.ts +9 -0
- package/dist/utilities/parseJSONPathSegment.d.ts.map +1 -0
- package/dist/utilities/parseJSONPathSegment.js +17 -0
- package/dist/utilities/parseJSONPathSegment.js.map +1 -0
- package/package.json +3 -3
- package/dist/postgres/query/assertOperatorHandlerExtensionsInstalled.spec.js +0 -91
- package/dist/postgres/query/assertOperatorHandlerExtensionsInstalled.spec.js.map +0 -1
- package/dist/postgres/query/postgresUnaccent.spec.js +0 -71
- package/dist/postgres/query/postgresUnaccent.spec.js.map +0 -1
- package/dist/queries/buildOperatorConstraint.spec.js +0 -348
- package/dist/queries/buildOperatorConstraint.spec.js.map +0 -1
- package/dist/queries/validateOperatorHandlers.spec.js +0 -142
- package/dist/queries/validateOperatorHandlers.spec.js.map +0 -1
- package/dist/schema/buildRawSchema.spec.js +0 -290
- package/dist/schema/buildRawSchema.spec.js.map +0 -1
- package/dist/upsertRow/handleUpsertError.spec.js +0 -42
- package/dist/upsertRow/handleUpsertError.spec.js.map +0 -1
- package/dist/utilities/checkTruncatedIdentifiers.spec.js +0 -301
- package/dist/utilities/checkTruncatedIdentifiers.spec.js.map +0 -1
- package/dist/utilities/isValidStringID.spec.js +0 -15
- package/dist/utilities/isValidStringID.spec.js.map +0 -1
- package/dist/utilities/validateIdentifierLength.spec.js +0 -19
- package/dist/utilities/validateIdentifierLength.spec.js.map +0 -1
package/dist/migrateFresh.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/migrateFresh.ts"],"sourcesContent":["import {\n commitTransaction,\n
|
|
1
|
+
{"version":3,"sources":["../src/migrateFresh.ts"],"sourcesContent":["import type { MigrationResult } from 'payload'\n\nimport {\n commitTransaction,\n createPayloadRequest,\n initTransaction,\n killTransaction,\n readMigrationFiles,\n} from 'payload'\nimport prompts from 'prompts'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { getTransaction } from './utilities/getTransaction.js'\nimport { parseError } from './utilities/parseError.js'\n\n/**\n * Drop the current database and run all migrate up functions\n */\nexport async function migrateFresh(\n this: DrizzleAdapter,\n { forceAcceptWarning = false, shouldPrompt = true },\n): Promise<MigrationResult> {\n const { payload } = this\n\n if (forceAcceptWarning === false) {\n if (!shouldPrompt) {\n return { cancelled: true, migrated: [], rolledBack: [] }\n }\n\n const { confirm: acceptWarning } = await prompts({\n name: 'confirm',\n type: 'confirm',\n initial: false,\n message: `WARNING: This will drop your database and run all migrations. Are you sure you want to proceed?`,\n })\n\n if (!acceptWarning) {\n return { cancelled: true, migrated: [], rolledBack: [] }\n }\n }\n\n payload.logger.info({\n msg: `Dropping database.`,\n })\n\n await this.dropDatabase({ adapter: this })\n\n const migrationFiles = await readMigrationFiles({ payload })\n payload.logger.debug({\n msg: `Found ${migrationFiles.length} migration files.`,\n })\n\n const req = await createPayloadRequest({ payload })\n const migrated: string[] = []\n\n if ('createExtensions' in this && typeof this.createExtensions === 'function') {\n await this.createExtensions()\n }\n\n // Run all migrate up\n for (const migration of migrationFiles) {\n payload.logger.info({ msg: `Migrating: ${migration.name}` })\n try {\n const start = Date.now()\n await initTransaction(req)\n const db = await getTransaction(this, req)\n await migration.up({ db, payload, req })\n await payload.create({\n collection: 'payload-migrations',\n data: {\n name: migration.name,\n batch: 1,\n },\n overrideAccess: true,\n req,\n })\n await commitTransaction(req)\n migrated.push(migration.name)\n\n payload.logger.info({ msg: `Migrated: ${migration.name} (${Date.now() - start}ms)` })\n } catch (err: unknown) {\n await killTransaction(req)\n payload.logger.error({\n err,\n msg: parseError(err, `Error running migration ${migration.name}. Rolling back`),\n })\n throw err\n }\n }\n\n return { batch: 1, migrated, rolledBack: [] }\n}\n"],"names":["commitTransaction","createPayloadRequest","initTransaction","killTransaction","readMigrationFiles","prompts","getTransaction","parseError","migrateFresh","forceAcceptWarning","shouldPrompt","payload","cancelled","migrated","rolledBack","confirm","acceptWarning","name","type","initial","message","logger","info","msg","dropDatabase","adapter","migrationFiles","debug","length","req","createExtensions","migration","start","Date","now","db","up","create","collection","data","batch","overrideAccess","push","err","error"],"mappings":"AAEA,SACEA,iBAAiB,EACjBC,oBAAoB,EACpBC,eAAe,EACfC,eAAe,EACfC,kBAAkB,QACb,UAAS;AAChB,OAAOC,aAAa,UAAS;AAI7B,SAASC,cAAc,QAAQ,gCAA+B;AAC9D,SAASC,UAAU,QAAQ,4BAA2B;AAEtD;;CAEC,GACD,OAAO,eAAeC,aAEpB,EAAEC,qBAAqB,KAAK,EAAEC,eAAe,IAAI,EAAE;IAEnD,MAAM,EAAEC,OAAO,EAAE,GAAG,IAAI;IAExB,IAAIF,uBAAuB,OAAO;QAChC,IAAI,CAACC,cAAc;YACjB,OAAO;gBAAEE,WAAW;gBAAMC,UAAU,EAAE;gBAAEC,YAAY,EAAE;YAAC;QACzD;QAEA,MAAM,EAAEC,SAASC,aAAa,EAAE,GAAG,MAAMX,QAAQ;YAC/CY,MAAM;YACNC,MAAM;YACNC,SAAS;YACTC,SAAS,CAAC,+FAA+F,CAAC;QAC5G;QAEA,IAAI,CAACJ,eAAe;YAClB,OAAO;gBAAEJ,WAAW;gBAAMC,UAAU,EAAE;gBAAEC,YAAY,EAAE;YAAC;QACzD;IACF;IAEAH,QAAQU,MAAM,CAACC,IAAI,CAAC;QAClBC,KAAK,CAAC,kBAAkB,CAAC;IAC3B;IAEA,MAAM,IAAI,CAACC,YAAY,CAAC;QAAEC,SAAS,IAAI;IAAC;IAExC,MAAMC,iBAAiB,MAAMtB,mBAAmB;QAAEO;IAAQ;IAC1DA,QAAQU,MAAM,CAACM,KAAK,CAAC;QACnBJ,KAAK,CAAC,MAAM,EAAEG,eAAeE,MAAM,CAAC,iBAAiB,CAAC;IACxD;IAEA,MAAMC,MAAM,MAAM5B,qBAAqB;QAAEU;IAAQ;IACjD,MAAME,WAAqB,EAAE;IAE7B,IAAI,sBAAsB,IAAI,IAAI,OAAO,IAAI,CAACiB,gBAAgB,KAAK,YAAY;QAC7E,MAAM,IAAI,CAACA,gBAAgB;IAC7B;IAEA,qBAAqB;IACrB,KAAK,MAAMC,aAAaL,eAAgB;QACtCf,QAAQU,MAAM,CAACC,IAAI,CAAC;YAAEC,KAAK,CAAC,WAAW,EAAEQ,UAAUd,IAAI,EAAE;QAAC;QAC1D,IAAI;YACF,MAAMe,QAAQC,KAAKC,GAAG;YACtB,MAAMhC,gBAAgB2B;YACtB,MAAMM,KAAK,MAAM7B,eAAe,IAAI,EAAEuB;YACtC,MAAME,UAAUK,EAAE,CAAC;gBAAED;gBAAIxB;gBAASkB;YAAI;YACtC,MAAMlB,QAAQ0B,MAAM,CAAC;gBACnBC,YAAY;gBACZC,MAAM;oBACJtB,MAAMc,UAAUd,IAAI;oBACpBuB,OAAO;gBACT;gBACAC,gBAAgB;gBAChBZ;YACF;YACA,MAAM7B,kBAAkB6B;YACxBhB,SAAS6B,IAAI,CAACX,UAAUd,IAAI;YAE5BN,QAAQU,MAAM,CAACC,IAAI,CAAC;gBAAEC,KAAK,CAAC,WAAW,EAAEQ,UAAUd,IAAI,CAAC,EAAE,EAAEgB,KAAKC,GAAG,KAAKF,MAAM,GAAG,CAAC;YAAC;QACtF,EAAE,OAAOW,KAAc;YACrB,MAAMxC,gBAAgB0B;YACtBlB,QAAQU,MAAM,CAACuB,KAAK,CAAC;gBACnBD;gBACApB,KAAKhB,WAAWoC,KAAK,CAAC,wBAAwB,EAAEZ,UAAUd,IAAI,CAAC,cAAc,CAAC;YAChF;YACA,MAAM0B;QACR;IACF;IAEA,OAAO;QAAEH,OAAO;QAAG3B;QAAUC,YAAY,EAAE;IAAC;AAC9C"}
|
package/dist/migrateRefresh.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import type { MigrationResult } from 'payload';
|
|
1
2
|
import type { DrizzleAdapter } from './types.js';
|
|
2
3
|
/**
|
|
3
4
|
* Run all migration down functions before running up
|
|
4
5
|
*/
|
|
5
|
-
export declare function migrateRefresh(this: DrizzleAdapter): Promise<
|
|
6
|
+
export declare function migrateRefresh(this: DrizzleAdapter): Promise<MigrationResult>;
|
|
6
7
|
//# sourceMappingURL=migrateRefresh.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrateRefresh.d.ts","sourceRoot":"","sources":["../src/migrateRefresh.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"migrateRefresh.d.ts","sourceRoot":"","sources":["../src/migrateRefresh.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAW9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAMhD;;GAEG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAgGnF"}
|
package/dist/migrateRefresh.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { commitTransaction,
|
|
1
|
+
import { commitTransaction, createPayloadRequest, getMigrations, initTransaction, killTransaction, readMigrationFiles } from 'payload';
|
|
2
2
|
import { getTransaction } from './utilities/getTransaction.js';
|
|
3
3
|
import { migrationTableExists } from './utilities/migrationTableExists.js';
|
|
4
4
|
import { parseError } from './utilities/parseError.js';
|
|
@@ -16,12 +16,19 @@ import { parseError } from './utilities/parseError.js';
|
|
|
16
16
|
payload.logger.info({
|
|
17
17
|
msg: 'No migrations to rollback.'
|
|
18
18
|
});
|
|
19
|
-
return
|
|
19
|
+
return {
|
|
20
|
+
migrated: [],
|
|
21
|
+
rolledBack: []
|
|
22
|
+
};
|
|
20
23
|
}
|
|
21
24
|
payload.logger.info({
|
|
22
25
|
msg: `Rolling back batch ${latestBatch} consisting of ${existingMigrations.length} migration(s).`
|
|
23
26
|
});
|
|
24
|
-
const req = await
|
|
27
|
+
const req = await createPayloadRequest({
|
|
28
|
+
payload
|
|
29
|
+
});
|
|
30
|
+
const migrated = [];
|
|
31
|
+
const rolledBack = [];
|
|
25
32
|
// Reverse order of migrations to rollback
|
|
26
33
|
existingMigrations.reverse();
|
|
27
34
|
for (const migration of existingMigrations){
|
|
@@ -48,6 +55,7 @@ import { parseError } from './utilities/parseError.js';
|
|
|
48
55
|
if (tableExists) {
|
|
49
56
|
await payload.delete({
|
|
50
57
|
collection: 'payload-migrations',
|
|
58
|
+
overrideAccess: true,
|
|
51
59
|
req,
|
|
52
60
|
where: {
|
|
53
61
|
name: {
|
|
@@ -57,13 +65,14 @@ import { parseError } from './utilities/parseError.js';
|
|
|
57
65
|
});
|
|
58
66
|
}
|
|
59
67
|
await commitTransaction(req);
|
|
68
|
+
rolledBack.push(migration.name);
|
|
60
69
|
} catch (err) {
|
|
61
70
|
await killTransaction(req);
|
|
62
71
|
payload.logger.error({
|
|
63
72
|
err,
|
|
64
73
|
msg: parseError(err, `Error running migration ${migration.name}. Rolling back.`)
|
|
65
74
|
});
|
|
66
|
-
|
|
75
|
+
throw err;
|
|
67
76
|
}
|
|
68
77
|
}
|
|
69
78
|
// Run all migrate up
|
|
@@ -84,9 +93,11 @@ import { parseError } from './utilities/parseError.js';
|
|
|
84
93
|
name: migration.name,
|
|
85
94
|
executed: true
|
|
86
95
|
},
|
|
96
|
+
overrideAccess: true,
|
|
87
97
|
req
|
|
88
98
|
});
|
|
89
99
|
await commitTransaction(req);
|
|
100
|
+
migrated.push(migration.name);
|
|
90
101
|
payload.logger.info({
|
|
91
102
|
msg: `Migrated: ${migration.name} (${Date.now() - start}ms)`
|
|
92
103
|
});
|
|
@@ -96,9 +107,13 @@ import { parseError } from './utilities/parseError.js';
|
|
|
96
107
|
err,
|
|
97
108
|
msg: parseError(err, `Error running migration ${migration.name}. Rolling back.`)
|
|
98
109
|
});
|
|
99
|
-
|
|
110
|
+
throw err;
|
|
100
111
|
}
|
|
101
112
|
}
|
|
113
|
+
return {
|
|
114
|
+
migrated,
|
|
115
|
+
rolledBack
|
|
116
|
+
};
|
|
102
117
|
}
|
|
103
118
|
|
|
104
119
|
//# sourceMappingURL=migrateRefresh.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/migrateRefresh.ts"],"sourcesContent":["import {\n commitTransaction,\n
|
|
1
|
+
{"version":3,"sources":["../src/migrateRefresh.ts"],"sourcesContent":["import type { MigrationResult } from 'payload'\n\nimport {\n commitTransaction,\n createPayloadRequest,\n getMigrations,\n initTransaction,\n killTransaction,\n readMigrationFiles,\n} from 'payload'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { getTransaction } from './utilities/getTransaction.js'\nimport { migrationTableExists } from './utilities/migrationTableExists.js'\nimport { parseError } from './utilities/parseError.js'\n\n/**\n * Run all migration down functions before running up\n */\nexport async function migrateRefresh(this: DrizzleAdapter): Promise<MigrationResult> {\n const { payload } = this\n const migrationFiles = await readMigrationFiles({ payload })\n\n const { existingMigrations, latestBatch } = await getMigrations({\n payload,\n })\n\n if (!existingMigrations?.length) {\n payload.logger.info({ msg: 'No migrations to rollback.' })\n return { migrated: [], rolledBack: [] }\n }\n\n payload.logger.info({\n msg: `Rolling back batch ${latestBatch} consisting of ${existingMigrations.length} migration(s).`,\n })\n\n const req = await createPayloadRequest({ payload })\n const migrated: string[] = []\n const rolledBack: string[] = []\n\n // Reverse order of migrations to rollback\n existingMigrations.reverse()\n\n for (const migration of existingMigrations) {\n try {\n const migrationFile = migrationFiles.find((m) => m.name === migration.name)\n if (!migrationFile) {\n throw new Error(`Migration ${migration.name} not found locally.`)\n }\n\n payload.logger.info({ msg: `Migrating down: ${migration.name}` })\n const start = Date.now()\n await initTransaction(req)\n const db = await getTransaction(this, req)\n await migrationFile.down({ db, payload, req })\n payload.logger.info({\n msg: `Migrated down: ${migration.name} (${Date.now() - start}ms)`,\n })\n\n const tableExists = await migrationTableExists(this, db)\n if (tableExists) {\n await payload.delete({\n collection: 'payload-migrations',\n overrideAccess: true,\n req,\n where: {\n name: {\n equals: migration.name,\n },\n },\n })\n }\n await commitTransaction(req)\n rolledBack.push(migration.name)\n } catch (err: unknown) {\n await killTransaction(req)\n payload.logger.error({\n err,\n msg: parseError(err, `Error running migration ${migration.name}. Rolling back.`),\n })\n throw err\n }\n }\n\n // Run all migrate up\n for (const migration of migrationFiles) {\n payload.logger.info({ msg: `Migrating: ${migration.name}` })\n try {\n const start = Date.now()\n await initTransaction(req)\n await migration.up({ payload, req })\n await payload.create({\n collection: 'payload-migrations',\n data: {\n name: migration.name,\n executed: true,\n },\n overrideAccess: true,\n req,\n })\n await commitTransaction(req)\n migrated.push(migration.name)\n\n payload.logger.info({ msg: `Migrated: ${migration.name} (${Date.now() - start}ms)` })\n } catch (err: unknown) {\n await killTransaction(req)\n payload.logger.error({\n err,\n msg: parseError(err, `Error running migration ${migration.name}. Rolling back.`),\n })\n throw err\n }\n }\n\n return { migrated, rolledBack }\n}\n"],"names":["commitTransaction","createPayloadRequest","getMigrations","initTransaction","killTransaction","readMigrationFiles","getTransaction","migrationTableExists","parseError","migrateRefresh","payload","migrationFiles","existingMigrations","latestBatch","length","logger","info","msg","migrated","rolledBack","req","reverse","migration","migrationFile","find","m","name","Error","start","Date","now","db","down","tableExists","delete","collection","overrideAccess","where","equals","push","err","error","up","create","data","executed"],"mappings":"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"}
|
package/dist/migrateReset.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import type { MigrationResult } from 'payload';
|
|
1
2
|
import type { DrizzleAdapter } from './types.js';
|
|
2
3
|
/**
|
|
3
4
|
* Run all migrate down functions
|
|
4
5
|
*/
|
|
5
|
-
export declare function migrateReset(this: DrizzleAdapter): Promise<
|
|
6
|
+
export declare function migrateReset(this: DrizzleAdapter): Promise<MigrationResult>;
|
|
6
7
|
//# sourceMappingURL=migrateReset.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrateReset.d.ts","sourceRoot":"","sources":["../src/migrateReset.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"migrateReset.d.ts","sourceRoot":"","sources":["../src/migrateReset.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAW9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAKhD;;GAEG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAkFjF"}
|
package/dist/migrateReset.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { commitTransaction,
|
|
1
|
+
import { commitTransaction, createPayloadRequest, getMigrations, initTransaction, killTransaction, readMigrationFiles } from 'payload';
|
|
2
2
|
import { getTransaction } from './utilities/getTransaction.js';
|
|
3
3
|
import { migrationTableExists } from './utilities/migrationTableExists.js';
|
|
4
4
|
/**
|
|
@@ -15,10 +15,16 @@ import { migrationTableExists } from './utilities/migrationTableExists.js';
|
|
|
15
15
|
payload.logger.info({
|
|
16
16
|
msg: 'No migrations to reset.'
|
|
17
17
|
});
|
|
18
|
-
return
|
|
18
|
+
return {
|
|
19
|
+
migrated: [],
|
|
20
|
+
rolledBack: []
|
|
21
|
+
};
|
|
19
22
|
}
|
|
20
|
-
const req = await
|
|
23
|
+
const req = await createPayloadRequest({
|
|
24
|
+
payload
|
|
25
|
+
});
|
|
21
26
|
existingMigrations.reverse();
|
|
27
|
+
const rolledBack = [];
|
|
22
28
|
// Rollback all migrations in order
|
|
23
29
|
for (const migration of existingMigrations){
|
|
24
30
|
const migrationFile = migrationFiles.find((m)=>m.name === migration.name);
|
|
@@ -45,10 +51,12 @@ import { migrationTableExists } from './utilities/migrationTableExists.js';
|
|
|
45
51
|
await payload.delete({
|
|
46
52
|
id: migration.id,
|
|
47
53
|
collection: 'payload-migrations',
|
|
54
|
+
overrideAccess: true,
|
|
48
55
|
req
|
|
49
56
|
});
|
|
50
57
|
}
|
|
51
58
|
await commitTransaction(req);
|
|
59
|
+
rolledBack.push(migrationFile.name);
|
|
52
60
|
} catch (err) {
|
|
53
61
|
let msg = `Error running migration ${migrationFile.name}.`;
|
|
54
62
|
if (err instanceof Error) {
|
|
@@ -59,7 +67,7 @@ import { migrationTableExists } from './utilities/migrationTableExists.js';
|
|
|
59
67
|
err,
|
|
60
68
|
msg
|
|
61
69
|
});
|
|
62
|
-
|
|
70
|
+
throw err;
|
|
63
71
|
}
|
|
64
72
|
}
|
|
65
73
|
// Delete dev migration
|
|
@@ -68,6 +76,7 @@ import { migrationTableExists } from './utilities/migrationTableExists.js';
|
|
|
68
76
|
try {
|
|
69
77
|
await payload.delete({
|
|
70
78
|
collection: 'payload-migrations',
|
|
79
|
+
overrideAccess: true,
|
|
71
80
|
where: {
|
|
72
81
|
batch: {
|
|
73
82
|
equals: -1
|
|
@@ -79,8 +88,13 @@ import { migrationTableExists } from './utilities/migrationTableExists.js';
|
|
|
79
88
|
err,
|
|
80
89
|
msg: 'Error deleting dev migration'
|
|
81
90
|
});
|
|
91
|
+
throw err;
|
|
82
92
|
}
|
|
83
93
|
}
|
|
94
|
+
return {
|
|
95
|
+
migrated: [],
|
|
96
|
+
rolledBack
|
|
97
|
+
};
|
|
84
98
|
}
|
|
85
99
|
|
|
86
100
|
//# sourceMappingURL=migrateReset.js.map
|
package/dist/migrateReset.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/migrateReset.ts"],"sourcesContent":["import {\n commitTransaction,\n
|
|
1
|
+
{"version":3,"sources":["../src/migrateReset.ts"],"sourcesContent":["import type { MigrationResult } from 'payload'\n\nimport {\n commitTransaction,\n createPayloadRequest,\n getMigrations,\n initTransaction,\n killTransaction,\n readMigrationFiles,\n} from 'payload'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { getTransaction } from './utilities/getTransaction.js'\nimport { migrationTableExists } from './utilities/migrationTableExists.js'\n\n/**\n * Run all migrate down functions\n */\nexport async function migrateReset(this: DrizzleAdapter): Promise<MigrationResult> {\n const { payload } = this\n const migrationFiles = await readMigrationFiles({ payload })\n\n const { existingMigrations } = await getMigrations({ payload })\n\n if (!existingMigrations?.length) {\n payload.logger.info({ msg: 'No migrations to reset.' })\n return { migrated: [], rolledBack: [] }\n }\n\n const req = await createPayloadRequest({ payload })\n\n existingMigrations.reverse()\n const rolledBack: string[] = []\n\n // Rollback all migrations in order\n for (const migration of existingMigrations) {\n const migrationFile = migrationFiles.find((m) => m.name === migration.name)\n try {\n if (!migrationFile) {\n throw new Error(`Migration ${migration.name} not found locally.`)\n }\n\n const start = Date.now()\n payload.logger.info({ msg: `Migrating down: ${migrationFile.name}` })\n await initTransaction(req)\n const db = await getTransaction(this, req)\n await migrationFile.down({ db, payload, req })\n payload.logger.info({\n msg: `Migrated down: ${migrationFile.name} (${Date.now() - start}ms)`,\n })\n\n const tableExists = await migrationTableExists(this, db)\n if (tableExists) {\n await payload.delete({\n id: migration.id,\n collection: 'payload-migrations',\n overrideAccess: true,\n req,\n })\n }\n\n await commitTransaction(req)\n rolledBack.push(migrationFile.name)\n } catch (err: unknown) {\n let msg = `Error running migration ${migrationFile.name}.`\n\n if (err instanceof Error) {\n msg += ` ${err.message}`\n }\n\n await killTransaction(req)\n payload.logger.error({\n err,\n msg,\n })\n throw err\n }\n }\n\n // Delete dev migration\n\n const tableExists = await migrationTableExists(this)\n if (tableExists) {\n try {\n await payload.delete({\n collection: 'payload-migrations',\n overrideAccess: true,\n where: {\n batch: {\n equals: -1,\n },\n },\n })\n } catch (err: unknown) {\n payload.logger.error({ err, msg: 'Error deleting dev migration' })\n throw err\n }\n }\n\n return { migrated: [], rolledBack }\n}\n"],"names":["commitTransaction","createPayloadRequest","getMigrations","initTransaction","killTransaction","readMigrationFiles","getTransaction","migrationTableExists","migrateReset","payload","migrationFiles","existingMigrations","length","logger","info","msg","migrated","rolledBack","req","reverse","migration","migrationFile","find","m","name","Error","start","Date","now","db","down","tableExists","delete","id","collection","overrideAccess","push","err","message","error","where","batch","equals"],"mappings":"AAEA,SACEA,iBAAiB,EACjBC,oBAAoB,EACpBC,aAAa,EACbC,eAAe,EACfC,eAAe,EACfC,kBAAkB,QACb,UAAS;AAIhB,SAASC,cAAc,QAAQ,gCAA+B;AAC9D,SAASC,oBAAoB,QAAQ,sCAAqC;AAE1E;;CAEC,GACD,OAAO,eAAeC;IACpB,MAAM,EAAEC,OAAO,EAAE,GAAG,IAAI;IACxB,MAAMC,iBAAiB,MAAML,mBAAmB;QAAEI;IAAQ;IAE1D,MAAM,EAAEE,kBAAkB,EAAE,GAAG,MAAMT,cAAc;QAAEO;IAAQ;IAE7D,IAAI,CAACE,oBAAoBC,QAAQ;QAC/BH,QAAQI,MAAM,CAACC,IAAI,CAAC;YAAEC,KAAK;QAA0B;QACrD,OAAO;YAAEC,UAAU,EAAE;YAAEC,YAAY,EAAE;QAAC;IACxC;IAEA,MAAMC,MAAM,MAAMjB,qBAAqB;QAAEQ;IAAQ;IAEjDE,mBAAmBQ,OAAO;IAC1B,MAAMF,aAAuB,EAAE;IAE/B,mCAAmC;IACnC,KAAK,MAAMG,aAAaT,mBAAoB;QAC1C,MAAMU,gBAAgBX,eAAeY,IAAI,CAAC,CAACC,IAAMA,EAAEC,IAAI,KAAKJ,UAAUI,IAAI;QAC1E,IAAI;YACF,IAAI,CAACH,eAAe;gBAClB,MAAM,IAAII,MAAM,CAAC,UAAU,EAAEL,UAAUI,IAAI,CAAC,mBAAmB,CAAC;YAClE;YAEA,MAAME,QAAQC,KAAKC,GAAG;YACtBnB,QAAQI,MAAM,CAACC,IAAI,CAAC;gBAAEC,KAAK,CAAC,gBAAgB,EAAEM,cAAcG,IAAI,EAAE;YAAC;YACnE,MAAMrB,gBAAgBe;YACtB,MAAMW,KAAK,MAAMvB,eAAe,IAAI,EAAEY;YACtC,MAAMG,cAAcS,IAAI,CAAC;gBAAED;gBAAIpB;gBAASS;YAAI;YAC5CT,QAAQI,MAAM,CAACC,IAAI,CAAC;gBAClBC,KAAK,CAAC,gBAAgB,EAAEM,cAAcG,IAAI,CAAC,EAAE,EAAEG,KAAKC,GAAG,KAAKF,MAAM,GAAG,CAAC;YACxE;YAEA,MAAMK,cAAc,MAAMxB,qBAAqB,IAAI,EAAEsB;YACrD,IAAIE,aAAa;gBACf,MAAMtB,QAAQuB,MAAM,CAAC;oBACnBC,IAAIb,UAAUa,EAAE;oBAChBC,YAAY;oBACZC,gBAAgB;oBAChBjB;gBACF;YACF;YAEA,MAAMlB,kBAAkBkB;YACxBD,WAAWmB,IAAI,CAACf,cAAcG,IAAI;QACpC,EAAE,OAAOa,KAAc;YACrB,IAAItB,MAAM,CAAC,wBAAwB,EAAEM,cAAcG,IAAI,CAAC,CAAC,CAAC;YAE1D,IAAIa,eAAeZ,OAAO;gBACxBV,OAAO,CAAC,CAAC,EAAEsB,IAAIC,OAAO,EAAE;YAC1B;YAEA,MAAMlC,gBAAgBc;YACtBT,QAAQI,MAAM,CAAC0B,KAAK,CAAC;gBACnBF;gBACAtB;YACF;YACA,MAAMsB;QACR;IACF;IAEA,uBAAuB;IAEvB,MAAMN,cAAc,MAAMxB,qBAAqB,IAAI;IACnD,IAAIwB,aAAa;QACf,IAAI;YACF,MAAMtB,QAAQuB,MAAM,CAAC;gBACnBE,YAAY;gBACZC,gBAAgB;gBAChBK,OAAO;oBACLC,OAAO;wBACLC,QAAQ,CAAC;oBACX;gBACF;YACF;QACF,EAAE,OAAOL,KAAc;YACrB5B,QAAQI,MAAM,CAAC0B,KAAK,CAAC;gBAAEF;gBAAKtB,KAAK;YAA+B;YAChE,MAAMsB;QACR;IACF;IAEA,OAAO;QAAErB,UAAU,EAAE;QAAEC;IAAW;AACpC"}
|
package/dist/migrateStatus.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { MigrationStatus } from 'payload';
|
|
1
2
|
import type { DrizzleAdapter } from './types.js';
|
|
2
|
-
export declare function migrateStatus(this: DrizzleAdapter): Promise<
|
|
3
|
+
export declare function migrateStatus(this: DrizzleAdapter): Promise<MigrationStatus[]>;
|
|
3
4
|
//# sourceMappingURL=migrateStatus.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrateStatus.d.ts","sourceRoot":"","sources":["../src/migrateStatus.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"migrateStatus.d.ts","sourceRoot":"","sources":["../src/migrateStatus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAK9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAIhD,wBAAsB,aAAa,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CA2CpF"}
|
package/dist/migrateStatus.js
CHANGED
|
@@ -21,24 +21,29 @@ export async function migrateStatus() {
|
|
|
21
21
|
payload.logger.info({
|
|
22
22
|
msg: 'No migrations found.'
|
|
23
23
|
});
|
|
24
|
-
return;
|
|
24
|
+
return [];
|
|
25
25
|
}
|
|
26
26
|
// Compare migration files to existing migrations
|
|
27
27
|
const statuses = migrationFiles.map((migration)=>{
|
|
28
28
|
const existingMigration = existingMigrations.find((m)=>m.name === migration.name);
|
|
29
29
|
return {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
name: migration.name,
|
|
31
|
+
batch: existingMigration?.batch,
|
|
32
|
+
ran: Boolean(existingMigration)
|
|
33
33
|
};
|
|
34
34
|
});
|
|
35
35
|
const p = new Table();
|
|
36
36
|
statuses.forEach((s)=>{
|
|
37
|
-
p.addRow(
|
|
38
|
-
|
|
37
|
+
p.addRow({
|
|
38
|
+
Batch: s.batch,
|
|
39
|
+
Name: s.name,
|
|
40
|
+
Ran: s.ran ? 'Yes' : 'No'
|
|
41
|
+
}, {
|
|
42
|
+
color: s.ran ? 'green' : 'red'
|
|
39
43
|
});
|
|
40
44
|
});
|
|
41
45
|
p.printTable();
|
|
46
|
+
return statuses;
|
|
42
47
|
}
|
|
43
48
|
|
|
44
49
|
//# sourceMappingURL=migrateStatus.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/migrateStatus.ts"],"sourcesContent":["import { Table } from 'console-table-printer'\nimport { getMigrations, readMigrationFiles } from 'payload'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { migrationTableExists } from './utilities/migrationTableExists.js'\n\nexport async function migrateStatus(this: DrizzleAdapter): Promise<
|
|
1
|
+
{"version":3,"sources":["../src/migrateStatus.ts"],"sourcesContent":["import type { MigrationStatus } from 'payload'\n\nimport { Table } from 'console-table-printer'\nimport { getMigrations, readMigrationFiles } from 'payload'\n\nimport type { DrizzleAdapter } from './types.js'\n\nimport { migrationTableExists } from './utilities/migrationTableExists.js'\n\nexport async function migrateStatus(this: DrizzleAdapter): Promise<MigrationStatus[]> {\n const { payload } = this\n const migrationFiles = await readMigrationFiles({ payload })\n\n payload.logger.debug({\n msg: `Found ${migrationFiles.length} migration files.`,\n })\n\n let existingMigrations = []\n const hasMigrationTable = await migrationTableExists(this)\n\n if (hasMigrationTable) {\n ;({ existingMigrations } = await getMigrations({ payload }))\n }\n\n if (!migrationFiles.length) {\n payload.logger.info({ msg: 'No migrations found.' })\n return []\n }\n\n // Compare migration files to existing migrations\n const statuses = migrationFiles.map((migration) => {\n const existingMigration = existingMigrations.find((m) => m.name === migration.name)\n return {\n name: migration.name,\n batch: existingMigration?.batch,\n ran: Boolean(existingMigration),\n }\n })\n\n const p = new Table()\n\n statuses.forEach((s) => {\n p.addRow(\n { Batch: s.batch, Name: s.name, Ran: s.ran ? 'Yes' : 'No' },\n {\n color: s.ran ? 'green' : 'red',\n },\n )\n })\n p.printTable()\n\n return statuses\n}\n"],"names":["Table","getMigrations","readMigrationFiles","migrationTableExists","migrateStatus","payload","migrationFiles","logger","debug","msg","length","existingMigrations","hasMigrationTable","info","statuses","map","migration","existingMigration","find","m","name","batch","ran","Boolean","p","forEach","s","addRow","Batch","Name","Ran","color","printTable"],"mappings":"AAEA,SAASA,KAAK,QAAQ,wBAAuB;AAC7C,SAASC,aAAa,EAAEC,kBAAkB,QAAQ,UAAS;AAI3D,SAASC,oBAAoB,QAAQ,sCAAqC;AAE1E,OAAO,eAAeC;IACpB,MAAM,EAAEC,OAAO,EAAE,GAAG,IAAI;IACxB,MAAMC,iBAAiB,MAAMJ,mBAAmB;QAAEG;IAAQ;IAE1DA,QAAQE,MAAM,CAACC,KAAK,CAAC;QACnBC,KAAK,CAAC,MAAM,EAAEH,eAAeI,MAAM,CAAC,iBAAiB,CAAC;IACxD;IAEA,IAAIC,qBAAqB,EAAE;IAC3B,MAAMC,oBAAoB,MAAMT,qBAAqB,IAAI;IAEzD,IAAIS,mBAAmB;;QACnB,CAAA,EAAED,kBAAkB,EAAE,GAAG,MAAMV,cAAc;YAAEI;QAAQ,EAAC;IAC5D;IAEA,IAAI,CAACC,eAAeI,MAAM,EAAE;QAC1BL,QAAQE,MAAM,CAACM,IAAI,CAAC;YAAEJ,KAAK;QAAuB;QAClD,OAAO,EAAE;IACX;IAEA,iDAAiD;IACjD,MAAMK,WAAWR,eAAeS,GAAG,CAAC,CAACC;QACnC,MAAMC,oBAAoBN,mBAAmBO,IAAI,CAAC,CAACC,IAAMA,EAAEC,IAAI,KAAKJ,UAAUI,IAAI;QAClF,OAAO;YACLA,MAAMJ,UAAUI,IAAI;YACpBC,OAAOJ,mBAAmBI;YAC1BC,KAAKC,QAAQN;QACf;IACF;IAEA,MAAMO,IAAI,IAAIxB;IAEdc,SAASW,OAAO,CAAC,CAACC;QAChBF,EAAEG,MAAM,CACN;YAAEC,OAAOF,EAAEL,KAAK;YAAEQ,MAAMH,EAAEN,IAAI;YAAEU,KAAKJ,EAAEJ,GAAG,GAAG,QAAQ;QAAK,GAC1D;YACES,OAAOL,EAAEJ,GAAG,GAAG,UAAU;QAC3B;IAEJ;IACAE,EAAEQ,UAAU;IAEZ,OAAOlB;AACT"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { APIError } from 'payload';
|
|
2
2
|
import { SAFE_STRING_REGEX } from '../../utilities/escapeSQLValue.js';
|
|
3
|
-
import {
|
|
3
|
+
import { parseJSONPathSegment } from '../../utilities/parseJSONPathSegment.js';
|
|
4
4
|
const operatorMap = {
|
|
5
5
|
contains: '~',
|
|
6
6
|
equals: '==',
|
|
@@ -12,7 +12,7 @@ const operatorMap = {
|
|
|
12
12
|
};
|
|
13
13
|
const sanitizeValue = (value, operator)=>{
|
|
14
14
|
if (value === null) {
|
|
15
|
-
return `
|
|
15
|
+
return `null`;
|
|
16
16
|
}
|
|
17
17
|
if (typeof value === 'number' || typeof value === 'boolean') {
|
|
18
18
|
return `${value}`;
|
|
@@ -33,7 +33,7 @@ const sanitizeValue = (value, operator)=>{
|
|
|
33
33
|
export const createJSONQuery = ({ column, operator, pathSegments, value })=>{
|
|
34
34
|
const columnName = typeof column === 'object' ? column.name : column;
|
|
35
35
|
const jsonPaths = pathSegments.slice(1).map((key)=>{
|
|
36
|
-
return `${
|
|
36
|
+
return `${parseJSONPathSegment(key).value}[*]`;
|
|
37
37
|
}).join('.');
|
|
38
38
|
const fullPath = pathSegments.length === 1 ? '$[*]' : `$.${jsonPaths}`;
|
|
39
39
|
let sql = '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/postgres/createJSONQuery/index.ts"],"sourcesContent":["import { APIError } from 'payload'\n\nimport type { CreateJSONQueryArgs } from '../../types.js'\n\nimport { SAFE_STRING_REGEX } from '../../utilities/escapeSQLValue.js'\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../src/postgres/createJSONQuery/index.ts"],"sourcesContent":["import { APIError } from 'payload'\n\nimport type { CreateJSONQueryArgs } from '../../types.js'\n\nimport { SAFE_STRING_REGEX } from '../../utilities/escapeSQLValue.js'\nimport { parseJSONPathSegment } from '../../utilities/parseJSONPathSegment.js'\n\nconst operatorMap: Record<string, string> = {\n contains: '~',\n equals: '==',\n in: 'in',\n like: 'like_regex',\n not_equals: '!=',\n not_in: 'in',\n not_like: '!like_regex',\n}\n\nconst sanitizeValue = (value: unknown, operator?: string): string => {\n if (value === null) {\n return `null`\n }\n\n if (typeof value === 'number' || typeof value === 'boolean') {\n return `${value}`\n }\n\n if (typeof value !== 'string') {\n throw new Error('Invalid value type')\n }\n\n if (!SAFE_STRING_REGEX.test(value)) {\n throw new APIError(`${value} is not allowed as a JSON query value`, 400)\n }\n\n const escaped = value.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"')\n\n const prefix = ['like', 'not_like'].includes(operator ?? '') ? '(?i)' : ''\n\n return `\"${prefix}${escaped}\"`\n}\n\nexport const createJSONQuery = ({ column, operator, pathSegments, value }: CreateJSONQueryArgs) => {\n const columnName = typeof column === 'object' ? column.name : column\n const jsonPaths = pathSegments\n .slice(1)\n .map((key) => {\n return `${parseJSONPathSegment(key).value}[*]`\n })\n .join('.')\n\n const fullPath = pathSegments.length === 1 ? '$[*]' : `$.${jsonPaths}`\n\n let sql = ''\n\n if (['in', 'not_in'].includes(operator) && Array.isArray(value)) {\n sql = '('\n value.forEach((item, i) => {\n sql = `${sql}${createJSONQuery({ column, operator: operator === 'in' ? 'equals' : 'not_equals', pathSegments, value: item })}${i === value.length - 1 ? '' : ` ${operator === 'in' ? 'OR' : 'AND'} `}`\n })\n sql = `${sql})`\n } else if (operator === 'exists') {\n sql = `${value === false ? 'NOT ' : ''}jsonb_path_exists(${columnName}, '${fullPath}')`\n } else if (['not_like'].includes(operator)) {\n const mappedOperator = operatorMap[operator]\n\n sql = `NOT jsonb_path_exists(${columnName}, '${fullPath} ? (@ ${mappedOperator.substring(1)} ${sanitizeValue(value, operator)})')`\n } else {\n sql = `jsonb_path_exists(${columnName}, '${fullPath} ? (@ ${operatorMap[operator]} ${sanitizeValue(value, operator)})')`\n }\n\n return sql\n}\n"],"names":["APIError","SAFE_STRING_REGEX","parseJSONPathSegment","operatorMap","contains","equals","in","like","not_equals","not_in","not_like","sanitizeValue","value","operator","Error","test","escaped","replace","prefix","includes","createJSONQuery","column","pathSegments","columnName","name","jsonPaths","slice","map","key","join","fullPath","length","sql","Array","isArray","forEach","item","i","mappedOperator","substring"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,UAAS;AAIlC,SAASC,iBAAiB,QAAQ,oCAAmC;AACrE,SAASC,oBAAoB,QAAQ,0CAAyC;AAE9E,MAAMC,cAAsC;IAC1CC,UAAU;IACVC,QAAQ;IACRC,IAAI;IACJC,MAAM;IACNC,YAAY;IACZC,QAAQ;IACRC,UAAU;AACZ;AAEA,MAAMC,gBAAgB,CAACC,OAAgBC;IACrC,IAAID,UAAU,MAAM;QAClB,OAAO,CAAC,IAAI,CAAC;IACf;IAEA,IAAI,OAAOA,UAAU,YAAY,OAAOA,UAAU,WAAW;QAC3D,OAAO,GAAGA,OAAO;IACnB;IAEA,IAAI,OAAOA,UAAU,UAAU;QAC7B,MAAM,IAAIE,MAAM;IAClB;IAEA,IAAI,CAACb,kBAAkBc,IAAI,CAACH,QAAQ;QAClC,MAAM,IAAIZ,SAAS,GAAGY,MAAM,qCAAqC,CAAC,EAAE;IACtE;IAEA,MAAMI,UAAUJ,MAAMK,OAAO,CAAC,OAAO,QAAQA,OAAO,CAAC,MAAM;IAE3D,MAAMC,SAAS;QAAC;QAAQ;KAAW,CAACC,QAAQ,CAACN,YAAY,MAAM,SAAS;IAExE,OAAO,CAAC,CAAC,EAAEK,SAASF,QAAQ,CAAC,CAAC;AAChC;AAEA,OAAO,MAAMI,kBAAkB,CAAC,EAAEC,MAAM,EAAER,QAAQ,EAAES,YAAY,EAAEV,KAAK,EAAuB;IAC5F,MAAMW,aAAa,OAAOF,WAAW,WAAWA,OAAOG,IAAI,GAAGH;IAC9D,MAAMI,YAAYH,aACfI,KAAK,CAAC,GACNC,GAAG,CAAC,CAACC;QACJ,OAAO,GAAG1B,qBAAqB0B,KAAKhB,KAAK,CAAC,GAAG,CAAC;IAChD,GACCiB,IAAI,CAAC;IAER,MAAMC,WAAWR,aAAaS,MAAM,KAAK,IAAI,SAAS,CAAC,EAAE,EAAEN,WAAW;IAEtE,IAAIO,MAAM;IAEV,IAAI;QAAC;QAAM;KAAS,CAACb,QAAQ,CAACN,aAAaoB,MAAMC,OAAO,CAACtB,QAAQ;QAC/DoB,MAAM;QACNpB,MAAMuB,OAAO,CAAC,CAACC,MAAMC;YACnBL,MAAM,GAAGA,MAAMZ,gBAAgB;gBAAEC;gBAAQR,UAAUA,aAAa,OAAO,WAAW;gBAAcS;gBAAcV,OAAOwB;YAAK,KAAKC,MAAMzB,MAAMmB,MAAM,GAAG,IAAI,KAAK,CAAC,CAAC,EAAElB,aAAa,OAAO,OAAO,MAAM,CAAC,CAAC,EAAE;QACxM;QACAmB,MAAM,GAAGA,IAAI,CAAC,CAAC;IACjB,OAAO,IAAInB,aAAa,UAAU;QAChCmB,MAAM,GAAGpB,UAAU,QAAQ,SAAS,GAAG,kBAAkB,EAAEW,WAAW,GAAG,EAAEO,SAAS,EAAE,CAAC;IACzF,OAAO,IAAI;QAAC;KAAW,CAACX,QAAQ,CAACN,WAAW;QAC1C,MAAMyB,iBAAiBnC,WAAW,CAACU,SAAS;QAE5CmB,MAAM,CAAC,sBAAsB,EAAET,WAAW,GAAG,EAAEO,SAAS,MAAM,EAAEQ,eAAeC,SAAS,CAAC,GAAG,CAAC,EAAE5B,cAAcC,OAAOC,UAAU,GAAG,CAAC;IACpI,OAAO;QACLmB,MAAM,CAAC,kBAAkB,EAAET,WAAW,GAAG,EAAEO,SAAS,MAAM,EAAE3B,WAAW,CAACU,SAAS,CAAC,CAAC,EAAEF,cAAcC,OAAOC,UAAU,GAAG,CAAC;IAC1H;IAEA,OAAOmB;AACT,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/postgres/predefinedMigrations/v2-v3/fetchAndResave/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAEtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAK/C,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,mBAAmB,CAAA;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,EAAE,EAAE,UAAU,CAAA;IACd,KAAK,EAAE,OAAO,CAAA;IACd,YAAY,EAAE,YAAY,CAAA;IAC1B,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,OAAO,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;IAC7B,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,cAAc,mHAYxB,IAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/postgres/predefinedMigrations/v2-v3/fetchAndResave/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAEtE,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAK/C,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,mBAAmB,CAAA;IAC5B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,EAAE,EAAE,UAAU,CAAA;IACd,KAAK,EAAE,OAAO,CAAA;IACd,YAAY,EAAE,YAAY,CAAA;IAC1B,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,OAAO,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;IAC7B,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,cAAc,mHAYxB,IAAI,kBAgNN,CAAA"}
|
|
@@ -13,7 +13,8 @@ export const fetchAndResave = async ({ adapter, collectionSlug, db, debug, docsT
|
|
|
13
13
|
fallbackLocale: null,
|
|
14
14
|
locale: 'all',
|
|
15
15
|
req,
|
|
16
|
-
showHiddenFields: true
|
|
16
|
+
showHiddenFields: true,
|
|
17
|
+
overrideAccess: true
|
|
17
18
|
});
|
|
18
19
|
if (debug) {
|
|
19
20
|
payload.logger.info(`The collection "${collectionConfig.slug}" version with ID ${id} will be migrated`);
|
|
@@ -52,7 +53,8 @@ export const fetchAndResave = async ({ adapter, collectionSlug, db, debug, docsT
|
|
|
52
53
|
fallbackLocale: null,
|
|
53
54
|
locale: 'all',
|
|
54
55
|
req,
|
|
55
|
-
showHiddenFields: true
|
|
56
|
+
showHiddenFields: true,
|
|
57
|
+
overrideAccess: true
|
|
56
58
|
});
|
|
57
59
|
if (debug) {
|
|
58
60
|
payload.logger.info(`The collection "${collectionConfig.slug}" with ID ${doc.id} will be migrated`);
|
|
@@ -97,7 +99,8 @@ export const fetchAndResave = async ({ adapter, collectionSlug, db, debug, docsT
|
|
|
97
99
|
limit: 0,
|
|
98
100
|
locale: 'all',
|
|
99
101
|
req,
|
|
100
|
-
showHiddenFields: true
|
|
102
|
+
showHiddenFields: true,
|
|
103
|
+
overrideAccess: true
|
|
101
104
|
});
|
|
102
105
|
if (debug) {
|
|
103
106
|
payload.logger.info(`${docs.length} global "${globalSlug}" versions will be migrated`);
|
|
@@ -137,7 +140,8 @@ export const fetchAndResave = async ({ adapter, collectionSlug, db, debug, docsT
|
|
|
137
140
|
fallbackLocale: null,
|
|
138
141
|
locale: 'all',
|
|
139
142
|
req,
|
|
140
|
-
showHiddenFields: true
|
|
143
|
+
showHiddenFields: true,
|
|
144
|
+
overrideAccess: true
|
|
141
145
|
});
|
|
142
146
|
traverseFields({
|
|
143
147
|
doc,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/postgres/predefinedMigrations/v2-v3/fetchAndResave/index.ts"],"sourcesContent":["import type { FlattenedField, Payload, PayloadRequest } from 'payload'\n\nimport type { BasePostgresAdapter, PostgresDB } from '../../../types.js'\nimport type { DocsToResave } from '../types.js'\n\nimport { upsertRow } from '../../../../upsertRow/index.js'\nimport { traverseFields } from './traverseFields.js'\n\ntype Args = {\n adapter: BasePostgresAdapter\n collectionSlug?: string\n db: PostgresDB\n debug: boolean\n docsToResave: DocsToResave\n fields: FlattenedField[]\n globalSlug?: string\n isVersions: boolean\n payload: Payload\n req?: Partial<PayloadRequest>\n tableName: string\n}\n\nexport const fetchAndResave = async ({\n adapter,\n collectionSlug,\n db,\n debug,\n docsToResave,\n fields,\n globalSlug,\n isVersions,\n payload,\n req,\n tableName,\n}: Args) => {\n for (const [id, rows] of Object.entries(docsToResave)) {\n if (collectionSlug) {\n const collectionConfig = payload.collections[collectionSlug].config\n\n if (collectionConfig) {\n if (isVersions) {\n const doc = await payload.findVersionByID({\n id,\n collection: collectionSlug,\n depth: 0,\n fallbackLocale: null,\n locale: 'all',\n req,\n showHiddenFields: true,\n })\n\n if (debug) {\n payload.logger.info(\n `The collection \"${collectionConfig.slug}\" version with ID ${id} will be migrated`,\n )\n }\n\n traverseFields({\n doc,\n fields,\n path: '',\n rows,\n })\n\n try {\n await upsertRow({\n id: doc.id,\n adapter,\n collectionSlug,\n data: doc,\n db,\n fields,\n ignoreResult: true,\n operation: 'update',\n req,\n tableName,\n })\n } catch (err) {\n payload.logger.error(\n `\"${collectionConfig.slug}\" version with ID ${doc.id} FAILED TO MIGRATE`,\n )\n\n throw err\n }\n\n if (debug) {\n payload.logger.info(\n `\"${collectionConfig.slug}\" version with ID ${doc.id} migrated successfully!`,\n )\n }\n } else {\n const doc = await payload.findByID({\n id,\n collection: collectionSlug,\n depth: 0,\n fallbackLocale: null,\n locale: 'all',\n req,\n showHiddenFields: true,\n })\n\n if (debug) {\n payload.logger.info(\n `The collection \"${collectionConfig.slug}\" with ID ${doc.id} will be migrated`,\n )\n }\n\n traverseFields({\n doc,\n fields,\n path: '',\n rows,\n })\n\n try {\n await upsertRow({\n id: doc.id,\n adapter,\n collectionSlug,\n data: doc,\n db,\n fields,\n ignoreResult: true,\n operation: 'update',\n req,\n tableName,\n })\n } catch (err) {\n payload.logger.error(\n `The collection \"${collectionConfig.slug}\" with ID ${doc.id} has FAILED TO MIGRATE`,\n )\n\n throw err\n }\n\n if (debug) {\n payload.logger.info(\n `The collection \"${collectionConfig.slug}\" with ID ${doc.id} has migrated successfully!`,\n )\n }\n }\n }\n }\n\n if (globalSlug) {\n const globalConfig = payload.config.globals?.find((global) => global.slug === globalSlug)\n\n if (globalConfig) {\n if (isVersions) {\n const { docs } = await payload.findGlobalVersions({\n slug: globalSlug,\n depth: 0,\n fallbackLocale: null,\n limit: 0,\n locale: 'all',\n req,\n showHiddenFields: true,\n })\n\n if (debug) {\n payload.logger.info(`${docs.length} global \"${globalSlug}\" versions will be migrated`)\n }\n\n for (const doc of docs) {\n traverseFields({\n doc,\n fields,\n path: '',\n rows,\n })\n\n try {\n await upsertRow({\n id: doc.id,\n adapter,\n data: doc,\n db,\n fields,\n globalSlug,\n ignoreResult: true,\n operation: 'update',\n req,\n tableName,\n })\n } catch (err) {\n payload.logger.error(`\"${globalSlug}\" version with ID ${doc.id} FAILED TO MIGRATE`)\n\n throw err\n }\n\n if (debug) {\n payload.logger.info(\n `\"${globalSlug}\" version with ID ${doc.id} migrated successfully!`,\n )\n }\n }\n } else {\n const doc = await payload.findGlobal({\n slug: globalSlug,\n depth: 0,\n fallbackLocale: null,\n locale: 'all',\n req,\n showHiddenFields: true,\n })\n\n traverseFields({\n doc,\n fields,\n path: '',\n rows,\n })\n\n try {\n await upsertRow({\n adapter,\n data: doc,\n db,\n fields,\n globalSlug,\n ignoreResult: true,\n operation: 'update',\n req,\n tableName,\n })\n } catch (err) {\n payload.logger.error(`The global \"${globalSlug}\" has FAILED TO MIGRATE`)\n\n throw err\n }\n\n if (debug) {\n payload.logger.info(`The global \"${globalSlug}\" has migrated successfully!`)\n }\n }\n }\n }\n }\n}\n"],"names":["upsertRow","traverseFields","fetchAndResave","adapter","collectionSlug","db","debug","docsToResave","fields","globalSlug","isVersions","payload","req","tableName","id","rows","Object","entries","collectionConfig","collections","config","doc","findVersionByID","collection","depth","fallbackLocale","locale","showHiddenFields","logger","info","slug","path","data","ignoreResult","operation","err","error","findByID","globalConfig","globals","find","global","docs","findGlobalVersions","limit","length","findGlobal"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/postgres/predefinedMigrations/v2-v3/fetchAndResave/index.ts"],"sourcesContent":["import type { FlattenedField, Payload, PayloadRequest } from 'payload'\n\nimport type { BasePostgresAdapter, PostgresDB } from '../../../types.js'\nimport type { DocsToResave } from '../types.js'\n\nimport { upsertRow } from '../../../../upsertRow/index.js'\nimport { traverseFields } from './traverseFields.js'\n\ntype Args = {\n adapter: BasePostgresAdapter\n collectionSlug?: string\n db: PostgresDB\n debug: boolean\n docsToResave: DocsToResave\n fields: FlattenedField[]\n globalSlug?: string\n isVersions: boolean\n payload: Payload\n req?: Partial<PayloadRequest>\n tableName: string\n}\n\nexport const fetchAndResave = async ({\n adapter,\n collectionSlug,\n db,\n debug,\n docsToResave,\n fields,\n globalSlug,\n isVersions,\n payload,\n req,\n tableName,\n}: Args) => {\n for (const [id, rows] of Object.entries(docsToResave)) {\n if (collectionSlug) {\n const collectionConfig = payload.collections[collectionSlug].config\n\n if (collectionConfig) {\n if (isVersions) {\n const doc = await payload.findVersionByID({\n id,\n collection: collectionSlug,\n depth: 0,\n fallbackLocale: null,\n locale: 'all',\n req,\n showHiddenFields: true,\n overrideAccess: true,\n })\n\n if (debug) {\n payload.logger.info(\n `The collection \"${collectionConfig.slug}\" version with ID ${id} will be migrated`,\n )\n }\n\n traverseFields({\n doc,\n fields,\n path: '',\n rows,\n })\n\n try {\n await upsertRow({\n id: doc.id,\n adapter,\n collectionSlug,\n data: doc,\n db,\n fields,\n ignoreResult: true,\n operation: 'update',\n req,\n tableName,\n })\n } catch (err) {\n payload.logger.error(\n `\"${collectionConfig.slug}\" version with ID ${doc.id} FAILED TO MIGRATE`,\n )\n\n throw err\n }\n\n if (debug) {\n payload.logger.info(\n `\"${collectionConfig.slug}\" version with ID ${doc.id} migrated successfully!`,\n )\n }\n } else {\n const doc = await payload.findByID({\n id,\n collection: collectionSlug,\n depth: 0,\n fallbackLocale: null,\n locale: 'all',\n req,\n showHiddenFields: true,\n overrideAccess: true,\n })\n\n if (debug) {\n payload.logger.info(\n `The collection \"${collectionConfig.slug}\" with ID ${doc.id} will be migrated`,\n )\n }\n\n traverseFields({\n doc,\n fields,\n path: '',\n rows,\n })\n\n try {\n await upsertRow({\n id: doc.id,\n adapter,\n collectionSlug,\n data: doc,\n db,\n fields,\n ignoreResult: true,\n operation: 'update',\n req,\n tableName,\n })\n } catch (err) {\n payload.logger.error(\n `The collection \"${collectionConfig.slug}\" with ID ${doc.id} has FAILED TO MIGRATE`,\n )\n\n throw err\n }\n\n if (debug) {\n payload.logger.info(\n `The collection \"${collectionConfig.slug}\" with ID ${doc.id} has migrated successfully!`,\n )\n }\n }\n }\n }\n\n if (globalSlug) {\n const globalConfig = payload.config.globals?.find((global) => global.slug === globalSlug)\n\n if (globalConfig) {\n if (isVersions) {\n const { docs } = await payload.findGlobalVersions({\n slug: globalSlug,\n depth: 0,\n fallbackLocale: null,\n limit: 0,\n locale: 'all',\n req,\n showHiddenFields: true,\n overrideAccess: true,\n })\n\n if (debug) {\n payload.logger.info(`${docs.length} global \"${globalSlug}\" versions will be migrated`)\n }\n\n for (const doc of docs) {\n traverseFields({\n doc,\n fields,\n path: '',\n rows,\n })\n\n try {\n await upsertRow({\n id: doc.id,\n adapter,\n data: doc,\n db,\n fields,\n globalSlug,\n ignoreResult: true,\n operation: 'update',\n req,\n tableName,\n })\n } catch (err) {\n payload.logger.error(`\"${globalSlug}\" version with ID ${doc.id} FAILED TO MIGRATE`)\n\n throw err\n }\n\n if (debug) {\n payload.logger.info(\n `\"${globalSlug}\" version with ID ${doc.id} migrated successfully!`,\n )\n }\n }\n } else {\n const doc = await payload.findGlobal({\n slug: globalSlug,\n depth: 0,\n fallbackLocale: null,\n locale: 'all',\n req,\n showHiddenFields: true,\n overrideAccess: true,\n })\n\n traverseFields({\n doc,\n fields,\n path: '',\n rows,\n })\n\n try {\n await upsertRow({\n adapter,\n data: doc,\n db,\n fields,\n globalSlug,\n ignoreResult: true,\n operation: 'update',\n req,\n tableName,\n })\n } catch (err) {\n payload.logger.error(`The global \"${globalSlug}\" has FAILED TO MIGRATE`)\n\n throw err\n }\n\n if (debug) {\n payload.logger.info(`The global \"${globalSlug}\" has migrated successfully!`)\n }\n }\n }\n }\n }\n}\n"],"names":["upsertRow","traverseFields","fetchAndResave","adapter","collectionSlug","db","debug","docsToResave","fields","globalSlug","isVersions","payload","req","tableName","id","rows","Object","entries","collectionConfig","collections","config","doc","findVersionByID","collection","depth","fallbackLocale","locale","showHiddenFields","overrideAccess","logger","info","slug","path","data","ignoreResult","operation","err","error","findByID","globalConfig","globals","find","global","docs","findGlobalVersions","limit","length","findGlobal"],"mappings":"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"}
|
|
@@ -45,7 +45,7 @@ const runStatementGroup = async ({ adapter, db, debug, statements })=>{
|
|
|
45
45
|
const generatedSQL = await generateMigration(drizzleJsonBefore, drizzleJsonAfter);
|
|
46
46
|
if (!generatedSQL.length) {
|
|
47
47
|
payload.logger.info(`No schema changes needed.`);
|
|
48
|
-
|
|
48
|
+
return;
|
|
49
49
|
}
|
|
50
50
|
const sqlUpStatements = groupUpSQLStatements(generatedSQL);
|
|
51
51
|
const db = await getTransaction(adapter, req);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/postgres/predefinedMigrations/v2-v3/index.ts"],"sourcesContent":["import type { DrizzleSnapshotJSON } from 'drizzle-kit/api'\nimport type { Payload, PayloadRequest } from 'payload'\n\nimport { sql } from 'drizzle-orm'\nimport fs from 'fs'\nimport { buildVersionCollectionFields, buildVersionGlobalFields } from 'payload'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { BasePostgresAdapter } from '../../types.js'\nimport type { PathsToQuery } from './types.js'\n\nimport { getTransaction } from '../../../utilities/getTransaction.js'\nimport { groupUpSQLStatements } from './groupUpSQLStatements.js'\nimport { migrateRelationships } from './migrateRelationships.js'\nimport { traverseFields } from './traverseFields.js'\n\ntype Args = {\n debug?: boolean\n payload: Payload\n req?: Partial<PayloadRequest>\n}\n\nconst runStatementGroup = async ({ adapter, db, debug, statements }) => {\n const addColumnsStatement = statements.join('\\n')\n\n if (debug) {\n adapter.payload.logger.info(debug)\n adapter.payload.logger.info(addColumnsStatement)\n }\n\n await db.execute(sql.raw(addColumnsStatement))\n}\n\n/**\n * Moves upload and relationship columns from the join table and into the tables while moving data\n * This is done in the following order:\n * ADD COLUMNs\n * -- manipulate data to move relationships to new columns\n * ADD CONSTRAINTs\n * NOT NULLs\n * DROP TABLEs\n * DROP CONSTRAINTs\n * DROP COLUMNs\n * @param debug\n * @param payload\n * @param req\n */\nexport const migratePostgresV2toV3 = async ({ debug, payload, req }: Args) => {\n const adapter = payload.db as unknown as BasePostgresAdapter\n const dir = payload.db.migrationDir\n\n // get the drizzle migrateUpSQL from drizzle using the last schema\n const { generateDrizzleJson, generateMigration, upSnapshot } = adapter.requireDrizzleKit()\n const drizzleJsonAfter = generateDrizzleJson(adapter.schema) as DrizzleSnapshotJSON\n\n // Get the previous migration snapshot\n const previousSnapshot = fs\n .readdirSync(dir)\n .filter((file) => file.endsWith('.json') && !file.endsWith('relationships_v2_v3.json'))\n .sort()\n .reverse()?.[0]\n\n if (!previousSnapshot) {\n throw new Error(\n `No previous migration schema file found! A prior migration from v2 is required to migrate to v3.`,\n )\n }\n\n let drizzleJsonBefore = JSON.parse(\n fs.readFileSync(`${dir}/${previousSnapshot}`, 'utf8'),\n ) as DrizzleSnapshotJSON\n\n if (upSnapshot && drizzleJsonBefore.version < drizzleJsonAfter.version) {\n drizzleJsonBefore = upSnapshot(drizzleJsonBefore)\n }\n\n const generatedSQL = await generateMigration(drizzleJsonBefore, drizzleJsonAfter)\n\n if (!generatedSQL.length) {\n payload.logger.info(`No schema changes needed.`)\n process.exit(0)\n }\n\n const sqlUpStatements = groupUpSQLStatements(generatedSQL)\n\n const db = await getTransaction(adapter, req)\n\n await runStatementGroup({\n adapter,\n db,\n debug: debug ? 'CREATING TYPES' : null,\n statements: sqlUpStatements.createType,\n })\n\n await runStatementGroup({\n adapter,\n db,\n debug: debug ? 'ALTERING TYPES' : null,\n statements: sqlUpStatements.alterType,\n })\n\n await runStatementGroup({\n adapter,\n db,\n debug: debug ? 'CREATING TABLES' : null,\n statements: sqlUpStatements.createTable,\n })\n\n await runStatementGroup({\n adapter,\n db,\n debug: debug ? 'RENAMING COLUMNS' : null,\n statements: sqlUpStatements.renameColumn,\n })\n\n await runStatementGroup({\n adapter,\n db,\n debug: debug ? 'CREATING NEW RELATIONSHIP COLUMNS' : null,\n statements: sqlUpStatements.addColumn,\n })\n\n // SET DEFAULTS\n await runStatementGroup({\n adapter,\n db,\n debug: debug ? 'SETTING DEFAULTS' : null,\n statements: sqlUpStatements.setDefault,\n })\n\n await runStatementGroup({\n adapter,\n db,\n debug: debug ? 'CREATING INDEXES' : null,\n statements: sqlUpStatements.createIndex,\n })\n\n for (const collection of payload.config.collections) {\n if (collection.slug === 'payload-locked-documents') {\n continue\n }\n const tableName = adapter.tableNameMap.get(toSnakeCase(collection.slug))\n const pathsToQuery: PathsToQuery = new Set()\n\n traverseFields({\n adapter,\n collectionSlug: collection.slug,\n columnPrefix: '',\n db,\n disableNotNull: false,\n fields: collection.flattenedFields,\n isVersions: false,\n newTableName: tableName,\n parentTableName: tableName,\n path: '',\n pathsToQuery,\n payload,\n rootTableName: tableName,\n })\n\n await migrateRelationships({\n adapter,\n collectionSlug: collection.slug,\n db,\n debug,\n fields: collection.flattenedFields,\n isVersions: false,\n pathsToQuery,\n payload,\n req,\n tableName,\n })\n\n if (collection.versions) {\n const versionsTableName = adapter.tableNameMap.get(\n `_${toSnakeCase(collection.slug)}${adapter.versionsSuffix}`,\n )\n const versionFields = buildVersionCollectionFields(payload.config, collection, true)\n const versionPathsToQuery: PathsToQuery = new Set()\n\n traverseFields({\n adapter,\n collectionSlug: collection.slug,\n columnPrefix: '',\n db,\n disableNotNull: true,\n fields: versionFields,\n isVersions: true,\n newTableName: versionsTableName,\n parentTableName: versionsTableName,\n path: '',\n pathsToQuery: versionPathsToQuery,\n payload,\n rootTableName: versionsTableName,\n })\n\n await migrateRelationships({\n adapter,\n collectionSlug: collection.slug,\n db,\n debug,\n fields: versionFields,\n isVersions: true,\n pathsToQuery: versionPathsToQuery,\n payload,\n req,\n tableName: versionsTableName,\n })\n }\n }\n\n for (const global of payload.config.globals) {\n const tableName = adapter.tableNameMap.get(toSnakeCase(global.slug))\n\n const pathsToQuery: PathsToQuery = new Set()\n\n traverseFields({\n adapter,\n columnPrefix: '',\n db,\n disableNotNull: false,\n fields: global.flattenedFields,\n globalSlug: global.slug,\n isVersions: false,\n newTableName: tableName,\n parentTableName: tableName,\n path: '',\n pathsToQuery,\n payload,\n rootTableName: tableName,\n })\n\n await migrateRelationships({\n adapter,\n db,\n debug,\n fields: global.flattenedFields,\n globalSlug: global.slug,\n isVersions: false,\n pathsToQuery,\n payload,\n req,\n tableName,\n })\n\n if (global.versions) {\n const versionsTableName = adapter.tableNameMap.get(\n `_${toSnakeCase(global.slug)}${adapter.versionsSuffix}`,\n )\n\n const versionFields = buildVersionGlobalFields(payload.config, global, true)\n\n const versionPathsToQuery: PathsToQuery = new Set()\n\n traverseFields({\n adapter,\n columnPrefix: '',\n db,\n disableNotNull: true,\n fields: versionFields,\n globalSlug: global.slug,\n isVersions: true,\n newTableName: versionsTableName,\n parentTableName: versionsTableName,\n path: '',\n pathsToQuery: versionPathsToQuery,\n payload,\n rootTableName: versionsTableName,\n })\n\n await migrateRelationships({\n adapter,\n db,\n debug,\n fields: versionFields,\n globalSlug: global.slug,\n isVersions: true,\n pathsToQuery: versionPathsToQuery,\n payload,\n req,\n tableName: versionsTableName,\n })\n }\n }\n\n // ADD CONSTRAINT\n await runStatementGroup({\n adapter,\n db,\n debug: debug ? 'ADDING CONSTRAINTS' : null,\n statements: sqlUpStatements.addConstraint,\n })\n\n // NOT NULL\n await runStatementGroup({\n adapter,\n db,\n debug: debug ? 'NOT NULL CONSTRAINTS' : null,\n statements: sqlUpStatements.notNull,\n })\n\n // DROP TABLE\n await runStatementGroup({\n adapter,\n db,\n debug: debug ? 'DROPPING TABLES' : null,\n statements: sqlUpStatements.dropTable,\n })\n\n // DROP INDEX\n await runStatementGroup({\n adapter,\n db,\n debug: debug ? 'DROPPING INDEXES' : null,\n statements: sqlUpStatements.dropIndex,\n })\n\n // DROP CONSTRAINT\n await runStatementGroup({\n adapter,\n db,\n debug: debug ? 'DROPPING CONSTRAINTS' : null,\n statements: sqlUpStatements.dropConstraint,\n })\n\n // DROP COLUMN\n await runStatementGroup({\n adapter,\n db,\n debug: debug ? 'DROPPING COLUMNS' : null,\n statements: sqlUpStatements.dropColumn,\n })\n\n // DROP TYPES\n await runStatementGroup({\n adapter,\n db,\n debug: debug ? 'DROPPING TYPES' : null,\n statements: sqlUpStatements.dropType,\n })\n}\n"],"names":["sql","fs","buildVersionCollectionFields","buildVersionGlobalFields","toSnakeCase","getTransaction","groupUpSQLStatements","migrateRelationships","traverseFields","runStatementGroup","adapter","db","debug","statements","addColumnsStatement","join","payload","logger","info","execute","raw","migratePostgresV2toV3","req","dir","migrationDir","generateDrizzleJson","generateMigration","upSnapshot","requireDrizzleKit","drizzleJsonAfter","schema","previousSnapshot","readdirSync","filter","file","endsWith","sort","reverse","Error","drizzleJsonBefore","JSON","parse","readFileSync","version","generatedSQL","length","process","exit","sqlUpStatements","createType","alterType","createTable","renameColumn","addColumn","setDefault","createIndex","collection","config","collections","slug","tableName","tableNameMap","get","pathsToQuery","Set","collectionSlug","columnPrefix","disableNotNull","fields","flattenedFields","isVersions","newTableName","parentTableName","path","rootTableName","versions","versionsTableName","versionsSuffix","versionFields","versionPathsToQuery","global","globals","globalSlug","addConstraint","notNull","dropTable","dropIndex","dropConstraint","dropColumn","dropType"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/postgres/predefinedMigrations/v2-v3/index.ts"],"sourcesContent":["import type { DrizzleSnapshotJSON } from 'drizzle-kit/api'\nimport type { Payload, PayloadRequest } from 'payload'\n\nimport { sql } from 'drizzle-orm'\nimport fs from 'fs'\nimport { buildVersionCollectionFields, buildVersionGlobalFields } from 'payload'\nimport toSnakeCase from 'to-snake-case'\n\nimport type { BasePostgresAdapter } from '../../types.js'\nimport type { PathsToQuery } from './types.js'\n\nimport { getTransaction } from '../../../utilities/getTransaction.js'\nimport { groupUpSQLStatements } from './groupUpSQLStatements.js'\nimport { migrateRelationships } from './migrateRelationships.js'\nimport { traverseFields } from './traverseFields.js'\n\ntype Args = {\n debug?: boolean\n payload: Payload\n req?: Partial<PayloadRequest>\n}\n\nconst runStatementGroup = async ({ adapter, db, debug, statements }) => {\n const addColumnsStatement = statements.join('\\n')\n\n if (debug) {\n adapter.payload.logger.info(debug)\n adapter.payload.logger.info(addColumnsStatement)\n }\n\n await db.execute(sql.raw(addColumnsStatement))\n}\n\n/**\n * Moves upload and relationship columns from the join table and into the tables while moving data\n * This is done in the following order:\n * ADD COLUMNs\n * -- manipulate data to move relationships to new columns\n * ADD CONSTRAINTs\n * NOT NULLs\n * DROP TABLEs\n * DROP CONSTRAINTs\n * DROP COLUMNs\n * @param debug\n * @param payload\n * @param req\n */\nexport const migratePostgresV2toV3 = async ({ debug, payload, req }: Args) => {\n const adapter = payload.db as unknown as BasePostgresAdapter\n const dir = payload.db.migrationDir\n\n // get the drizzle migrateUpSQL from drizzle using the last schema\n const { generateDrizzleJson, generateMigration, upSnapshot } = adapter.requireDrizzleKit()\n const drizzleJsonAfter = generateDrizzleJson(adapter.schema) as DrizzleSnapshotJSON\n\n // Get the previous migration snapshot\n const previousSnapshot = fs\n .readdirSync(dir)\n .filter((file) => file.endsWith('.json') && !file.endsWith('relationships_v2_v3.json'))\n .sort()\n .reverse()?.[0]\n\n if (!previousSnapshot) {\n throw new Error(\n `No previous migration schema file found! A prior migration from v2 is required to migrate to v3.`,\n )\n }\n\n let drizzleJsonBefore = JSON.parse(\n fs.readFileSync(`${dir}/${previousSnapshot}`, 'utf8'),\n ) as DrizzleSnapshotJSON\n\n if (upSnapshot && drizzleJsonBefore.version < drizzleJsonAfter.version) {\n drizzleJsonBefore = upSnapshot(drizzleJsonBefore)\n }\n\n const generatedSQL = await generateMigration(drizzleJsonBefore, drizzleJsonAfter)\n\n if (!generatedSQL.length) {\n payload.logger.info(`No schema changes needed.`)\n return\n }\n\n const sqlUpStatements = groupUpSQLStatements(generatedSQL)\n\n const db = await getTransaction(adapter, req)\n\n await runStatementGroup({\n adapter,\n db,\n debug: debug ? 'CREATING TYPES' : null,\n statements: sqlUpStatements.createType,\n })\n\n await runStatementGroup({\n adapter,\n db,\n debug: debug ? 'ALTERING TYPES' : null,\n statements: sqlUpStatements.alterType,\n })\n\n await runStatementGroup({\n adapter,\n db,\n debug: debug ? 'CREATING TABLES' : null,\n statements: sqlUpStatements.createTable,\n })\n\n await runStatementGroup({\n adapter,\n db,\n debug: debug ? 'RENAMING COLUMNS' : null,\n statements: sqlUpStatements.renameColumn,\n })\n\n await runStatementGroup({\n adapter,\n db,\n debug: debug ? 'CREATING NEW RELATIONSHIP COLUMNS' : null,\n statements: sqlUpStatements.addColumn,\n })\n\n // SET DEFAULTS\n await runStatementGroup({\n adapter,\n db,\n debug: debug ? 'SETTING DEFAULTS' : null,\n statements: sqlUpStatements.setDefault,\n })\n\n await runStatementGroup({\n adapter,\n db,\n debug: debug ? 'CREATING INDEXES' : null,\n statements: sqlUpStatements.createIndex,\n })\n\n for (const collection of payload.config.collections) {\n if (collection.slug === 'payload-locked-documents') {\n continue\n }\n const tableName = adapter.tableNameMap.get(toSnakeCase(collection.slug))\n const pathsToQuery: PathsToQuery = new Set()\n\n traverseFields({\n adapter,\n collectionSlug: collection.slug,\n columnPrefix: '',\n db,\n disableNotNull: false,\n fields: collection.flattenedFields,\n isVersions: false,\n newTableName: tableName,\n parentTableName: tableName,\n path: '',\n pathsToQuery,\n payload,\n rootTableName: tableName,\n })\n\n await migrateRelationships({\n adapter,\n collectionSlug: collection.slug,\n db,\n debug,\n fields: collection.flattenedFields,\n isVersions: false,\n pathsToQuery,\n payload,\n req,\n tableName,\n })\n\n if (collection.versions) {\n const versionsTableName = adapter.tableNameMap.get(\n `_${toSnakeCase(collection.slug)}${adapter.versionsSuffix}`,\n )\n const versionFields = buildVersionCollectionFields(payload.config, collection, true)\n const versionPathsToQuery: PathsToQuery = new Set()\n\n traverseFields({\n adapter,\n collectionSlug: collection.slug,\n columnPrefix: '',\n db,\n disableNotNull: true,\n fields: versionFields,\n isVersions: true,\n newTableName: versionsTableName,\n parentTableName: versionsTableName,\n path: '',\n pathsToQuery: versionPathsToQuery,\n payload,\n rootTableName: versionsTableName,\n })\n\n await migrateRelationships({\n adapter,\n collectionSlug: collection.slug,\n db,\n debug,\n fields: versionFields,\n isVersions: true,\n pathsToQuery: versionPathsToQuery,\n payload,\n req,\n tableName: versionsTableName,\n })\n }\n }\n\n for (const global of payload.config.globals) {\n const tableName = adapter.tableNameMap.get(toSnakeCase(global.slug))\n\n const pathsToQuery: PathsToQuery = new Set()\n\n traverseFields({\n adapter,\n columnPrefix: '',\n db,\n disableNotNull: false,\n fields: global.flattenedFields,\n globalSlug: global.slug,\n isVersions: false,\n newTableName: tableName,\n parentTableName: tableName,\n path: '',\n pathsToQuery,\n payload,\n rootTableName: tableName,\n })\n\n await migrateRelationships({\n adapter,\n db,\n debug,\n fields: global.flattenedFields,\n globalSlug: global.slug,\n isVersions: false,\n pathsToQuery,\n payload,\n req,\n tableName,\n })\n\n if (global.versions) {\n const versionsTableName = adapter.tableNameMap.get(\n `_${toSnakeCase(global.slug)}${adapter.versionsSuffix}`,\n )\n\n const versionFields = buildVersionGlobalFields(payload.config, global, true)\n\n const versionPathsToQuery: PathsToQuery = new Set()\n\n traverseFields({\n adapter,\n columnPrefix: '',\n db,\n disableNotNull: true,\n fields: versionFields,\n globalSlug: global.slug,\n isVersions: true,\n newTableName: versionsTableName,\n parentTableName: versionsTableName,\n path: '',\n pathsToQuery: versionPathsToQuery,\n payload,\n rootTableName: versionsTableName,\n })\n\n await migrateRelationships({\n adapter,\n db,\n debug,\n fields: versionFields,\n globalSlug: global.slug,\n isVersions: true,\n pathsToQuery: versionPathsToQuery,\n payload,\n req,\n tableName: versionsTableName,\n })\n }\n }\n\n // ADD CONSTRAINT\n await runStatementGroup({\n adapter,\n db,\n debug: debug ? 'ADDING CONSTRAINTS' : null,\n statements: sqlUpStatements.addConstraint,\n })\n\n // NOT NULL\n await runStatementGroup({\n adapter,\n db,\n debug: debug ? 'NOT NULL CONSTRAINTS' : null,\n statements: sqlUpStatements.notNull,\n })\n\n // DROP TABLE\n await runStatementGroup({\n adapter,\n db,\n debug: debug ? 'DROPPING TABLES' : null,\n statements: sqlUpStatements.dropTable,\n })\n\n // DROP INDEX\n await runStatementGroup({\n adapter,\n db,\n debug: debug ? 'DROPPING INDEXES' : null,\n statements: sqlUpStatements.dropIndex,\n })\n\n // DROP CONSTRAINT\n await runStatementGroup({\n adapter,\n db,\n debug: debug ? 'DROPPING CONSTRAINTS' : null,\n statements: sqlUpStatements.dropConstraint,\n })\n\n // DROP COLUMN\n await runStatementGroup({\n adapter,\n db,\n debug: debug ? 'DROPPING COLUMNS' : null,\n statements: sqlUpStatements.dropColumn,\n })\n\n // DROP TYPES\n await runStatementGroup({\n adapter,\n db,\n debug: debug ? 'DROPPING TYPES' : null,\n statements: sqlUpStatements.dropType,\n })\n}\n"],"names":["sql","fs","buildVersionCollectionFields","buildVersionGlobalFields","toSnakeCase","getTransaction","groupUpSQLStatements","migrateRelationships","traverseFields","runStatementGroup","adapter","db","debug","statements","addColumnsStatement","join","payload","logger","info","execute","raw","migratePostgresV2toV3","req","dir","migrationDir","generateDrizzleJson","generateMigration","upSnapshot","requireDrizzleKit","drizzleJsonAfter","schema","previousSnapshot","readdirSync","filter","file","endsWith","sort","reverse","Error","drizzleJsonBefore","JSON","parse","readFileSync","version","generatedSQL","length","sqlUpStatements","createType","alterType","createTable","renameColumn","addColumn","setDefault","createIndex","collection","config","collections","slug","tableName","tableNameMap","get","pathsToQuery","Set","collectionSlug","columnPrefix","disableNotNull","fields","flattenedFields","isVersions","newTableName","parentTableName","path","rootTableName","versions","versionsTableName","versionsSuffix","versionFields","versionPathsToQuery","global","globals","globalSlug","addConstraint","notNull","dropTable","dropIndex","dropConstraint","dropColumn","dropType"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTableColumnFromPath.d.ts","sourceRoot":"","sources":["../../src/queries/getTableColumnFromPath.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AACrE,OAAO,KAAK,EAEV,cAAc,EAIf,MAAM,SAAS,CAAA;AAGhB,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAM7D,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAW5D,KAAK,UAAU,GAAG;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;IAC5D,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AAED,KAAK,WAAW,GAAG;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE;QACR,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAA;QAClC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;KACxB,EAAE,CAAA;IACH,WAAW,EAAE,UAAU,EAAE,CAAA;IACzB,KAAK,EAAE,cAAc,CAAA;IACrB,uBAAuB,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAA;IAClD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,SAAS,CAAC,EAAE,GAAG,CAAA;IACf,KAAK,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;CAC7D,CAAA;AAED,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,cAAc,CAAA;IACvB,8FAA8F;IAC9F,UAAU,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;IAClE,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAA;IAC1B,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,KAAK,EAAE,qBAAqB,CAAA;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,2EAA2E;IAC3E,gBAAgB,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;IACxE,iBAAiB,EAAE,OAAO,CAAA;IAC1B,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAC3C,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;OAEG;IACH,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AACD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,sBAAsB,iUAmBhC,IAAI,KAAG,
|
|
1
|
+
{"version":3,"file":"getTableColumnFromPath.d.ts","sourceRoot":"","sources":["../../src/queries/getTableColumnFromPath.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AACrE,OAAO,KAAK,EAEV,cAAc,EAIf,MAAM,SAAS,CAAA;AAGhB,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAM7D,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AAW5D,KAAK,UAAU,GAAG;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;IAC5D,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AAED,KAAK,WAAW,GAAG;IACjB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE;QACR,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAA;QAClC,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAA;KACxB,EAAE,CAAA;IACH,WAAW,EAAE,UAAU,EAAE,CAAA;IACzB,KAAK,EAAE,cAAc,CAAA;IACrB,uBAAuB,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAA;IAClD,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,SAAS,CAAC,EAAE,GAAG,CAAA;IACf,KAAK,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;CAC7D,CAAA;AAED,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,cAAc,CAAA;IACvB,8FAA8F;IAC9F,UAAU,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;IAClE,cAAc,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAA;IAC1B,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,KAAK,EAAE,qBAAqB,CAAA;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,2EAA2E;IAC3E,gBAAgB,CAAC,EAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAA;IACxE,iBAAiB,EAAE,OAAO,CAAA;IAC1B,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAC3C,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB;;OAEG;IACH,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AACD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,sBAAsB,iUAmBhC,IAAI,KAAG,WAy9BT,CAAA"}
|