@frogbotai/db-mongodb 0.29.0 → 0.31.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 +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -5
- package/dist/index.js.map +1 -1
- package/dist/jobIndexes.js +20 -12
- package/dist/jobIndexes.js.map +1 -1
- package/dist/jobLogs.js +35 -4
- package/dist/jobLogs.js.map +1 -1
- package/dist/jobModel.d.ts +3 -2
- package/dist/jobModel.d.ts.map +1 -1
- package/dist/jobModel.js +29 -12
- package/dist/jobModel.js.map +1 -1
- package/dist/search/buildSchema.js +15 -9
- package/dist/search/buildSchema.js.map +1 -1
- package/dist/search/buildSearchIndexes.js +135 -55
- package/dist/search/buildSearchIndexes.js.map +1 -1
- package/dist/search/capabilities.js +12 -15
- package/dist/search/capabilities.js.map +1 -1
- package/dist/search/createSearchSetupError.js +12 -5
- package/dist/search/createSearchSetupError.js.map +1 -1
- package/dist/search/ensureSearchIndexes.js +35 -20
- package/dist/search/ensureSearchIndexes.js.map +1 -1
- package/dist/search/findSearchIndex.js +3 -2
- package/dist/search/findSearchIndex.js.map +1 -1
- package/dist/search/getSearchIndexes.js +2 -1
- package/dist/search/getSearchIndexes.js.map +1 -1
- package/dist/search/getSearchModel.d.ts +0 -1
- package/dist/search/getSearchModel.d.ts.map +1 -1
- package/dist/search/getSearchModel.js +2 -1
- package/dist/search/getSearchModel.js.map +1 -1
- package/dist/search/getSearchPath.js +17 -13
- package/dist/search/getSearchPath.js.map +1 -1
- package/dist/search/index.js +2 -1
- package/dist/search/index.js.map +1 -1
- package/dist/search/isDraftSearch.js +2 -1
- package/dist/search/isDraftSearch.js.map +1 -1
- package/dist/search/isSearchIndexDefinitionEqual.js +26 -19
- package/dist/search/isSearchIndexDefinitionEqual.js.map +1 -1
- package/dist/search/pipelines/buildHybridPipeline.js +147 -40
- package/dist/search/pipelines/buildHybridPipeline.js.map +1 -1
- package/dist/search/pipelines/buildSearchStage.js +17 -5
- package/dist/search/pipelines/buildSearchStage.js.map +1 -1
- package/dist/search/pipelines/buildVectorScore.js +24 -4
- package/dist/search/pipelines/buildVectorScore.js.map +1 -1
- package/dist/search/pipelines/buildVectorSearchStage.js +15 -7
- package/dist/search/pipelines/buildVectorSearchStage.js.map +1 -1
- package/dist/search/queries/buildSearchFilter.js +13 -6
- package/dist/search/queries/buildSearchFilter.js.map +1 -1
- package/dist/search/queries/buildSearchOperator.js +41 -8
- package/dist/search/queries/buildSearchOperator.js.map +1 -1
- package/dist/search/queries/buildVectorSearchFilter.js +32 -8
- package/dist/search/queries/buildVectorSearchFilter.js.map +1 -1
- package/dist/search/queries/parseSearchFilter.js +125 -56
- package/dist/search/queries/parseSearchFilter.js.map +1 -1
- package/dist/search/readiness.js +23 -12
- package/dist/search/readiness.js.map +1 -1
- package/dist/search/search.d.ts.map +1 -1
- package/dist/search/search.js +181 -77
- package/dist/search/search.js.map +1 -1
- package/dist/search/supportsRankFusion.d.ts.map +1 -1
- package/dist/search/supportsRankFusion.js +29 -10
- package/dist/search/supportsRankFusion.js.map +1 -1
- package/dist/search/types.js +2 -1
- package/dist/search/types.js.map +1 -1
- package/dist/updateJobLeases.js +20 -5
- package/dist/updateJobLeases.js.map +1 -1
- package/dist/updateJobs.js +79 -30
- package/dist/updateJobs.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
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"}
|
|
@@ -42,27 +42,24 @@ const languages = new Set([
|
|
|
42
42
|
'swedish',
|
|
43
43
|
'thai',
|
|
44
44
|
'turkish',
|
|
45
|
-
'ukrainian'
|
|
45
|
+
'ukrainian'
|
|
46
46
|
]);
|
|
47
|
-
export const capabilities = ({ index })
|
|
47
|
+
export const capabilities = ({ index })=>{
|
|
48
48
|
const language = index.lexical?.language;
|
|
49
49
|
const dimensions = index.vector?.dimensions ?? 0;
|
|
50
|
-
const lexical = language && !languages.has(language)
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
: '
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
unsupported: 'engine-gap',
|
|
59
|
-
detail: `MongoDB vector search indexes support at most ${maxVectorDimensions} dimensions.`,
|
|
60
|
-
}
|
|
61
|
-
: 'supported';
|
|
50
|
+
const lexical = language && !languages.has(language) ? {
|
|
51
|
+
unsupported: 'engine-gap',
|
|
52
|
+
detail: `MongoDB search has no built-in analyzer for the '${language}' language.`
|
|
53
|
+
} : 'supported';
|
|
54
|
+
const vector = dimensions > maxVectorDimensions ? {
|
|
55
|
+
unsupported: 'engine-gap',
|
|
56
|
+
detail: `MongoDB vector search indexes support at most ${maxVectorDimensions} dimensions.`
|
|
57
|
+
} : 'supported';
|
|
62
58
|
return {
|
|
63
59
|
lexical,
|
|
64
60
|
vector,
|
|
65
|
-
hybrid: lexical === 'supported' ? vector : lexical
|
|
61
|
+
hybrid: lexical === 'supported' ? vector : lexical
|
|
66
62
|
};
|
|
67
63
|
};
|
|
64
|
+
|
|
68
65
|
//# sourceMappingURL=capabilities.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/search/capabilities.ts"],"names":["maxVectorDimensions","languages","Set","capabilities","index","language","lexical","dimensions","vector","has","unsupported","detail","hybrid"],"mappings":"AAEA,MAAMA,sBAAsB;AAE5B,MAAMC,YAAY,IAAIC,IAAI;IACxB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACD;AAED,OAAO,MAAMC,eAAmC,CAAC,EAAEC,KAAK,EAAE;IACxD,MAAMC,WAAWD,MAAME,OAAO,EAAED;IAChC,MAAME,aAAaH,MAAMI,MAAM,EAAED,cAAc;IAE/C,MAAMD,UACJD,YAAY,CAACJ,UAAUQ,GAAG,CAACJ,YACvB;QACEK,aAAa;QACbC,QAAQ,CAAC,iDAAiD,EAAEN,SAAS,WAAW,CAAC;IACnF,IACA;IAEN,MAAMG,SACJD,aAAaP,sBACT;QACEU,aAAa;QACbC,QAAQ,CAAC,8CAA8C,EAAEX,oBAAoB,YAAY,CAAC;IAC5F,IACA;IAEN,OAAO;QACLM;QACAE;QACAI,QAAQN,YAAY,cAAcE,SAASF;IAC7C;AACF,EAAE","file":"capabilities.js"}
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { SearchCapabilityError } from 'frogbot/search';
|
|
2
|
-
const missingPrerequisiteCodes = new Set([
|
|
3
|
-
|
|
2
|
+
const missingPrerequisiteCodes = new Set([
|
|
3
|
+
59,
|
|
4
|
+
115,
|
|
5
|
+
31082,
|
|
6
|
+
40324
|
|
7
|
+
]);
|
|
8
|
+
const permissionDeniedCodes = new Set([
|
|
9
|
+
13
|
|
10
|
+
]);
|
|
4
11
|
const atlasErrorCode = 8000;
|
|
5
12
|
const permissionDeniedMessage = /not (allowed|authorized)|unauthorized/i;
|
|
6
13
|
export function getErrorCode(error) {
|
|
@@ -9,17 +16,17 @@ export function getErrorCode(error) {
|
|
|
9
16
|
function getErrorMessage(error) {
|
|
10
17
|
return error instanceof Error ? error.message : String(error);
|
|
11
18
|
}
|
|
12
|
-
export function createSearchSetupError({ error, searchIndex
|
|
19
|
+
export function createSearchSetupError({ error, searchIndex }) {
|
|
13
20
|
const code = getErrorCode(error);
|
|
14
21
|
const message = getErrorMessage(error);
|
|
15
22
|
if (typeof code === 'number' && missingPrerequisiteCodes.has(code)) {
|
|
16
23
|
return new SearchCapabilityError(searchIndex.collection, searchIndex.index, searchIndex.mode, 'missing-prerequisite', `search-infrastructure: MongoDB search requires Atlas or a deployment running mongot. ${message}`);
|
|
17
24
|
}
|
|
18
|
-
const permissionDenied =
|
|
19
|
-
(code === atlasErrorCode && permissionDeniedMessage.test(message));
|
|
25
|
+
const permissionDenied = typeof code === 'number' && permissionDeniedCodes.has(code) || code === atlasErrorCode && permissionDeniedMessage.test(message);
|
|
20
26
|
if (permissionDenied) {
|
|
21
27
|
return new SearchCapabilityError(searchIndex.collection, searchIndex.index, searchIndex.mode, 'permission-denied', `The database user cannot manage search index '${searchIndex.name}'. ${message}`);
|
|
22
28
|
}
|
|
23
29
|
return new SearchCapabilityError(searchIndex.collection, searchIndex.index, searchIndex.mode, 'setup-failed', `Search index '${searchIndex.name}' could not be reconciled. ${message}`);
|
|
24
30
|
}
|
|
31
|
+
|
|
25
32
|
//# sourceMappingURL=createSearchSetupError.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/search/createSearchSetupError.ts"],"names":["SearchCapabilityError","missingPrerequisiteCodes","Set","permissionDeniedCodes","atlasErrorCode","permissionDeniedMessage","getErrorCode","error","code","undefined","getErrorMessage","Error","message","String","createSearchSetupError","searchIndex","has","collection","index","mode","permissionDenied","test","name"],"mappings":"AAAA,SAASA,qBAAqB,QAAQ,iBAAiB;AAIvD,MAAMC,2BAA2B,IAAIC,IAAI;IAAC;IAAI;IAAK;IAAO;CAAM;AAEhE,MAAMC,wBAAwB,IAAID,IAAI;IAAC;CAAG;AAE1C,MAAME,iBAAiB;AAEvB,MAAMC,0BAA0B;AAEhC,OAAO,SAASC,aAAaC,KAAc;IACzC,OAAOA,SAAS,OAAOA,UAAU,YAAY,UAAUA,QAAQA,MAAMC,IAAI,GAAGC;AAC9E;AAEA,SAASC,gBAAgBH,KAAc;IACrC,OAAOA,iBAAiBI,QAAQJ,MAAMK,OAAO,GAAGC,OAAON;AACzD;AAEA,OAAO,SAASO,uBAAuB,EACrCP,KAAK,EACLQ,WAAW,EAIZ;IACC,MAAMP,OAAOF,aAAaC;IAC1B,MAAMK,UAAUF,gBAAgBH;IAEhC,IAAI,OAAOC,SAAS,YAAYP,yBAAyBe,GAAG,CAACR,OAAO;QAClE,OAAO,IAAIR,sBACTe,YAAYE,UAAU,EACtBF,YAAYG,KAAK,EACjBH,YAAYI,IAAI,EAChB,wBACA,CAAC,qFAAqF,EAAEP,SAAS;IAErG;IAEA,MAAMQ,mBACJ,AAAC,OAAOZ,SAAS,YAAYL,sBAAsBa,GAAG,CAACR,SACtDA,SAASJ,kBAAkBC,wBAAwBgB,IAAI,CAACT;IAE3D,IAAIQ,kBAAkB;QACpB,OAAO,IAAIpB,sBACTe,YAAYE,UAAU,EACtBF,YAAYG,KAAK,EACjBH,YAAYI,IAAI,EAChB,qBACA,CAAC,8CAA8C,EAAEJ,YAAYO,IAAI,CAAC,GAAG,EAAEV,SAAS;IAEpF;IAEA,OAAO,IAAIZ,sBACTe,YAAYE,UAAU,EACtBF,YAAYG,KAAK,EACjBH,YAAYI,IAAI,EAChB,gBACA,CAAC,cAAc,EAAEJ,YAAYO,IAAI,CAAC,2BAA2B,EAAEV,SAAS;AAE5E","file":"createSearchSetupError.js"}
|
|
@@ -6,32 +6,42 @@ import { getSearchModel } from './getSearchModel.js';
|
|
|
6
6
|
import { isSearchIndexDefinitionEqual } from './isSearchIndexDefinitionEqual.js';
|
|
7
7
|
const droppedIndexTimeout = 60000;
|
|
8
8
|
const droppedIndexInterval = 500;
|
|
9
|
-
async function findCurrentSearchIndex({ dropped, Model, name
|
|
9
|
+
async function findCurrentSearchIndex({ dropped, Model, name }) {
|
|
10
10
|
const started = Date.now();
|
|
11
|
-
let existing = await findSearchIndex({
|
|
12
|
-
|
|
11
|
+
let existing = await findSearchIndex({
|
|
12
|
+
Model,
|
|
13
|
+
name
|
|
14
|
+
});
|
|
15
|
+
while(dropped && existing){
|
|
13
16
|
if (Date.now() - started > droppedIndexTimeout) {
|
|
14
17
|
throw new Error(`Search index '${name}' from the dropped database was not removed in time.`);
|
|
15
18
|
}
|
|
16
|
-
await new Promise((resolve)
|
|
17
|
-
existing = await findSearchIndex({
|
|
19
|
+
await new Promise((resolve)=>setTimeout(resolve, droppedIndexInterval));
|
|
20
|
+
existing = await findSearchIndex({
|
|
21
|
+
Model,
|
|
22
|
+
name
|
|
23
|
+
});
|
|
18
24
|
}
|
|
19
25
|
return existing;
|
|
20
26
|
}
|
|
21
|
-
async function ensureSearchIndex({ adapter, dropped, searchIndex
|
|
27
|
+
async function ensureSearchIndex({ adapter, dropped, searchIndex }) {
|
|
22
28
|
const Model = getSearchModel({
|
|
23
29
|
adapter,
|
|
24
30
|
collection: searchIndex.collection,
|
|
25
|
-
versions: searchIndex.versions
|
|
31
|
+
versions: searchIndex.versions
|
|
26
32
|
});
|
|
27
33
|
await Model.createCollection();
|
|
28
|
-
const existing = await findCurrentSearchIndex({
|
|
34
|
+
const existing = await findCurrentSearchIndex({
|
|
35
|
+
dropped,
|
|
36
|
+
Model,
|
|
37
|
+
name: searchIndex.name
|
|
38
|
+
});
|
|
29
39
|
if (!existing) {
|
|
30
40
|
adapter.payload.logger.info(`Creating search index '${searchIndex.name}' on '${Model.collection.name}'.`);
|
|
31
41
|
await Model.createSearchIndex({
|
|
32
42
|
name: searchIndex.name,
|
|
33
43
|
type: searchIndex.type,
|
|
34
|
-
definition: searchIndex.definition
|
|
44
|
+
definition: searchIndex.definition
|
|
35
45
|
});
|
|
36
46
|
return;
|
|
37
47
|
}
|
|
@@ -40,26 +50,31 @@ async function ensureSearchIndex({ adapter, dropped, searchIndex, }) {
|
|
|
40
50
|
}
|
|
41
51
|
const current = isSearchIndexDefinitionEqual({
|
|
42
52
|
actual: existing.latestDefinition,
|
|
43
|
-
expected: searchIndex.definition
|
|
53
|
+
expected: searchIndex.definition
|
|
44
54
|
});
|
|
45
55
|
if (current && existing.status === 'FAILED') {
|
|
46
56
|
throw new SearchCapabilityError(searchIndex.collection, searchIndex.index, searchIndex.mode, 'setup-failed', `Search index '${searchIndex.name}' failed to build. Drop it after fixing the cause so it is recreated.`);
|
|
47
57
|
}
|
|
48
|
-
if (current)
|
|
49
|
-
return;
|
|
58
|
+
if (current) return;
|
|
50
59
|
adapter.payload.logger.info(`Updating search index '${searchIndex.name}' on '${Model.collection.name}'.`);
|
|
51
60
|
await Model.updateSearchIndex(searchIndex.name, searchIndex.definition);
|
|
52
61
|
}
|
|
53
|
-
export async function ensureSearchIndexes({ adapter, dropped = false
|
|
54
|
-
for (const searchIndex of getSearchIndexes(adapter))
|
|
62
|
+
export async function ensureSearchIndexes({ adapter, dropped = false }) {
|
|
63
|
+
for (const searchIndex of getSearchIndexes(adapter)){
|
|
55
64
|
try {
|
|
56
|
-
await ensureSearchIndex({
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
65
|
+
await ensureSearchIndex({
|
|
66
|
+
adapter,
|
|
67
|
+
dropped,
|
|
68
|
+
searchIndex
|
|
69
|
+
});
|
|
70
|
+
} catch (error) {
|
|
71
|
+
if (error instanceof SearchCapabilityError) throw error;
|
|
72
|
+
throw createSearchSetupError({
|
|
73
|
+
error,
|
|
74
|
+
searchIndex
|
|
75
|
+
});
|
|
62
76
|
}
|
|
63
77
|
}
|
|
64
78
|
}
|
|
79
|
+
|
|
65
80
|
//# sourceMappingURL=ensureSearchIndexes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/search/ensureSearchIndexes.ts"],"names":["SearchCapabilityError","createSearchSetupError","findSearchIndex","getSearchIndexes","getSearchModel","isSearchIndexDefinitionEqual","droppedIndexTimeout","droppedIndexInterval","findCurrentSearchIndex","dropped","Model","name","started","Date","now","existing","Error","Promise","resolve","setTimeout","ensureSearchIndex","adapter","searchIndex","collection","versions","createCollection","payload","logger","info","createSearchIndex","type","definition","index","mode","current","actual","latestDefinition","expected","status","updateSearchIndex","ensureSearchIndexes","error"],"mappings":"AACA,SAASA,qBAAqB,QAAQ,iBAAiB;AAEvD,SAASC,sBAAsB,QAAQ,8BAA8B;AAErE,SAASC,eAAe,QAAQ,uBAAuB;AACvD,SAASC,gBAAgB,QAAQ,wBAAwB;AAEzD,SAASC,cAAc,QAAQ,sBAAsB;AACrD,SAASC,4BAA4B,QAAQ,oCAAoC;AAGjF,MAAMC,sBAAsB;AAE5B,MAAMC,uBAAuB;AAE7B,eAAeC,uBAAuB,EACpCC,OAAO,EACPC,KAAK,EACLC,IAAI,EAKL;IACC,MAAMC,UAAUC,KAAKC,GAAG;IACxB,IAAIC,WAAW,MAAMb,gBAAgB;QAAEQ;QAAOC;IAAK;IAEnD,MAAOF,WAAWM,SAAU;QAC1B,IAAIF,KAAKC,GAAG,KAAKF,UAAUN,qBAAqB;YAC9C,MAAM,IAAIU,MAAM,CAAC,cAAc,EAAEL,KAAK,oDAAoD,CAAC;QAC7F;QAEA,MAAM,IAAIM,QAAQ,CAACC,UAAYC,WAAWD,SAASX;QAEnDQ,WAAW,MAAMb,gBAAgB;YAAEQ;YAAOC;QAAK;IACjD;IAEA,OAAOI;AACT;AAEA,eAAeK,kBAAkB,EAC/BC,OAAO,EACPZ,OAAO,EACPa,WAAW,EAKZ;IACC,MAAMZ,QAAQN,eAAe;QAC3BiB;QACAE,YAAYD,YAAYC,UAAU;QAClCC,UAAUF,YAAYE,QAAQ;IAChC;IAEA,MAAMd,MAAMe,gBAAgB;IAE5B,MAAMV,WAAW,MAAMP,uBAAuB;QAAEC;QAASC;QAAOC,MAAMW,YAAYX,IAAI;IAAC;IAEvF,IAAI,CAACI,UAAU;QACbM,QAAQK,OAAO,CAACC,MAAM,CAACC,IAAI,CACzB,CAAC,uBAAuB,EAAEN,YAAYX,IAAI,CAAC,MAAM,EAAED,MAAMa,UAAU,CAACZ,IAAI,CAAC,EAAE,CAAC;QAG9E,MAAMD,MAAMmB,iBAAiB,CAAC;YAC5BlB,MAAMW,YAAYX,IAAI;YACtBmB,MAAMR,YAAYQ,IAAI;YACtBC,YAAYT,YAAYS,UAAU;QACpC;QAEA;IACF;IAEA,IAAIhB,SAASe,IAAI,KAAKR,YAAYQ,IAAI,EAAE;QACtC,MAAM,IAAI9B,sBACRsB,YAAYC,UAAU,EACtBD,YAAYU,KAAK,EACjBV,YAAYW,IAAI,EAChB,gBACA,CAAC,cAAc,EAAEX,YAAYX,IAAI,CAAC,4BAA4B,EAAEI,SAASe,IAAI,CAAC,EAAE,CAAC;IAErF;IAEA,MAAMI,UAAU7B,6BAA6B;QAC3C8B,QAAQpB,SAASqB,gBAAgB;QACjCC,UAAUf,YAAYS,UAAU;IAClC;IAEA,IAAIG,WAAWnB,SAASuB,MAAM,KAAK,UAAU;QAC3C,MAAM,IAAItC,sBACRsB,YAAYC,UAAU,EACtBD,YAAYU,KAAK,EACjBV,YAAYW,IAAI,EAChB,gBACA,CAAC,cAAc,EAAEX,YAAYX,IAAI,CAAC,qEAAqE,CAAC;IAE5G;IAEA,IAAIuB,SAAS;IAEbb,QAAQK,OAAO,CAACC,MAAM,CAACC,IAAI,CACzB,CAAC,uBAAuB,EAAEN,YAAYX,IAAI,CAAC,MAAM,EAAED,MAAMa,UAAU,CAACZ,IAAI,CAAC,EAAE,CAAC;IAG9E,MAAMD,MAAM6B,iBAAiB,CAACjB,YAAYX,IAAI,EAAEW,YAAYS,UAAU;AACxE;AAEA,OAAO,eAAeS,oBAAoB,EACxCnB,OAAO,EACPZ,UAAU,KAAK,EAIhB;IACC,KAAK,MAAMa,eAAenB,iBAAiBkB,SAAU;QACnD,IAAI;YACF,MAAMD,kBAAkB;gBAAEC;gBAASZ;gBAASa;YAAY;QAC1D,EAAE,OAAOmB,OAAO;YACd,IAAIA,iBAAiBzC,uBAAuB,MAAMyC;YAElD,MAAMxC,uBAAuB;gBAAEwC;gBAAOnB;YAAY;QACpD;IACF;AACF","file":"ensureSearchIndexes.js"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
export async function findSearchIndex({ Model, name
|
|
2
|
-
const [index] =
|
|
1
|
+
export async function findSearchIndex({ Model, name }) {
|
|
2
|
+
const [index] = await Model.collection.listSearchIndexes(name).toArray();
|
|
3
3
|
return index?.status === 'DOES_NOT_EXIST' ? undefined : index;
|
|
4
4
|
}
|
|
5
|
+
|
|
5
6
|
//# sourceMappingURL=findSearchIndex.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/search/findSearchIndex.ts"],"names":["findSearchIndex","Model","name","index","collection","listSearchIndexes","toArray","status","undefined"],"mappings":"AAUA,OAAO,eAAeA,gBAAgB,EACpCC,KAAK,EACLC,IAAI,EAIL;IACC,MAAM,CAACC,MAAM,GAAI,MAAMF,MAAMG,UAAU,CAACC,iBAAiB,CAACH,MAAMI,OAAO;IAEvE,OAAOH,OAAOI,WAAW,mBAAmBC,YAAYL;AAC1D","file":"findSearchIndex.js"}
|
|
@@ -2,7 +2,8 @@ const searchIndexes = new WeakMap();
|
|
|
2
2
|
export function getSearchIndexes(adapter) {
|
|
3
3
|
return searchIndexes.get(adapter) ?? [];
|
|
4
4
|
}
|
|
5
|
-
export function setSearchIndexes({ adapter, indexes
|
|
5
|
+
export function setSearchIndexes({ adapter, indexes }) {
|
|
6
6
|
searchIndexes.set(adapter, indexes);
|
|
7
7
|
}
|
|
8
|
+
|
|
8
9
|
//# sourceMappingURL=getSearchIndexes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/search/getSearchIndexes.ts"],"names":["searchIndexes","WeakMap","getSearchIndexes","adapter","get","setSearchIndexes","indexes","set"],"mappings":"AAIA,MAAMA,gBAAgB,IAAIC;AAE1B,OAAO,SAASC,iBAAiBC,OAAwB;IACvD,OAAOH,cAAcI,GAAG,CAACD,YAAY,EAAE;AACzC;AAEA,OAAO,SAASE,iBAAiB,EAC/BF,OAAO,EACPG,OAAO,EAIR;IACCN,cAAcO,GAAG,CAACJ,SAASG;AAC7B","file":"getSearchIndexes.js"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { MongooseAdapter } from '@payloadcms/db-mongodb';
|
|
2
2
|
export type SearchModel = MongooseAdapter['collections'][string];
|
|
3
|
-
export type SearchPipeline = NonNullable<Parameters<SearchModel['aggregate']>[0]>;
|
|
4
3
|
export declare function getSearchModel({ adapter, collection, versions, }: {
|
|
5
4
|
adapter: MongooseAdapter;
|
|
6
5
|
collection: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSearchModel.d.ts","sourceRoot":"","sources":["../../src/search/getSearchModel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,MAAM,WAAW,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE,
|
|
1
|
+
{"version":3,"file":"getSearchModel.d.ts","sourceRoot":"","sources":["../../src/search/getSearchModel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,MAAM,WAAW,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,UAAU,EACV,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,eAAe,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB,GAAG,WAAW,CAEd"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export function getSearchModel({ adapter, collection, versions
|
|
1
|
+
export function getSearchModel({ adapter, collection, versions }) {
|
|
2
2
|
return versions ? adapter.versions[collection] : adapter.collections[collection];
|
|
3
3
|
}
|
|
4
|
+
|
|
4
5
|
//# sourceMappingURL=getSearchModel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/search/getSearchModel.ts"],"names":["getSearchModel","adapter","collection","versions","collections"],"mappings":"AAIA,OAAO,SAASA,eAAe,EAC7BC,OAAO,EACPC,UAAU,EACVC,QAAQ,EAKT;IACC,OAAOA,WAAWF,QAAQE,QAAQ,CAACD,WAAW,GAAGD,QAAQG,WAAW,CAACF,WAAW;AAClF","file":"getSearchModel.js"}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import { buildVersionCollectionFields, getLocalizedPaths } from 'payload';
|
|
2
|
-
export function getSearchFields({ adapter, collection, versions
|
|
2
|
+
export function getSearchFields({ adapter, collection, versions }) {
|
|
3
3
|
const { config } = adapter.payload.collections[collection];
|
|
4
|
-
return versions
|
|
5
|
-
? buildVersionCollectionFields(adapter.payload.config, config, true)
|
|
6
|
-
: config.flattenedFields;
|
|
4
|
+
return versions ? buildVersionCollectionFields(adapter.payload.config, config, true) : config.flattenedFields;
|
|
7
5
|
}
|
|
8
6
|
export function getSearchLocales(adapter) {
|
|
9
7
|
const { localization } = adapter.payload.config;
|
|
10
|
-
return localization ? localization.localeCodes : [
|
|
8
|
+
return localization ? localization.localeCodes : [
|
|
9
|
+
undefined
|
|
10
|
+
];
|
|
11
11
|
}
|
|
12
|
-
export function getIDFieldType({ adapter, collection
|
|
12
|
+
export function getIDFieldType({ adapter, collection }) {
|
|
13
13
|
const customIDType = adapter.payload.collections[collection]?.customIDType;
|
|
14
|
-
if (customIDType === 'number')
|
|
15
|
-
return 'number';
|
|
14
|
+
if (customIDType === 'number') return 'number';
|
|
16
15
|
return customIDType === 'text' ? 'token' : 'objectId';
|
|
17
16
|
}
|
|
18
|
-
export function getSearchPath({ adapter, collection, fields, locale, path, versions
|
|
19
|
-
if (path === 'id')
|
|
20
|
-
|
|
17
|
+
export function getSearchPath({ adapter, collection, fields, locale, path, versions }) {
|
|
18
|
+
if (path === 'id') return {
|
|
19
|
+
path: versions ? 'parent' : '_id'
|
|
20
|
+
};
|
|
21
21
|
const [resolved] = getLocalizedPaths({
|
|
22
22
|
collectionSlug: collection,
|
|
23
23
|
fields,
|
|
@@ -25,11 +25,15 @@ export function getSearchPath({ adapter, collection, fields, locale, path, versi
|
|
|
25
25
|
locale,
|
|
26
26
|
overrideAccess: true,
|
|
27
27
|
payload: adapter.payload,
|
|
28
|
-
showHiddenFields: true
|
|
28
|
+
showHiddenFields: true
|
|
29
29
|
});
|
|
30
30
|
if (!resolved?.path || resolved.invalid) {
|
|
31
31
|
throw new Error(`Search path '${path}' does not exist in collection '${collection}'.`);
|
|
32
32
|
}
|
|
33
|
-
return {
|
|
33
|
+
return {
|
|
34
|
+
field: resolved.field,
|
|
35
|
+
path: resolved.path
|
|
36
|
+
};
|
|
34
37
|
}
|
|
38
|
+
|
|
35
39
|
//# sourceMappingURL=getSearchPath.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/search/getSearchPath.ts"],"names":["buildVersionCollectionFields","getLocalizedPaths","getSearchFields","adapter","collection","versions","config","payload","collections","flattenedFields","getSearchLocales","localization","localeCodes","undefined","getIDFieldType","customIDType","getSearchPath","fields","locale","path","resolved","collectionSlug","incomingPath","overrideAccess","showHiddenFields","invalid","Error","field"],"mappings":"AAEA,SAASA,4BAA4B,EAAEC,iBAAiB,QAAQ,UAAU;AAI1E,OAAO,SAASC,gBAAgB,EAC9BC,OAAO,EACPC,UAAU,EACVC,QAAQ,EAKT;IACC,MAAM,EAAEC,MAAM,EAAE,GAAGH,QAAQI,OAAO,CAACC,WAAW,CAACJ,WAAW;IAE1D,OAAOC,WACHL,6BAA6BG,QAAQI,OAAO,CAACD,MAAM,EAAEA,QAAQ,QAC7DA,OAAOG,eAAe;AAC5B;AAEA,OAAO,SAASC,iBAAiBP,OAAwB;IACvD,MAAM,EAAEQ,YAAY,EAAE,GAAGR,QAAQI,OAAO,CAACD,MAAM;IAE/C,OAAOK,eAAeA,aAAaC,WAAW,GAAG;QAACC;KAAU;AAC9D;AAEA,OAAO,SAASC,eAAe,EAC7BX,OAAO,EACPC,UAAU,EAIX;IACC,MAAMW,eAAeZ,QAAQI,OAAO,CAACC,WAAW,CAACJ,WAAW,EAAEW;IAE9D,IAAIA,iBAAiB,UAAU,OAAO;IAEtC,OAAOA,iBAAiB,SAAS,UAAU;AAC7C;AAEA,OAAO,SAASC,cAAc,EAC5Bb,OAAO,EACPC,UAAU,EACVa,MAAM,EACNC,MAAM,EACNC,IAAI,EACJd,QAAQ,EAQT;IACC,IAAIc,SAAS,MAAM,OAAO;QAAEA,MAAMd,WAAW,WAAW;IAAM;IAE9D,MAAM,CAACe,SAAS,GAAGnB,kBAAkB;QACnCoB,gBAAgBjB;QAChBa;QACAK,cAAcjB,WAAW,CAAC,QAAQ,EAAEc,MAAM,GAAGA;QAC7CD;QACAK,gBAAgB;QAChBhB,SAASJ,QAAQI,OAAO;QACxBiB,kBAAkB;IACpB;IAEA,IAAI,CAACJ,UAAUD,QAAQC,SAASK,OAAO,EAAE;QACvC,MAAM,IAAIC,MAAM,CAAC,aAAa,EAAEP,KAAK,gCAAgC,EAAEf,WAAW,EAAE,CAAC;IACvF;IAEA,OAAO;QAAEuB,OAAOP,SAASO,KAAK;QAAER,MAAMC,SAASD,IAAI;IAAC;AACtD","file":"getSearchPath.js"}
|
package/dist/search/index.js
CHANGED
package/dist/search/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/search/index.ts"],"names":["buildSchema","capabilities","readiness","search","ensureSearchIndexes","mongooseSearchAdapter"],"mappings":"AAEA,SAASA,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,YAAY,QAAQ,oBAAoB;AACjD,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,MAAM,QAAQ,cAAc;AAErC,SAASC,mBAAmB,QAAQ,2BAA2B;AAE/D,OAAO,MAAMC,wBAAuC;IAClDL;IACAC;IACAC;IACAC;AACF,EAAE","file":"index.js"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export function isDraftSearch({ adapter, collection, draft
|
|
1
|
+
export function isDraftSearch({ adapter, collection, draft }) {
|
|
2
2
|
return draft && Boolean(adapter.payload.collections[collection].config.versions?.drafts);
|
|
3
3
|
}
|
|
4
|
+
|
|
4
5
|
//# sourceMappingURL=isDraftSearch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/search/isDraftSearch.ts"],"names":["isDraftSearch","adapter","collection","draft","Boolean","payload","collections","config","versions","drafts"],"mappings":"AAEA,OAAO,SAASA,cAAc,EAC5BC,OAAO,EACPC,UAAU,EACVC,KAAK,EAKN;IACC,OAAOA,SAASC,QAAQH,QAAQI,OAAO,CAACC,WAAW,CAACJ,WAAW,CAACK,MAAM,CAACC,QAAQ,EAAEC;AACnF","file":"isDraftSearch.js"}
|
|
@@ -1,33 +1,40 @@
|
|
|
1
1
|
function isRecord(value) {
|
|
2
2
|
return value !== null && typeof value === 'object' && !Array.isArray(value);
|
|
3
3
|
}
|
|
4
|
-
function matches({ actual, expected, exactKeys
|
|
4
|
+
function matches({ actual, expected, exactKeys }) {
|
|
5
5
|
if (Array.isArray(expected)) {
|
|
6
|
-
if (!Array.isArray(actual) || actual.length !== expected.length)
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
6
|
+
if (!Array.isArray(actual) || actual.length !== expected.length) return false;
|
|
7
|
+
const remaining = [
|
|
8
|
+
...actual
|
|
9
|
+
];
|
|
10
|
+
return expected.every((item)=>{
|
|
11
|
+
const index = remaining.findIndex((candidate)=>matches({
|
|
12
|
+
actual: candidate,
|
|
13
|
+
expected: item,
|
|
14
|
+
exactKeys: false
|
|
15
|
+
}));
|
|
16
|
+
if (index === -1) return false;
|
|
13
17
|
remaining.splice(index, 1);
|
|
14
18
|
return true;
|
|
15
19
|
});
|
|
16
20
|
}
|
|
17
21
|
if (isRecord(expected)) {
|
|
18
|
-
if (!isRecord(actual))
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
exactKeys: key === 'fields' && isRecord(value),
|
|
26
|
-
}));
|
|
22
|
+
if (!isRecord(actual)) return false;
|
|
23
|
+
if (exactKeys && Object.keys(actual).length !== Object.keys(expected).length) return false;
|
|
24
|
+
return Object.entries(expected).every(([key, value])=>matches({
|
|
25
|
+
actual: actual[key],
|
|
26
|
+
expected: value,
|
|
27
|
+
exactKeys: key === 'fields' && isRecord(value)
|
|
28
|
+
}));
|
|
27
29
|
}
|
|
28
30
|
return actual === expected;
|
|
29
31
|
}
|
|
30
|
-
export function isSearchIndexDefinitionEqual({ actual, expected
|
|
31
|
-
return matches({
|
|
32
|
+
export function isSearchIndexDefinitionEqual({ actual, expected }) {
|
|
33
|
+
return matches({
|
|
34
|
+
actual,
|
|
35
|
+
expected,
|
|
36
|
+
exactKeys: false
|
|
37
|
+
});
|
|
32
38
|
}
|
|
39
|
+
|
|
33
40
|
//# sourceMappingURL=isSearchIndexDefinitionEqual.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/search/isSearchIndexDefinitionEqual.ts"],"names":["isRecord","value","Array","isArray","matches","actual","expected","exactKeys","length","remaining","every","item","index","findIndex","candidate","splice","Object","keys","entries","key","isSearchIndexDefinitionEqual"],"mappings":"AAAA,SAASA,SAASC,KAAc;IAC9B,OAAOA,UAAU,QAAQ,OAAOA,UAAU,YAAY,CAACC,MAAMC,OAAO,CAACF;AACvE;AAEA,SAASG,QAAQ,EACfC,MAAM,EACNC,QAAQ,EACRC,SAAS,EAKV;IACC,IAAIL,MAAMC,OAAO,CAACG,WAAW;QAC3B,IAAI,CAACJ,MAAMC,OAAO,CAACE,WAAWA,OAAOG,MAAM,KAAKF,SAASE,MAAM,EAAE,OAAO;QAExE,MAAMC,YAAY;eAAIJ;SAAO;QAE7B,OAAOC,SAASI,KAAK,CAAC,CAACC;YACrB,MAAMC,QAAQH,UAAUI,SAAS,CAAC,CAACC,YACjCV,QAAQ;oBAAEC,QAAQS;oBAAWR,UAAUK;oBAAMJ,WAAW;gBAAM;YAGhE,IAAIK,UAAU,CAAC,GAAG,OAAO;YAEzBH,UAAUM,MAAM,CAACH,OAAO;YAExB,OAAO;QACT;IACF;IAEA,IAAIZ,SAASM,WAAW;QACtB,IAAI,CAACN,SAASK,SAAS,OAAO;QAE9B,IAAIE,aAAaS,OAAOC,IAAI,CAACZ,QAAQG,MAAM,KAAKQ,OAAOC,IAAI,CAACX,UAAUE,MAAM,EAAE,OAAO;QAErF,OAAOQ,OAAOE,OAAO,CAACZ,UAAUI,KAAK,CAAC,CAAC,CAACS,KAAKlB,MAAM,GACjDG,QAAQ;gBACNC,QAAQA,MAAM,CAACc,IAAI;gBACnBb,UAAUL;gBACVM,WAAWY,QAAQ,YAAYnB,SAASC;YAC1C;IAEJ;IAEA,OAAOI,WAAWC;AACpB;AAEA,OAAO,SAASc,6BAA6B,EAC3Cf,MAAM,EACNC,QAAQ,EAIT;IACC,OAAOF,QAAQ;QAAEC;QAAQC;QAAUC,WAAW;IAAM;AACtD","file":"isSearchIndexDefinitionEqual.js"}
|