@payloadcms/drizzle 3.14.0 → 3.14.1-canary.2776826
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/postgres/predefinedMigrations/v2-v3/groupUpSQLStatements.js +2 -2
- package/dist/postgres/predefinedMigrations/v2-v3/groupUpSQLStatements.js.map +1 -1
- package/dist/postgres/predefinedMigrations/v2-v3/migrateRelationships.d.ts.map +1 -1
- package/dist/postgres/predefinedMigrations/v2-v3/migrateRelationships.js +6 -5
- package/dist/postgres/predefinedMigrations/v2-v3/migrateRelationships.js.map +1 -1
- package/package.json +3 -3
- package/dist/postgres/createMigration.d.ts +0 -3
- package/dist/postgres/createMigration.d.ts.map +0 -1
- package/dist/postgres/createMigration.js +0 -91
- package/dist/postgres/createMigration.js.map +0 -1
- package/dist/postgres/getMigrationTemplate.d.ts +0 -4
- package/dist/postgres/getMigrationTemplate.d.ts.map +0 -1
- package/dist/postgres/getMigrationTemplate.js +0 -13
- package/dist/postgres/getMigrationTemplate.js.map +0 -1
- package/dist/postgres/schema/build.d.ts +0 -42
- package/dist/postgres/schema/build.d.ts.map +0 -1
- package/dist/postgres/schema/build.js +0 -404
- package/dist/postgres/schema/build.js.map +0 -1
- package/dist/postgres/schema/createIndex.d.ts +0 -11
- package/dist/postgres/schema/createIndex.d.ts.map +0 -1
- package/dist/postgres/schema/createIndex.js +0 -20
- package/dist/postgres/schema/createIndex.js.map +0 -1
- package/dist/postgres/schema/idToUUID.d.ts +0 -3
- package/dist/postgres/schema/idToUUID.d.ts.map +0 -1
- package/dist/postgres/schema/idToUUID.js +0 -11
- package/dist/postgres/schema/idToUUID.js.map +0 -1
- package/dist/postgres/schema/parentIDColumnMap.d.ts +0 -4
- package/dist/postgres/schema/parentIDColumnMap.d.ts.map +0 -1
- package/dist/postgres/schema/parentIDColumnMap.js +0 -9
- package/dist/postgres/schema/parentIDColumnMap.js.map +0 -1
- package/dist/postgres/schema/traverseFields.d.ts +0 -42
- package/dist/postgres/schema/traverseFields.d.ts.map +0 -1
- package/dist/postgres/schema/traverseFields.js +0 -599
- package/dist/postgres/schema/traverseFields.js.map +0 -1
- package/dist/postgres/schema/withDefault.d.ts +0 -4
- package/dist/postgres/schema/withDefault.d.ts.map +0 -1
- package/dist/postgres/schema/withDefault.js +0 -15
- package/dist/postgres/schema/withDefault.js.map +0 -1
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
* @param sql
|
|
6
6
|
*/ function convertAddColumnToAlterColumn(sql) {
|
|
7
7
|
// Regular expression to match the ADD COLUMN statement with its constraints
|
|
8
|
-
const regex = /ALTER TABLE ("[^"]+") ADD COLUMN ("[^"]+") [\w\s]+ NOT NULL;/;
|
|
8
|
+
const regex = /ALTER TABLE ("[^"]+")\.(".*?") ADD COLUMN ("[^"]+") [\w\s]+ NOT NULL;/;
|
|
9
9
|
// Replace the matched part with "ALTER COLUMN ... SET NOT NULL;"
|
|
10
|
-
return sql.replace(regex, 'ALTER TABLE $1 ALTER COLUMN $
|
|
10
|
+
return sql.replace(regex, 'ALTER TABLE $1.$2 ALTER COLUMN $3 SET NOT NULL;');
|
|
11
11
|
}
|
|
12
12
|
export const groupUpSQLStatements = (list)=>{
|
|
13
13
|
const groups = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/postgres/predefinedMigrations/v2-v3/groupUpSQLStatements.ts"],"sourcesContent":["export type Groups =\n | 'addColumn'\n | 'addConstraint'\n | 'dropColumn'\n | 'dropConstraint'\n | 'dropTable'\n | 'notNull'\n\n/**\n * Convert an \"ADD COLUMN\" statement to an \"ALTER COLUMN\" statement\n * example: ALTER TABLE \"pages_blocks_my_block\" ADD COLUMN \"person_id\" integer NOT NULL;\n * to: ALTER TABLE \"pages_blocks_my_block\" ALTER COLUMN \"person_id\" SET NOT NULL;\n * @param sql\n */\nfunction convertAddColumnToAlterColumn(sql) {\n // Regular expression to match the ADD COLUMN statement with its constraints\n const regex = /ALTER TABLE (\"[^\"]+\") ADD COLUMN (\"[^\"]+\") [\\w\\s]+ NOT NULL;/\n\n // Replace the matched part with \"ALTER COLUMN ... SET NOT NULL;\"\n return sql.replace(regex, 'ALTER TABLE $1 ALTER COLUMN $
|
|
1
|
+
{"version":3,"sources":["../../../../src/postgres/predefinedMigrations/v2-v3/groupUpSQLStatements.ts"],"sourcesContent":["export type Groups =\n | 'addColumn'\n | 'addConstraint'\n | 'dropColumn'\n | 'dropConstraint'\n | 'dropTable'\n | 'notNull'\n\n/**\n * Convert an \"ADD COLUMN\" statement to an \"ALTER COLUMN\" statement\n * example: ALTER TABLE \"pages_blocks_my_block\" ADD COLUMN \"person_id\" integer NOT NULL;\n * to: ALTER TABLE \"pages_blocks_my_block\" ALTER COLUMN \"person_id\" SET NOT NULL;\n * @param sql\n */\nfunction convertAddColumnToAlterColumn(sql) {\n // Regular expression to match the ADD COLUMN statement with its constraints\n const regex = /ALTER TABLE (\"[^\"]+\")\\.(\".*?\") ADD COLUMN (\"[^\"]+\") [\\w\\s]+ NOT NULL;/\n\n // Replace the matched part with \"ALTER COLUMN ... SET NOT NULL;\"\n return sql.replace(regex, 'ALTER TABLE $1.$2 ALTER COLUMN $3 SET NOT NULL;')\n}\n\nexport const groupUpSQLStatements = (list: string[]): Record<Groups, string[]> => {\n const groups = {\n addColumn: 'ADD COLUMN',\n // example: ALTER TABLE \"posts\" ADD COLUMN \"category_id\" integer\n\n addConstraint: 'ADD CONSTRAINT',\n //example:\n // DO $$ BEGIN\n // ALTER TABLE \"pages_blocks_my_block\" ADD CONSTRAINT \"pages_blocks_my_block_person_id_users_id_fk\" FOREIGN KEY (\"person_id\") REFERENCES \"users\"(\"id\") ON DELETE cascade ON UPDATE no action;\n // EXCEPTION\n // WHEN duplicate_object THEN null;\n // END $$;\n\n dropColumn: 'DROP COLUMN',\n // example: ALTER TABLE \"_posts_v_rels\" DROP COLUMN IF EXISTS \"posts_id\";\n\n dropConstraint: 'DROP CONSTRAINT',\n // example: ALTER TABLE \"_posts_v_rels\" DROP CONSTRAINT \"_posts_v_rels_posts_fk\";\n\n dropTable: 'DROP TABLE',\n // example: DROP TABLE \"pages_rels\";\n\n notNull: 'NOT NULL',\n // example: ALTER TABLE \"pages_blocks_my_block\" ALTER COLUMN \"person_id\" SET NOT NULL;\n }\n\n const result = Object.keys(groups).reduce((result, group: Groups) => {\n result[group] = []\n return result\n }, {}) as Record<Groups, string[]>\n\n for (const line of list) {\n Object.entries(groups).some(([key, value]) => {\n if (line.endsWith('NOT NULL;')) {\n // split up the ADD COLUMN and ALTER COLUMN NOT NULL statements\n // example: ALTER TABLE \"pages_blocks_my_block\" ADD COLUMN \"person_id\" integer NOT NULL;\n // becomes two separate statements:\n // 1. ALTER TABLE \"pages_blocks_my_block\" ADD COLUMN \"person_id\" integer;\n // 2. ALTER TABLE \"pages_blocks_my_block\" ALTER COLUMN \"person_id\" SET NOT NULL;\n result.addColumn.push(line.replace(' NOT NULL;', ';'))\n result.notNull.push(convertAddColumnToAlterColumn(line))\n return true\n }\n if (line.includes(value)) {\n result[key].push(line)\n return true\n }\n })\n }\n\n return result\n}\n"],"names":["convertAddColumnToAlterColumn","sql","regex","replace","groupUpSQLStatements","list","groups","addColumn","addConstraint","dropColumn","dropConstraint","dropTable","notNull","result","Object","keys","reduce","group","line","entries","some","key","value","endsWith","push","includes"],"mappings":"AAQA;;;;;CAKC,GACD,SAASA,8BAA8BC,GAAG;IACxC,4EAA4E;IAC5E,MAAMC,QAAQ;IAEd,iEAAiE;IACjE,OAAOD,IAAIE,OAAO,CAACD,OAAO;AAC5B;AAEA,OAAO,MAAME,uBAAuB,CAACC;IACnC,MAAMC,SAAS;QACbC,WAAW;QACX,gEAAgE;QAEhEC,eAAe;QACf,UAAU;QACV,cAAc;QACd,8LAA8L;QAC9L,YAAY;QACZ,oCAAoC;QACpC,UAAU;QAEVC,YAAY;QACZ,yEAAyE;QAEzEC,gBAAgB;QAChB,iFAAiF;QAEjFC,WAAW;QACX,oCAAoC;QAEpCC,SAAS;IAEX;IAEA,MAAMC,SAASC,OAAOC,IAAI,CAACT,QAAQU,MAAM,CAAC,CAACH,QAAQI;QACjDJ,MAAM,CAACI,MAAM,GAAG,EAAE;QAClB,OAAOJ;IACT,GAAG,CAAC;IAEJ,KAAK,MAAMK,QAAQb,KAAM;QACvBS,OAAOK,OAAO,CAACb,QAAQc,IAAI,CAAC,CAAC,CAACC,KAAKC,MAAM;YACvC,IAAIJ,KAAKK,QAAQ,CAAC,cAAc;gBAC9B,+DAA+D;gBAC/D,wFAAwF;gBACxF,mCAAmC;gBACnC,0EAA0E;gBAC1E,kFAAkF;gBAClFV,OAAON,SAAS,CAACiB,IAAI,CAACN,KAAKf,OAAO,CAAC,cAAc;gBACjDU,OAAOD,OAAO,CAACY,IAAI,CAACxB,8BAA8BkB;gBAClD,OAAO;YACT;YACA,IAAIA,KAAKO,QAAQ,CAACH,QAAQ;gBACxBT,MAAM,CAACQ,IAAI,CAACG,IAAI,CAACN;gBACjB,OAAO;YACT;QACF;IACF;IAEA,OAAOL;AACT,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrateRelationships.d.ts","sourceRoot":"","sources":["../../../../src/postgres/predefinedMigrations/v2-v3/migrateRelationships.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"migrateRelationships.d.ts","sourceRoot":"","sources":["../../../../src/postgres/predefinedMigrations/v2-v3/migrateRelationships.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAItE,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AACrE,OAAO,KAAK,EAAgB,YAAY,EAAE,MAAM,YAAY,CAAA;AAI5D,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,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,OAAO,CAAA;IACnB,YAAY,EAAE,YAAY,CAAA;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;IAC7B,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,oBAAoB,mHAY9B,IAAI,kBA0EN,CAAA"}
|
|
@@ -6,13 +6,14 @@ export const migrateRelationships = async ({ adapter, collectionSlug, db, debug,
|
|
|
6
6
|
}
|
|
7
7
|
let offset = 0;
|
|
8
8
|
let paginationResult;
|
|
9
|
+
const schemaName = adapter.pgSchema.schemaName ?? 'public';
|
|
9
10
|
const where = Array.from(pathsToQuery).reduce((statement, path, i)=>{
|
|
10
11
|
return statement += `
|
|
11
|
-
"${tableName}${adapter.relationshipsSuffix}"."path" LIKE '${path}'${pathsToQuery.size !== i + 1 ? ' OR' : ''}
|
|
12
|
+
"${schemaName}"."${tableName}${adapter.relationshipsSuffix}"."path" LIKE '${path}'${pathsToQuery.size !== i + 1 ? ' OR' : ''}
|
|
12
13
|
`;
|
|
13
14
|
}, '');
|
|
14
15
|
while(typeof paginationResult === 'undefined' || paginationResult.rows.length > 0){
|
|
15
|
-
const paginationStatement = `SELECT DISTINCT parent_id FROM ${tableName}${adapter.relationshipsSuffix} WHERE
|
|
16
|
+
const paginationStatement = `SELECT DISTINCT parent_id FROM "${schemaName}"."${tableName}${adapter.relationshipsSuffix}" WHERE
|
|
16
17
|
${where} ORDER BY parent_id LIMIT 500 OFFSET ${offset * 500};
|
|
17
18
|
`;
|
|
18
19
|
paginationResult = await adapter.drizzle.execute(sql.raw(`${paginationStatement}`));
|
|
@@ -20,8 +21,8 @@ export const migrateRelationships = async ({ adapter, collectionSlug, db, debug,
|
|
|
20
21
|
return;
|
|
21
22
|
}
|
|
22
23
|
offset += 1;
|
|
23
|
-
const statement = `SELECT * FROM ${tableName}${adapter.relationshipsSuffix} WHERE
|
|
24
|
-
(${where}) AND parent_id IN (${paginationResult.rows.map((row)
|
|
24
|
+
const statement = `SELECT * FROM "${schemaName}"."${tableName}${adapter.relationshipsSuffix}" WHERE
|
|
25
|
+
(${where}) AND parent_id IN (${paginationResult.rows.map((row)=>`'${row.parent_id}'`).join(', ')});
|
|
25
26
|
`;
|
|
26
27
|
if (debug) {
|
|
27
28
|
payload.logger.info('FINDING ROWS TO MIGRATE');
|
|
@@ -52,7 +53,7 @@ export const migrateRelationships = async ({ adapter, collectionSlug, db, debug,
|
|
|
52
53
|
tableName
|
|
53
54
|
});
|
|
54
55
|
}
|
|
55
|
-
const deleteStatement = `DELETE FROM ${tableName}${adapter.relationshipsSuffix} WHERE ${where}`;
|
|
56
|
+
const deleteStatement = `DELETE FROM "${schemaName}"."${tableName}${adapter.relationshipsSuffix}" WHERE ${where}`;
|
|
56
57
|
if (debug) {
|
|
57
58
|
payload.logger.info('DELETING ROWS');
|
|
58
59
|
payload.logger.info(deleteStatement);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/postgres/predefinedMigrations/v2-v3/migrateRelationships.ts"],"sourcesContent":["import type { FlattenedField, Payload, PayloadRequest } from 'payload'\n\nimport { sql } from 'drizzle-orm'\n\nimport type { BasePostgresAdapter, PostgresDB } from '../../types.js'\nimport type { DocsToResave, PathsToQuery } from './types.js'\n\nimport { fetchAndResave } from './fetchAndResave/index.js'\n\ntype Args = {\n adapter: BasePostgresAdapter\n collectionSlug?: string\n db: PostgresDB\n debug: boolean\n fields: FlattenedField[]\n globalSlug?: string\n isVersions: boolean\n pathsToQuery: PathsToQuery\n payload: Payload\n req?: Partial<PayloadRequest>\n tableName: string\n}\n\nexport const migrateRelationships = async ({\n adapter,\n collectionSlug,\n db,\n debug,\n fields,\n globalSlug,\n isVersions,\n pathsToQuery,\n payload,\n req,\n tableName,\n}: Args) => {\n if (pathsToQuery.size === 0) {\n return\n }\n\n let offset = 0\n\n let paginationResult\n\n const where = Array.from(pathsToQuery).reduce((statement, path, i) => {\n return (statement += `\n\"${tableName}${adapter.relationshipsSuffix}\".\"path\" LIKE '${path}'${pathsToQuery.size !== i + 1 ? ' OR' : ''}\n`)\n }, '')\n\n while (typeof paginationResult === 'undefined' || paginationResult.rows.length > 0) {\n const paginationStatement = `SELECT DISTINCT parent_id FROM ${tableName}${adapter.relationshipsSuffix} WHERE\n ${where} ORDER BY parent_id LIMIT 500 OFFSET ${offset * 500};\n `\n\n paginationResult = await adapter.drizzle.execute(sql.raw(`${paginationStatement}`))\n\n if (paginationResult.rows.length === 0) {\n return\n }\n\n offset += 1\n\n const statement = `SELECT * FROM ${tableName}${adapter.relationshipsSuffix} WHERE\n (${where}) AND parent_id IN (${paginationResult.rows.map((row) => row.parent_id).join(', ')});\n`\n if (debug) {\n payload.logger.info('FINDING ROWS TO MIGRATE')\n payload.logger.info(statement)\n }\n\n const result = await adapter.drizzle.execute(sql.raw(`${statement}`))\n\n const docsToResave: DocsToResave = {}\n\n result.rows.forEach((row) => {\n const parentID = row.parent_id\n\n if (typeof parentID === 'string' || typeof parentID === 'number') {\n if (!docsToResave[parentID]) {\n docsToResave[parentID] = []\n }\n docsToResave[parentID].push(row)\n }\n })\n\n await fetchAndResave({\n adapter,\n collectionSlug,\n db,\n debug,\n docsToResave,\n fields,\n globalSlug,\n isVersions,\n payload,\n req,\n tableName,\n })\n }\n\n const deleteStatement = `DELETE FROM ${tableName}${adapter.relationshipsSuffix} WHERE ${where}`\n if (debug) {\n payload.logger.info('DELETING ROWS')\n payload.logger.info(deleteStatement)\n }\n await db.execute(sql.raw(`${deleteStatement}`))\n}\n"],"names":["sql","fetchAndResave","migrateRelationships","adapter","collectionSlug","db","debug","fields","globalSlug","isVersions","pathsToQuery","payload","req","tableName","size","offset","paginationResult","where","Array","from","reduce","statement","path","i","relationshipsSuffix","rows","length","paginationStatement","drizzle","execute","raw","map","row","parent_id","join","logger","info","result","docsToResave","forEach","parentID","push","deleteStatement"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../../src/postgres/predefinedMigrations/v2-v3/migrateRelationships.ts"],"sourcesContent":["import type { PgSchema } from 'drizzle-orm/pg-core'\nimport type { FlattenedField, Payload, PayloadRequest } from 'payload'\n\nimport { sql } from 'drizzle-orm'\n\nimport type { BasePostgresAdapter, PostgresDB } from '../../types.js'\nimport type { DocsToResave, PathsToQuery } from './types.js'\n\nimport { fetchAndResave } from './fetchAndResave/index.js'\n\ntype Args = {\n adapter: BasePostgresAdapter\n collectionSlug?: string\n db: PostgresDB\n debug: boolean\n fields: FlattenedField[]\n globalSlug?: string\n isVersions: boolean\n pathsToQuery: PathsToQuery\n payload: Payload\n req?: Partial<PayloadRequest>\n tableName: string\n}\n\nexport const migrateRelationships = async ({\n adapter,\n collectionSlug,\n db,\n debug,\n fields,\n globalSlug,\n isVersions,\n pathsToQuery,\n payload,\n req,\n tableName,\n}: Args) => {\n if (pathsToQuery.size === 0) {\n return\n }\n\n let offset = 0\n\n let paginationResult\n\n const schemaName = (adapter.pgSchema as PgSchema).schemaName ?? 'public'\n\n const where = Array.from(pathsToQuery).reduce((statement, path, i) => {\n return (statement += `\n\"${schemaName}\".\"${tableName}${adapter.relationshipsSuffix}\".\"path\" LIKE '${path}'${pathsToQuery.size !== i + 1 ? ' OR' : ''}\n`)\n }, '')\n\n while (typeof paginationResult === 'undefined' || paginationResult.rows.length > 0) {\n const paginationStatement = `SELECT DISTINCT parent_id FROM \"${schemaName}\".\"${tableName}${adapter.relationshipsSuffix}\" WHERE\n ${where} ORDER BY parent_id LIMIT 500 OFFSET ${offset * 500};\n `\n\n paginationResult = await adapter.drizzle.execute(sql.raw(`${paginationStatement}`))\n\n if (paginationResult.rows.length === 0) {\n return\n }\n\n offset += 1\n\n const statement = `SELECT * FROM \"${schemaName}\".\"${tableName}${adapter.relationshipsSuffix}\" WHERE\n (${where}) AND parent_id IN (${paginationResult.rows.map((row) => `'${row.parent_id}'`).join(', ')});\n`\n if (debug) {\n payload.logger.info('FINDING ROWS TO MIGRATE')\n payload.logger.info(statement)\n }\n\n const result = await adapter.drizzle.execute(sql.raw(`${statement}`))\n\n const docsToResave: DocsToResave = {}\n\n result.rows.forEach((row) => {\n const parentID = row.parent_id\n\n if (typeof parentID === 'string' || typeof parentID === 'number') {\n if (!docsToResave[parentID]) {\n docsToResave[parentID] = []\n }\n docsToResave[parentID].push(row)\n }\n })\n\n await fetchAndResave({\n adapter,\n collectionSlug,\n db,\n debug,\n docsToResave,\n fields,\n globalSlug,\n isVersions,\n payload,\n req,\n tableName,\n })\n }\n\n const deleteStatement = `DELETE FROM \"${schemaName}\".\"${tableName}${adapter.relationshipsSuffix}\" WHERE ${where}`\n if (debug) {\n payload.logger.info('DELETING ROWS')\n payload.logger.info(deleteStatement)\n }\n await db.execute(sql.raw(`${deleteStatement}`))\n}\n"],"names":["sql","fetchAndResave","migrateRelationships","adapter","collectionSlug","db","debug","fields","globalSlug","isVersions","pathsToQuery","payload","req","tableName","size","offset","paginationResult","schemaName","pgSchema","where","Array","from","reduce","statement","path","i","relationshipsSuffix","rows","length","paginationStatement","drizzle","execute","raw","map","row","parent_id","join","logger","info","result","docsToResave","forEach","parentID","push","deleteStatement"],"mappings":"AAGA,SAASA,GAAG,QAAQ,cAAa;AAKjC,SAASC,cAAc,QAAQ,4BAA2B;AAgB1D,OAAO,MAAMC,uBAAuB,OAAO,EACzCC,OAAO,EACPC,cAAc,EACdC,EAAE,EACFC,KAAK,EACLC,MAAM,EACNC,UAAU,EACVC,UAAU,EACVC,YAAY,EACZC,OAAO,EACPC,GAAG,EACHC,SAAS,EACJ;IACL,IAAIH,aAAaI,IAAI,KAAK,GAAG;QAC3B;IACF;IAEA,IAAIC,SAAS;IAEb,IAAIC;IAEJ,MAAMC,aAAa,AAACd,QAAQe,QAAQ,CAAcD,UAAU,IAAI;IAEhE,MAAME,QAAQC,MAAMC,IAAI,CAACX,cAAcY,MAAM,CAAC,CAACC,WAAWC,MAAMC;QAC9D,OAAQF,aAAa,CAAC;CACzB,EAAEN,WAAW,GAAG,EAAEJ,YAAYV,QAAQuB,mBAAmB,CAAC,eAAe,EAAEF,KAAK,CAAC,EAAEd,aAAaI,IAAI,KAAKW,IAAI,IAAI,QAAQ,GAAG;AAC7H,CAAC;IACC,GAAG;IAEH,MAAO,OAAOT,qBAAqB,eAAeA,iBAAiBW,IAAI,CAACC,MAAM,GAAG,EAAG;QAClF,MAAMC,sBAAsB,CAAC,gCAAgC,EAAEZ,WAAW,GAAG,EAAEJ,YAAYV,QAAQuB,mBAAmB,CAAC;IACvH,EAAEP,MAAM,qCAAqC,EAAEJ,SAAS,IAAI;EAC9D,CAAC;QAECC,mBAAmB,MAAMb,QAAQ2B,OAAO,CAACC,OAAO,CAAC/B,IAAIgC,GAAG,CAAC,GAAGH,qBAAqB;QAEjF,IAAIb,iBAAiBW,IAAI,CAACC,MAAM,KAAK,GAAG;YACtC;QACF;QAEAb,UAAU;QAEV,MAAMQ,YAAY,CAAC,eAAe,EAAEN,WAAW,GAAG,EAAEJ,YAAYV,QAAQuB,mBAAmB,CAAC;KAC3F,EAAEP,MAAM,oBAAoB,EAAEH,iBAAiBW,IAAI,CAACM,GAAG,CAAC,CAACC,MAAQ,CAAC,CAAC,EAAEA,IAAIC,SAAS,CAAC,CAAC,CAAC,EAAEC,IAAI,CAAC,MAAM;AACvG,CAAC;QACG,IAAI9B,OAAO;YACTK,QAAQ0B,MAAM,CAACC,IAAI,CAAC;YACpB3B,QAAQ0B,MAAM,CAACC,IAAI,CAACf;QACtB;QAEA,MAAMgB,SAAS,MAAMpC,QAAQ2B,OAAO,CAACC,OAAO,CAAC/B,IAAIgC,GAAG,CAAC,GAAGT,WAAW;QAEnE,MAAMiB,eAA6B,CAAC;QAEpCD,OAAOZ,IAAI,CAACc,OAAO,CAAC,CAACP;YACnB,MAAMQ,WAAWR,IAAIC,SAAS;YAE9B,IAAI,OAAOO,aAAa,YAAY,OAAOA,aAAa,UAAU;gBAChE,IAAI,CAACF,YAAY,CAACE,SAAS,EAAE;oBAC3BF,YAAY,CAACE,SAAS,GAAG,EAAE;gBAC7B;gBACAF,YAAY,CAACE,SAAS,CAACC,IAAI,CAACT;YAC9B;QACF;QAEA,MAAMjC,eAAe;YACnBE;YACAC;YACAC;YACAC;YACAkC;YACAjC;YACAC;YACAC;YACAE;YACAC;YACAC;QACF;IACF;IAEA,MAAM+B,kBAAkB,CAAC,aAAa,EAAE3B,WAAW,GAAG,EAAEJ,YAAYV,QAAQuB,mBAAmB,CAAC,QAAQ,EAAEP,OAAO;IACjH,IAAIb,OAAO;QACTK,QAAQ0B,MAAM,CAACC,IAAI,CAAC;QACpB3B,QAAQ0B,MAAM,CAACC,IAAI,CAACM;IACtB;IACA,MAAMvC,GAAG0B,OAAO,CAAC/B,IAAIgC,GAAG,CAAC,GAAGY,iBAAiB;AAC/C,EAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/drizzle",
|
|
3
|
-
"version": "3.14.
|
|
3
|
+
"version": "3.14.1-canary.2776826",
|
|
4
4
|
"description": "A library of shared functions used by different payload database adapters",
|
|
5
5
|
"homepage": "https://payloadcms.com",
|
|
6
6
|
"repository": {
|
|
@@ -53,10 +53,10 @@
|
|
|
53
53
|
"@types/pg": "8.10.2",
|
|
54
54
|
"@types/to-snake-case": "1.0.0",
|
|
55
55
|
"@payloadcms/eslint-config": "3.9.0",
|
|
56
|
-
"payload": "3.14.
|
|
56
|
+
"payload": "3.14.1-canary.2776826"
|
|
57
57
|
},
|
|
58
58
|
"peerDependencies": {
|
|
59
|
-
"payload": "3.14.
|
|
59
|
+
"payload": "3.14.1-canary.2776826"
|
|
60
60
|
},
|
|
61
61
|
"scripts": {
|
|
62
62
|
"build": "pnpm build:swc && pnpm build:types",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createMigration.d.ts","sourceRoot":"","sources":["../../src/postgres/createMigration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAc9C,eAAO,MAAM,eAAe,EAAE,eA2G7B,CAAA"}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import fs from 'fs';
|
|
2
|
-
import { createRequire } from 'module';
|
|
3
|
-
import { getPredefinedMigration, writeMigrationIndex } from 'payload';
|
|
4
|
-
import prompts from 'prompts';
|
|
5
|
-
import { defaultDrizzleSnapshot } from './defaultSnapshot.js';
|
|
6
|
-
import { getMigrationTemplate } from './getMigrationTemplate.js';
|
|
7
|
-
const require = createRequire(import.meta.url);
|
|
8
|
-
export const createMigration = async function createMigration({ dirname, file, forceAcceptWarning, migrationName, payload, skipEmpty }) {
|
|
9
|
-
const dir = payload.db.migrationDir;
|
|
10
|
-
if (!fs.existsSync(dir)) {
|
|
11
|
-
fs.mkdirSync(dir);
|
|
12
|
-
}
|
|
13
|
-
const { generateDrizzleJson, generateMigration, upPgSnapshot } = require('drizzle-kit/api');
|
|
14
|
-
const drizzleJsonAfter = generateDrizzleJson(this.schema);
|
|
15
|
-
const [yyymmdd, hhmmss] = new Date().toISOString().split('T');
|
|
16
|
-
const formattedDate = yyymmdd.replace(/\D/g, '');
|
|
17
|
-
const formattedTime = hhmmss.split('.')[0].replace(/\D/g, '');
|
|
18
|
-
let imports = '';
|
|
19
|
-
let downSQL;
|
|
20
|
-
let upSQL;
|
|
21
|
-
({ downSQL, imports, upSQL } = await getPredefinedMigration({
|
|
22
|
-
dirname,
|
|
23
|
-
file,
|
|
24
|
-
migrationName,
|
|
25
|
-
payload
|
|
26
|
-
}));
|
|
27
|
-
const timestamp = `${formattedDate}_${formattedTime}`;
|
|
28
|
-
const name = migrationName || file?.split('/').slice(2).join('/');
|
|
29
|
-
const fileName = `${timestamp}${name ? `_${name.replace(/\W/g, '_')}` : ''}`;
|
|
30
|
-
const filePath = `${dir}/${fileName}`;
|
|
31
|
-
let drizzleJsonBefore = defaultDrizzleSnapshot;
|
|
32
|
-
if (this.schemaName) {
|
|
33
|
-
drizzleJsonBefore.schemas = {
|
|
34
|
-
[this.schemaName]: this.schemaName
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
if (!upSQL) {
|
|
38
|
-
// Get latest migration snapshot
|
|
39
|
-
const latestSnapshot = fs.readdirSync(dir).filter((file)=>file.endsWith('.json')).sort().reverse()?.[0];
|
|
40
|
-
if (latestSnapshot) {
|
|
41
|
-
drizzleJsonBefore = JSON.parse(fs.readFileSync(`${dir}/${latestSnapshot}`, 'utf8'));
|
|
42
|
-
if (drizzleJsonBefore.version < drizzleJsonAfter.version) {
|
|
43
|
-
drizzleJsonBefore = upPgSnapshot(drizzleJsonBefore);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
const sqlStatementsUp = await generateMigration(drizzleJsonBefore, drizzleJsonAfter);
|
|
47
|
-
const sqlStatementsDown = await generateMigration(drizzleJsonAfter, drizzleJsonBefore);
|
|
48
|
-
const sqlExecute = 'await payload.db.drizzle.execute(sql`';
|
|
49
|
-
if (sqlStatementsUp?.length) {
|
|
50
|
-
upSQL = `${sqlExecute}\n ${sqlStatementsUp?.join('\n')}\`)`;
|
|
51
|
-
}
|
|
52
|
-
if (sqlStatementsDown?.length) {
|
|
53
|
-
downSQL = `${sqlExecute}\n ${sqlStatementsDown?.join('\n')}\`)`;
|
|
54
|
-
}
|
|
55
|
-
if (!upSQL?.length && !downSQL?.length && !forceAcceptWarning) {
|
|
56
|
-
if (skipEmpty) {
|
|
57
|
-
process.exit(0);
|
|
58
|
-
}
|
|
59
|
-
const { confirm: shouldCreateBlankMigration } = await prompts({
|
|
60
|
-
name: 'confirm',
|
|
61
|
-
type: 'confirm',
|
|
62
|
-
initial: false,
|
|
63
|
-
message: 'No schema changes detected. Would you like to create a blank migration file?'
|
|
64
|
-
}, {
|
|
65
|
-
onCancel: ()=>{
|
|
66
|
-
process.exit(0);
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
if (!shouldCreateBlankMigration) {
|
|
70
|
-
process.exit(0);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
// write schema
|
|
74
|
-
fs.writeFileSync(`${filePath}.json`, JSON.stringify(drizzleJsonAfter, null, 2));
|
|
75
|
-
}
|
|
76
|
-
// write migration
|
|
77
|
-
fs.writeFileSync(`${filePath}.ts`, getMigrationTemplate({
|
|
78
|
-
downSQL: downSQL || ` // Migration code`,
|
|
79
|
-
imports,
|
|
80
|
-
packageName: payload.db.packageName,
|
|
81
|
-
upSQL: upSQL || ` // Migration code`
|
|
82
|
-
}));
|
|
83
|
-
writeMigrationIndex({
|
|
84
|
-
migrationsDir: payload.db.migrationDir
|
|
85
|
-
});
|
|
86
|
-
payload.logger.info({
|
|
87
|
-
msg: `Migration created at ${filePath}.ts`
|
|
88
|
-
});
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
//# sourceMappingURL=createMigration.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/postgres/createMigration.ts"],"sourcesContent":["import type { CreateMigration } from 'payload'\n\nimport fs from 'fs'\nimport { createRequire } from 'module'\nimport { getPredefinedMigration, writeMigrationIndex } from 'payload'\nimport prompts from 'prompts'\n\nimport type { BasePostgresAdapter } 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: BasePostgresAdapter,\n { dirname, file, forceAcceptWarning, migrationName, payload, skipEmpty },\n) {\n const dir = payload.db.migrationDir\n if (!fs.existsSync(dir)) {\n fs.mkdirSync(dir)\n }\n const { generateDrizzleJson, generateMigration, upPgSnapshot } = require('drizzle-kit/api')\n const drizzleJsonAfter = generateDrizzleJson(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\n\n if (this.schemaName) {\n drizzleJsonBefore.schemas = {\n [this.schemaName]: this.schemaName,\n }\n }\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(fs.readFileSync(`${dir}/${latestSnapshot}`, 'utf8'))\n\n if (drizzleJsonBefore.version < drizzleJsonAfter.version) {\n drizzleJsonBefore = upPgSnapshot(drizzleJsonBefore)\n }\n }\n\n const sqlStatementsUp = await generateMigration(drizzleJsonBefore, drizzleJsonAfter)\n const sqlStatementsDown = await generateMigration(drizzleJsonAfter, drizzleJsonBefore)\n const sqlExecute = 'await payload.db.drizzle.execute(sql`'\n\n if (sqlStatementsUp?.length) {\n upSQL = `${sqlExecute}\\n ${sqlStatementsUp?.join('\\n')}\\`)`\n }\n if (sqlStatementsDown?.length) {\n downSQL = `${sqlExecute}\\n ${sqlStatementsDown?.join('\\n')}\\`)`\n }\n\n if (!upSQL?.length && !downSQL?.length && !forceAcceptWarning) {\n if (skipEmpty) {\n process.exit(0)\n }\n\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 packageName: payload.db.packageName,\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","getPredefinedMigration","writeMigrationIndex","prompts","defaultDrizzleSnapshot","getMigrationTemplate","require","url","createMigration","dirname","file","forceAcceptWarning","migrationName","payload","skipEmpty","dir","db","migrationDir","existsSync","mkdirSync","generateDrizzleJson","generateMigration","upPgSnapshot","drizzleJsonAfter","schema","yyymmdd","hhmmss","Date","toISOString","split","formattedDate","replace","formattedTime","imports","downSQL","upSQL","timestamp","name","slice","join","fileName","filePath","drizzleJsonBefore","schemaName","schemas","latestSnapshot","readdirSync","filter","endsWith","sort","reverse","JSON","parse","readFileSync","version","sqlStatementsUp","sqlStatementsDown","sqlExecute","length","process","exit","confirm","shouldCreateBlankMigration","type","initial","message","onCancel","writeFileSync","stringify","packageName","migrationsDir","logger","info","msg"],"mappings":"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"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { MigrationTemplateArgs } from 'payload';
|
|
2
|
-
export declare const indent: (text: string) => string;
|
|
3
|
-
export declare const getMigrationTemplate: ({ downSQL, imports, packageName, upSQL, }: MigrationTemplateArgs) => string;
|
|
4
|
-
//# sourceMappingURL=getMigrationTemplate.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getMigrationTemplate.d.ts","sourceRoot":"","sources":["../../src/postgres/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,8CAK9B,qBAAqB,KAAG,MAS1B,CAAA"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export const indent = (text)=>text.split('\n').map((line)=>` ${line}`).join('\n');
|
|
2
|
-
export const getMigrationTemplate = ({ downSQL, imports, packageName, upSQL })=>`import { MigrateUpArgs, MigrateDownArgs, sql } from '${packageName}'
|
|
3
|
-
${imports ? `${imports}\n` : ''}
|
|
4
|
-
export async function up({ payload, req }: MigrateUpArgs): Promise<void> {
|
|
5
|
-
${indent(upSQL)}
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
export async function down({ payload, req }: MigrateDownArgs): Promise<void> {
|
|
9
|
-
${indent(downSQL)}
|
|
10
|
-
}
|
|
11
|
-
`;
|
|
12
|
-
|
|
13
|
-
//# sourceMappingURL=getMigrationTemplate.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/postgres/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 packageName,\n upSQL,\n}: MigrationTemplateArgs): string => `import { MigrateUpArgs, MigrateDownArgs, sql } from '${packageName}'\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","packageName","upSQL"],"mappings":"AAEA,OAAO,MAAMA,SAAS,CAACC,OACrBA,KACGC,KAAK,CAAC,MACNC,GAAG,CAAC,CAACC,OAAS,CAAC,EAAE,EAAEA,MAAM,EACzBC,IAAI,CAAC,MAAK;AAEf,OAAO,MAAMC,uBAAuB,CAAC,EACnCC,OAAO,EACPC,OAAO,EACPC,WAAW,EACXC,KAAK,EACiB,GAAa,CAAC,qDAAqD,EAAED,YAAY;AACzG,EAAED,UAAU,GAAGA,QAAQ,EAAE,CAAC,GAAG,GAAG;;AAEhC,EAAER,OAAOU,OAAO;;;;AAIhB,EAAEV,OAAOO,SAAS;;AAElB,CAAC,CAAA"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import type { PgColumnBuilder } from 'drizzle-orm/pg-core';
|
|
2
|
-
import type { FlattenedField } from 'payload';
|
|
3
|
-
import type { BaseExtraConfig, BasePostgresAdapter, RelationMap } from '../types.js';
|
|
4
|
-
type Args = {
|
|
5
|
-
adapter: BasePostgresAdapter;
|
|
6
|
-
baseColumns?: Record<string, PgColumnBuilder>;
|
|
7
|
-
/**
|
|
8
|
-
* After table is created, run these functions to add extra config to the table
|
|
9
|
-
* ie. indexes, multiple columns, etc
|
|
10
|
-
*/
|
|
11
|
-
baseExtraConfig?: BaseExtraConfig;
|
|
12
|
-
buildNumbers?: boolean;
|
|
13
|
-
buildRelationships?: boolean;
|
|
14
|
-
disableNotNull: boolean;
|
|
15
|
-
disableRelsTableUnique?: boolean;
|
|
16
|
-
disableUnique: boolean;
|
|
17
|
-
fields: FlattenedField[];
|
|
18
|
-
rootRelationships?: Set<string>;
|
|
19
|
-
rootRelationsToBuild?: RelationMap;
|
|
20
|
-
rootTableIDColType?: string;
|
|
21
|
-
rootTableName?: string;
|
|
22
|
-
rootUniqueRelationships?: Set<string>;
|
|
23
|
-
tableName: string;
|
|
24
|
-
timestamps?: boolean;
|
|
25
|
-
versions: boolean;
|
|
26
|
-
/**
|
|
27
|
-
* Tracks whether or not this table is built
|
|
28
|
-
* from the result of a localized array or block field at some point
|
|
29
|
-
*/
|
|
30
|
-
withinLocalizedArrayOrBlock?: boolean;
|
|
31
|
-
};
|
|
32
|
-
type Result = {
|
|
33
|
-
hasLocalizedManyNumberField: boolean;
|
|
34
|
-
hasLocalizedManyTextField: boolean;
|
|
35
|
-
hasLocalizedRelationshipField: boolean;
|
|
36
|
-
hasManyNumberField: 'index' | boolean;
|
|
37
|
-
hasManyTextField: 'index' | boolean;
|
|
38
|
-
relationsToBuild: RelationMap;
|
|
39
|
-
};
|
|
40
|
-
export declare const buildTable: ({ adapter, baseColumns, baseExtraConfig, disableNotNull, disableRelsTableUnique, disableUnique, fields, rootRelationships, rootRelationsToBuild, rootTableIDColType, rootTableName: incomingRootTableName, rootUniqueRelationships, tableName, timestamps, versions, withinLocalizedArrayOrBlock, }: Args) => Result;
|
|
41
|
-
export {};
|
|
42
|
-
//# sourceMappingURL=build.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/postgres/schema/build.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAGV,eAAe,EAEhB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAe7C,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EAInB,WAAW,EACZ,MAAM,aAAa,CAAA;AASpB,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,mBAAmB,CAAA;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAA;IAC7C;;;OAGG;IACH,eAAe,CAAC,EAAE,eAAe,CAAA;IACjC,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,cAAc,EAAE,OAAO,CAAA;IACvB,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,aAAa,EAAE,OAAO,CAAA;IACtB,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,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,uBAAuB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACrC,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,wSAiBpB,IAAI,KAAG,MA4aT,CAAA"}
|