@payloadcms/drizzle 3.6.1-canary.ca44922 → 3.7.0

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/index.d.ts CHANGED
@@ -36,7 +36,6 @@ export { updateVersion } from './updateVersion.js';
36
36
  export { upsertRow } from './upsertRow/index.js';
37
37
  export { buildCreateMigration } from './utilities/buildCreateMigration.js';
38
38
  export { buildIndexName } from './utilities/buildIndexName.js';
39
- export { createSchemaGenerator } from './utilities/createSchemaGenerator.js';
40
39
  export { executeSchemaHooks } from './utilities/executeSchemaHooks.js';
41
40
  export { extendDrizzleTable } from './utilities/extendDrizzleTable.js';
42
41
  export { hasLocalesTable } from './utilities/hasLocalesTable.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,YAAY,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAA;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAA;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAA;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,EAAE,gCAAgC,EAAE,MAAM,iDAAiD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,YAAY,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAA;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAA;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAA;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAA;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,EAAE,gCAAgC,EAAE,MAAM,iDAAiD,CAAA"}
package/dist/index.js CHANGED
@@ -35,7 +35,6 @@ export { updateVersion } from './updateVersion.js';
35
35
  export { upsertRow } from './upsertRow/index.js';
36
36
  export { buildCreateMigration } from './utilities/buildCreateMigration.js';
37
37
  export { buildIndexName } from './utilities/buildIndexName.js';
38
- export { createSchemaGenerator } from './utilities/createSchemaGenerator.js';
39
38
  export { executeSchemaHooks } from './utilities/executeSchemaHooks.js';
40
39
  export { extendDrizzleTable } from './utilities/extendDrizzleTable.js';
41
40
  export { hasLocalesTable } from './utilities/hasLocalesTable.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export { count } from './count.js'\nexport { countGlobalVersions } from './countGlobalVersions.js'\nexport { countVersions } from './countVersions.js'\nexport { create } from './create.js'\nexport { createGlobal } from './createGlobal.js'\nexport { createGlobalVersion } from './createGlobalVersion.js'\nexport { createTableName } from './createTableName.js'\nexport { createVersion } from './createVersion.js'\nexport { deleteMany } from './deleteMany.js'\nexport { deleteOne } from './deleteOne.js'\nexport { deleteVersions } from './deleteVersions.js'\nexport { destroy } from './destroy.js'\nexport { find } from './find.js'\nexport { chainMethods } from './find/chainMethods.js'\nexport { findGlobal } from './findGlobal.js'\nexport { findGlobalVersions } from './findGlobalVersions.js'\nexport { findMigrationDir } from './findMigrationDir.js'\nexport { findOne } from './findOne.js'\nexport { findVersions } from './findVersions.js'\nexport { migrate } from './migrate.js'\nexport { migrateDown } from './migrateDown.js'\nexport { migrateFresh } from './migrateFresh.js'\nexport { migrateRefresh } from './migrateRefresh.js'\nexport { migrateReset } from './migrateReset.js'\nexport { migrateStatus } from './migrateStatus.js'\nexport { operatorMap } from './queries/operatorMap.js'\nexport type { Operators } from './queries/operatorMap.js'\nexport { queryDrafts } from './queryDrafts.js'\nexport { beginTransaction } from './transactions/beginTransaction.js'\nexport { commitTransaction } from './transactions/commitTransaction.js'\nexport { rollbackTransaction } from './transactions/rollbackTransaction.js'\nexport { updateOne } from './update.js'\nexport { updateGlobal } from './updateGlobal.js'\nexport { updateGlobalVersion } from './updateGlobalVersion.js'\nexport { updateVersion } from './updateVersion.js'\nexport { upsertRow } from './upsertRow/index.js'\nexport { buildCreateMigration } from './utilities/buildCreateMigration.js'\nexport { buildIndexName } from './utilities/buildIndexName.js'\nexport { createSchemaGenerator } from './utilities/createSchemaGenerator.js'\nexport { executeSchemaHooks } from './utilities/executeSchemaHooks.js'\nexport { extendDrizzleTable } from './utilities/extendDrizzleTable.js'\nexport { hasLocalesTable } from './utilities/hasLocalesTable.js'\nexport { pushDevSchema } from './utilities/pushDevSchema.js'\nexport { validateExistingBlockIsIdentical } from './utilities/validateExistingBlockIsIdentical.js'\n"],"names":["count","countGlobalVersions","countVersions","create","createGlobal","createGlobalVersion","createTableName","createVersion","deleteMany","deleteOne","deleteVersions","destroy","find","chainMethods","findGlobal","findGlobalVersions","findMigrationDir","findOne","findVersions","migrate","migrateDown","migrateFresh","migrateRefresh","migrateReset","migrateStatus","operatorMap","queryDrafts","beginTransaction","commitTransaction","rollbackTransaction","updateOne","updateGlobal","updateGlobalVersion","updateVersion","upsertRow","buildCreateMigration","buildIndexName","createSchemaGenerator","executeSchemaHooks","extendDrizzleTable","hasLocalesTable","pushDevSchema","validateExistingBlockIsIdentical"],"mappings":"AAAA,SAASA,KAAK,QAAQ,aAAY;AAClC,SAASC,mBAAmB,QAAQ,2BAA0B;AAC9D,SAASC,aAAa,QAAQ,qBAAoB;AAClD,SAASC,MAAM,QAAQ,cAAa;AACpC,SAASC,YAAY,QAAQ,oBAAmB;AAChD,SAASC,mBAAmB,QAAQ,2BAA0B;AAC9D,SAASC,eAAe,QAAQ,uBAAsB;AACtD,SAASC,aAAa,QAAQ,qBAAoB;AAClD,SAASC,UAAU,QAAQ,kBAAiB;AAC5C,SAASC,SAAS,QAAQ,iBAAgB;AAC1C,SAASC,cAAc,QAAQ,sBAAqB;AACpD,SAASC,OAAO,QAAQ,eAAc;AACtC,SAASC,IAAI,QAAQ,YAAW;AAChC,SAASC,YAAY,QAAQ,yBAAwB;AACrD,SAASC,UAAU,QAAQ,kBAAiB;AAC5C,SAASC,kBAAkB,QAAQ,0BAAyB;AAC5D,SAASC,gBAAgB,QAAQ,wBAAuB;AACxD,SAASC,OAAO,QAAQ,eAAc;AACtC,SAASC,YAAY,QAAQ,oBAAmB;AAChD,SAASC,OAAO,QAAQ,eAAc;AACtC,SAASC,WAAW,QAAQ,mBAAkB;AAC9C,SAASC,YAAY,QAAQ,oBAAmB;AAChD,SAASC,cAAc,QAAQ,sBAAqB;AACpD,SAASC,YAAY,QAAQ,oBAAmB;AAChD,SAASC,aAAa,QAAQ,qBAAoB;AAClD,SAASC,WAAW,QAAQ,2BAA0B;AAEtD,SAASC,WAAW,QAAQ,mBAAkB;AAC9C,SAASC,gBAAgB,QAAQ,qCAAoC;AACrE,SAASC,iBAAiB,QAAQ,sCAAqC;AACvE,SAASC,mBAAmB,QAAQ,wCAAuC;AAC3E,SAASC,SAAS,QAAQ,cAAa;AACvC,SAASC,YAAY,QAAQ,oBAAmB;AAChD,SAASC,mBAAmB,QAAQ,2BAA0B;AAC9D,SAASC,aAAa,QAAQ,qBAAoB;AAClD,SAASC,SAAS,QAAQ,uBAAsB;AAChD,SAASC,oBAAoB,QAAQ,sCAAqC;AAC1E,SAASC,cAAc,QAAQ,gCAA+B;AAC9D,SAASC,qBAAqB,QAAQ,uCAAsC;AAC5E,SAASC,kBAAkB,QAAQ,oCAAmC;AACtE,SAASC,kBAAkB,QAAQ,oCAAmC;AACtE,SAASC,eAAe,QAAQ,iCAAgC;AAChE,SAASC,aAAa,QAAQ,+BAA8B;AAC5D,SAASC,gCAAgC,QAAQ,kDAAiD"}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export { count } from './count.js'\nexport { countGlobalVersions } from './countGlobalVersions.js'\nexport { countVersions } from './countVersions.js'\nexport { create } from './create.js'\nexport { createGlobal } from './createGlobal.js'\nexport { createGlobalVersion } from './createGlobalVersion.js'\nexport { createTableName } from './createTableName.js'\nexport { createVersion } from './createVersion.js'\nexport { deleteMany } from './deleteMany.js'\nexport { deleteOne } from './deleteOne.js'\nexport { deleteVersions } from './deleteVersions.js'\nexport { destroy } from './destroy.js'\nexport { find } from './find.js'\nexport { chainMethods } from './find/chainMethods.js'\nexport { findGlobal } from './findGlobal.js'\nexport { findGlobalVersions } from './findGlobalVersions.js'\nexport { findMigrationDir } from './findMigrationDir.js'\nexport { findOne } from './findOne.js'\nexport { findVersions } from './findVersions.js'\nexport { migrate } from './migrate.js'\nexport { migrateDown } from './migrateDown.js'\nexport { migrateFresh } from './migrateFresh.js'\nexport { migrateRefresh } from './migrateRefresh.js'\nexport { migrateReset } from './migrateReset.js'\nexport { migrateStatus } from './migrateStatus.js'\nexport { operatorMap } from './queries/operatorMap.js'\nexport type { Operators } from './queries/operatorMap.js'\nexport { queryDrafts } from './queryDrafts.js'\nexport { beginTransaction } from './transactions/beginTransaction.js'\nexport { commitTransaction } from './transactions/commitTransaction.js'\nexport { rollbackTransaction } from './transactions/rollbackTransaction.js'\nexport { updateOne } from './update.js'\nexport { updateGlobal } from './updateGlobal.js'\nexport { updateGlobalVersion } from './updateGlobalVersion.js'\nexport { updateVersion } from './updateVersion.js'\nexport { upsertRow } from './upsertRow/index.js'\nexport { buildCreateMigration } from './utilities/buildCreateMigration.js'\nexport { buildIndexName } from './utilities/buildIndexName.js'\nexport { executeSchemaHooks } from './utilities/executeSchemaHooks.js'\nexport { extendDrizzleTable } from './utilities/extendDrizzleTable.js'\nexport { hasLocalesTable } from './utilities/hasLocalesTable.js'\nexport { pushDevSchema } from './utilities/pushDevSchema.js'\nexport { validateExistingBlockIsIdentical } from './utilities/validateExistingBlockIsIdentical.js'\n"],"names":["count","countGlobalVersions","countVersions","create","createGlobal","createGlobalVersion","createTableName","createVersion","deleteMany","deleteOne","deleteVersions","destroy","find","chainMethods","findGlobal","findGlobalVersions","findMigrationDir","findOne","findVersions","migrate","migrateDown","migrateFresh","migrateRefresh","migrateReset","migrateStatus","operatorMap","queryDrafts","beginTransaction","commitTransaction","rollbackTransaction","updateOne","updateGlobal","updateGlobalVersion","updateVersion","upsertRow","buildCreateMigration","buildIndexName","executeSchemaHooks","extendDrizzleTable","hasLocalesTable","pushDevSchema","validateExistingBlockIsIdentical"],"mappings":"AAAA,SAASA,KAAK,QAAQ,aAAY;AAClC,SAASC,mBAAmB,QAAQ,2BAA0B;AAC9D,SAASC,aAAa,QAAQ,qBAAoB;AAClD,SAASC,MAAM,QAAQ,cAAa;AACpC,SAASC,YAAY,QAAQ,oBAAmB;AAChD,SAASC,mBAAmB,QAAQ,2BAA0B;AAC9D,SAASC,eAAe,QAAQ,uBAAsB;AACtD,SAASC,aAAa,QAAQ,qBAAoB;AAClD,SAASC,UAAU,QAAQ,kBAAiB;AAC5C,SAASC,SAAS,QAAQ,iBAAgB;AAC1C,SAASC,cAAc,QAAQ,sBAAqB;AACpD,SAASC,OAAO,QAAQ,eAAc;AACtC,SAASC,IAAI,QAAQ,YAAW;AAChC,SAASC,YAAY,QAAQ,yBAAwB;AACrD,SAASC,UAAU,QAAQ,kBAAiB;AAC5C,SAASC,kBAAkB,QAAQ,0BAAyB;AAC5D,SAASC,gBAAgB,QAAQ,wBAAuB;AACxD,SAASC,OAAO,QAAQ,eAAc;AACtC,SAASC,YAAY,QAAQ,oBAAmB;AAChD,SAASC,OAAO,QAAQ,eAAc;AACtC,SAASC,WAAW,QAAQ,mBAAkB;AAC9C,SAASC,YAAY,QAAQ,oBAAmB;AAChD,SAASC,cAAc,QAAQ,sBAAqB;AACpD,SAASC,YAAY,QAAQ,oBAAmB;AAChD,SAASC,aAAa,QAAQ,qBAAoB;AAClD,SAASC,WAAW,QAAQ,2BAA0B;AAEtD,SAASC,WAAW,QAAQ,mBAAkB;AAC9C,SAASC,gBAAgB,QAAQ,qCAAoC;AACrE,SAASC,iBAAiB,QAAQ,sCAAqC;AACvE,SAASC,mBAAmB,QAAQ,wCAAuC;AAC3E,SAASC,SAAS,QAAQ,cAAa;AACvC,SAASC,YAAY,QAAQ,oBAAmB;AAChD,SAASC,mBAAmB,QAAQ,2BAA0B;AAC9D,SAASC,aAAa,QAAQ,qBAAoB;AAClD,SAASC,SAAS,QAAQ,uBAAsB;AAChD,SAASC,oBAAoB,QAAQ,sCAAqC;AAC1E,SAASC,cAAc,QAAQ,gCAA+B;AAC9D,SAASC,kBAAkB,QAAQ,oCAAmC;AACtE,SAASC,kBAAkB,QAAQ,oCAAmC;AACtE,SAASC,eAAe,QAAQ,iCAAgC;AAChE,SAASC,aAAa,QAAQ,+BAA8B;AAC5D,SAASC,gCAAgC,QAAQ,kDAAiD"}
@@ -0,0 +1,3 @@
1
+ import type { CreateMigration } from 'payload';
2
+ export declare const createMigration: CreateMigration;
3
+ //# sourceMappingURL=createMigration.d.ts.map
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,91 @@
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
@@ -0,0 +1 @@
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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"}
@@ -0,0 +1,4 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,13 @@
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
@@ -0,0 +1 @@
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/drizzle",
3
- "version": "3.6.1-canary.ca44922",
3
+ "version": "3.7.0",
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.0.0",
56
- "payload": "3.6.1-canary.ca44922"
56
+ "payload": "3.7.0"
57
57
  },
58
58
  "peerDependencies": {
59
- "payload": "3.6.1-canary.ca44922"
59
+ "payload": "3.7.0"
60
60
  },
61
61
  "scripts": {
62
62
  "build": "pnpm build:swc && pnpm build:types",
@@ -1,7 +0,0 @@
1
- import type { GenerateSchema } from 'payload';
2
- export declare const createSchemaGenerator: ({ dbCredentials, defaultOutputFile, dialect, }: {
3
- dbCredentials: Record<string, string>;
4
- defaultOutputFile?: string;
5
- dialect: string;
6
- }) => GenerateSchema;
7
- //# sourceMappingURL=createSchemaGenerator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createSchemaGenerator.d.ts","sourceRoot":"","sources":["../../src/utilities/createSchemaGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAgF7C,eAAO,MAAM,qBAAqB,mDAI/B;IACD,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACrC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,OAAO,EAAE,MAAM,CAAA;CAChB,KAAG,cAsFH,CAAA"}
@@ -1,133 +0,0 @@
1
- import { execSync } from 'child_process';
2
- import { existsSync } from 'fs';
3
- import { mkdir, readFile, rm, writeFile } from 'fs/promises';
4
- import { createRequire } from 'module';
5
- import os from 'os';
6
- import path from 'path';
7
- import { v4 as uuid } from 'uuid';
8
- const url = import.meta.url;
9
- const require = createRequire(url);
10
- const drizzleKitPath = require.resolve('drizzle-kit');
11
- const drizzleBinPath = path.resolve(path.dirname(drizzleKitPath), 'bin.cjs');
12
- const formatSchemaFile = (packageName, content)=>{
13
- let formatted = '';
14
- const imports = [];
15
- const exports = [];
16
- for (const line of content.split('\n')){
17
- if (line.trim().startsWith('import')) {
18
- // skip import of schema from relations
19
- if (!line.includes(`"./schema"`)) {
20
- // replace with the proxy path
21
- imports.push(line.replace(`"drizzle-orm`, `"${packageName}/drizzle`));
22
- }
23
- continue;
24
- }
25
- // collect all exports to include to declaration later
26
- if (line.startsWith('export const')) {
27
- const [_, afterExport] = line.split('export const ');
28
- const [exportName] = afterExport.split(' =');
29
- exports.push(exportName);
30
- }
31
- let formattedLine = line;
32
- // Drizzle typescript bug with default values and point field
33
- if (line.includes(`geometry({ type: "point" }).default`)) {
34
- const [firstChunk, secondChunk] = line.split('.default(');
35
- const formattedSecondChunk = `sql.raw(${secondChunk.slice(0, secondChunk.length - 1)}),`;
36
- formattedLine = `${firstChunk}.default(${formattedSecondChunk}`;
37
- }
38
- formatted += `${formattedLine}\n`;
39
- }
40
- return `
41
- /* tslint:disable */
42
- /* eslint-disable */
43
- /**
44
- * This file was automatically generated by Payload.
45
- * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config,
46
- * and re-run \`payload generate:db-schema\` to regenerate this file.
47
- */
48
- ${imports.join('\n')}
49
- ${formatted}
50
-
51
- export type DatabaseSchema = {
52
- ${exports.map((exportName)=>` ${exportName}: typeof ${exportName}`).join('\n')}
53
- }
54
-
55
- declare module "${packageName}/types" {
56
- export interface GeneratedDatabaseSchema {
57
- schema: DatabaseSchema
58
- }
59
- }
60
-
61
- `;
62
- };
63
- export const createSchemaGenerator = ({ dbCredentials, defaultOutputFile, dialect })=>{
64
- return async function generateSchema({ outputFile = defaultOutputFile } = {}) {
65
- const tempDir = path.resolve(os.tmpdir(), uuid());
66
- const extensionsFilters = [];
67
- if ('extensions' in this && typeof this.extensions === 'object') {
68
- for(const extension in this.extensions){
69
- if (this.extensions[extension]) {
70
- extensionsFilters.push(`"${extension}"`);
71
- }
72
- }
73
- }
74
- const drizzleConfig = `
75
- import { createRequire } from 'module'
76
- const url = import.meta.url
77
- const require = createRequire(url)
78
- const { defineConfig } = require("${drizzleKitPath}")
79
- export default defineConfig({
80
- dialect: "${dialect}",
81
- dbCredentials: {
82
- ${Object.entries(dbCredentials).filter(([_, val])=>Boolean(val)).map(([key, value])=>` ${key}: "${value}",`).join('\n')}
83
- },
84
- out: "${tempDir}",
85
- ${extensionsFilters.length ? `extensionsFilters: [${extensionsFilters.join(', ')}],` : ''}
86
- ${this.schemaName ? `schemaFilter: ["${this.schemaName}"],` : ''}
87
- });
88
- `;
89
- const drizzleConfigPath = path.resolve(tempDir, 'drizzle.config.js');
90
- await mkdir(tempDir, {
91
- recursive: true
92
- });
93
- await writeFile(drizzleConfigPath, drizzleConfig, 'utf-8');
94
- try {
95
- execSync(`node ${drizzleBinPath} pull --config=${drizzleConfigPath}`, {
96
- stdio: 'inherit'
97
- });
98
- } catch (e) {
99
- this.payload.logger.error(e);
100
- throw e;
101
- }
102
- this.payload.logger.info('Post processing...');
103
- const [schema, relationships] = await Promise.all([
104
- readFile(path.resolve(tempDir, 'schema.ts'), 'utf-8'),
105
- readFile(path.resolve(tempDir, 'relations.ts'), 'utf-8')
106
- ]);
107
- await rm(tempDir, {
108
- force: true,
109
- recursive: true
110
- });
111
- const output = formatSchemaFile(this.packageName, `
112
- ${schema}
113
-
114
- ${relationships}
115
- `);
116
- if (!outputFile) {
117
- const cwd = process.cwd();
118
- const srcDir = path.resolve(cwd, 'src');
119
- if (existsSync(srcDir)) {
120
- outputFile = path.resolve(srcDir, 'payload-generated-schema.ts');
121
- } else {
122
- outputFile = path.resolve(cwd, 'payload-generated-schema.ts');
123
- }
124
- }
125
- await writeFile(outputFile, output, {
126
- encoding: 'utf-8',
127
- flag: 'w'
128
- });
129
- this.payload.logger.info(`Finished, written ${outputFile}`);
130
- };
131
- };
132
-
133
- //# sourceMappingURL=createSchemaGenerator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utilities/createSchemaGenerator.ts"],"sourcesContent":["import type { GenerateSchema } from 'payload'\n\nimport { execSync } from 'child_process'\nimport { existsSync } from 'fs'\nimport { mkdir, readFile, rm, writeFile } from 'fs/promises'\nimport { createRequire } from 'module'\nimport os from 'os'\nimport path from 'path'\nimport { v4 as uuid } from 'uuid'\n\nimport type { DrizzleAdapter } from '../types.js'\n\nconst url = import.meta.url\n\nconst require = createRequire(url)\n\nconst drizzleKitPath = require.resolve('drizzle-kit')\n\nconst drizzleBinPath = path.resolve(path.dirname(drizzleKitPath), 'bin.cjs')\n\nconst formatSchemaFile = (packageName: string, content: string) => {\n let formatted = ''\n\n const imports = []\n const exports = []\n\n for (const line of content.split('\\n')) {\n if (line.trim().startsWith('import')) {\n // skip import of schema from relations\n if (!line.includes(`\"./schema\"`)) {\n // replace with the proxy path\n imports.push(line.replace(`\"drizzle-orm`, `\"${packageName}/drizzle`))\n }\n continue\n }\n\n // collect all exports to include to declaration later\n if (line.startsWith('export const')) {\n const [_, afterExport] = line.split('export const ')\n const [exportName] = afterExport.split(' =')\n exports.push(exportName)\n }\n\n let formattedLine = line\n\n // Drizzle typescript bug with default values and point field\n if (line.includes(`geometry({ type: \"point\" }).default`)) {\n const [firstChunk, secondChunk] = line.split('.default(')\n\n const formattedSecondChunk = `sql.raw(${secondChunk.slice(0, secondChunk.length - 1)}),`\n formattedLine = `${firstChunk}.default(${formattedSecondChunk}`\n }\n\n formatted += `${formattedLine}\\n`\n }\n\n return `\n/* tslint:disable */\n/* eslint-disable */\n/**\n * This file was automatically generated by Payload.\n * DO NOT MODIFY IT BY HAND. Instead, modify your source Payload config,\n * and re-run \\`payload generate:db-schema\\` to regenerate this file.\n */\n${imports.join('\\n')}\n${formatted}\n\nexport type DatabaseSchema = {\n${exports.map((exportName) => ` ${exportName}: typeof ${exportName}`).join('\\n')}\n}\n\ndeclare module \"${packageName}/types\" {\n export interface GeneratedDatabaseSchema {\n schema: DatabaseSchema\n }\n}\n\n`\n}\n\nexport const createSchemaGenerator = ({\n dbCredentials,\n defaultOutputFile,\n dialect,\n}: {\n dbCredentials: Record<string, string>\n defaultOutputFile?: string\n dialect: string\n}): GenerateSchema => {\n return async function generateSchema(\n this: DrizzleAdapter,\n { outputFile = defaultOutputFile } = {},\n ) {\n const tempDir = path.resolve(os.tmpdir(), uuid())\n\n const extensionsFilters = []\n\n if ('extensions' in this && typeof this.extensions === 'object') {\n for (const extension in this.extensions) {\n if (this.extensions[extension]) {\n extensionsFilters.push(`\"${extension}\"`)\n }\n }\n }\n\n const drizzleConfig = `\nimport { createRequire } from 'module'\nconst url = import.meta.url\nconst require = createRequire(url)\nconst { defineConfig } = require(\"${drizzleKitPath}\")\nexport default defineConfig({\n dialect: \"${dialect}\",\n dbCredentials: {\n${Object.entries(dbCredentials)\n .filter(([_, val]) => Boolean(val))\n .map(([key, value]) => ` ${key}: \"${value}\",`)\n .join('\\n')}\n },\n out: \"${tempDir}\",\n ${extensionsFilters.length ? `extensionsFilters: [${extensionsFilters.join(', ')}],` : ''}\n ${this.schemaName ? `schemaFilter: [\"${this.schemaName}\"],` : ''}\n});\n`\n\n const drizzleConfigPath = path.resolve(tempDir, 'drizzle.config.js')\n\n await mkdir(tempDir, { recursive: true })\n\n await writeFile(drizzleConfigPath, drizzleConfig, 'utf-8')\n\n try {\n execSync(`node ${drizzleBinPath} pull --config=${drizzleConfigPath}`, {\n stdio: 'inherit',\n })\n } catch (e) {\n this.payload.logger.error(e)\n throw e\n }\n\n this.payload.logger.info('Post processing...')\n\n const [schema, relationships] = await Promise.all([\n readFile(path.resolve(tempDir, 'schema.ts'), 'utf-8'),\n readFile(path.resolve(tempDir, 'relations.ts'), 'utf-8'),\n ])\n\n await rm(tempDir, { force: true, recursive: true })\n\n const output = formatSchemaFile(\n this.packageName,\n `\n${schema}\n\n${relationships}\n`,\n )\n\n if (!outputFile) {\n const cwd = process.cwd()\n const srcDir = path.resolve(cwd, 'src')\n if (existsSync(srcDir)) {\n outputFile = path.resolve(srcDir, 'payload-generated-schema.ts')\n } else {\n outputFile = path.resolve(cwd, 'payload-generated-schema.ts')\n }\n }\n\n await writeFile(outputFile, output, {\n encoding: 'utf-8',\n flag: 'w',\n })\n\n this.payload.logger.info(`Finished, written ${outputFile}`)\n }\n}\n"],"names":["execSync","existsSync","mkdir","readFile","rm","writeFile","createRequire","os","path","v4","uuid","url","require","drizzleKitPath","resolve","drizzleBinPath","dirname","formatSchemaFile","packageName","content","formatted","imports","exports","line","split","trim","startsWith","includes","push","replace","_","afterExport","exportName","formattedLine","firstChunk","secondChunk","formattedSecondChunk","slice","length","join","map","createSchemaGenerator","dbCredentials","defaultOutputFile","dialect","generateSchema","outputFile","tempDir","tmpdir","extensionsFilters","extensions","extension","drizzleConfig","Object","entries","filter","val","Boolean","key","value","schemaName","drizzleConfigPath","recursive","stdio","e","payload","logger","error","info","schema","relationships","Promise","all","force","output","cwd","process","srcDir","encoding","flag"],"mappings":"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"}