@frogbotai/db-mongodb 0.28.0 → 0.30.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.
Files changed (66) hide show
  1. package/dist/index.d.ts.map +1 -1
  2. package/dist/index.js +18 -5
  3. package/dist/index.js.map +1 -1
  4. package/dist/jobIndexes.d.ts +3 -0
  5. package/dist/jobIndexes.d.ts.map +1 -0
  6. package/dist/jobIndexes.js +37 -0
  7. package/dist/jobIndexes.js.map +1 -0
  8. package/dist/jobLogs.d.ts +6 -0
  9. package/dist/jobLogs.d.ts.map +1 -0
  10. package/dist/jobLogs.js +42 -0
  11. package/dist/jobLogs.js.map +1 -0
  12. package/dist/jobModel.js +29 -12
  13. package/dist/jobModel.js.map +1 -1
  14. package/dist/search/buildSchema.js +15 -9
  15. package/dist/search/buildSchema.js.map +1 -1
  16. package/dist/search/buildSearchIndexes.js +135 -55
  17. package/dist/search/buildSearchIndexes.js.map +1 -1
  18. package/dist/search/capabilities.js +12 -15
  19. package/dist/search/capabilities.js.map +1 -1
  20. package/dist/search/createSearchSetupError.js +12 -5
  21. package/dist/search/createSearchSetupError.js.map +1 -1
  22. package/dist/search/ensureSearchIndexes.js +35 -20
  23. package/dist/search/ensureSearchIndexes.js.map +1 -1
  24. package/dist/search/findSearchIndex.js +3 -2
  25. package/dist/search/findSearchIndex.js.map +1 -1
  26. package/dist/search/getSearchIndexes.js +2 -1
  27. package/dist/search/getSearchIndexes.js.map +1 -1
  28. package/dist/search/getSearchModel.js +2 -1
  29. package/dist/search/getSearchModel.js.map +1 -1
  30. package/dist/search/getSearchPath.js +17 -13
  31. package/dist/search/getSearchPath.js.map +1 -1
  32. package/dist/search/index.js +2 -1
  33. package/dist/search/index.js.map +1 -1
  34. package/dist/search/isDraftSearch.js +2 -1
  35. package/dist/search/isDraftSearch.js.map +1 -1
  36. package/dist/search/isSearchIndexDefinitionEqual.js +26 -19
  37. package/dist/search/isSearchIndexDefinitionEqual.js.map +1 -1
  38. package/dist/search/pipelines/buildHybridPipeline.js +147 -40
  39. package/dist/search/pipelines/buildHybridPipeline.js.map +1 -1
  40. package/dist/search/pipelines/buildSearchStage.js +17 -5
  41. package/dist/search/pipelines/buildSearchStage.js.map +1 -1
  42. package/dist/search/pipelines/buildVectorScore.js +24 -4
  43. package/dist/search/pipelines/buildVectorScore.js.map +1 -1
  44. package/dist/search/pipelines/buildVectorSearchStage.js +15 -7
  45. package/dist/search/pipelines/buildVectorSearchStage.js.map +1 -1
  46. package/dist/search/queries/buildSearchFilter.js +13 -6
  47. package/dist/search/queries/buildSearchFilter.js.map +1 -1
  48. package/dist/search/queries/buildSearchOperator.js +41 -8
  49. package/dist/search/queries/buildSearchOperator.js.map +1 -1
  50. package/dist/search/queries/buildVectorSearchFilter.js +32 -8
  51. package/dist/search/queries/buildVectorSearchFilter.js.map +1 -1
  52. package/dist/search/queries/parseSearchFilter.js +125 -56
  53. package/dist/search/queries/parseSearchFilter.js.map +1 -1
  54. package/dist/search/readiness.js +23 -12
  55. package/dist/search/readiness.js.map +1 -1
  56. package/dist/search/search.js +180 -76
  57. package/dist/search/search.js.map +1 -1
  58. package/dist/search/supportsRankFusion.js +29 -10
  59. package/dist/search/supportsRankFusion.js.map +1 -1
  60. package/dist/search/types.js +2 -1
  61. package/dist/search/types.js.map +1 -1
  62. package/dist/updateJobLeases.js +20 -5
  63. package/dist/updateJobLeases.js.map +1 -1
  64. package/dist/updateJobs.js +79 -30
  65. package/dist/updateJobs.js.map +1 -1
  66. package/package.json +4 -4
@@ -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,22 +1,35 @@
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';
6
- export const mongooseAdapter = (args) => {
8
+ export const mongooseAdapter = (args)=>{
7
9
  const { init, ...adapter } = createMongooseAdapter(args);
8
10
  return {
9
11
  ...adapter,
10
12
  search: mongooseSearchAdapter,
11
- init(initArgs) {
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
- update: (args) => updateJobLeases({ adapter: database, ...args }),
19
+ update: (args)=>updateJobLeases({
20
+ adapter: database,
21
+ ...args
22
+ })
23
+ };
24
+ database[jobLogOperations] = {
25
+ prune: (args)=>pruneJobLogs({
26
+ adapter: database,
27
+ ...args
28
+ })
17
29
  };
18
30
  return database;
19
- },
31
+ }
20
32
  };
21
33
  };
34
+
22
35
  //# sourceMappingURL=index.js.map
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,"sources":["../src/index.ts"],"names":["mongooseAdapter","createMongooseAdapter","jobLeaseOperations","jobLogOperations","installJobIndexes","pruneJobLogs","mongooseSearchAdapter","updateJobLeases","createUpdateJobs","args","init","adapter","search","initArgs","database","packageName","updateJobs","update","prune"],"mappings":"AACA,SAASA,mBAAmBC,qBAAqB,QAAQ,yBAAyB;AAElF,SAASC,kBAAkB,EAAEC,gBAAgB,QAAQ,eAAe;AAGpE,SAASC,iBAAiB,QAAQ,kBAAkB;AACpD,SAASC,YAAY,QAAQ,eAAe;AAC5C,SAASC,qBAAqB,QAAQ,oBAAoB;AAC1D,SAASC,eAAe,QAAQ,uBAAuB;AACvD,SAASC,gBAAgB,QAAQ,kBAAkB;AAInD,OAAO,MAAMR,kBAAkB,CAC7BS;IAEA,MAAM,EAAEC,IAAI,EAAE,GAAGC,SAAS,GAAGV,sBAAsBQ;IAEnD,OAAO;QACL,GAAGE,OAAO;QACVC,QAAQN;QACRI,MAAKG,QAAQ;YACX,MAAMC,WAAWJ,KAAKG;YAItBC,SAASC,WAAW,GAAG;YAEvBX,kBAAkBU;YAElBA,SAASE,UAAU,GAAGR,iBAAiBM;YAEvCA,QAAQ,CAACZ,mBAAmB,GAAG;gBAC7Be,QAAQ,CAACR,OAASF,gBAAgB;wBAAEI,SAASG;wBAAU,GAAGL,IAAI;oBAAC;YACjE;YAEAK,QAAQ,CAACX,iBAAiB,GAAG;gBAC3Be,OAAO,CAACT,OAASJ,aAAa;wBAAEM,SAASG;wBAAU,GAAGL,IAAI;oBAAC;YAC7D;YAEA,OAAOK;QACT;IACF;AACF,EAAE","file":"index.js"}
@@ -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,37 @@
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') return create.call(database, args);
7
+ return create.call(database, {
8
+ ...args,
9
+ data: {
10
+ ...args.data,
11
+ completedAt: args.data.completedAt ?? null
12
+ }
13
+ });
14
+ };
15
+ database.connect = async (options)=>{
16
+ await connect.call(database, options);
17
+ if (!database.connection || !database.collections['payload-jobs']) return;
18
+ const { Model } = getJobModel(database);
19
+ await Model.collection.createIndex({
20
+ jobId: 1
21
+ }, {
22
+ name: 'frogbot_jobId_live',
23
+ unique: true,
24
+ partialFilterExpression: {
25
+ jobId: {
26
+ $type: 'string'
27
+ },
28
+ completedAt: {
29
+ $type: 'null'
30
+ },
31
+ hasError: false
32
+ }
33
+ });
34
+ };
35
+ }
36
+
37
+ //# sourceMappingURL=jobIndexes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/jobIndexes.ts"],"names":["getJobModel","installJobIndexes","database","create","connect","args","collection","call","data","completedAt","options","connection","collections","Model","createIndex","jobId","name","unique","partialFilterExpression","$type","hasError"],"mappings":"AAEA,SAASA,WAAW,QAAQ,gBAAgB;AAE5C,OAAO,SAASC,kBAAkBC,QAAyB;IACzD,MAAMC,SAASD,SAASC,MAAM;IAC9B,MAAMC,UAAUF,SAASE,OAAO;IAEhCF,SAASC,MAAM,GAAG,OAAOE;QACvB,IAAIA,KAAKC,UAAU,KAAK,gBAAgB,OAAOH,OAAOI,IAAI,CAACL,UAAUG;QAErE,OAAOF,OAAOI,IAAI,CAACL,UAAU;YAC3B,GAAGG,IAAI;YACPG,MAAM;gBAAE,GAAGH,KAAKG,IAAI;gBAAEC,aAAaJ,KAAKG,IAAI,CAACC,WAAW,IAAI;YAAK;QACnE;IACF;IAEAP,SAASE,OAAO,GAAG,OAAOM;QACxB,MAAMN,QAAQG,IAAI,CAACL,UAAUQ;QAE7B,IAAI,CAACR,SAASS,UAAU,IAAI,CAACT,SAASU,WAAW,CAAC,eAAe,EAAE;QAEnE,MAAM,EAAEC,KAAK,EAAE,GAAGb,YAAYE;QAE9B,MAAMW,MAAMP,UAAU,CAACQ,WAAW,CAChC;YAAEC,OAAO;QAAE,GACX;YACEC,MAAM;YACNC,QAAQ;YACRC,yBAAyB;gBACvBH,OAAO;oBAAEI,OAAO;gBAAS;gBACzBV,aAAa;oBAAEU,OAAO;gBAAO;gBAC7BC,UAAU;YACZ;QACF;IAEJ;AACF","file":"jobIndexes.js"}
@@ -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,42 @@
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: {
7
+ id: {
8
+ equals: id
9
+ }
10
+ }
11
+ });
12
+ const session = await getJobSession({
13
+ adapter,
14
+ req
15
+ });
16
+ await Model.updateOne({
17
+ $and: [
18
+ query,
19
+ {
20
+ completedAt: null
21
+ },
22
+ {
23
+ hasError: {
24
+ $ne: true
25
+ }
26
+ }
27
+ ]
28
+ }, {
29
+ $pull: {
30
+ log: {
31
+ id: {
32
+ $nin: keep
33
+ }
34
+ }
35
+ }
36
+ }, {
37
+ session,
38
+ timestamps: false
39
+ });
40
+ }
41
+
42
+ //# sourceMappingURL=jobLogs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/jobLogs.ts"],"names":["getJobModel","getJobSession","pruneJobLogs","adapter","id","keep","req","Model","query","buildQuery","payload","where","equals","session","updateOne","$and","completedAt","hasError","$ne","$pull","log","$nin","timestamps"],"mappings":"AAGA,SAASA,WAAW,EAAEC,aAAa,QAAQ,gBAAgB;AAE3D,OAAO,eAAeC,aAAa,EACjCC,OAAO,EACPC,EAAE,EACFC,IAAI,EACJC,GAAG,EACqE;IACxE,MAAM,EAAEC,KAAK,EAAE,GAAGP,YAAYG;IAE9B,MAAMK,QAAQ,MAAMD,MAAME,UAAU,CAAC;QACnCC,SAASP,QAAQO,OAAO;QACxBC,OAAO;YAAEP,IAAI;gBAAEQ,QAAQR;YAAG;QAAE;IAC9B;IAEA,MAAMS,UAAU,MAAMZ,cAAc;QAAEE;QAASG;IAAI;IAEnD,MAAMC,MAAMO,SAAS,CACnB;QAAEC,MAAM;YAACP;YAAO;gBAAEQ,aAAa;YAAK;YAAG;gBAAEC,UAAU;oBAAEC,KAAK;gBAAK;YAAE;SAAE;IAAC,GACpE;QAAEC,OAAO;YAAEC,KAAK;gBAAEhB,IAAI;oBAAEiB,MAAMhB;gBAAK;YAAE;QAAE;IAAE,GACzC;QAAEQ;QAASS,YAAY;IAAM;AAEjC","file":"jobLogs.js"}
package/dist/jobModel.js CHANGED
@@ -2,14 +2,15 @@ import { transform } from '@payloadcms/db-mongodb/internal';
2
2
  export function getJobModel(adapter) {
3
3
  const collection = adapter.payload.collections['payload-jobs'];
4
4
  const Model = adapter.collections['payload-jobs'];
5
- if (!collection || !Model)
6
- throw new Error('FrogBot jobs collection is not initialized.');
7
- return { fields: collection.config.fields, Model };
5
+ if (!collection || !Model) throw new Error('FrogBot jobs collection is not initialized.');
6
+ return {
7
+ fields: collection.config.fields,
8
+ Model
9
+ };
8
10
  }
9
- export async function getJobSession({ adapter, req, }) {
11
+ export async function getJobSession({ adapter, req }) {
10
12
  const transactionID = await req?.transactionID;
11
- if (!transactionID)
12
- return;
13
+ if (!transactionID) return;
13
14
  const session = adapter.sessions[transactionID];
14
15
  if (session && !session.inTransaction()) {
15
16
  delete adapter.sessions[transactionID];
@@ -17,18 +18,34 @@ export async function getJobSession({ adapter, req, }) {
17
18
  }
18
19
  return session;
19
20
  }
20
- export function transformJobUpdate({ adapter, data, }) {
21
+ export function transformJobUpdate({ adapter, data }) {
21
22
  const { fields } = getJobModel(adapter);
22
23
  const $inc = {};
23
24
  const $push = {};
24
25
  const $addToSet = {};
25
26
  const $pull = {};
26
- transform({ adapter, data, fields, operation: 'write', $inc, $push, $addToSet, $pull });
27
- const update = { $set: data };
28
- for (const [operator, values] of Object.entries({ $inc, $push, $addToSet, $pull })) {
29
- if (Object.keys(values).length)
30
- update[operator] = values;
27
+ transform({
28
+ adapter,
29
+ data,
30
+ fields,
31
+ operation: 'write',
32
+ $inc,
33
+ $push,
34
+ $addToSet,
35
+ $pull
36
+ });
37
+ const update = {
38
+ $set: data
39
+ };
40
+ for (const [operator, values] of Object.entries({
41
+ $inc,
42
+ $push,
43
+ $addToSet,
44
+ $pull
45
+ })){
46
+ if (Object.keys(values).length) update[operator] = values;
31
47
  }
32
48
  return update;
33
49
  }
50
+
34
51
  //# sourceMappingURL=jobModel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jobModel.js","sourceRoot":"","sources":["../src/jobModel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iCAAiC,CAAC;AAE5D,MAAM,UAAU,WAAW,CAAC,OAAwB;IAClD,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAC/D,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAElD,IAAI,CAAC,UAAU,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;IAE1F,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;AACrD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAClC,OAAO,EACP,GAAG,GAIJ;IACC,MAAM,aAAa,GAAG,MAAM,GAAG,EAAE,aAAa,CAAC;IAE/C,IAAI,CAAC,aAAa;QAAE,OAAO;IAE3B,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAEhD,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;QACxC,OAAO,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAEvC,OAAO;IACT,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,EACjC,OAAO,EACP,IAAI,GAIL;IACC,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,IAAI,GAA2B,EAAE,CAAC;IACxC,MAAM,KAAK,GAA4B,EAAE,CAAC;IAC1C,MAAM,SAAS,GAA4B,EAAE,CAAC;IAC9C,MAAM,KAAK,GAA4B,EAAE,CAAC;IAE1C,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IAExF,MAAM,MAAM,GAA4C,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAEvE,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACnF,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM;YAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;IAC5D,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"sources":["../src/jobModel.ts"],"names":["transform","getJobModel","adapter","collection","payload","collections","Model","Error","fields","config","getJobSession","req","transactionID","session","sessions","inTransaction","transformJobUpdate","data","$inc","$push","$addToSet","$pull","operation","update","$set","operator","values","Object","entries","keys","length"],"mappings":"AACA,SAASA,SAAS,QAAQ,kCAAkC;AAE5D,OAAO,SAASC,YAAYC,OAAwB;IAClD,MAAMC,aAAaD,QAAQE,OAAO,CAACC,WAAW,CAAC,eAAe;IAC9D,MAAMC,QAAQJ,QAAQG,WAAW,CAAC,eAAe;IAEjD,IAAI,CAACF,cAAc,CAACG,OAAO,MAAM,IAAIC,MAAM;IAE3C,OAAO;QAAEC,QAAQL,WAAWM,MAAM,CAACD,MAAM;QAAEF;IAAM;AACnD;AAEA,OAAO,eAAeI,cAAc,EAClCR,OAAO,EACPS,GAAG,EAIJ;IACC,MAAMC,gBAAgB,MAAMD,KAAKC;IAEjC,IAAI,CAACA,eAAe;IAEpB,MAAMC,UAAUX,QAAQY,QAAQ,CAACF,cAAc;IAE/C,IAAIC,WAAW,CAACA,QAAQE,aAAa,IAAI;QACvC,OAAOb,QAAQY,QAAQ,CAACF,cAAc;QAEtC;IACF;IAEA,OAAOC;AACT;AAEA,OAAO,SAASG,mBAAmB,EACjCd,OAAO,EACPe,IAAI,EAIL;IACC,MAAM,EAAET,MAAM,EAAE,GAAGP,YAAYC;IAC/B,MAAMgB,OAA+B,CAAC;IACtC,MAAMC,QAAiC,CAAC;IACxC,MAAMC,YAAqC,CAAC;IAC5C,MAAMC,QAAiC,CAAC;IAExCrB,UAAU;QAAEE;QAASe;QAAMT;QAAQc,WAAW;QAASJ;QAAMC;QAAOC;QAAWC;IAAM;IAErF,MAAME,SAAkD;QAAEC,MAAMP;IAAK;IAErE,KAAK,MAAM,CAACQ,UAAUC,OAAO,IAAIC,OAAOC,OAAO,CAAC;QAAEV;QAAMC;QAAOC;QAAWC;IAAM,GAAI;QAClF,IAAIM,OAAOE,IAAI,CAACH,QAAQI,MAAM,EAAEP,MAAM,CAACE,SAAS,GAAGC;IACrD;IAEA,OAAOH;AACT","file":"jobModel.js"}
@@ -1,25 +1,31 @@
1
1
  import { buildSearchIndexes } from './buildSearchIndexes.js';
2
2
  import { ensureSearchIndexes } from './ensureSearchIndexes.js';
3
3
  import { setSearchIndexes } from './getSearchIndexes.js';
4
- export const buildSchema = ({ collections, db }) => {
4
+ export const buildSchema = ({ collections, db })=>{
5
5
  const adapter = db;
6
- const indexes = collections.flatMap(({ slug, search }) => Object.values(search).flatMap((index) => buildSearchIndexes({ adapter, collection: slug, index })));
7
- setSearchIndexes({ adapter, indexes });
6
+ const indexes = collections.flatMap(({ slug, search })=>Object.values(search).flatMap((index)=>buildSearchIndexes({
7
+ adapter,
8
+ collection: slug,
9
+ index
10
+ })));
11
+ setSearchIndexes({
12
+ adapter,
13
+ indexes
14
+ });
8
15
  const { connect } = adapter;
9
- adapter.connect = async (options) => {
16
+ adapter.connect = async (options)=>{
10
17
  await connect?.call(adapter, options);
11
- if (options?.hotReload || adapter.url === false)
12
- return;
18
+ if (options?.hotReload || adapter.url === false) return;
13
19
  try {
14
20
  await ensureSearchIndexes({
15
21
  adapter,
16
- dropped: process.env.PAYLOAD_DROP_DATABASE === 'true',
22
+ dropped: process.env.PAYLOAD_DROP_DATABASE === 'true'
17
23
  });
18
- }
19
- catch (error) {
24
+ } catch (error) {
20
25
  await adapter.destroy?.();
21
26
  throw error;
22
27
  }
23
28
  };
24
29
  };
30
+
25
31
  //# sourceMappingURL=buildSchema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"buildSchema.js","sourceRoot":"","sources":["../../src/search/buildSchema.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,CAAC,MAAM,WAAW,GAAsB,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE;IACpE,MAAM,OAAO,GAAG,EAAqB,CAAC;IAEtC,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CACvD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CACtC,kBAAkB,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CACzD,CACF,CAAC;IAEF,gBAAgB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAEvC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAE5B,OAAO,CAAC,OAAO,GAAG,KAAK,EAAE,OAAO,EAAE,EAAE;QAClC,MAAM,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAEtC,IAAI,OAAO,EAAE,SAAS,IAAI,OAAO,CAAC,GAAG,KAAK,KAAK;YAAE,OAAO;QAExD,IAAI,CAAC;YACH,MAAM,mBAAmB,CAAC;gBACxB,OAAO;gBACP,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,MAAM;aACtD,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YAE1B,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"sources":["../../src/search/buildSchema.ts"],"names":["buildSearchIndexes","ensureSearchIndexes","setSearchIndexes","buildSchema","collections","db","adapter","indexes","flatMap","slug","search","Object","values","index","collection","connect","options","call","hotReload","url","dropped","process","env","PAYLOAD_DROP_DATABASE","error","destroy"],"mappings":"AAGA,SAASA,kBAAkB,QAAQ,0BAA0B;AAC7D,SAASC,mBAAmB,QAAQ,2BAA2B;AAC/D,SAASC,gBAAgB,QAAQ,wBAAwB;AAEzD,OAAO,MAAMC,cAAiC,CAAC,EAAEC,WAAW,EAAEC,EAAE,EAAE;IAChE,MAAMC,UAAUD;IAEhB,MAAME,UAAUH,YAAYI,OAAO,CAAC,CAAC,EAAEC,IAAI,EAAEC,MAAM,EAAE,GACnDC,OAAOC,MAAM,CAACF,QAAQF,OAAO,CAAC,CAACK,QAC7Bb,mBAAmB;gBAAEM;gBAASQ,YAAYL;gBAAMI;YAAM;IAI1DX,iBAAiB;QAAEI;QAASC;IAAQ;IAEpC,MAAM,EAAEQ,OAAO,EAAE,GAAGT;IAEpBA,QAAQS,OAAO,GAAG,OAAOC;QACvB,MAAMD,SAASE,KAAKX,SAASU;QAE7B,IAAIA,SAASE,aAAaZ,QAAQa,GAAG,KAAK,OAAO;QAEjD,IAAI;YACF,MAAMlB,oBAAoB;gBACxBK;gBACAc,SAASC,QAAQC,GAAG,CAACC,qBAAqB,KAAK;YACjD;QACF,EAAE,OAAOC,OAAO;YACd,MAAMlB,QAAQmB,OAAO;YAErB,MAAMD;QACR;IACF;AACF,EAAE","file":"buildSchema.js"}
@@ -1,119 +1,199 @@
1
- import { getIDFieldType, getSearchFields, getSearchLocales, getSearchPath, } from './getSearchPath.js';
1
+ import { getIDFieldType, getSearchFields, getSearchLocales, getSearchPath } from './getSearchPath.js';
2
2
  const filterFieldTypes = {
3
3
  boolean: 'boolean',
4
4
  date: 'date',
5
5
  number: 'number',
6
- string: 'token',
6
+ string: 'token'
7
7
  };
8
8
  function getSearchIndexName({ index, mode }) {
9
9
  return `${index}_${mode}`;
10
10
  }
11
- function getFilterFields({ adapter, collection, index, versions, }) {
12
- const fields = getSearchFields({ adapter, collection, versions });
11
+ function getFilterFields({ adapter, collection, index, versions }) {
12
+ const fields = getSearchFields({
13
+ adapter,
14
+ collection,
15
+ versions
16
+ });
13
17
  const filters = new Map();
14
- if (versions)
15
- filters.set('latest', 'boolean');
16
- for (const filter of Object.values(index.filterFields)) {
17
- if (filter.many)
18
- continue;
19
- for (const locale of getSearchLocales(adapter)) {
18
+ if (versions) filters.set('latest', 'boolean');
19
+ for (const filter of Object.values(index.filterFields)){
20
+ if (filter.many) continue;
21
+ for (const locale of getSearchLocales(adapter)){
20
22
  const { field, path } = getSearchPath({
21
23
  adapter,
22
24
  collection,
23
25
  fields,
24
26
  locale,
25
27
  path: filter.path,
26
- versions,
28
+ versions
27
29
  });
28
- const relationTo = field && 'relationTo' in field && typeof field.relationTo === 'string'
29
- ? field.relationTo
30
- : collection;
31
- filters.set(path, filter.type === 'id'
32
- ? getIDFieldType({ adapter, collection: relationTo })
33
- : filterFieldTypes[filter.type]);
30
+ const relationTo = field && 'relationTo' in field && typeof field.relationTo === 'string' ? field.relationTo : collection;
31
+ filters.set(path, filter.type === 'id' ? getIDFieldType({
32
+ adapter,
33
+ collection: relationTo
34
+ }) : filterFieldTypes[filter.type]);
34
35
  }
35
36
  }
36
37
  return filters;
37
38
  }
38
- function getPaths({ adapter, collection, path, versions, }) {
39
- const fields = getSearchFields({ adapter, collection, versions });
40
- const paths = getSearchLocales(adapter).map((locale) => getSearchPath({ adapter, collection, fields, locale, path, versions }).path);
41
- return [...new Set(paths)];
39
+ function getPaths({ adapter, collection, path, versions }) {
40
+ const fields = getSearchFields({
41
+ adapter,
42
+ collection,
43
+ versions
44
+ });
45
+ const paths = getSearchLocales(adapter).map((locale)=>getSearchPath({
46
+ adapter,
47
+ collection,
48
+ fields,
49
+ locale,
50
+ path,
51
+ versions
52
+ }).path);
53
+ return [
54
+ ...new Set(paths)
55
+ ];
42
56
  }
43
- function setFieldMapping({ fields, mapping, path, }) {
57
+ function setFieldMapping({ fields, mapping, path }) {
44
58
  const [segment, ...rest] = path;
45
59
  if (!rest.length) {
46
60
  const existing = fields[segment];
47
- fields[segment] = existing
48
- ? [...(Array.isArray(existing) ? existing : [existing]), mapping]
49
- : mapping;
61
+ fields[segment] = existing ? [
62
+ ...Array.isArray(existing) ? existing : [
63
+ existing
64
+ ],
65
+ mapping
66
+ ] : mapping;
50
67
  return;
51
68
  }
52
- fields[segment] ??= { type: 'document', dynamic: false, fields: {} };
69
+ fields[segment] ??= {
70
+ type: 'document',
71
+ dynamic: false,
72
+ fields: {}
73
+ };
53
74
  setFieldMapping({
54
75
  fields: fields[segment].fields,
55
76
  mapping,
56
- path: rest,
77
+ path: rest
57
78
  });
58
79
  }
59
- function buildLexicalDefinition({ filters, index, textPaths, }) {
80
+ function buildLexicalDefinition({ filters, index, textPaths }) {
60
81
  const fields = {};
61
82
  const language = index.lexical?.language;
62
- for (const path of textPaths) {
83
+ for (const path of textPaths){
63
84
  setFieldMapping({
64
85
  fields,
65
- mapping: { type: 'string', analyzer: `lucene.${language ?? 'standard'}` },
66
- path: path.split('.'),
86
+ mapping: {
87
+ type: 'string',
88
+ analyzer: `lucene.${language ?? 'standard'}`
89
+ },
90
+ path: path.split('.')
67
91
  });
68
92
  }
69
- for (const [path, type] of filters) {
70
- setFieldMapping({ fields, mapping: { type }, path: path.split('.') });
93
+ for (const [path, type] of filters){
94
+ setFieldMapping({
95
+ fields,
96
+ mapping: {
97
+ type
98
+ },
99
+ path: path.split('.')
100
+ });
71
101
  }
72
- return { mappings: { dynamic: false, fields } };
102
+ return {
103
+ mappings: {
104
+ dynamic: false,
105
+ fields
106
+ }
107
+ };
73
108
  }
74
- function buildVectorDefinition({ filters, index, vectorPaths, }) {
75
- const vectors = vectorPaths.map((path) => ({
76
- type: 'vector',
77
- path,
78
- numDimensions: index.vector.dimensions,
79
- similarity: index.vector.metric,
80
- }));
81
- const filterPaths = [...filters.keys()].sort().map((path) => ({ type: 'filter', path }));
82
- return { fields: [...vectors, ...filterPaths] };
109
+ function buildVectorDefinition({ filters, index, vectorPaths }) {
110
+ const vectors = vectorPaths.map((path)=>({
111
+ type: 'vector',
112
+ path,
113
+ numDimensions: index.vector.dimensions,
114
+ similarity: index.vector.metric
115
+ }));
116
+ const filterPaths = [
117
+ ...filters.keys()
118
+ ].sort().map((path)=>({
119
+ type: 'filter',
120
+ path
121
+ }));
122
+ return {
123
+ fields: [
124
+ ...vectors,
125
+ ...filterPaths
126
+ ]
127
+ };
83
128
  }
84
- export function buildSearchIndexes({ adapter, collection, index, }) {
129
+ export function buildSearchIndexes({ adapter, collection, index }) {
85
130
  const { config } = adapter.payload.collections[collection];
86
- const targets = config.versions?.drafts ? [false, true] : [false];
87
- return targets.flatMap((versions) => {
88
- const filters = getFilterFields({ adapter, collection, index, versions });
131
+ const targets = config.versions?.drafts ? [
132
+ false,
133
+ true
134
+ ] : [
135
+ false
136
+ ];
137
+ return targets.flatMap((versions)=>{
138
+ const filters = getFilterFields({
139
+ adapter,
140
+ collection,
141
+ index,
142
+ versions
143
+ });
89
144
  const models = [];
90
145
  if (index.lexical) {
91
- const textPaths = index.lexical.fields.flatMap(({ path }) => getPaths({ adapter, collection, path, versions }));
146
+ const textPaths = index.lexical.fields.flatMap(({ path })=>getPaths({
147
+ adapter,
148
+ collection,
149
+ path,
150
+ versions
151
+ }));
92
152
  models.push({
93
153
  collection,
94
- definition: buildLexicalDefinition({ filters, index, textPaths }),
154
+ definition: buildLexicalDefinition({
155
+ filters,
156
+ index,
157
+ textPaths
158
+ }),
95
159
  fields: filters,
96
160
  index: index.name,
97
161
  mode: 'lexical',
98
- name: getSearchIndexName({ index: index.name, mode: 'lexical' }),
162
+ name: getSearchIndexName({
163
+ index: index.name,
164
+ mode: 'lexical'
165
+ }),
99
166
  type: 'search',
100
- versions,
167
+ versions
101
168
  });
102
169
  }
103
170
  if (index.vector) {
104
- const vectorPaths = getPaths({ adapter, collection, path: index.vector.path, versions });
171
+ const vectorPaths = getPaths({
172
+ adapter,
173
+ collection,
174
+ path: index.vector.path,
175
+ versions
176
+ });
105
177
  models.push({
106
178
  collection,
107
- definition: buildVectorDefinition({ filters, index, vectorPaths }),
179
+ definition: buildVectorDefinition({
180
+ filters,
181
+ index,
182
+ vectorPaths
183
+ }),
108
184
  fields: filters,
109
185
  index: index.name,
110
186
  mode: 'vector',
111
- name: getSearchIndexName({ index: index.name, mode: 'vector' }),
187
+ name: getSearchIndexName({
188
+ index: index.name,
189
+ mode: 'vector'
190
+ }),
112
191
  type: 'vectorSearch',
113
- versions,
192
+ versions
114
193
  });
115
194
  }
116
195
  return models;
117
196
  });
118
197
  }
198
+
119
199
  //# sourceMappingURL=buildSearchIndexes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"buildSearchIndexes.js","sourceRoot":"","sources":["../../src/search/buildSearchIndexes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/search/buildSearchIndexes.ts"],"names":["getIDFieldType","getSearchFields","getSearchLocales","getSearchPath","filterFieldTypes","boolean","date","number","string","getSearchIndexName","index","mode","getFilterFields","adapter","collection","versions","fields","filters","Map","set","filter","Object","values","filterFields","many","locale","field","path","relationTo","type","getPaths","paths","map","Set","setFieldMapping","mapping","segment","rest","length","existing","Array","isArray","dynamic","buildLexicalDefinition","textPaths","language","lexical","analyzer","split","mappings","buildVectorDefinition","vectorPaths","vectors","numDimensions","vector","dimensions","similarity","metric","filterPaths","keys","sort","buildSearchIndexes","config","payload","collections","targets","drafts","flatMap","models","push","definition","name"],"mappings":"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","file":"buildSearchIndexes.js"}