@payloadcms/db-mongodb 1.0.0-beta.5 → 1.0.0-beta.7

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/README.md ADDED
@@ -0,0 +1,28 @@
1
+ # Payload MongoDB Adapter
2
+
3
+ Official MongoDB adapter for [Payload](https://payloadcms.com).
4
+
5
+ - [Main Repository](https://github.com/payloadcms/payload)
6
+ - [Payload Docs](https://payloadcms.com/docs)
7
+
8
+ ## Installation
9
+
10
+ ```bash
11
+ npm install @payloadcms/db-mongodb
12
+ ```
13
+
14
+ ## Usage
15
+
16
+ ```ts
17
+ import { buildConfig } from 'payload/config'
18
+ import { mongooseAdapter } from '@payloadcms/db-mongodb'
19
+
20
+ export default buildConfig({
21
+ db: mongooseAdapter({}),
22
+ // ...rest of config
23
+ })
24
+
25
+ ```
26
+
27
+ More detailed usage can be found in the [Payload Docs](https://payloadcms.com/docs/configuration/overview).
28
+
@@ -0,0 +1,3 @@
1
+ import type { CreateMigration } from 'payload/database';
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/createMigration.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAmBvD,eAAO,MAAM,eAAe,EAAE,eA2C7B,CAAA"}
@@ -0,0 +1,68 @@
1
+ /* eslint-disable no-restricted-syntax, no-await-in-loop */ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "createMigration", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return createMigration;
9
+ }
10
+ });
11
+ const _fs = /*#__PURE__*/ _interop_require_default(require("fs"));
12
+ const _path = /*#__PURE__*/ _interop_require_default(require("path"));
13
+ function _interop_require_default(obj) {
14
+ return obj && obj.__esModule ? obj : {
15
+ default: obj
16
+ };
17
+ }
18
+ const migrationTemplate = (upSQL, downSQL)=>`import {
19
+ MigrateUpArgs,
20
+ MigrateDownArgs,
21
+ } from "@payloadcms/db-mongodb";
22
+
23
+ export async function up({ payload }: MigrateUpArgs): Promise<void> {
24
+ ${upSQL ?? ` // Migration code`}
25
+ };
26
+
27
+ export async function down({ payload }: MigrateDownArgs): Promise<void> {
28
+ ${downSQL ?? ` // Migration code`}
29
+ };
30
+ `;
31
+ const createMigration = async function createMigration({ file, migrationName, payload }) {
32
+ const dir = payload.db.migrationDir;
33
+ if (!_fs.default.existsSync(dir)) {
34
+ _fs.default.mkdirSync(dir);
35
+ }
36
+ let migrationFileContent;
37
+ // Check for predefined migration
38
+ if (file) {
39
+ const predefinedMigrationName = file.replace('@payloadcms/db-mongodb/', '');
40
+ migrationName = predefinedMigrationName;
41
+ const cleanPath = _path.default.join(__dirname, `../predefinedMigrations/${predefinedMigrationName}.js`);
42
+ // Check if predefined migration exists
43
+ if (_fs.default.existsSync(cleanPath)) {
44
+ const { down, up } = require(cleanPath);
45
+ migrationFileContent = migrationTemplate(up, down);
46
+ } else {
47
+ payload.logger.error({
48
+ msg: `Canned migration ${predefinedMigrationName} not found.`
49
+ });
50
+ process.exit(1);
51
+ }
52
+ } else {
53
+ migrationFileContent = migrationTemplate();
54
+ }
55
+ const [yyymmdd, hhmmss] = new Date().toISOString().split('T');
56
+ const formattedDate = yyymmdd.replace(/\D/g, '');
57
+ const formattedTime = hhmmss.split('.')[0].replace(/\D/g, '');
58
+ const timestamp = `${formattedDate}_${formattedTime}`;
59
+ const formattedName = migrationName.replace(/\W/g, '_');
60
+ const fileName = `${timestamp}_${formattedName}.ts`;
61
+ const filePath = `${dir}/${fileName}`;
62
+ _fs.default.writeFileSync(filePath, migrationFileContent);
63
+ payload.logger.info({
64
+ msg: `Migration created at ${filePath}`
65
+ });
66
+ };
67
+
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9jcmVhdGVNaWdyYXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tcmVzdHJpY3RlZC1zeW50YXgsIG5vLWF3YWl0LWluLWxvb3AgKi9cbmltcG9ydCB0eXBlIHsgQ3JlYXRlTWlncmF0aW9uIH0gZnJvbSAncGF5bG9hZC9kYXRhYmFzZSdcblxuaW1wb3J0IGZzIGZyb20gJ2ZzJ1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcblxuY29uc3QgbWlncmF0aW9uVGVtcGxhdGUgPSAodXBTUUw/OiBzdHJpbmcsIGRvd25TUUw/OiBzdHJpbmcpID0+IGBpbXBvcnQge1xuICBNaWdyYXRlVXBBcmdzLFxuICBNaWdyYXRlRG93bkFyZ3MsXG59IGZyb20gXCJAcGF5bG9hZGNtcy9kYi1tb25nb2RiXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB1cCh7IHBheWxvYWQgfTogTWlncmF0ZVVwQXJncyk6IFByb21pc2U8dm9pZD4ge1xuJHt1cFNRTCA/PyBgICAvLyBNaWdyYXRpb24gY29kZWB9XG59O1xuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZG93bih7IHBheWxvYWQgfTogTWlncmF0ZURvd25BcmdzKTogUHJvbWlzZTx2b2lkPiB7XG4ke2Rvd25TUUwgPz8gYCAgLy8gTWlncmF0aW9uIGNvZGVgfVxufTtcbmBcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZU1pZ3JhdGlvbjogQ3JlYXRlTWlncmF0aW9uID0gYXN5bmMgZnVuY3Rpb24gY3JlYXRlTWlncmF0aW9uKHtcbiAgZmlsZSxcbiAgbWlncmF0aW9uTmFtZSxcbiAgcGF5bG9hZCxcbn0pIHtcbiAgY29uc3QgZGlyID0gcGF5bG9hZC5kYi5taWdyYXRpb25EaXJcbiAgaWYgKCFmcy5leGlzdHNTeW5jKGRpcikpIHtcbiAgICBmcy5ta2RpclN5bmMoZGlyKVxuICB9XG5cbiAgbGV0IG1pZ3JhdGlvbkZpbGVDb250ZW50OiBzdHJpbmcgfCB1bmRlZmluZWRcblxuICAvLyBDaGVjayBmb3IgcHJlZGVmaW5lZCBtaWdyYXRpb25cbiAgaWYgKGZpbGUpIHtcbiAgICBjb25zdCBwcmVkZWZpbmVkTWlncmF0aW9uTmFtZSA9IGZpbGUucmVwbGFjZSgnQHBheWxvYWRjbXMvZGItbW9uZ29kYi8nLCAnJylcbiAgICBtaWdyYXRpb25OYW1lID0gcHJlZGVmaW5lZE1pZ3JhdGlvbk5hbWVcbiAgICBjb25zdCBjbGVhblBhdGggPSBwYXRoLmpvaW4oX19kaXJuYW1lLCBgLi4vcHJlZGVmaW5lZE1pZ3JhdGlvbnMvJHtwcmVkZWZpbmVkTWlncmF0aW9uTmFtZX0uanNgKVxuXG4gICAgLy8gQ2hlY2sgaWYgcHJlZGVmaW5lZCBtaWdyYXRpb24gZXhpc3RzXG4gICAgaWYgKGZzLmV4aXN0c1N5bmMoY2xlYW5QYXRoKSkge1xuICAgICAgY29uc3QgeyBkb3duLCB1cCB9ID0gcmVxdWlyZShjbGVhblBhdGgpXG4gICAgICBtaWdyYXRpb25GaWxlQ29udGVudCA9IG1pZ3JhdGlvblRlbXBsYXRlKHVwLCBkb3duKVxuICAgIH0gZWxzZSB7XG4gICAgICBwYXlsb2FkLmxvZ2dlci5lcnJvcih7XG4gICAgICAgIG1zZzogYENhbm5lZCBtaWdyYXRpb24gJHtwcmVkZWZpbmVkTWlncmF0aW9uTmFtZX0gbm90IGZvdW5kLmAsXG4gICAgICB9KVxuICAgICAgcHJvY2Vzcy5leGl0KDEpXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIG1pZ3JhdGlvbkZpbGVDb250ZW50ID0gbWlncmF0aW9uVGVtcGxhdGUoKVxuICB9XG5cbiAgY29uc3QgW3l5eW1tZGQsIGhobW1zc10gPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCkuc3BsaXQoJ1QnKVxuICBjb25zdCBmb3JtYXR0ZWREYXRlID0geXl5bW1kZC5yZXBsYWNlKC9cXEQvZywgJycpXG4gIGNvbnN0IGZvcm1hdHRlZFRpbWUgPSBoaG1tc3Muc3BsaXQoJy4nKVswXS5yZXBsYWNlKC9cXEQvZywgJycpXG5cbiAgY29uc3QgdGltZXN0YW1wID0gYCR7Zm9ybWF0dGVkRGF0ZX1fJHtmb3JtYXR0ZWRUaW1lfWBcblxuICBjb25zdCBmb3JtYXR0ZWROYW1lID0gbWlncmF0aW9uTmFtZS5yZXBsYWNlKC9cXFcvZywgJ18nKVxuICBjb25zdCBmaWxlTmFtZSA9IGAke3RpbWVzdGFtcH1fJHtmb3JtYXR0ZWROYW1lfS50c2BcbiAgY29uc3QgZmlsZVBhdGggPSBgJHtkaXJ9LyR7ZmlsZU5hbWV9YFxuICBmcy53cml0ZUZpbGVTeW5jKGZpbGVQYXRoLCBtaWdyYXRpb25GaWxlQ29udGVudClcbiAgcGF5bG9hZC5sb2dnZXIuaW5mbyh7IG1zZzogYE1pZ3JhdGlvbiBjcmVhdGVkIGF0ICR7ZmlsZVBhdGh9YCB9KVxufVxuIl0sIm5hbWVzIjpbImNyZWF0ZU1pZ3JhdGlvbiIsIm1pZ3JhdGlvblRlbXBsYXRlIiwidXBTUUwiLCJkb3duU1FMIiwiZmlsZSIsIm1pZ3JhdGlvbk5hbWUiLCJwYXlsb2FkIiwiZGlyIiwiZGIiLCJtaWdyYXRpb25EaXIiLCJmcyIsImV4aXN0c1N5bmMiLCJta2RpclN5bmMiLCJtaWdyYXRpb25GaWxlQ29udGVudCIsInByZWRlZmluZWRNaWdyYXRpb25OYW1lIiwicmVwbGFjZSIsImNsZWFuUGF0aCIsInBhdGgiLCJqb2luIiwiX19kaXJuYW1lIiwiZG93biIsInVwIiwicmVxdWlyZSIsImxvZ2dlciIsImVycm9yIiwibXNnIiwicHJvY2VzcyIsImV4aXQiLCJ5eXltbWRkIiwiaGhtbXNzIiwiRGF0ZSIsInRvSVNPU3RyaW5nIiwic3BsaXQiLCJmb3JtYXR0ZWREYXRlIiwiZm9ybWF0dGVkVGltZSIsInRpbWVzdGFtcCIsImZvcm1hdHRlZE5hbWUiLCJmaWxlTmFtZSIsImZpbGVQYXRoIiwid3JpdGVGaWxlU3luYyIsImluZm8iXSwibWFwcGluZ3MiOiJBQUFBLHlEQUF5RDs7OzsrQkFvQjVDQTs7O2VBQUFBOzs7MkRBakJFOzZEQUNFOzs7Ozs7QUFFakIsTUFBTUMsb0JBQW9CLENBQUNDLE9BQWdCQyxVQUFxQixDQUFDOzs7Ozs7QUFNakUsRUFBRUQsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUM7Ozs7QUFJakMsRUFBRUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLENBQUM7O0FBRW5DLENBQUM7QUFFTSxNQUFNSCxrQkFBbUMsZUFBZUEsZ0JBQWdCLEVBQzdFSSxJQUFJLEVBQ0pDLGFBQWEsRUFDYkMsT0FBTyxFQUNSO0lBQ0MsTUFBTUMsTUFBTUQsUUFBUUUsRUFBRSxDQUFDQyxZQUFZO0lBQ25DLElBQUksQ0FBQ0MsV0FBRSxDQUFDQyxVQUFVLENBQUNKLE1BQU07UUFDdkJHLFdBQUUsQ0FBQ0UsU0FBUyxDQUFDTDtJQUNmO0lBRUEsSUFBSU07SUFFSixpQ0FBaUM7SUFDakMsSUFBSVQsTUFBTTtRQUNSLE1BQU1VLDBCQUEwQlYsS0FBS1csT0FBTyxDQUFDLDJCQUEyQjtRQUN4RVYsZ0JBQWdCUztRQUNoQixNQUFNRSxZQUFZQyxhQUFJLENBQUNDLElBQUksQ0FBQ0MsV0FBVyxDQUFDLHdCQUF3QixFQUFFTCx3QkFBd0IsR0FBRyxDQUFDO1FBRTlGLHVDQUF1QztRQUN2QyxJQUFJSixXQUFFLENBQUNDLFVBQVUsQ0FBQ0ssWUFBWTtZQUM1QixNQUFNLEVBQUVJLElBQUksRUFBRUMsRUFBRSxFQUFFLEdBQUdDLFFBQVFOO1lBQzdCSCx1QkFBdUJaLGtCQUFrQm9CLElBQUlEO1FBQy9DLE9BQU87WUFDTGQsUUFBUWlCLE1BQU0sQ0FBQ0MsS0FBSyxDQUFDO2dCQUNuQkMsS0FBSyxDQUFDLGlCQUFpQixFQUFFWCx3QkFBd0IsV0FBVyxDQUFDO1lBQy9EO1lBQ0FZLFFBQVFDLElBQUksQ0FBQztRQUNmO0lBQ0YsT0FBTztRQUNMZCx1QkFBdUJaO0lBQ3pCO0lBRUEsTUFBTSxDQUFDMkIsU0FBU0MsT0FBTyxHQUFHLElBQUlDLE9BQU9DLFdBQVcsR0FBR0MsS0FBSyxDQUFDO0lBQ3pELE1BQU1DLGdCQUFnQkwsUUFBUWIsT0FBTyxDQUFDLE9BQU87SUFDN0MsTUFBTW1CLGdCQUFnQkwsT0FBT0csS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUNqQixPQUFPLENBQUMsT0FBTztJQUUxRCxNQUFNb0IsWUFBWSxDQUFDLEVBQUVGLGNBQWMsQ0FBQyxFQUFFQyxjQUFjLENBQUM7SUFFckQsTUFBTUUsZ0JBQWdCL0IsY0FBY1UsT0FBTyxDQUFDLE9BQU87SUFDbkQsTUFBTXNCLFdBQVcsQ0FBQyxFQUFFRixVQUFVLENBQUMsRUFBRUMsY0FBYyxHQUFHLENBQUM7SUFDbkQsTUFBTUUsV0FBVyxDQUFDLEVBQUUvQixJQUFJLENBQUMsRUFBRThCLFNBQVMsQ0FBQztJQUNyQzNCLFdBQUUsQ0FBQzZCLGFBQWEsQ0FBQ0QsVUFBVXpCO0lBQzNCUCxRQUFRaUIsTUFBTSxDQUFDaUIsSUFBSSxDQUFDO1FBQUVmLEtBQUssQ0FBQyxxQkFBcUIsRUFBRWEsU0FBUyxDQUFDO0lBQUM7QUFDaEUifQ==
package/dist/index.d.ts CHANGED
@@ -44,5 +44,5 @@ declare module 'payload' {
44
44
  };
45
45
  }
46
46
  }
47
- export declare function mongooseAdapter({ autoPluralization, connectOptions, migrationDir, url, }: Args): MongooseAdapterResult;
47
+ export declare function mongooseAdapter({ autoPluralization, connectOptions, migrationDir: migrationDirArg, url, }: Args): MongooseAdapterResult;
48
48
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAM3D,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE7D,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AA4B3D,MAAM,WAAW,IAAI;IACnB,uFAAuF;IACvF,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,kCAAkC;IAClC,cAAc,CAAC,EAAE,cAAc,GAAG;QAChC,4FAA4F;QAC5F,QAAQ,CAAC,EAAE,OAAO,CAAA;KACnB,CAAA;IACD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,qFAAqF;IACrF,GAAG,EAAE,KAAK,GAAG,MAAM,CAAA;CACpB;AAED,MAAM,MAAM,eAAe,GAAG,mBAAmB,GAC/C,IAAI,GAAG;IACL,WAAW,EAAE;QACX,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAA;KAChC,CAAA;IACD,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,WAAW,CAAA;IACpB,iBAAiB,EAAE,GAAG,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,aAAa,CAAC,CAAA;IAChD,QAAQ,EAAE;QACR,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAA;KAChC,CAAA;CACF,CAAA;AAEH,KAAK,qBAAqB,GAAG,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,KAAK,eAAe,CAAA;AAE5E,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAiB,eAAgB,SAAQ,IAAI;QAC3C,WAAW,EAAE;YACX,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAA;SAChC,CAAA;QACD,UAAU,EAAE,UAAU,CAAA;QACtB,OAAO,EAAE,WAAW,CAAA;QACpB,iBAAiB,EAAE,GAAG,CAAA;QACtB,QAAQ,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,aAAa,CAAC,CAAA;QAChD,QAAQ,EAAE;YACR,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAA;SAChC,CAAA;KACF;CACF;AAED,wBAAgB,eAAe,CAAC,EAC9B,iBAAwB,EACxB,cAAc,EACd,YAAY,EACZ,GAAG,GACJ,EAAE,IAAI,GAAG,qBAAqB,CAiD9B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AACzE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA;AAM3D,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE7D,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AA8B3D,MAAM,WAAW,IAAI;IACnB,uFAAuF;IACvF,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,kCAAkC;IAClC,cAAc,CAAC,EAAE,cAAc,GAAG;QAChC,4FAA4F;QAC5F,QAAQ,CAAC,EAAE,OAAO,CAAA;KACnB,CAAA;IACD,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,qFAAqF;IACrF,GAAG,EAAE,KAAK,GAAG,MAAM,CAAA;CACpB;AAED,MAAM,MAAM,eAAe,GAAG,mBAAmB,GAC/C,IAAI,GAAG;IACL,WAAW,EAAE;QACX,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAA;KAChC,CAAA;IACD,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,WAAW,CAAA;IACpB,iBAAiB,EAAE,GAAG,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,aAAa,CAAC,CAAA;IAChD,QAAQ,EAAE;QACR,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAA;KAChC,CAAA;CACF,CAAA;AAEH,KAAK,qBAAqB,GAAG,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,KAAK,eAAe,CAAA;AAE5E,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAiB,eAAgB,SAAQ,IAAI;QAC3C,WAAW,EAAE;YACX,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAA;SAChC,CAAA;QACD,UAAU,EAAE,UAAU,CAAA;QACtB,OAAO,EAAE,WAAW,CAAA;QACpB,iBAAiB,EAAE,GAAG,CAAA;QACtB,QAAQ,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,aAAa,CAAC,CAAA;QAChD,QAAQ,EAAE;YACR,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAAA;SAChC,CAAA;KACF;CACF;AAED,wBAAgB,eAAe,CAAC,EAC9B,iBAAwB,EACxB,cAAc,EACd,YAAY,EAAE,eAAe,EAC7B,GAAG,GACJ,EAAE,IAAI,GAAG,qBAAqB,CAuD9B"}
package/dist/index.js CHANGED
@@ -9,11 +9,13 @@ Object.defineProperty(exports, "mongooseAdapter", {
9
9
  }
10
10
  });
11
11
  const _mongoose = /*#__PURE__*/ _interop_require_default(require("mongoose"));
12
+ const _path = /*#__PURE__*/ _interop_require_default(require("path"));
12
13
  const _database = require("payload/database");
13
14
  const _connect = require("./connect");
14
15
  const _create = require("./create");
15
16
  const _createGlobal = require("./createGlobal");
16
17
  const _createGlobalVersion = require("./createGlobalVersion");
18
+ const _createMigration = require("./createMigration");
17
19
  const _createVersion = require("./createVersion");
18
20
  const _deleteMany = require("./deleteMany");
19
21
  const _deleteOne = require("./deleteOne");
@@ -27,6 +29,7 @@ const _findGlobalVersions = require("./findGlobalVersions");
27
29
  const _findOne = require("./findOne");
28
30
  const _findVersions = require("./findVersions");
29
31
  const _init = require("./init");
32
+ const _migrateFresh = require("./migrateFresh");
30
33
  const _queryDrafts = require("./queryDrafts");
31
34
  const _beginTransaction = require("./transactions/beginTransaction");
32
35
  const _commitTransaction = require("./transactions/commitTransaction");
@@ -40,23 +43,32 @@ function _interop_require_default(obj) {
40
43
  default: obj
41
44
  };
42
45
  }
43
- function mongooseAdapter({ autoPluralization = true, connectOptions, migrationDir, url }) {
46
+ function mongooseAdapter({ autoPluralization = true, connectOptions, migrationDir: migrationDirArg, url }) {
44
47
  function adapter({ payload }) {
48
+ const migrationDir = migrationDirArg || _path.default.resolve(process.cwd(), 'src/migrations');
45
49
  _mongoose.default.set('strictQuery', false);
46
50
  (0, _extendWebpackConfig.extendWebpackConfig)(payload.config);
47
51
  (0, _extendViteConfig.extendViteConfig)(payload.config);
48
52
  return (0, _database.createDatabaseAdapter)({
53
+ name: 'mongoose',
54
+ // Mongoose-specific
49
55
  autoPluralization,
50
- beginTransaction: _beginTransaction.beginTransaction,
51
56
  collections: {},
52
- commitTransaction: _commitTransaction.commitTransaction,
53
- connect: _connect.connect,
54
57
  connectOptions: connectOptions || {},
55
58
  connection: undefined,
59
+ globals: undefined,
60
+ mongoMemoryServer: undefined,
61
+ sessions: {},
62
+ url,
63
+ versions: {},
64
+ // DatabaseAdapter
65
+ beginTransaction: _beginTransaction.beginTransaction,
66
+ commitTransaction: _commitTransaction.commitTransaction,
67
+ connect: _connect.connect,
56
68
  create: _create.create,
57
69
  createGlobal: _createGlobal.createGlobal,
58
70
  createGlobalVersion: _createGlobalVersion.createGlobalVersion,
59
- createMigration: _database.createMigration,
71
+ createMigration: _createMigration.createMigration,
60
72
  createVersion: _createVersion.createVersion,
61
73
  defaultIDType: 'text',
62
74
  deleteMany: _deleteMany.deleteMany,
@@ -68,26 +80,19 @@ function mongooseAdapter({ autoPluralization = true, connectOptions, migrationDi
68
80
  findGlobalVersions: _findGlobalVersions.findGlobalVersions,
69
81
  findOne: _findOne.findOne,
70
82
  findVersions: _findVersions.findVersions,
71
- globals: undefined,
72
83
  init: _init.init,
73
- ...migrationDir && {
74
- migrationDir
75
- },
76
- name: 'mongoose',
77
- mongoMemoryServer: undefined,
84
+ migrateFresh: _migrateFresh.migrateFresh,
85
+ migrationDir,
78
86
  payload,
79
87
  queryDrafts: _queryDrafts.queryDrafts,
80
88
  rollbackTransaction: _rollbackTransaction.rollbackTransaction,
81
- sessions: {},
82
89
  updateGlobal: _updateGlobal.updateGlobal,
83
90
  updateGlobalVersion: _updateGlobalVersion.updateGlobalVersion,
84
91
  updateOne: _updateOne.updateOne,
85
- updateVersion: _updateVersion.updateVersion,
86
- url,
87
- versions: {}
92
+ updateVersion: _updateVersion.updateVersion
88
93
  });
89
94
  }
90
95
  return adapter;
91
96
  }
92
97
 
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENsaWVudFNlc3Npb24sIENvbm5lY3RPcHRpb25zLCBDb25uZWN0aW9uIH0gZnJvbSAnbW9uZ29vc2UnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWQgfSBmcm9tICdwYXlsb2FkJ1xuaW1wb3J0IHR5cGUgeyBCYXNlRGF0YWJhc2VBZGFwdGVyIH0gZnJvbSAncGF5bG9hZC9kYXRhYmFzZSdcblxuaW1wb3J0IG1vbmdvb3NlIGZyb20gJ21vbmdvb3NlJ1xuaW1wb3J0IHsgY3JlYXRlRGF0YWJhc2VBZGFwdGVyIH0gZnJvbSAncGF5bG9hZC9kYXRhYmFzZSdcbmltcG9ydCB7IGNyZWF0ZU1pZ3JhdGlvbiB9IGZyb20gJ3BheWxvYWQvZGF0YWJhc2UnXG5cbmV4cG9ydCB0eXBlIHsgTWlncmF0ZURvd25BcmdzLCBNaWdyYXRlVXBBcmdzIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uTW9kZWwsIEdsb2JhbE1vZGVsIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgY29ubmVjdCB9IGZyb20gJy4vY29ubmVjdCdcbmltcG9ydCB7IGNyZWF0ZSB9IGZyb20gJy4vY3JlYXRlJ1xuaW1wb3J0IHsgY3JlYXRlR2xvYmFsIH0gZnJvbSAnLi9jcmVhdGVHbG9iYWwnXG5pbXBvcnQgeyBjcmVhdGVHbG9iYWxWZXJzaW9uIH0gZnJvbSAnLi9jcmVhdGVHbG9iYWxWZXJzaW9uJ1xuaW1wb3J0IHsgY3JlYXRlVmVyc2lvbiB9IGZyb20gJy4vY3JlYXRlVmVyc2lvbidcbmltcG9ydCB7IGRlbGV0ZU1hbnkgfSBmcm9tICcuL2RlbGV0ZU1hbnknXG5pbXBvcnQgeyBkZWxldGVPbmUgfSBmcm9tICcuL2RlbGV0ZU9uZSdcbmltcG9ydCB7IGRlbGV0ZVZlcnNpb25zIH0gZnJvbSAnLi9kZWxldGVWZXJzaW9ucydcbmltcG9ydCB7IGRlc3Ryb3kgfSBmcm9tICcuL2Rlc3Ryb3knXG5pbXBvcnQgeyBleHRlbmRWaXRlQ29uZmlnIH0gZnJvbSAnLi9leHRlbmRWaXRlQ29uZmlnJ1xuaW1wb3J0IHsgZXh0ZW5kV2VicGFja0NvbmZpZyB9IGZyb20gJy4vZXh0ZW5kV2VicGFja0NvbmZpZydcbmltcG9ydCB7IGZpbmQgfSBmcm9tICcuL2ZpbmQnXG5pbXBvcnQgeyBmaW5kR2xvYmFsIH0gZnJvbSAnLi9maW5kR2xvYmFsJ1xuaW1wb3J0IHsgZmluZEdsb2JhbFZlcnNpb25zIH0gZnJvbSAnLi9maW5kR2xvYmFsVmVyc2lvbnMnXG5pbXBvcnQgeyBmaW5kT25lIH0gZnJvbSAnLi9maW5kT25lJ1xuaW1wb3J0IHsgZmluZFZlcnNpb25zIH0gZnJvbSAnLi9maW5kVmVyc2lvbnMnXG5pbXBvcnQgeyBpbml0IH0gZnJvbSAnLi9pbml0J1xuaW1wb3J0IHsgcXVlcnlEcmFmdHMgfSBmcm9tICcuL3F1ZXJ5RHJhZnRzJ1xuaW1wb3J0IHsgYmVnaW5UcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb25zL2JlZ2luVHJhbnNhY3Rpb24nXG5pbXBvcnQgeyBjb21taXRUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb25zL2NvbW1pdFRyYW5zYWN0aW9uJ1xuaW1wb3J0IHsgcm9sbGJhY2tUcmFuc2FjdGlvbiB9IGZyb20gJy4vdHJhbnNhY3Rpb25zL3JvbGxiYWNrVHJhbnNhY3Rpb24nXG5pbXBvcnQgeyB1cGRhdGVHbG9iYWwgfSBmcm9tICcuL3VwZGF0ZUdsb2JhbCdcbmltcG9ydCB7IHVwZGF0ZUdsb2JhbFZlcnNpb24gfSBmcm9tICcuL3VwZGF0ZUdsb2JhbFZlcnNpb24nXG5pbXBvcnQgeyB1cGRhdGVPbmUgfSBmcm9tICcuL3VwZGF0ZU9uZSdcbmltcG9ydCB7IHVwZGF0ZVZlcnNpb24gfSBmcm9tICcuL3VwZGF0ZVZlcnNpb24nXG5cbmV4cG9ydCBpbnRlcmZhY2UgQXJncyB7XG4gIC8qKiBTZXQgdG8gZmFsc2UgdG8gZGlzYWJsZSBhdXRvLXBsdXJhbGl6YXRpb24gb2YgY29sbGVjdGlvbiBuYW1lcywgRGVmYXVsdHMgdG8gdHJ1ZSAqL1xuICBhdXRvUGx1cmFsaXphdGlvbj86IGJvb2xlYW5cbiAgLyoqIEV4dHJhIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyAqL1xuICBjb25uZWN0T3B0aW9ucz86IENvbm5lY3RPcHRpb25zICYge1xuICAgIC8qKiBTZXQgZmFsc2UgdG8gZGlzYWJsZSAkZmFjZXQgYWdncmVnYXRpb24gaW4gbm9uLXN1cHBvcnRpbmcgZGF0YWJhc2VzLCBEZWZhdWx0cyB0byB0cnVlICovXG4gICAgdXNlRmFjZXQ/OiBib29sZWFuXG4gIH1cbiAgbWlncmF0aW9uRGlyPzogc3RyaW5nXG4gIC8qKiBUaGUgVVJMIHRvIGNvbm5lY3QgdG8gTW9uZ29EQiBvciBmYWxzZSB0byBzdGFydCBwYXlsb2FkIGFuZCBwcmV2ZW50IGNvbm5lY3RpbmcgKi9cbiAgdXJsOiBmYWxzZSB8IHN0cmluZ1xufVxuXG5leHBvcnQgdHlwZSBNb25nb29zZUFkYXB0ZXIgPSBCYXNlRGF0YWJhc2VBZGFwdGVyICZcbiAgQXJncyAmIHtcbiAgICBjb2xsZWN0aW9uczoge1xuICAgICAgW3NsdWc6IHN0cmluZ106IENvbGxlY3Rpb25Nb2RlbFxuICAgIH1cbiAgICBjb25uZWN0aW9uOiBDb25uZWN0aW9uXG4gICAgZ2xvYmFsczogR2xvYmFsTW9kZWxcbiAgICBtb25nb01lbW9yeVNlcnZlcjogYW55XG4gICAgc2Vzc2lvbnM6IFJlY29yZDxudW1iZXIgfCBzdHJpbmcsIENsaWVudFNlc3Npb24+XG4gICAgdmVyc2lvbnM6IHtcbiAgICAgIFtzbHVnOiBzdHJpbmddOiBDb2xsZWN0aW9uTW9kZWxcbiAgICB9XG4gIH1cblxudHlwZSBNb25nb29zZUFkYXB0ZXJSZXN1bHQgPSAoYXJnczogeyBwYXlsb2FkOiBQYXlsb2FkIH0pID0+IE1vbmdvb3NlQWRhcHRlclxuXG5kZWNsYXJlIG1vZHVsZSAncGF5bG9hZCcge1xuICBleHBvcnQgaW50ZXJmYWNlIERhdGFiYXNlQWRhcHRlciBleHRlbmRzIEFyZ3Mge1xuICAgIGNvbGxlY3Rpb25zOiB7XG4gICAgICBbc2x1Zzogc3RyaW5nXTogQ29sbGVjdGlvbk1vZGVsXG4gICAgfVxuICAgIGNvbm5lY3Rpb246IENvbm5lY3Rpb25cbiAgICBnbG9iYWxzOiBHbG9iYWxNb2RlbFxuICAgIG1vbmdvTWVtb3J5U2VydmVyOiBhbnlcbiAgICBzZXNzaW9uczogUmVjb3JkPG51bWJlciB8IHN0cmluZywgQ2xpZW50U2Vzc2lvbj5cbiAgICB2ZXJzaW9uczoge1xuICAgICAgW3NsdWc6IHN0cmluZ106IENvbGxlY3Rpb25Nb2RlbFxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbW9uZ29vc2VBZGFwdGVyKHtcbiAgYXV0b1BsdXJhbGl6YXRpb24gPSB0cnVlLFxuICBjb25uZWN0T3B0aW9ucyxcbiAgbWlncmF0aW9uRGlyLFxuICB1cmwsXG59OiBBcmdzKTogTW9uZ29vc2VBZGFwdGVyUmVzdWx0IHtcbiAgZnVuY3Rpb24gYWRhcHRlcih7IHBheWxvYWQgfTogeyBwYXlsb2FkOiBQYXlsb2FkIH0pIHtcbiAgICBtb25nb29zZS5zZXQoJ3N0cmljdFF1ZXJ5JywgZmFsc2UpXG5cbiAgICBleHRlbmRXZWJwYWNrQ29uZmlnKHBheWxvYWQuY29uZmlnKVxuICAgIGV4dGVuZFZpdGVDb25maWcocGF5bG9hZC5jb25maWcpXG5cbiAgICByZXR1cm4gY3JlYXRlRGF0YWJhc2VBZGFwdGVyPE1vbmdvb3NlQWRhcHRlcj4oe1xuICAgICAgYXV0b1BsdXJhbGl6YXRpb24sXG4gICAgICBiZWdpblRyYW5zYWN0aW9uLFxuICAgICAgY29sbGVjdGlvbnM6IHt9LFxuICAgICAgY29tbWl0VHJhbnNhY3Rpb24sXG4gICAgICBjb25uZWN0LFxuICAgICAgY29ubmVjdE9wdGlvbnM6IGNvbm5lY3RPcHRpb25zIHx8IHt9LFxuICAgICAgY29ubmVjdGlvbjogdW5kZWZpbmVkLFxuICAgICAgY3JlYXRlLFxuICAgICAgY3JlYXRlR2xvYmFsLFxuICAgICAgY3JlYXRlR2xvYmFsVmVyc2lvbixcbiAgICAgIGNyZWF0ZU1pZ3JhdGlvbixcbiAgICAgIGNyZWF0ZVZlcnNpb24sXG4gICAgICBkZWZhdWx0SURUeXBlOiAndGV4dCcsXG4gICAgICBkZWxldGVNYW55LFxuICAgICAgZGVsZXRlT25lLFxuICAgICAgZGVsZXRlVmVyc2lvbnMsXG4gICAgICBkZXN0cm95LFxuICAgICAgZmluZCxcbiAgICAgIGZpbmRHbG9iYWwsXG4gICAgICBmaW5kR2xvYmFsVmVyc2lvbnMsXG4gICAgICBmaW5kT25lLFxuICAgICAgZmluZFZlcnNpb25zLFxuICAgICAgZ2xvYmFsczogdW5kZWZpbmVkLFxuICAgICAgaW5pdCxcbiAgICAgIC4uLihtaWdyYXRpb25EaXIgJiYgeyBtaWdyYXRpb25EaXIgfSksXG4gICAgICBuYW1lOiAnbW9uZ29vc2UnLFxuICAgICAgbW9uZ29NZW1vcnlTZXJ2ZXI6IHVuZGVmaW5lZCxcbiAgICAgIHBheWxvYWQsXG4gICAgICBxdWVyeURyYWZ0cyxcbiAgICAgIHJvbGxiYWNrVHJhbnNhY3Rpb24sXG4gICAgICBzZXNzaW9uczoge30sXG4gICAgICB1cGRhdGVHbG9iYWwsXG4gICAgICB1cGRhdGVHbG9iYWxWZXJzaW9uLFxuICAgICAgdXBkYXRlT25lLFxuICAgICAgdXBkYXRlVmVyc2lvbixcbiAgICAgIHVybCxcbiAgICAgIHZlcnNpb25zOiB7fSxcbiAgICB9KVxuICB9XG5cbiAgcmV0dXJuIGFkYXB0ZXJcbn1cbiJdLCJuYW1lcyI6WyJtb25nb29zZUFkYXB0ZXIiLCJhdXRvUGx1cmFsaXphdGlvbiIsImNvbm5lY3RPcHRpb25zIiwibWlncmF0aW9uRGlyIiwidXJsIiwiYWRhcHRlciIsInBheWxvYWQiLCJtb25nb29zZSIsInNldCIsImV4dGVuZFdlYnBhY2tDb25maWciLCJjb25maWciLCJleHRlbmRWaXRlQ29uZmlnIiwiY3JlYXRlRGF0YWJhc2VBZGFwdGVyIiwiYmVnaW5UcmFuc2FjdGlvbiIsImNvbGxlY3Rpb25zIiwiY29tbWl0VHJhbnNhY3Rpb24iLCJjb25uZWN0IiwiY29ubmVjdGlvbiIsInVuZGVmaW5lZCIsImNyZWF0ZSIsImNyZWF0ZUdsb2JhbCIsImNyZWF0ZUdsb2JhbFZlcnNpb24iLCJjcmVhdGVNaWdyYXRpb24iLCJjcmVhdGVWZXJzaW9uIiwiZGVmYXVsdElEVHlwZSIsImRlbGV0ZU1hbnkiLCJkZWxldGVPbmUiLCJkZWxldGVWZXJzaW9ucyIsImRlc3Ryb3kiLCJmaW5kIiwiZmluZEdsb2JhbCIsImZpbmRHbG9iYWxWZXJzaW9ucyIsImZpbmRPbmUiLCJmaW5kVmVyc2lvbnMiLCJnbG9iYWxzIiwiaW5pdCIsIm5hbWUiLCJtb25nb01lbW9yeVNlcnZlciIsInF1ZXJ5RHJhZnRzIiwicm9sbGJhY2tUcmFuc2FjdGlvbiIsInNlc3Npb25zIiwidXBkYXRlR2xvYmFsIiwidXBkYXRlR2xvYmFsVmVyc2lvbiIsInVwZGF0ZU9uZSIsInVwZGF0ZVZlcnNpb24iLCJ2ZXJzaW9ucyJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFrRmdCQTs7O2VBQUFBOzs7aUVBOUVLOzBCQUNpQjt5QkFPZDt3QkFDRDs4QkFDTTtxQ0FDTzsrQkFDTjs0QkFDSDsyQkFDRDtnQ0FDSzt5QkFDUDtrQ0FDUztxQ0FDRztzQkFDZjs0QkFDTTtvQ0FDUTt5QkFDWDs4QkFDSztzQkFDUjs2QkFDTztrQ0FDSzttQ0FDQztxQ0FDRTs4QkFDUDtxQ0FDTzsyQkFDVjsrQkFDSTs7Ozs7O0FBOEN2QixTQUFTQSxnQkFBZ0IsRUFDOUJDLG9CQUFvQixJQUFJLEVBQ3hCQyxjQUFjLEVBQ2RDLFlBQVksRUFDWkMsR0FBRyxFQUNFO0lBQ0wsU0FBU0MsUUFBUSxFQUFFQyxPQUFPLEVBQXdCO1FBQ2hEQyxpQkFBUSxDQUFDQyxHQUFHLENBQUMsZUFBZTtRQUU1QkMsSUFBQUEsd0NBQW1CLEVBQUNILFFBQVFJLE1BQU07UUFDbENDLElBQUFBLGtDQUFnQixFQUFDTCxRQUFRSSxNQUFNO1FBRS9CLE9BQU9FLElBQUFBLCtCQUFxQixFQUFrQjtZQUM1Q1g7WUFDQVksa0JBQUFBLGtDQUFnQjtZQUNoQkMsYUFBYSxDQUFDO1lBQ2RDLG1CQUFBQSxvQ0FBaUI7WUFDakJDLFNBQUFBLGdCQUFPO1lBQ1BkLGdCQUFnQkEsa0JBQWtCLENBQUM7WUFDbkNlLFlBQVlDO1lBQ1pDLFFBQUFBLGNBQU07WUFDTkMsY0FBQUEsMEJBQVk7WUFDWkMscUJBQUFBLHdDQUFtQjtZQUNuQkMsaUJBQUFBLHlCQUFlO1lBQ2ZDLGVBQUFBLDRCQUFhO1lBQ2JDLGVBQWU7WUFDZkMsWUFBQUEsc0JBQVU7WUFDVkMsV0FBQUEsb0JBQVM7WUFDVEMsZ0JBQUFBLDhCQUFjO1lBQ2RDLFNBQUFBLGdCQUFPO1lBQ1BDLE1BQUFBLFVBQUk7WUFDSkMsWUFBQUEsc0JBQVU7WUFDVkMsb0JBQUFBLHNDQUFrQjtZQUNsQkMsU0FBQUEsZ0JBQU87WUFDUEMsY0FBQUEsMEJBQVk7WUFDWkMsU0FBU2hCO1lBQ1RpQixNQUFBQSxVQUFJO1lBQ0osR0FBSWhDLGdCQUFnQjtnQkFBRUE7WUFBYSxDQUFDO1lBQ3BDaUMsTUFBTTtZQUNOQyxtQkFBbUJuQjtZQUNuQlo7WUFDQWdDLGFBQUFBLHdCQUFXO1lBQ1hDLHFCQUFBQSx3Q0FBbUI7WUFDbkJDLFVBQVUsQ0FBQztZQUNYQyxjQUFBQSwwQkFBWTtZQUNaQyxxQkFBQUEsd0NBQW1CO1lBQ25CQyxXQUFBQSxvQkFBUztZQUNUQyxlQUFBQSw0QkFBYTtZQUNieEM7WUFDQXlDLFVBQVUsQ0FBQztRQUNiO0lBQ0Y7SUFFQSxPQUFPeEM7QUFDVCJ9
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENsaWVudFNlc3Npb24sIENvbm5lY3RPcHRpb25zLCBDb25uZWN0aW9uIH0gZnJvbSAnbW9uZ29vc2UnXG5pbXBvcnQgdHlwZSB7IFBheWxvYWQgfSBmcm9tICdwYXlsb2FkJ1xuaW1wb3J0IHR5cGUgeyBCYXNlRGF0YWJhc2VBZGFwdGVyIH0gZnJvbSAncGF5bG9hZC9kYXRhYmFzZSdcblxuaW1wb3J0IG1vbmdvb3NlIGZyb20gJ21vbmdvb3NlJ1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCdcbmltcG9ydCB7IGNyZWF0ZURhdGFiYXNlQWRhcHRlciB9IGZyb20gJ3BheWxvYWQvZGF0YWJhc2UnXG5cbmV4cG9ydCB0eXBlIHsgTWlncmF0ZURvd25BcmdzLCBNaWdyYXRlVXBBcmdzIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uTW9kZWwsIEdsb2JhbE1vZGVsIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsgY29ubmVjdCB9IGZyb20gJy4vY29ubmVjdCdcbmltcG9ydCB7IGNyZWF0ZSB9IGZyb20gJy4vY3JlYXRlJ1xuaW1wb3J0IHsgY3JlYXRlR2xvYmFsIH0gZnJvbSAnLi9jcmVhdGVHbG9iYWwnXG5pbXBvcnQgeyBjcmVhdGVHbG9iYWxWZXJzaW9uIH0gZnJvbSAnLi9jcmVhdGVHbG9iYWxWZXJzaW9uJ1xuaW1wb3J0IHsgY3JlYXRlTWlncmF0aW9uIH0gZnJvbSAnLi9jcmVhdGVNaWdyYXRpb24nXG5pbXBvcnQgeyBjcmVhdGVWZXJzaW9uIH0gZnJvbSAnLi9jcmVhdGVWZXJzaW9uJ1xuaW1wb3J0IHsgZGVsZXRlTWFueSB9IGZyb20gJy4vZGVsZXRlTWFueSdcbmltcG9ydCB7IGRlbGV0ZU9uZSB9IGZyb20gJy4vZGVsZXRlT25lJ1xuaW1wb3J0IHsgZGVsZXRlVmVyc2lvbnMgfSBmcm9tICcuL2RlbGV0ZVZlcnNpb25zJ1xuaW1wb3J0IHsgZGVzdHJveSB9IGZyb20gJy4vZGVzdHJveSdcbmltcG9ydCB7IGV4dGVuZFZpdGVDb25maWcgfSBmcm9tICcuL2V4dGVuZFZpdGVDb25maWcnXG5pbXBvcnQgeyBleHRlbmRXZWJwYWNrQ29uZmlnIH0gZnJvbSAnLi9leHRlbmRXZWJwYWNrQ29uZmlnJ1xuaW1wb3J0IHsgZmluZCB9IGZyb20gJy4vZmluZCdcbmltcG9ydCB7IGZpbmRHbG9iYWwgfSBmcm9tICcuL2ZpbmRHbG9iYWwnXG5pbXBvcnQgeyBmaW5kR2xvYmFsVmVyc2lvbnMgfSBmcm9tICcuL2ZpbmRHbG9iYWxWZXJzaW9ucydcbmltcG9ydCB7IGZpbmRPbmUgfSBmcm9tICcuL2ZpbmRPbmUnXG5pbXBvcnQgeyBmaW5kVmVyc2lvbnMgfSBmcm9tICcuL2ZpbmRWZXJzaW9ucydcbmltcG9ydCB7IGluaXQgfSBmcm9tICcuL2luaXQnXG5pbXBvcnQgeyBtaWdyYXRlRnJlc2ggfSBmcm9tICcuL21pZ3JhdGVGcmVzaCdcbmltcG9ydCB7IHF1ZXJ5RHJhZnRzIH0gZnJvbSAnLi9xdWVyeURyYWZ0cydcbmltcG9ydCB7IGJlZ2luVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9ucy9iZWdpblRyYW5zYWN0aW9uJ1xuaW1wb3J0IHsgY29tbWl0VHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9ucy9jb21taXRUcmFuc2FjdGlvbidcbmltcG9ydCB7IHJvbGxiYWNrVHJhbnNhY3Rpb24gfSBmcm9tICcuL3RyYW5zYWN0aW9ucy9yb2xsYmFja1RyYW5zYWN0aW9uJ1xuaW1wb3J0IHsgdXBkYXRlR2xvYmFsIH0gZnJvbSAnLi91cGRhdGVHbG9iYWwnXG5pbXBvcnQgeyB1cGRhdGVHbG9iYWxWZXJzaW9uIH0gZnJvbSAnLi91cGRhdGVHbG9iYWxWZXJzaW9uJ1xuaW1wb3J0IHsgdXBkYXRlT25lIH0gZnJvbSAnLi91cGRhdGVPbmUnXG5pbXBvcnQgeyB1cGRhdGVWZXJzaW9uIH0gZnJvbSAnLi91cGRhdGVWZXJzaW9uJ1xuXG5leHBvcnQgaW50ZXJmYWNlIEFyZ3Mge1xuICAvKiogU2V0IHRvIGZhbHNlIHRvIGRpc2FibGUgYXV0by1wbHVyYWxpemF0aW9uIG9mIGNvbGxlY3Rpb24gbmFtZXMsIERlZmF1bHRzIHRvIHRydWUgKi9cbiAgYXV0b1BsdXJhbGl6YXRpb24/OiBib29sZWFuXG4gIC8qKiBFeHRyYSBjb25maWd1cmF0aW9uIG9wdGlvbnMgKi9cbiAgY29ubmVjdE9wdGlvbnM/OiBDb25uZWN0T3B0aW9ucyAmIHtcbiAgICAvKiogU2V0IGZhbHNlIHRvIGRpc2FibGUgJGZhY2V0IGFnZ3JlZ2F0aW9uIGluIG5vbi1zdXBwb3J0aW5nIGRhdGFiYXNlcywgRGVmYXVsdHMgdG8gdHJ1ZSAqL1xuICAgIHVzZUZhY2V0PzogYm9vbGVhblxuICB9XG4gIG1pZ3JhdGlvbkRpcj86IHN0cmluZ1xuICAvKiogVGhlIFVSTCB0byBjb25uZWN0IHRvIE1vbmdvREIgb3IgZmFsc2UgdG8gc3RhcnQgcGF5bG9hZCBhbmQgcHJldmVudCBjb25uZWN0aW5nICovXG4gIHVybDogZmFsc2UgfCBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgTW9uZ29vc2VBZGFwdGVyID0gQmFzZURhdGFiYXNlQWRhcHRlciAmXG4gIEFyZ3MgJiB7XG4gICAgY29sbGVjdGlvbnM6IHtcbiAgICAgIFtzbHVnOiBzdHJpbmddOiBDb2xsZWN0aW9uTW9kZWxcbiAgICB9XG4gICAgY29ubmVjdGlvbjogQ29ubmVjdGlvblxuICAgIGdsb2JhbHM6IEdsb2JhbE1vZGVsXG4gICAgbW9uZ29NZW1vcnlTZXJ2ZXI6IGFueVxuICAgIHNlc3Npb25zOiBSZWNvcmQ8bnVtYmVyIHwgc3RyaW5nLCBDbGllbnRTZXNzaW9uPlxuICAgIHZlcnNpb25zOiB7XG4gICAgICBbc2x1Zzogc3RyaW5nXTogQ29sbGVjdGlvbk1vZGVsXG4gICAgfVxuICB9XG5cbnR5cGUgTW9uZ29vc2VBZGFwdGVyUmVzdWx0ID0gKGFyZ3M6IHsgcGF5bG9hZDogUGF5bG9hZCB9KSA9PiBNb25nb29zZUFkYXB0ZXJcblxuZGVjbGFyZSBtb2R1bGUgJ3BheWxvYWQnIHtcbiAgZXhwb3J0IGludGVyZmFjZSBEYXRhYmFzZUFkYXB0ZXIgZXh0ZW5kcyBBcmdzIHtcbiAgICBjb2xsZWN0aW9uczoge1xuICAgICAgW3NsdWc6IHN0cmluZ106IENvbGxlY3Rpb25Nb2RlbFxuICAgIH1cbiAgICBjb25uZWN0aW9uOiBDb25uZWN0aW9uXG4gICAgZ2xvYmFsczogR2xvYmFsTW9kZWxcbiAgICBtb25nb01lbW9yeVNlcnZlcjogYW55XG4gICAgc2Vzc2lvbnM6IFJlY29yZDxudW1iZXIgfCBzdHJpbmcsIENsaWVudFNlc3Npb24+XG4gICAgdmVyc2lvbnM6IHtcbiAgICAgIFtzbHVnOiBzdHJpbmddOiBDb2xsZWN0aW9uTW9kZWxcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vbmdvb3NlQWRhcHRlcih7XG4gIGF1dG9QbHVyYWxpemF0aW9uID0gdHJ1ZSxcbiAgY29ubmVjdE9wdGlvbnMsXG4gIG1pZ3JhdGlvbkRpcjogbWlncmF0aW9uRGlyQXJnLFxuICB1cmwsXG59OiBBcmdzKTogTW9uZ29vc2VBZGFwdGVyUmVzdWx0IHtcbiAgZnVuY3Rpb24gYWRhcHRlcih7IHBheWxvYWQgfTogeyBwYXlsb2FkOiBQYXlsb2FkIH0pIHtcbiAgICBjb25zdCBtaWdyYXRpb25EaXIgPSBtaWdyYXRpb25EaXJBcmcgfHwgcGF0aC5yZXNvbHZlKHByb2Nlc3MuY3dkKCksICdzcmMvbWlncmF0aW9ucycpXG4gICAgbW9uZ29vc2Uuc2V0KCdzdHJpY3RRdWVyeScsIGZhbHNlKVxuXG4gICAgZXh0ZW5kV2VicGFja0NvbmZpZyhwYXlsb2FkLmNvbmZpZylcbiAgICBleHRlbmRWaXRlQ29uZmlnKHBheWxvYWQuY29uZmlnKVxuXG4gICAgcmV0dXJuIGNyZWF0ZURhdGFiYXNlQWRhcHRlcjxNb25nb29zZUFkYXB0ZXI+KHtcbiAgICAgIG5hbWU6ICdtb25nb29zZScsXG5cbiAgICAgIC8vIE1vbmdvb3NlLXNwZWNpZmljXG4gICAgICBhdXRvUGx1cmFsaXphdGlvbixcbiAgICAgIGNvbGxlY3Rpb25zOiB7fSxcbiAgICAgIGNvbm5lY3RPcHRpb25zOiBjb25uZWN0T3B0aW9ucyB8fCB7fSxcbiAgICAgIGNvbm5lY3Rpb246IHVuZGVmaW5lZCxcbiAgICAgIGdsb2JhbHM6IHVuZGVmaW5lZCxcbiAgICAgIG1vbmdvTWVtb3J5U2VydmVyOiB1bmRlZmluZWQsXG4gICAgICBzZXNzaW9uczoge30sXG4gICAgICB1cmwsXG4gICAgICB2ZXJzaW9uczoge30sXG5cbiAgICAgIC8vIERhdGFiYXNlQWRhcHRlclxuICAgICAgYmVnaW5UcmFuc2FjdGlvbixcbiAgICAgIGNvbW1pdFRyYW5zYWN0aW9uLFxuICAgICAgY29ubmVjdCxcbiAgICAgIGNyZWF0ZSxcbiAgICAgIGNyZWF0ZUdsb2JhbCxcbiAgICAgIGNyZWF0ZUdsb2JhbFZlcnNpb24sXG4gICAgICBjcmVhdGVNaWdyYXRpb24sXG4gICAgICBjcmVhdGVWZXJzaW9uLFxuICAgICAgZGVmYXVsdElEVHlwZTogJ3RleHQnLFxuICAgICAgZGVsZXRlTWFueSxcbiAgICAgIGRlbGV0ZU9uZSxcbiAgICAgIGRlbGV0ZVZlcnNpb25zLFxuICAgICAgZGVzdHJveSxcbiAgICAgIGZpbmQsXG4gICAgICBmaW5kR2xvYmFsLFxuICAgICAgZmluZEdsb2JhbFZlcnNpb25zLFxuICAgICAgZmluZE9uZSxcbiAgICAgIGZpbmRWZXJzaW9ucyxcbiAgICAgIGluaXQsXG4gICAgICBtaWdyYXRlRnJlc2gsXG4gICAgICBtaWdyYXRpb25EaXIsXG4gICAgICBwYXlsb2FkLFxuICAgICAgcXVlcnlEcmFmdHMsXG4gICAgICByb2xsYmFja1RyYW5zYWN0aW9uLFxuICAgICAgdXBkYXRlR2xvYmFsLFxuICAgICAgdXBkYXRlR2xvYmFsVmVyc2lvbixcbiAgICAgIHVwZGF0ZU9uZSxcbiAgICAgIHVwZGF0ZVZlcnNpb24sXG4gICAgfSlcbiAgfVxuXG4gIHJldHVybiBhZGFwdGVyXG59XG4iXSwibmFtZXMiOlsibW9uZ29vc2VBZGFwdGVyIiwiYXV0b1BsdXJhbGl6YXRpb24iLCJjb25uZWN0T3B0aW9ucyIsIm1pZ3JhdGlvbkRpciIsIm1pZ3JhdGlvbkRpckFyZyIsInVybCIsImFkYXB0ZXIiLCJwYXlsb2FkIiwicGF0aCIsInJlc29sdmUiLCJwcm9jZXNzIiwiY3dkIiwibW9uZ29vc2UiLCJzZXQiLCJleHRlbmRXZWJwYWNrQ29uZmlnIiwiY29uZmlnIiwiZXh0ZW5kVml0ZUNvbmZpZyIsImNyZWF0ZURhdGFiYXNlQWRhcHRlciIsIm5hbWUiLCJjb2xsZWN0aW9ucyIsImNvbm5lY3Rpb24iLCJ1bmRlZmluZWQiLCJnbG9iYWxzIiwibW9uZ29NZW1vcnlTZXJ2ZXIiLCJzZXNzaW9ucyIsInZlcnNpb25zIiwiYmVnaW5UcmFuc2FjdGlvbiIsImNvbW1pdFRyYW5zYWN0aW9uIiwiY29ubmVjdCIsImNyZWF0ZSIsImNyZWF0ZUdsb2JhbCIsImNyZWF0ZUdsb2JhbFZlcnNpb24iLCJjcmVhdGVNaWdyYXRpb24iLCJjcmVhdGVWZXJzaW9uIiwiZGVmYXVsdElEVHlwZSIsImRlbGV0ZU1hbnkiLCJkZWxldGVPbmUiLCJkZWxldGVWZXJzaW9ucyIsImRlc3Ryb3kiLCJmaW5kIiwiZmluZEdsb2JhbCIsImZpbmRHbG9iYWxWZXJzaW9ucyIsImZpbmRPbmUiLCJmaW5kVmVyc2lvbnMiLCJpbml0IiwibWlncmF0ZUZyZXNoIiwicXVlcnlEcmFmdHMiLCJyb2xsYmFja1RyYW5zYWN0aW9uIiwidXBkYXRlR2xvYmFsIiwidXBkYXRlR2xvYmFsVmVyc2lvbiIsInVwZGF0ZU9uZSIsInVwZGF0ZVZlcnNpb24iXSwibWFwcGluZ3MiOiI7Ozs7K0JBb0ZnQkE7OztlQUFBQTs7O2lFQWhGSzs2REFDSjswQkFDcUI7eUJBTWQ7d0JBQ0Q7OEJBQ007cUNBQ087aUNBQ0o7K0JBQ0Y7NEJBQ0g7MkJBQ0Q7Z0NBQ0s7eUJBQ1A7a0NBQ1M7cUNBQ0c7c0JBQ2Y7NEJBQ007b0NBQ1E7eUJBQ1g7OEJBQ0s7c0JBQ1I7OEJBQ1E7NkJBQ0Q7a0NBQ0s7bUNBQ0M7cUNBQ0U7OEJBQ1A7cUNBQ087MkJBQ1Y7K0JBQ0k7Ozs7OztBQThDdkIsU0FBU0EsZ0JBQWdCLEVBQzlCQyxvQkFBb0IsSUFBSSxFQUN4QkMsY0FBYyxFQUNkQyxjQUFjQyxlQUFlLEVBQzdCQyxHQUFHLEVBQ0U7SUFDTCxTQUFTQyxRQUFRLEVBQUVDLE9BQU8sRUFBd0I7UUFDaEQsTUFBTUosZUFBZUMsbUJBQW1CSSxhQUFJLENBQUNDLE9BQU8sQ0FBQ0MsUUFBUUMsR0FBRyxJQUFJO1FBQ3BFQyxpQkFBUSxDQUFDQyxHQUFHLENBQUMsZUFBZTtRQUU1QkMsSUFBQUEsd0NBQW1CLEVBQUNQLFFBQVFRLE1BQU07UUFDbENDLElBQUFBLGtDQUFnQixFQUFDVCxRQUFRUSxNQUFNO1FBRS9CLE9BQU9FLElBQUFBLCtCQUFxQixFQUFrQjtZQUM1Q0MsTUFBTTtZQUVOLG9CQUFvQjtZQUNwQmpCO1lBQ0FrQixhQUFhLENBQUM7WUFDZGpCLGdCQUFnQkEsa0JBQWtCLENBQUM7WUFDbkNrQixZQUFZQztZQUNaQyxTQUFTRDtZQUNURSxtQkFBbUJGO1lBQ25CRyxVQUFVLENBQUM7WUFDWG5CO1lBQ0FvQixVQUFVLENBQUM7WUFFWCxrQkFBa0I7WUFDbEJDLGtCQUFBQSxrQ0FBZ0I7WUFDaEJDLG1CQUFBQSxvQ0FBaUI7WUFDakJDLFNBQUFBLGdCQUFPO1lBQ1BDLFFBQUFBLGNBQU07WUFDTkMsY0FBQUEsMEJBQVk7WUFDWkMscUJBQUFBLHdDQUFtQjtZQUNuQkMsaUJBQUFBLGdDQUFlO1lBQ2ZDLGVBQUFBLDRCQUFhO1lBQ2JDLGVBQWU7WUFDZkMsWUFBQUEsc0JBQVU7WUFDVkMsV0FBQUEsb0JBQVM7WUFDVEMsZ0JBQUFBLDhCQUFjO1lBQ2RDLFNBQUFBLGdCQUFPO1lBQ1BDLE1BQUFBLFVBQUk7WUFDSkMsWUFBQUEsc0JBQVU7WUFDVkMsb0JBQUFBLHNDQUFrQjtZQUNsQkMsU0FBQUEsZ0JBQU87WUFDUEMsY0FBQUEsMEJBQVk7WUFDWkMsTUFBQUEsVUFBSTtZQUNKQyxjQUFBQSwwQkFBWTtZQUNaMUM7WUFDQUk7WUFDQXVDLGFBQUFBLHdCQUFXO1lBQ1hDLHFCQUFBQSx3Q0FBbUI7WUFDbkJDLGNBQUFBLDBCQUFZO1lBQ1pDLHFCQUFBQSx3Q0FBbUI7WUFDbkJDLFdBQUFBLG9CQUFTO1lBQ1RDLGVBQUFBLDRCQUFhO1FBQ2Y7SUFDRjtJQUVBLE9BQU83QztBQUNUIn0=
@@ -0,0 +1,6 @@
1
+ import type { MongooseAdapter } from '.';
2
+ /**
3
+ * Drop the current database and run all migrate up functions
4
+ */
5
+ export declare function migrateFresh(this: MongooseAdapter): Promise<void>;
6
+ //# sourceMappingURL=migrateFresh.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrateFresh.d.ts","sourceRoot":"","sources":["../src/migrateFresh.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,GAAG,CAAA;AAExC;;GAEG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CA8DvE"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "migrateFresh", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return migrateFresh;
9
+ }
10
+ });
11
+ const _database = require("payload/database");
12
+ const _prompts = /*#__PURE__*/ _interop_require_default(require("prompts"));
13
+ function _interop_require_default(obj) {
14
+ return obj && obj.__esModule ? obj : {
15
+ default: obj
16
+ };
17
+ }
18
+ async function migrateFresh() {
19
+ const { payload } = this;
20
+ const { confirm: acceptWarning } = await (0, _prompts.default)({
21
+ name: 'confirm',
22
+ initial: false,
23
+ message: `WARNING: This will drop your database and run all migrations. Are you sure you want to proceed?`,
24
+ type: 'confirm'
25
+ }, {
26
+ onCancel: ()=>{
27
+ process.exit(0);
28
+ }
29
+ });
30
+ if (!acceptWarning) {
31
+ process.exit(0);
32
+ }
33
+ payload.logger.info({
34
+ msg: `Dropping database.`
35
+ });
36
+ await this.connection.dropDatabase();
37
+ const migrationFiles = await (0, _database.readMigrationFiles)({
38
+ payload
39
+ });
40
+ payload.logger.debug({
41
+ msg: `Found ${migrationFiles.length} migration files.`
42
+ });
43
+ let transactionID;
44
+ // Run all migrate up
45
+ for (const migration of migrationFiles){
46
+ payload.logger.info({
47
+ msg: `Migrating: ${migration.name}`
48
+ });
49
+ try {
50
+ const start = Date.now();
51
+ transactionID = await this.beginTransaction();
52
+ await migration.up({
53
+ payload
54
+ });
55
+ await payload.create({
56
+ collection: 'payload-migrations',
57
+ data: {
58
+ name: migration.name,
59
+ batch: 1
60
+ },
61
+ req: {
62
+ transactionID
63
+ }
64
+ });
65
+ await this.commitTransaction(transactionID);
66
+ payload.logger.info({
67
+ msg: `Migrated: ${migration.name} (${Date.now() - start}ms)`
68
+ });
69
+ } catch (err) {
70
+ await this.rollbackTransaction(transactionID);
71
+ payload.logger.error({
72
+ err,
73
+ msg: `Error running migration ${migration.name}. Rolling back.`
74
+ });
75
+ throw err;
76
+ }
77
+ }
78
+ }
79
+
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9taWdyYXRlRnJlc2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB7IHJlYWRNaWdyYXRpb25GaWxlcyB9IGZyb20gJ3BheWxvYWQvZGF0YWJhc2UnXG5pbXBvcnQgcHJvbXB0cyBmcm9tICdwcm9tcHRzJ1xuXG5pbXBvcnQgdHlwZSB7IE1vbmdvb3NlQWRhcHRlciB9IGZyb20gJy4nXG5cbi8qKlxuICogRHJvcCB0aGUgY3VycmVudCBkYXRhYmFzZSBhbmQgcnVuIGFsbCBtaWdyYXRlIHVwIGZ1bmN0aW9uc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbWlncmF0ZUZyZXNoKHRoaXM6IE1vbmdvb3NlQWRhcHRlcik6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCB7IHBheWxvYWQgfSA9IHRoaXNcblxuICBjb25zdCB7IGNvbmZpcm06IGFjY2VwdFdhcm5pbmcgfSA9IGF3YWl0IHByb21wdHMoXG4gICAge1xuICAgICAgbmFtZTogJ2NvbmZpcm0nLFxuICAgICAgaW5pdGlhbDogZmFsc2UsXG4gICAgICBtZXNzYWdlOiBgV0FSTklORzogVGhpcyB3aWxsIGRyb3AgeW91ciBkYXRhYmFzZSBhbmQgcnVuIGFsbCBtaWdyYXRpb25zLiBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcHJvY2VlZD9gLFxuICAgICAgdHlwZTogJ2NvbmZpcm0nLFxuICAgIH0sXG4gICAge1xuICAgICAgb25DYW5jZWw6ICgpID0+IHtcbiAgICAgICAgcHJvY2Vzcy5leGl0KDApXG4gICAgICB9LFxuICAgIH0sXG4gIClcblxuICBpZiAoIWFjY2VwdFdhcm5pbmcpIHtcbiAgICBwcm9jZXNzLmV4aXQoMClcbiAgfVxuXG4gIHBheWxvYWQubG9nZ2VyLmluZm8oe1xuICAgIG1zZzogYERyb3BwaW5nIGRhdGFiYXNlLmAsXG4gIH0pXG5cbiAgYXdhaXQgdGhpcy5jb25uZWN0aW9uLmRyb3BEYXRhYmFzZSgpXG5cbiAgY29uc3QgbWlncmF0aW9uRmlsZXMgPSBhd2FpdCByZWFkTWlncmF0aW9uRmlsZXMoeyBwYXlsb2FkIH0pXG4gIHBheWxvYWQubG9nZ2VyLmRlYnVnKHtcbiAgICBtc2c6IGBGb3VuZCAke21pZ3JhdGlvbkZpbGVzLmxlbmd0aH0gbWlncmF0aW9uIGZpbGVzLmAsXG4gIH0pXG5cbiAgbGV0IHRyYW5zYWN0aW9uSURcbiAgLy8gUnVuIGFsbCBtaWdyYXRlIHVwXG4gIGZvciAoY29uc3QgbWlncmF0aW9uIG9mIG1pZ3JhdGlvbkZpbGVzKSB7XG4gICAgcGF5bG9hZC5sb2dnZXIuaW5mbyh7IG1zZzogYE1pZ3JhdGluZzogJHttaWdyYXRpb24ubmFtZX1gIH0pXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHN0YXJ0ID0gRGF0ZS5ub3coKVxuICAgICAgdHJhbnNhY3Rpb25JRCA9IGF3YWl0IHRoaXMuYmVnaW5UcmFuc2FjdGlvbigpXG4gICAgICBhd2FpdCBtaWdyYXRpb24udXAoeyBwYXlsb2FkIH0pXG4gICAgICBhd2FpdCBwYXlsb2FkLmNyZWF0ZSh7XG4gICAgICAgIGNvbGxlY3Rpb246ICdwYXlsb2FkLW1pZ3JhdGlvbnMnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgbmFtZTogbWlncmF0aW9uLm5hbWUsXG4gICAgICAgICAgYmF0Y2g6IDEsXG4gICAgICAgIH0sXG4gICAgICAgIHJlcToge1xuICAgICAgICAgIHRyYW5zYWN0aW9uSUQsXG4gICAgICAgIH0gYXMgUGF5bG9hZFJlcXVlc3QsXG4gICAgICB9KVxuICAgICAgYXdhaXQgdGhpcy5jb21taXRUcmFuc2FjdGlvbih0cmFuc2FjdGlvbklEKVxuXG4gICAgICBwYXlsb2FkLmxvZ2dlci5pbmZvKHsgbXNnOiBgTWlncmF0ZWQ6ICAke21pZ3JhdGlvbi5uYW1lfSAoJHtEYXRlLm5vdygpIC0gc3RhcnR9bXMpYCB9KVxuICAgIH0gY2F0Y2ggKGVycjogdW5rbm93bikge1xuICAgICAgYXdhaXQgdGhpcy5yb2xsYmFja1RyYW5zYWN0aW9uKHRyYW5zYWN0aW9uSUQpXG4gICAgICBwYXlsb2FkLmxvZ2dlci5lcnJvcih7XG4gICAgICAgIGVycixcbiAgICAgICAgbXNnOiBgRXJyb3IgcnVubmluZyBtaWdyYXRpb24gJHttaWdyYXRpb24ubmFtZX0uIFJvbGxpbmcgYmFjay5gLFxuICAgICAgfSlcbiAgICAgIHRocm93IGVyclxuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbIm1pZ3JhdGVGcmVzaCIsInBheWxvYWQiLCJjb25maXJtIiwiYWNjZXB0V2FybmluZyIsInByb21wdHMiLCJuYW1lIiwiaW5pdGlhbCIsIm1lc3NhZ2UiLCJ0eXBlIiwib25DYW5jZWwiLCJwcm9jZXNzIiwiZXhpdCIsImxvZ2dlciIsImluZm8iLCJtc2ciLCJjb25uZWN0aW9uIiwiZHJvcERhdGFiYXNlIiwibWlncmF0aW9uRmlsZXMiLCJyZWFkTWlncmF0aW9uRmlsZXMiLCJkZWJ1ZyIsImxlbmd0aCIsInRyYW5zYWN0aW9uSUQiLCJtaWdyYXRpb24iLCJzdGFydCIsIkRhdGUiLCJub3ciLCJiZWdpblRyYW5zYWN0aW9uIiwidXAiLCJjcmVhdGUiLCJjb2xsZWN0aW9uIiwiZGF0YSIsImJhdGNoIiwicmVxIiwiY29tbWl0VHJhbnNhY3Rpb24iLCJlcnIiLCJyb2xsYmFja1RyYW5zYWN0aW9uIiwiZXJyb3IiXSwibWFwcGluZ3MiOiI7Ozs7K0JBVXNCQTs7O2VBQUFBOzs7MEJBUmE7Z0VBQ2Y7Ozs7OztBQU9iLGVBQWVBO0lBQ3BCLE1BQU0sRUFBRUMsT0FBTyxFQUFFLEdBQUcsSUFBSTtJQUV4QixNQUFNLEVBQUVDLFNBQVNDLGFBQWEsRUFBRSxHQUFHLE1BQU1DLElBQUFBLGdCQUFPLEVBQzlDO1FBQ0VDLE1BQU07UUFDTkMsU0FBUztRQUNUQyxTQUFTLENBQUMsK0ZBQStGLENBQUM7UUFDMUdDLE1BQU07SUFDUixHQUNBO1FBQ0VDLFVBQVU7WUFDUkMsUUFBUUMsSUFBSSxDQUFDO1FBQ2Y7SUFDRjtJQUdGLElBQUksQ0FBQ1IsZUFBZTtRQUNsQk8sUUFBUUMsSUFBSSxDQUFDO0lBQ2Y7SUFFQVYsUUFBUVcsTUFBTSxDQUFDQyxJQUFJLENBQUM7UUFDbEJDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQztJQUMzQjtJQUVBLE1BQU0sSUFBSSxDQUFDQyxVQUFVLENBQUNDLFlBQVk7SUFFbEMsTUFBTUMsaUJBQWlCLE1BQU1DLElBQUFBLDRCQUFrQixFQUFDO1FBQUVqQjtJQUFRO0lBQzFEQSxRQUFRVyxNQUFNLENBQUNPLEtBQUssQ0FBQztRQUNuQkwsS0FBSyxDQUFDLE1BQU0sRUFBRUcsZUFBZUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDO0lBQ3hEO0lBRUEsSUFBSUM7SUFDSixxQkFBcUI7SUFDckIsS0FBSyxNQUFNQyxhQUFhTCxlQUFnQjtRQUN0Q2hCLFFBQVFXLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDO1lBQUVDLEtBQUssQ0FBQyxXQUFXLEVBQUVRLFVBQVVqQixJQUFJLENBQUMsQ0FBQztRQUFDO1FBQzFELElBQUk7WUFDRixNQUFNa0IsUUFBUUMsS0FBS0MsR0FBRztZQUN0QkosZ0JBQWdCLE1BQU0sSUFBSSxDQUFDSyxnQkFBZ0I7WUFDM0MsTUFBTUosVUFBVUssRUFBRSxDQUFDO2dCQUFFMUI7WUFBUTtZQUM3QixNQUFNQSxRQUFRMkIsTUFBTSxDQUFDO2dCQUNuQkMsWUFBWTtnQkFDWkMsTUFBTTtvQkFDSnpCLE1BQU1pQixVQUFVakIsSUFBSTtvQkFDcEIwQixPQUFPO2dCQUNUO2dCQUNBQyxLQUFLO29CQUNIWDtnQkFDRjtZQUNGO1lBQ0EsTUFBTSxJQUFJLENBQUNZLGlCQUFpQixDQUFDWjtZQUU3QnBCLFFBQVFXLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDO2dCQUFFQyxLQUFLLENBQUMsV0FBVyxFQUFFUSxVQUFVakIsSUFBSSxDQUFDLEVBQUUsRUFBRW1CLEtBQUtDLEdBQUcsS0FBS0YsTUFBTSxHQUFHLENBQUM7WUFBQztRQUN0RixFQUFFLE9BQU9XLEtBQWM7WUFDckIsTUFBTSxJQUFJLENBQUNDLG1CQUFtQixDQUFDZDtZQUMvQnBCLFFBQVFXLE1BQU0sQ0FBQ3dCLEtBQUssQ0FBQztnQkFDbkJGO2dCQUNBcEIsS0FBSyxDQUFDLHdCQUF3QixFQUFFUSxVQUFVakIsSUFBSSxDQUFDLGVBQWUsQ0FBQztZQUNqRTtZQUNBLE1BQU02QjtRQUNSO0lBQ0Y7QUFDRiJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/db-mongodb",
3
- "version": "1.0.0-beta.5",
3
+ "version": "1.0.0-beta.7",
4
4
  "description": "The officially supported MongoDB database adapter for Payload",
5
5
  "repository": "https://github.com/payloadcms/payload",
6
6
  "license": "MIT",
@@ -19,20 +19,22 @@
19
19
  "mongoose": "6.11.4",
20
20
  "mongoose-aggregate-paginate-v2": "1.0.6",
21
21
  "mongoose-paginate-v2": "1.7.22",
22
+ "prompts": "2.4.2",
22
23
  "uuid": "9.0.0"
23
24
  },
24
25
  "devDependencies": {
25
26
  "@types/mongoose-aggregate-paginate-v2": "1.0.9",
26
27
  "mongodb-memory-server": "8.13.0",
27
28
  "@payloadcms/eslint-config": "0.0.1",
28
- "payload": "2.0.0-beta.15"
29
+ "payload": "2.0.0-beta.30"
29
30
  },
30
31
  "publishConfig": {
31
32
  "registry": "https://registry.npmjs.org/"
32
33
  },
33
34
  "files": [
34
35
  "dist",
35
- "mock.js"
36
+ "mock.js",
37
+ "predefinedMigrations"
36
38
  ],
37
39
  "scripts": {
38
40
  "build": "pnpm build:swc && pnpm build:types",
@@ -0,0 +1,96 @@
1
+ module.exports.up = ` async function migrateCollectionDocs(slug: string, docsAtATime = 100) {
2
+ const VersionsModel = payload.db.versions[slug]
3
+ const remainingDocs = await VersionsModel.aggregate(
4
+ [
5
+ // Sort so that newest are first
6
+ {
7
+ $sort: {
8
+ updatedAt: -1,
9
+ },
10
+ },
11
+ // Group by parent ID
12
+ // take the $first of each
13
+ {
14
+ $group: {
15
+ _id: '$parent',
16
+ _versionID: { $first: '$_id' },
17
+ createdAt: { $first: '$createdAt' },
18
+ latest: { $first: '$latest' },
19
+ updatedAt: { $first: '$updatedAt' },
20
+ version: { $first: '$version' },
21
+ },
22
+ },
23
+ {
24
+ $match: {
25
+ latest: { $eq: null },
26
+ },
27
+ },
28
+ {
29
+ $limit: docsAtATime,
30
+ },
31
+ ],
32
+ {
33
+ allowDiskUse: true,
34
+ },
35
+ ).exec()
36
+
37
+ if (!remainingDocs || remainingDocs.length === 0) {
38
+ const newVersions = await VersionsModel.find({
39
+ latest: {
40
+ $eq: true,
41
+ },
42
+ })
43
+
44
+ if (newVersions?.length) {
45
+ payload.logger.info(
46
+ \`Migrated \${newVersions.length} documents in the "\${slug}" versions collection.\`,
47
+ )
48
+ }
49
+
50
+ return
51
+ }
52
+
53
+ const remainingDocIds = remainingDocs.map((doc) => doc._versionID)
54
+
55
+ await VersionsModel.updateMany(
56
+ {
57
+ _id: {
58
+ $in: remainingDocIds,
59
+ },
60
+ },
61
+ {
62
+ latest: true,
63
+ },
64
+ )
65
+
66
+ await migrateCollectionDocs(slug)
67
+ }
68
+
69
+ // For each collection
70
+ await Promise.all(
71
+ payload.config.collections.map(async ({ slug, versions }) => {
72
+ if (versions) {
73
+ return migrateCollectionDocs(slug)
74
+ }
75
+ }),
76
+ )
77
+
78
+ // For each global
79
+ await Promise.all(
80
+ payload.config.globals.map(async ({ slug, versions }) => {
81
+ if (versions) {
82
+ const VersionsModel = payload.db.versions[slug]
83
+
84
+ await VersionsModel.findOneAndUpdate(
85
+ {},
86
+ { latest: true },
87
+ {
88
+ sort: { updatedAt: -1 },
89
+ },
90
+ ).exec()
91
+
92
+ payload.logger.info(\`Migrated the "\${slug}" global.\`)
93
+ }
94
+ }),
95
+ )
96
+ `
package/src/index.ts CHANGED
@@ -3,8 +3,8 @@ import type { Payload } from 'payload'
3
3
  import type { BaseDatabaseAdapter } from 'payload/database'
4
4
 
5
5
  import mongoose from 'mongoose'
6
+ import path from 'path'
6
7
  import { createDatabaseAdapter } from 'payload/database'
7
- import { createMigration } from 'payload/database'
8
8
 
9
9
  export type { MigrateDownArgs, MigrateUpArgs } from './types'
10
10
 
@@ -14,6 +14,7 @@ import { connect } from './connect'
14
14
  import { create } from './create'
15
15
  import { createGlobal } from './createGlobal'
16
16
  import { createGlobalVersion } from './createGlobalVersion'
17
+ import { createMigration } from './createMigration'
17
18
  import { createVersion } from './createVersion'
18
19
  import { deleteMany } from './deleteMany'
19
20
  import { deleteOne } from './deleteOne'
@@ -27,6 +28,7 @@ import { findGlobalVersions } from './findGlobalVersions'
27
28
  import { findOne } from './findOne'
28
29
  import { findVersions } from './findVersions'
29
30
  import { init } from './init'
31
+ import { migrateFresh } from './migrateFresh'
30
32
  import { queryDrafts } from './queryDrafts'
31
33
  import { beginTransaction } from './transactions/beginTransaction'
32
34
  import { commitTransaction } from './transactions/commitTransaction'
@@ -83,23 +85,34 @@ declare module 'payload' {
83
85
  export function mongooseAdapter({
84
86
  autoPluralization = true,
85
87
  connectOptions,
86
- migrationDir,
88
+ migrationDir: migrationDirArg,
87
89
  url,
88
90
  }: Args): MongooseAdapterResult {
89
91
  function adapter({ payload }: { payload: Payload }) {
92
+ const migrationDir = migrationDirArg || path.resolve(process.cwd(), 'src/migrations')
90
93
  mongoose.set('strictQuery', false)
91
94
 
92
95
  extendWebpackConfig(payload.config)
93
96
  extendViteConfig(payload.config)
94
97
 
95
98
  return createDatabaseAdapter<MongooseAdapter>({
99
+ name: 'mongoose',
100
+
101
+ // Mongoose-specific
96
102
  autoPluralization,
97
- beginTransaction,
98
103
  collections: {},
99
- commitTransaction,
100
- connect,
101
104
  connectOptions: connectOptions || {},
102
105
  connection: undefined,
106
+ globals: undefined,
107
+ mongoMemoryServer: undefined,
108
+ sessions: {},
109
+ url,
110
+ versions: {},
111
+
112
+ // DatabaseAdapter
113
+ beginTransaction,
114
+ commitTransaction,
115
+ connect,
103
116
  create,
104
117
  createGlobal,
105
118
  createGlobalVersion,
@@ -115,21 +128,16 @@ export function mongooseAdapter({
115
128
  findGlobalVersions,
116
129
  findOne,
117
130
  findVersions,
118
- globals: undefined,
119
131
  init,
120
- ...(migrationDir && { migrationDir }),
121
- name: 'mongoose',
122
- mongoMemoryServer: undefined,
132
+ migrateFresh,
133
+ migrationDir,
123
134
  payload,
124
135
  queryDrafts,
125
136
  rollbackTransaction,
126
- sessions: {},
127
137
  updateGlobal,
128
138
  updateGlobalVersion,
129
139
  updateOne,
130
140
  updateVersion,
131
- url,
132
- versions: {},
133
141
  })
134
142
  }
135
143