@frogbotai/db-mongodb 0.28.0 → 0.29.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAmB,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,eAAe,IAAI,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAGlF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAMpD,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEpG,eAAO,MAAM,eAAe,SACpB,IAAI,KACT,UAAU,CAAC,OAAO,qBAAqB,CAAC,GAAG;IAAE,MAAM,EAAE,aAAa,CAAA;CAqBpE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAmB,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,eAAe,IAAI,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAGlF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAQpD,YAAY,EAAE,IAAI,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEpG,eAAO,MAAM,eAAe,SACpB,IAAI,KACT,UAAU,CAAC,OAAO,qBAAqB,CAAC,GAAG;IAAE,MAAM,EAAE,aAAa,CAAA;CA4BpE,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,7 @@
1
1
  import { mongooseAdapter as createMongooseAdapter } from '@payloadcms/db-mongodb';
2
- import { jobLeaseOperations } from 'frogbot/jobs';
2
+ import { jobLeaseOperations, jobLogOperations } from 'frogbot/jobs';
3
+ import { installJobIndexes } from './jobIndexes.js';
4
+ import { pruneJobLogs } from './jobLogs.js';
3
5
  import { mongooseSearchAdapter } from './search/index.js';
4
6
  import { updateJobLeases } from './updateJobLeases.js';
5
7
  import { createUpdateJobs } from './updateJobs.js';
@@ -11,10 +13,14 @@ export const mongooseAdapter = (args) => {
11
13
  init(initArgs) {
12
14
  const database = init(initArgs);
13
15
  database.packageName = '@frogbotai/db-mongodb';
16
+ installJobIndexes(database);
14
17
  database.updateJobs = createUpdateJobs(database);
15
18
  database[jobLeaseOperations] = {
16
19
  update: (args) => updateJobLeases({ adapter: database, ...args }),
17
20
  };
21
+ database[jobLogOperations] = {
22
+ prune: (args) => pruneJobLogs({ adapter: database, ...args }),
23
+ };
18
24
  return database;
19
25
  },
20
26
  };
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,IAAI,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAElF,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGlD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAInD,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,IAAU,EAC4D,EAAE;IACxE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAEzD,OAAO;QACL,GAAG,OAAO;QACV,MAAM,EAAE,qBAAqB;QAC7B,IAAI,CAAC,QAAQ;YACX,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CACqB,CAAC;YAEpD,QAAQ,CAAC,WAAW,GAAG,uBAAuB,CAAC;YAE/C,QAAQ,CAAC,UAAU,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAEjD,QAAQ,CAAC,kBAAkB,CAAC,GAAG;gBAC7B,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC;aAClE,CAAC;YAEF,OAAO,QAAQ,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,IAAI,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAElF,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAInD,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,IAAU,EAC4D,EAAE;IACxE,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAEzD,OAAO;QACL,GAAG,OAAO;QACV,MAAM,EAAE,qBAAqB;QAC7B,IAAI,CAAC,QAAQ;YACX,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAEiB,CAAC;YAEhD,QAAQ,CAAC,WAAW,GAAG,uBAAuB,CAAC;YAE/C,iBAAiB,CAAC,QAAQ,CAAC,CAAC;YAE5B,QAAQ,CAAC,UAAU,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YAEjD,QAAQ,CAAC,kBAAkB,CAAC,GAAG;gBAC7B,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC;aAClE,CAAC;YAEF,QAAQ,CAAC,gBAAgB,CAAC,GAAG;gBAC3B,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,CAAC;aAC9D,CAAC;YAEF,OAAO,QAAQ,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { MongooseAdapter } from '@payloadcms/db-mongodb';
2
+ export declare function installJobIndexes(database: MongooseAdapter): void;
3
+ //# sourceMappingURL=jobIndexes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jobIndexes.d.ts","sourceRoot":"","sources":["../src/jobIndexes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAI9D,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,eAAe,QAiC1D"}
@@ -0,0 +1,29 @@
1
+ import { getJobModel } from './jobModel.js';
2
+ export function installJobIndexes(database) {
3
+ const create = database.create;
4
+ const connect = database.connect;
5
+ database.create = async (args) => {
6
+ if (args.collection !== 'payload-jobs')
7
+ return create.call(database, args);
8
+ return create.call(database, {
9
+ ...args,
10
+ data: { ...args.data, completedAt: args.data.completedAt ?? null },
11
+ });
12
+ };
13
+ database.connect = async (options) => {
14
+ await connect.call(database, options);
15
+ if (!database.connection || !database.collections['payload-jobs'])
16
+ return;
17
+ const { Model } = getJobModel(database);
18
+ await Model.collection.createIndex({ jobId: 1 }, {
19
+ name: 'frogbot_jobId_live',
20
+ unique: true,
21
+ partialFilterExpression: {
22
+ jobId: { $type: 'string' },
23
+ completedAt: { $type: 'null' },
24
+ hasError: false,
25
+ },
26
+ });
27
+ };
28
+ }
29
+ //# sourceMappingURL=jobIndexes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jobIndexes.js","sourceRoot":"","sources":["../src/jobIndexes.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,UAAU,iBAAiB,CAAC,QAAyB;IACzD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC/B,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAQ,CAAC;IAElC,QAAQ,CAAC,MAAM,GAAG,KAAK,EAAE,IAAI,EAAE,EAAE;QAC/B,IAAI,IAAI,CAAC,UAAU,KAAK,cAAc;YAAE,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAE3E,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC3B,GAAG,IAAI;YACP,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,EAAE;SACnE,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,QAAQ,CAAC,OAAO,GAAG,KAAK,EAAE,OAAO,EAAE,EAAE;QACnC,MAAM,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEtC,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC;YAAE,OAAO;QAE1E,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QAExC,MAAM,KAAK,CAAC,UAAU,CAAC,WAAW,CAChC,EAAE,KAAK,EAAE,CAAC,EAAE,EACZ;YACE,IAAI,EAAE,oBAAoB;YAC1B,MAAM,EAAE,IAAI;YACZ,uBAAuB,EAAE;gBACvB,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE;gBAC1B,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;gBAC9B,QAAQ,EAAE,KAAK;aAChB;SACF,CACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { MongooseAdapter } from '@payloadcms/db-mongodb';
2
+ import type { JobLogOperations } from 'frogbot/jobs';
3
+ export declare function pruneJobLogs({ adapter, id, keep, req, }: Parameters<JobLogOperations['prune']>[0] & {
4
+ adapter: MongooseAdapter;
5
+ }): Promise<void>;
6
+ //# sourceMappingURL=jobLogs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jobLogs.d.ts","sourceRoot":"","sources":["../src/jobLogs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAIrD,wBAAsB,YAAY,CAAC,EACjC,OAAO,EACP,EAAE,EACF,IAAI,EACJ,GAAG,GACJ,EAAE,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;IAAE,OAAO,EAAE,eAAe,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAezF"}
@@ -0,0 +1,11 @@
1
+ import { getJobModel, getJobSession } from './jobModel.js';
2
+ export async function pruneJobLogs({ adapter, id, keep, req, }) {
3
+ const { Model } = getJobModel(adapter);
4
+ const query = await Model.buildQuery({
5
+ payload: adapter.payload,
6
+ where: { id: { equals: id } },
7
+ });
8
+ const session = await getJobSession({ adapter, req });
9
+ await Model.updateOne({ $and: [query, { completedAt: null }, { hasError: { $ne: true } }] }, { $pull: { log: { id: { $nin: keep } } } }, { session, timestamps: false });
10
+ }
11
+ //# sourceMappingURL=jobLogs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jobLogs.js","sourceRoot":"","sources":["../src/jobLogs.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE3D,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,EACjC,OAAO,EACP,EAAE,EACF,IAAI,EACJ,GAAG,GACqE;IACxE,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAEvC,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC;QACnC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE;KAC9B,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IAEtD,MAAM,KAAK,CAAC,SAAS,CACnB,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,EACrE,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAC1C,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAC/B,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frogbotai/db-mongodb",
3
- "version": "0.28.0",
3
+ "version": "0.29.0",
4
4
  "description": "FrogBot MongoDB adapter.",
5
5
  "license": "MIT",
6
6
  "author": "Colby Gilbert",
@@ -29,11 +29,11 @@
29
29
  "payload": "3.90.1"
30
30
  },
31
31
  "peerDependencies": {
32
- "frogbot": "0.28.0"
32
+ "frogbot": "0.29.0"
33
33
  },
34
34
  "devDependencies": {
35
35
  "typescript": "5.6.2",
36
- "frogbot": "0.28.0"
36
+ "frogbot": "0.29.0"
37
37
  },
38
38
  "publishConfig": {
39
39
  "access": "public"