@payloadcms/plugin-search 1.1.0 → 3.0.0-alpha.43
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/Search/hooks/deleteFromSearch.js +2 -12
- package/dist/Search/hooks/deleteFromSearch.js.map +1 -0
- package/dist/Search/hooks/syncWithSearch.d.ts +1 -1
- package/dist/Search/hooks/syncWithSearch.d.ts.map +1 -1
- package/dist/Search/hooks/syncWithSearch.js +2 -12
- package/dist/Search/hooks/syncWithSearch.js.map +1 -0
- package/dist/Search/index.d.ts +1 -1
- package/dist/Search/index.d.ts.map +1 -1
- package/dist/Search/index.js +16 -30
- package/dist/Search/index.js.map +1 -0
- package/dist/Search/ui/index.d.ts +1 -1
- package/dist/Search/ui/index.d.ts.map +1 -1
- package/dist/Search/ui/index.js +10 -26
- package/dist/Search/ui/index.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -23
- package/dist/index.js.map +1 -0
- package/dist/types.js +4 -5
- package/dist/types.js.map +1 -0
- package/package.json +7 -5
|
@@ -1,13 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "default", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return _default;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
1
|
const deleteFromSearch = async ({ doc, req: { payload }, req })=>{
|
|
12
2
|
try {
|
|
13
3
|
const searchDocQuery = await payload.find({
|
|
@@ -34,6 +24,6 @@ const deleteFromSearch = async ({ doc, req: { payload }, req })=>{
|
|
|
34
24
|
}
|
|
35
25
|
return doc;
|
|
36
26
|
};
|
|
37
|
-
|
|
27
|
+
export default deleteFromSearch;
|
|
38
28
|
|
|
39
|
-
//# sourceMappingURL=
|
|
29
|
+
//# sourceMappingURL=deleteFromSearch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/Search/hooks/deleteFromSearch.ts"],"sourcesContent":["import type { CollectionAfterDeleteHook } from 'payload/types'\n\nconst deleteFromSearch: CollectionAfterDeleteHook = async ({ doc, req: { payload }, req }) => {\n try {\n const searchDocQuery = await payload.find({\n collection: 'search',\n depth: 0,\n req,\n where: {\n 'doc.value': {\n equals: doc.id,\n },\n },\n })\n\n if (searchDocQuery?.docs?.[0]) {\n await payload.delete({\n id: searchDocQuery?.docs?.[0]?.id,\n collection: 'search',\n req,\n })\n }\n } catch (err: unknown) {\n payload.logger.error({\n err: `Error deleting search doc: ${err}`,\n })\n }\n\n return doc\n}\n\nexport default deleteFromSearch\n"],"names":["deleteFromSearch","doc","req","payload","searchDocQuery","find","collection","depth","where","equals","id","docs","delete","err","logger","error"],"mappings":"AAEA,MAAMA,mBAA8C,OAAO,EAAEC,GAAG,EAAEC,KAAK,EAAEC,OAAO,EAAE,EAAED,GAAG,EAAE;IACvF,IAAI;QACF,MAAME,iBAAiB,MAAMD,QAAQE,IAAI,CAAC;YACxCC,YAAY;YACZC,OAAO;YACPL;YACAM,OAAO;gBACL,aAAa;oBACXC,QAAQR,IAAIS,EAAE;gBAChB;YACF;QACF;QAEA,IAAIN,gBAAgBO,MAAM,CAAC,EAAE,EAAE;YAC7B,MAAMR,QAAQS,MAAM,CAAC;gBACnBF,IAAIN,gBAAgBO,MAAM,CAAC,EAAE,EAAED;gBAC/BJ,YAAY;gBACZJ;YACF;QACF;IACF,EAAE,OAAOW,KAAc;QACrBV,QAAQW,MAAM,CAACC,KAAK,CAAC;YACnBF,KAAK,CAAC,2BAA2B,EAAEA,IAAI,CAAC;QAC1C;IACF;IAEA,OAAOZ;AACT;AAEA,eAAeD,iBAAgB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syncWithSearch.d.ts","sourceRoot":"","sources":["../../../src/Search/hooks/syncWithSearch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA2B,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"syncWithSearch.d.ts","sourceRoot":"","sources":["../../../src/Search/hooks/syncWithSearch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA2B,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE7E,QAAA,MAAM,cAAc,EAAE,cA8JrB,CAAA;AAED,eAAe,cAAc,CAAA"}
|
|
@@ -1,13 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "default", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return _default;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
1
|
const syncWithSearch = async (args)=>{
|
|
12
2
|
const { collection, doc, operation, req: { payload }, req, // @ts-expect-error
|
|
13
3
|
searchConfig } = args;
|
|
@@ -143,6 +133,6 @@ const syncWithSearch = async (args)=>{
|
|
|
143
133
|
}
|
|
144
134
|
return doc;
|
|
145
135
|
};
|
|
146
|
-
|
|
136
|
+
export default syncWithSearch;
|
|
147
137
|
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9TZWFyY2gvaG9va3Mvc3luY1dpdGhTZWFyY2gudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEb2NUb1N5bmMsIFNlYXJjaENvbmZpZywgU3luY1dpdGhTZWFyY2ggfSBmcm9tICcuLi8uLi90eXBlcydcblxuY29uc3Qgc3luY1dpdGhTZWFyY2g6IFN5bmNXaXRoU2VhcmNoID0gYXN5bmMgKGFyZ3MpID0+IHtcbiAgY29uc3Qge1xuICAgIGNvbGxlY3Rpb24sXG4gICAgZG9jLFxuICAgIG9wZXJhdGlvbixcbiAgICByZXE6IHsgcGF5bG9hZCB9LFxuICAgIHJlcSxcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgc2VhcmNoQ29uZmlnLFxuICB9ID0gYXJnc1xuXG4gIGNvbnN0IHsgaWQsIF9zdGF0dXM6IHN0YXR1cywgdGl0bGUgfSA9IGRvYyB8fCB7fVxuXG4gIGNvbnN0IHsgYmVmb3JlU3luYywgZGVmYXVsdFByaW9yaXRpZXMsIGRlbGV0ZURyYWZ0cywgc3luY0RyYWZ0cyB9ID0gc2VhcmNoQ29uZmlnIGFzIFNlYXJjaENvbmZpZyAvLyB0b2RvIGZpeCBTeW5jV2l0aFNlYXJjaCB0eXBlLCBzZWUgbm90ZSBpbiAuL3R5cGVzLnRzXG5cbiAgbGV0IGRhdGFUb1NhdmU6IERvY1RvU3luYyA9IHtcbiAgICBkb2M6IHtcbiAgICAgIHJlbGF0aW9uVG86IGNvbGxlY3Rpb24sXG4gICAgICB2YWx1ZTogaWQsXG4gICAgfSxcbiAgICB0aXRsZSxcbiAgfVxuXG4gIGlmICh0eXBlb2YgYmVmb3JlU3luYyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGRhdGFUb1NhdmUgPSBhd2FpdCBiZWZvcmVTeW5jKHtcbiAgICAgIG9yaWdpbmFsRG9jOiBkb2MsXG4gICAgICBwYXlsb2FkLFxuICAgICAgcmVxLFxuICAgICAgc2VhcmNoRG9jOiBkYXRhVG9TYXZlLFxuICAgIH0pXG4gIH1cblxuICBsZXQgZGVmYXVsdFByaW9yaXR5ID0gMFxuICBpZiAoZGVmYXVsdFByaW9yaXRpZXMpIHtcbiAgICBjb25zdCB7IFtjb2xsZWN0aW9uXTogcHJpb3JpdHkgfSA9IGRlZmF1bHRQcmlvcml0aWVzXG5cbiAgICBpZiAodHlwZW9mIHByaW9yaXR5ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0cnkge1xuICAgICAgICBkZWZhdWx0UHJpb3JpdHkgPSBhd2FpdCBwcmlvcml0eShkb2MpXG4gICAgICB9IGNhdGNoIChlcnI6IHVua25vd24pIHtcbiAgICAgICAgcGF5bG9hZC5sb2dnZXIuZXJyb3IoZXJyKVxuICAgICAgICBwYXlsb2FkLmxvZ2dlci5lcnJvcihcbiAgICAgICAgICBgRXJyb3IgZ2F0aGVyaW5nIGRlZmF1bHQgcHJpb3JpdHkgZm9yIHNlYXJjaCBkb2N1bWVudHMgcmVsYXRlZCB0byAke2NvbGxlY3Rpb259YCxcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBkZWZhdWx0UHJpb3JpdHkgPSBwcmlvcml0eVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGRvU3luYyA9IHN5bmNEcmFmdHMgfHwgKCFzeW5jRHJhZnRzICYmIHN0YXR1cyAhPT0gJ2RyYWZ0JylcblxuICB0cnkge1xuICAgIGlmIChvcGVyYXRpb24gPT09ICdjcmVhdGUnKSB7XG4gICAgICBpZiAoZG9TeW5jKSB7XG4gICAgICAgIGF3YWl0IHBheWxvYWQuY3JlYXRlKHtcbiAgICAgICAgICBjb2xsZWN0aW9uOiAnc2VhcmNoJyxcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAuLi5kYXRhVG9TYXZlLFxuICAgICAgICAgICAgcHJpb3JpdHk6IGRlZmF1bHRQcmlvcml0eSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlcSxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAob3BlcmF0aW9uID09PSAndXBkYXRlJykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gZmluZCB0aGUgY29ycmVjdCBkb2MgdG8gc3luYyB3aXRoXG4gICAgICAgIGNvbnN0IHNlYXJjaERvY1F1ZXJ5ID0gYXdhaXQgcGF5bG9hZC5maW5kKHtcbiAgICAgICAgICBjb2xsZWN0aW9uOiAnc2VhcmNoJyxcbiAgICAgICAgICBkZXB0aDogMCxcbiAgICAgICAgICByZXEsXG4gICAgICAgICAgd2hlcmU6IHtcbiAgICAgICAgICAgICdkb2MudmFsdWUnOiB7XG4gICAgICAgICAgICAgIGVxdWFsczogaWQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pXG5cbiAgICAgICAgY29uc3QgZG9jczogQXJyYXk8e1xuICAgICAgICAgIGlkOiBudW1iZXIgfCBzdHJpbmdcbiAgICAgICAgICBwcmlvcml0eT86IG51bWJlclxuICAgICAgICB9PiA9IHNlYXJjaERvY1F1ZXJ5Py5kb2NzIHx8IFtdXG5cbiAgICAgICAgY29uc3QgW2ZvdW5kRG9jLCAuLi5kdXBsaWNhdGl2ZURvY3NdID0gZG9jc1xuXG4gICAgICAgIC8vIGRlbGV0ZSBhbGwgZHVwbGljYXRpdmUgc2VhcmNoIGRvY3MgKGRvY3MgdGhhdCByZWZlcmVuY2UgdGhlIHNhbWUgcGFnZSlcbiAgICAgICAgLy8gdG8gZW5zdXJlIHRoZSBzYW1lLCBvdXQtb2YtZGF0ZSByZXN1bHQgZG9lcyBub3QgYXBwZWFyIHR3aWNlICh3aGVyZSBvbmx5IHN5bmNpbmcgdGhlIGZpcnN0IGZvdW5kIGRvYylcbiAgICAgICAgaWYgKGR1cGxpY2F0aXZlRG9jcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGR1cGxpY2F0aXZlRG9jSURzID0gZHVwbGljYXRpdmVEb2NzLm1hcCgoeyBpZCB9KSA9PiBpZClcbiAgICAgICAgICAgIGF3YWl0IHBheWxvYWQuZGVsZXRlKHtcbiAgICAgICAgICAgICAgY29sbGVjdGlvbjogJ3NlYXJjaCcsXG4gICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgd2hlcmU6IHsgaWQ6IHsgaW46IGR1cGxpY2F0aXZlRG9jSURzIH0gfSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgfSBjYXRjaCAoZXJyOiB1bmtub3duKSB7XG4gICAgICAgICAgICBwYXlsb2FkLmxvZ2dlci5lcnJvcihgRXJyb3IgZGVsZXRpbmcgZHVwbGljYXRpdmUgc2VhcmNoIGRvY3VtZW50cy5gKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmb3VuZERvYykge1xuICAgICAgICAgIGNvbnN0IHsgaWQ6IHNlYXJjaERvY0lEIH0gPSBmb3VuZERvY1xuXG4gICAgICAgICAgaWYgKGRvU3luYykge1xuICAgICAgICAgICAgLy8gdXBkYXRlIHRoZSBkb2Mgbm9ybWFsbHlcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGF3YWl0IHBheWxvYWQudXBkYXRlKHtcbiAgICAgICAgICAgICAgICBpZDogc2VhcmNoRG9jSUQsXG4gICAgICAgICAgICAgICAgY29sbGVjdGlvbjogJ3NlYXJjaCcsXG4gICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgLi4uZGF0YVRvU2F2ZSxcbiAgICAgICAgICAgICAgICAgIHByaW9yaXR5OiBmb3VuZERvYy5wcmlvcml0eSB8fCBkZWZhdWx0UHJpb3JpdHksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICByZXEsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9IGNhdGNoIChlcnI6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgcGF5bG9hZC5sb2dnZXIuZXJyb3IoYEVycm9yIHVwZGF0aW5nIHNlYXJjaCBkb2N1bWVudC5gKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZGVsZXRlRHJhZnRzICYmIHN0YXR1cyA9PT0gJ2RyYWZ0Jykge1xuICAgICAgICAgICAgLy8gZG8gbm90IGluY2x1ZGUgZHJhZnQgZG9jcyBpbiBzZWFyY2ggcmVzdWx0cywgc28gZGVsZXRlIHRoZSByZWNvcmRcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGF3YWl0IHBheWxvYWQuZGVsZXRlKHtcbiAgICAgICAgICAgICAgICBpZDogc2VhcmNoRG9jSUQsXG4gICAgICAgICAgICAgICAgY29sbGVjdGlvbjogJ3NlYXJjaCcsXG4gICAgICAgICAgICAgICAgcmVxLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSBjYXRjaCAoZXJyOiB1bmtub3duKSB7XG4gICAgICAgICAgICAgIHBheWxvYWQubG9nZ2VyLmVycm9yKGBFcnJvciBkZWxldGluZyBzZWFyY2ggZG9jdW1lbnQ6ICR7ZXJyfWApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGRvU3luYykge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCBwYXlsb2FkLmNyZWF0ZSh7XG4gICAgICAgICAgICAgIGNvbGxlY3Rpb246ICdzZWFyY2gnLFxuICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgLi4uZGF0YVRvU2F2ZSxcbiAgICAgICAgICAgICAgICBwcmlvcml0eTogZGVmYXVsdFByaW9yaXR5LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICByZXEsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgIH0gY2F0Y2ggKGVycjogdW5rbm93bikge1xuICAgICAgICAgICAgcGF5bG9hZC5sb2dnZXIuZXJyb3IoYEVycm9yIGNyZWF0aW5nIHNlYXJjaCBkb2N1bWVudDogJHtlcnJ9YClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycjogdW5rbm93bikge1xuICAgICAgICBwYXlsb2FkLmxvZ2dlci5lcnJvcihgRXJyb3IgZmluZGluZyBzZWFyY2ggZG9jdW1lbnQ6ICR7ZXJyfWApXG4gICAgICB9XG4gICAgfVxuICB9IGNhdGNoIChlcnI6IHVua25vd24pIHtcbiAgICBwYXlsb2FkLmxvZ2dlci5lcnJvcihcbiAgICAgIGBFcnJvciBzeW5jaW5nIHNlYXJjaCBkb2N1bWVudCByZWxhdGVkIHRvICR7Y29sbGVjdGlvbn0gd2l0aCBpZDogJyR7aWR9JzogJHtlcnJ9YCxcbiAgICApXG4gIH1cblxuICByZXR1cm4gZG9jXG59XG5cbmV4cG9ydCBkZWZhdWx0IHN5bmNXaXRoU2VhcmNoXG4iXSwibmFtZXMiOlsic3luY1dpdGhTZWFyY2giLCJhcmdzIiwiY29sbGVjdGlvbiIsImRvYyIsIm9wZXJhdGlvbiIsInJlcSIsInBheWxvYWQiLCJzZWFyY2hDb25maWciLCJpZCIsIl9zdGF0dXMiLCJzdGF0dXMiLCJ0aXRsZSIsImJlZm9yZVN5bmMiLCJkZWZhdWx0UHJpb3JpdGllcyIsImRlbGV0ZURyYWZ0cyIsInN5bmNEcmFmdHMiLCJkYXRhVG9TYXZlIiwicmVsYXRpb25UbyIsInZhbHVlIiwib3JpZ2luYWxEb2MiLCJzZWFyY2hEb2MiLCJkZWZhdWx0UHJpb3JpdHkiLCJwcmlvcml0eSIsImVyciIsImxvZ2dlciIsImVycm9yIiwiZG9TeW5jIiwiY3JlYXRlIiwiZGF0YSIsInNlYXJjaERvY1F1ZXJ5IiwiZmluZCIsImRlcHRoIiwid2hlcmUiLCJlcXVhbHMiLCJkb2NzIiwiZm91bmREb2MiLCJkdXBsaWNhdGl2ZURvY3MiLCJsZW5ndGgiLCJkdXBsaWNhdGl2ZURvY0lEcyIsIm1hcCIsImRlbGV0ZSIsImluIiwic2VhcmNoRG9jSUQiLCJ1cGRhdGUiXSwibWFwcGluZ3MiOiI7Ozs7K0JBa0tBOzs7ZUFBQTs7O0FBaEtBLE1BQU1BLGlCQUFpQyxPQUFPQztJQUM1QyxNQUFNLEVBQ0pDLFVBQVUsRUFDVkMsR0FBRyxFQUNIQyxTQUFTLEVBQ1RDLEtBQUssRUFBRUMsT0FBTyxFQUFFLEVBQ2hCRCxHQUFHLEVBQ0gsbUJBQW1CO0lBQ25CRSxZQUFZLEVBQ2IsR0FBR047SUFFSixNQUFNLEVBQUVPLEVBQUUsRUFBRUMsU0FBU0MsTUFBTSxFQUFFQyxLQUFLLEVBQUUsR0FBR1IsT0FBTyxDQUFDO0lBRS9D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
|
|
138
|
+
//# sourceMappingURL=syncWithSearch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/Search/hooks/syncWithSearch.ts"],"sourcesContent":["import type { DocToSync, SearchConfig, SyncWithSearch } from '../../types.js'\n\nconst syncWithSearch: SyncWithSearch = async (args) => {\n const {\n collection,\n doc,\n operation,\n req: { payload },\n req,\n // @ts-expect-error\n searchConfig,\n } = args\n\n const { id, _status: status, title } = doc || {}\n\n const { beforeSync, defaultPriorities, deleteDrafts, syncDrafts } = searchConfig as SearchConfig // todo fix SyncWithSearch type, see note in ./types.ts\n\n let dataToSave: DocToSync = {\n doc: {\n relationTo: collection,\n value: id,\n },\n title,\n }\n\n if (typeof beforeSync === 'function') {\n dataToSave = await beforeSync({\n originalDoc: doc,\n payload,\n req,\n searchDoc: dataToSave,\n })\n }\n\n let defaultPriority = 0\n if (defaultPriorities) {\n const { [collection]: priority } = defaultPriorities\n\n if (typeof priority === 'function') {\n try {\n defaultPriority = await priority(doc)\n } catch (err: unknown) {\n payload.logger.error(err)\n payload.logger.error(\n `Error gathering default priority for search documents related to ${collection}`,\n )\n }\n } else {\n defaultPriority = priority\n }\n }\n\n const doSync = syncDrafts || (!syncDrafts && status !== 'draft')\n\n try {\n if (operation === 'create') {\n if (doSync) {\n await payload.create({\n collection: 'search',\n data: {\n ...dataToSave,\n priority: defaultPriority,\n },\n req,\n })\n }\n }\n\n if (operation === 'update') {\n try {\n // find the correct doc to sync with\n const searchDocQuery = await payload.find({\n collection: 'search',\n depth: 0,\n req,\n where: {\n 'doc.value': {\n equals: id,\n },\n },\n })\n\n const docs: Array<{\n id: number | string\n priority?: number\n }> = searchDocQuery?.docs || []\n\n const [foundDoc, ...duplicativeDocs] = docs\n\n // delete all duplicative search docs (docs that reference the same page)\n // to ensure the same, out-of-date result does not appear twice (where only syncing the first found doc)\n if (duplicativeDocs.length > 0) {\n try {\n const duplicativeDocIDs = duplicativeDocs.map(({ id }) => id)\n await payload.delete({\n collection: 'search',\n req,\n where: { id: { in: duplicativeDocIDs } },\n })\n } catch (err: unknown) {\n payload.logger.error(`Error deleting duplicative search documents.`)\n }\n }\n\n if (foundDoc) {\n const { id: searchDocID } = foundDoc\n\n if (doSync) {\n // update the doc normally\n try {\n await payload.update({\n id: searchDocID,\n collection: 'search',\n data: {\n ...dataToSave,\n priority: foundDoc.priority || defaultPriority,\n },\n req,\n })\n } catch (err: unknown) {\n payload.logger.error(`Error updating search document.`)\n }\n }\n if (deleteDrafts && status === 'draft') {\n // do not include draft docs in search results, so delete the record\n try {\n await payload.delete({\n id: searchDocID,\n collection: 'search',\n req,\n })\n } catch (err: unknown) {\n payload.logger.error(`Error deleting search document: ${err}`)\n }\n }\n } else if (doSync) {\n try {\n await payload.create({\n collection: 'search',\n data: {\n ...dataToSave,\n priority: defaultPriority,\n },\n req,\n })\n } catch (err: unknown) {\n payload.logger.error(`Error creating search document: ${err}`)\n }\n }\n } catch (err: unknown) {\n payload.logger.error(`Error finding search document: ${err}`)\n }\n }\n } catch (err: unknown) {\n payload.logger.error(\n `Error syncing search document related to ${collection} with id: '${id}': ${err}`,\n )\n }\n\n return doc\n}\n\nexport default syncWithSearch\n"],"names":["syncWithSearch","args","collection","doc","operation","req","payload","searchConfig","id","_status","status","title","beforeSync","defaultPriorities","deleteDrafts","syncDrafts","dataToSave","relationTo","value","originalDoc","searchDoc","defaultPriority","priority","err","logger","error","doSync","create","data","searchDocQuery","find","depth","where","equals","docs","foundDoc","duplicativeDocs","length","duplicativeDocIDs","map","delete","in","searchDocID","update"],"mappings":"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"}
|
package/dist/Search/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { CollectionConfig } from 'payload/types';
|
|
2
|
-
import type { SearchConfig } from '../types';
|
|
2
|
+
import type { SearchConfig } from '../types.js';
|
|
3
3
|
export declare const generateSearchCollection: (searchConfig: SearchConfig) => CollectionConfig;
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Search/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAIrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Search/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAIrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAK/C,eAAO,MAAM,wBAAwB,iBAAkB,YAAY,KAAG,gBA2DnE,CAAA"}
|
package/dist/Search/index.js
CHANGED
|
@@ -1,21 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return generateSearchCollection;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _tsdeepmerge = /*#__PURE__*/ _interop_require_default(require("ts-deepmerge"));
|
|
12
|
-
const _ui = require("./ui");
|
|
13
|
-
function _interop_require_default(obj) {
|
|
14
|
-
return obj && obj.__esModule ? obj : {
|
|
15
|
-
default: obj
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
const generateSearchCollection = (searchConfig)=>(0, _tsdeepmerge.default)({
|
|
1
|
+
import deepMerge from 'deepmerge';
|
|
2
|
+
import { LinkToDoc } from './ui/index.js';
|
|
3
|
+
// all settings can be overridden by the config
|
|
4
|
+
export const generateSearchCollection = (searchConfig)=>deepMerge({
|
|
5
|
+
slug: 'search',
|
|
19
6
|
access: {
|
|
20
7
|
create: ()=>false,
|
|
21
8
|
read: ()=>true
|
|
@@ -31,20 +18,21 @@ const generateSearchCollection = (searchConfig)=>(0, _tsdeepmerge.default)({
|
|
|
31
18
|
fields: [
|
|
32
19
|
{
|
|
33
20
|
name: 'title',
|
|
21
|
+
type: 'text',
|
|
34
22
|
admin: {
|
|
35
23
|
readOnly: true
|
|
36
|
-
}
|
|
37
|
-
type: 'text'
|
|
24
|
+
}
|
|
38
25
|
},
|
|
39
26
|
{
|
|
40
27
|
name: 'priority',
|
|
28
|
+
type: 'number',
|
|
41
29
|
admin: {
|
|
42
30
|
position: 'sidebar'
|
|
43
|
-
}
|
|
44
|
-
type: 'number'
|
|
31
|
+
}
|
|
45
32
|
},
|
|
46
33
|
{
|
|
47
34
|
name: 'doc',
|
|
35
|
+
type: 'relationship',
|
|
48
36
|
admin: {
|
|
49
37
|
position: 'sidebar',
|
|
50
38
|
readOnly: true
|
|
@@ -52,25 +40,23 @@ const generateSearchCollection = (searchConfig)=>(0, _tsdeepmerge.default)({
|
|
|
52
40
|
index: true,
|
|
53
41
|
maxDepth: 0,
|
|
54
42
|
relationTo: searchConfig?.collections || [],
|
|
55
|
-
required: true
|
|
56
|
-
type: 'relationship'
|
|
43
|
+
required: true
|
|
57
44
|
},
|
|
58
45
|
{
|
|
59
46
|
name: 'docUrl',
|
|
47
|
+
type: 'ui',
|
|
60
48
|
admin: {
|
|
61
49
|
components: {
|
|
62
|
-
Field:
|
|
50
|
+
Field: LinkToDoc
|
|
63
51
|
},
|
|
64
52
|
position: 'sidebar'
|
|
65
|
-
}
|
|
66
|
-
type: 'ui'
|
|
53
|
+
}
|
|
67
54
|
}
|
|
68
55
|
],
|
|
69
56
|
labels: {
|
|
70
57
|
plural: 'Search Results',
|
|
71
58
|
singular: 'Search Result'
|
|
72
|
-
}
|
|
73
|
-
slug: 'search'
|
|
59
|
+
}
|
|
74
60
|
}, searchConfig?.searchOverrides || {});
|
|
75
61
|
|
|
76
|
-
//# sourceMappingURL=
|
|
62
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/Search/index.ts"],"sourcesContent":["import type { CollectionConfig } from 'payload/types'\n\nimport deepMerge from 'deepmerge'\n\nimport type { SearchConfig } from '../types.js'\n\nimport { LinkToDoc } from './ui/index.js'\n\n// all settings can be overridden by the config\nexport const generateSearchCollection = (searchConfig: SearchConfig): CollectionConfig =>\n deepMerge(\n {\n slug: 'search',\n access: {\n create: (): boolean => false,\n read: (): boolean => true,\n },\n admin: {\n defaultColumns: ['title'],\n description:\n 'This is a collection of automatically created search results. These results are used by the global site search and will be updated automatically as documents in the CMS are created or updated.',\n enableRichTextRelationship: false,\n useAsTitle: 'title',\n },\n fields: [\n {\n name: 'title',\n type: 'text',\n admin: {\n readOnly: true,\n },\n },\n {\n name: 'priority',\n type: 'number',\n admin: {\n position: 'sidebar',\n },\n },\n {\n name: 'doc',\n type: 'relationship',\n admin: {\n position: 'sidebar',\n readOnly: true,\n },\n index: true,\n maxDepth: 0,\n relationTo: searchConfig?.collections || [],\n required: true,\n },\n {\n name: 'docUrl',\n type: 'ui',\n admin: {\n components: {\n Field: LinkToDoc,\n },\n position: 'sidebar',\n },\n },\n ],\n labels: {\n plural: 'Search Results',\n singular: 'Search Result',\n },\n },\n searchConfig?.searchOverrides || {},\n )\n"],"names":["deepMerge","LinkToDoc","generateSearchCollection","searchConfig","slug","access","create","read","admin","defaultColumns","description","enableRichTextRelationship","useAsTitle","fields","name","type","readOnly","position","index","maxDepth","relationTo","collections","required","components","Field","labels","plural","singular","searchOverrides"],"mappings":"AAEA,OAAOA,eAAe,YAAW;AAIjC,SAASC,SAAS,QAAQ,gBAAe;AAEzC,+CAA+C;AAC/C,OAAO,MAAMC,2BAA2B,CAACC,eACvCH,UACE;QACEI,MAAM;QACNC,QAAQ;YACNC,QAAQ,IAAe;YACvBC,MAAM,IAAe;QACvB;QACAC,OAAO;YACLC,gBAAgB;gBAAC;aAAQ;YACzBC,aACE;YACFC,4BAA4B;YAC5BC,YAAY;QACd;QACAC,QAAQ;YACN;gBACEC,MAAM;gBACNC,MAAM;gBACNP,OAAO;oBACLQ,UAAU;gBACZ;YACF;YACA;gBACEF,MAAM;gBACNC,MAAM;gBACNP,OAAO;oBACLS,UAAU;gBACZ;YACF;YACA;gBACEH,MAAM;gBACNC,MAAM;gBACNP,OAAO;oBACLS,UAAU;oBACVD,UAAU;gBACZ;gBACAE,OAAO;gBACPC,UAAU;gBACVC,YAAYjB,cAAckB,eAAe,EAAE;gBAC3CC,UAAU;YACZ;YACA;gBACER,MAAM;gBACNC,MAAM;gBACNP,OAAO;oBACLe,YAAY;wBACVC,OAAOvB;oBACT;oBACAgB,UAAU;gBACZ;YACF;SACD;QACDQ,QAAQ;YACNC,QAAQ;YACRC,UAAU;QACZ;IACF,GACAxB,cAAcyB,mBAAmB,CAAC,GACnC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Search/ui/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Search/ui/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,OAAO,EAAE,MAAM,eAAe,CAAA;AAGvD,OAAO,KAAK,MAAM,OAAO,CAAA;AAazB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,CA6CvC,CAAA"}
|
package/dist/Search/ui/index.js
CHANGED
|
@@ -1,42 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "LinkToDoc", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return LinkToDoc;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _forms = require("payload/components/forms");
|
|
12
|
-
const _utilities = require("payload/components/utilities");
|
|
13
|
-
const _react = /*#__PURE__*/ _interop_require_default(require("react"));
|
|
14
|
-
function _interop_require_default(obj) {
|
|
15
|
-
return obj && obj.__esModule ? obj : {
|
|
16
|
-
default: obj
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
const LinkToDoc = ()=>{
|
|
20
|
-
const form = (0, _forms.useWatchForm)();
|
|
1
|
+
import { useConfig, useWatchForm } from '@payloadcms/ui';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
export const LinkToDoc = ()=>{
|
|
4
|
+
const form = useWatchForm();
|
|
21
5
|
const fields = form.fields;
|
|
22
6
|
const { doc: { value: { relationTo, value: docId } } } = fields;
|
|
23
|
-
const config =
|
|
24
|
-
const { routes: { admin: adminRoute }
|
|
7
|
+
const config = useConfig();
|
|
8
|
+
const { routes: { admin: adminRoute }, serverURL } = config;
|
|
25
9
|
const href = `${serverURL}${adminRoute}/collections/${relationTo}/${docId}`;
|
|
26
|
-
return /*#__PURE__*/
|
|
10
|
+
return /*#__PURE__*/ React.createElement("div", null, /*#__PURE__*/ React.createElement("div", null, /*#__PURE__*/ React.createElement("span", {
|
|
27
11
|
className: "label",
|
|
28
12
|
style: {
|
|
29
13
|
color: '#9A9A9A'
|
|
30
14
|
}
|
|
31
|
-
}, "Doc URL")), /*#__PURE__*/
|
|
15
|
+
}, "Doc URL")), /*#__PURE__*/ React.createElement("div", {
|
|
32
16
|
style: {
|
|
33
17
|
fontWeight: '600',
|
|
34
18
|
overflow: 'hidden',
|
|
35
19
|
textOverflow: 'ellipsis'
|
|
36
20
|
}
|
|
37
|
-
}, /*#__PURE__*/
|
|
21
|
+
}, /*#__PURE__*/ React.createElement("a", {
|
|
38
22
|
href: href
|
|
39
23
|
}, href)));
|
|
40
24
|
};
|
|
41
25
|
|
|
42
|
-
//# sourceMappingURL=
|
|
26
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/Search/ui/index.tsx"],"sourcesContent":["import type { FormState, UIField } from 'payload/types'\n\nimport { useConfig, useWatchForm } from '@payloadcms/ui'\nimport React from 'react'\n// TODO: fix this import to work in dev mode within the monorepo in a way that is backwards compatible with 1.x\n// import CopyToClipboard from 'payload/dist/admin/components/elements/CopyToClipboard'\n\ntype FieldsWithDoc = FormState & {\n doc: {\n value: {\n relationTo: string\n value: string\n }\n }\n}\n\nexport const LinkToDoc: React.FC<UIField> = () => {\n const form = useWatchForm()\n const fields = form.fields as FieldsWithDoc\n\n const {\n doc: {\n value: { relationTo, value: docId },\n },\n } = fields\n\n const config = useConfig()\n\n const {\n routes: {\n admin: adminRoute, // already includes leading slash\n },\n serverURL,\n } = config\n\n const href = `${serverURL}${adminRoute}/collections/${relationTo}/${docId}`\n\n return (\n <div>\n <div>\n <span\n className=\"label\"\n style={{\n color: '#9A9A9A',\n }}\n >\n Doc URL\n </span>\n {/* <CopyToClipboard value={href} /> */}\n </div>\n <div\n style={{\n fontWeight: '600',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n }}\n >\n <a href={href}>{href}</a>\n </div>\n </div>\n )\n}\n"],"names":["useConfig","useWatchForm","React","LinkToDoc","form","fields","doc","value","relationTo","docId","config","routes","admin","adminRoute","serverURL","href","div","span","className","style","color","fontWeight","overflow","textOverflow","a"],"mappings":"AAEA,SAASA,SAAS,EAAEC,YAAY,QAAQ,iBAAgB;AACxD,OAAOC,WAAW,QAAO;AAazB,OAAO,MAAMC,YAA+B;IAC1C,MAAMC,OAAOH;IACb,MAAMI,SAASD,KAAKC,MAAM;IAE1B,MAAM,EACJC,KAAK,EACHC,OAAO,EAAEC,UAAU,EAAED,OAAOE,KAAK,EAAE,EACpC,EACF,GAAGJ;IAEJ,MAAMK,SAASV;IAEf,MAAM,EACJW,QAAQ,EACNC,OAAOC,UAAU,EAClB,EACDC,SAAS,EACV,GAAGJ;IAEJ,MAAMK,OAAO,CAAC,EAAED,UAAU,EAAED,WAAW,aAAa,EAAEL,WAAW,CAAC,EAAEC,MAAM,CAAC;IAE3E,qBACE,oBAACO,2BACC,oBAACA,2BACC,oBAACC;QACCC,WAAU;QACVC,OAAO;YACLC,OAAO;QACT;OACD,2BAKH,oBAACJ;QACCG,OAAO;YACLE,YAAY;YACZC,UAAU;YACVC,cAAc;QAChB;qBAEA,oBAACC;QAAET,MAAMA;OAAOA;AAIxB,EAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Config } from 'payload/config';
|
|
2
|
-
import type { SearchConfig } from './types';
|
|
2
|
+
import type { SearchConfig } from './types.js';
|
|
3
3
|
declare const Search: (incomingSearchConfig: SearchConfig) => (config: Config) => Config;
|
|
4
4
|
export default Search;
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAE5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAE5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAM9C,QAAA,MAAM,MAAM,yBACa,YAAY,cAC1B,MAAM,KAAG,MAoDjB,CAAA;AAEH,eAAe,MAAM,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,21 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "default", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return _default;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _Search = require("./Search");
|
|
12
|
-
const _deleteFromSearch = /*#__PURE__*/ _interop_require_default(require("./Search/hooks/deleteFromSearch"));
|
|
13
|
-
const _syncWithSearch = /*#__PURE__*/ _interop_require_default(require("./Search/hooks/syncWithSearch"));
|
|
14
|
-
function _interop_require_default(obj) {
|
|
15
|
-
return obj && obj.__esModule ? obj : {
|
|
16
|
-
default: obj
|
|
17
|
-
};
|
|
18
|
-
}
|
|
1
|
+
import deleteFromSearch from './Search/hooks/deleteFromSearch.js';
|
|
2
|
+
import syncWithSearch from './Search/hooks/syncWithSearch.js';
|
|
3
|
+
import { generateSearchCollection } from './Search/index.js';
|
|
19
4
|
const Search = (incomingSearchConfig)=>(config)=>{
|
|
20
5
|
const { collections } = config;
|
|
21
6
|
if (collections) {
|
|
@@ -37,7 +22,7 @@ const Search = (incomingSearchConfig)=>(config)=>{
|
|
|
37
22
|
afterChange: [
|
|
38
23
|
...existingHooks?.afterChange || [],
|
|
39
24
|
async (args)=>{
|
|
40
|
-
await (
|
|
25
|
+
await syncWithSearch({
|
|
41
26
|
...args,
|
|
42
27
|
collection: collection.slug,
|
|
43
28
|
searchConfig
|
|
@@ -46,7 +31,7 @@ const Search = (incomingSearchConfig)=>(config)=>{
|
|
|
46
31
|
],
|
|
47
32
|
afterDelete: [
|
|
48
33
|
...existingHooks?.afterDelete || [],
|
|
49
|
-
|
|
34
|
+
deleteFromSearch
|
|
50
35
|
]
|
|
51
36
|
}
|
|
52
37
|
};
|
|
@@ -57,12 +42,12 @@ const Search = (incomingSearchConfig)=>(config)=>{
|
|
|
57
42
|
...config,
|
|
58
43
|
collections: [
|
|
59
44
|
...collectionsWithSearchHooks || [],
|
|
60
|
-
|
|
45
|
+
generateSearchCollection(searchConfig)
|
|
61
46
|
]
|
|
62
47
|
};
|
|
63
48
|
}
|
|
64
49
|
return config;
|
|
65
50
|
};
|
|
66
|
-
|
|
51
|
+
export default Search;
|
|
67
52
|
|
|
68
|
-
//# sourceMappingURL=
|
|
53
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type { Config } from 'payload/config'\n\nimport type { SearchConfig } from './types.js'\n\nimport deleteFromSearch from './Search/hooks/deleteFromSearch.js'\nimport syncWithSearch from './Search/hooks/syncWithSearch.js'\nimport { generateSearchCollection } from './Search/index.js'\n\nconst Search =\n (incomingSearchConfig: SearchConfig) =>\n (config: Config): Config => {\n const { collections } = config\n\n if (collections) {\n const searchConfig: SearchConfig = {\n ...incomingSearchConfig,\n deleteDrafts: true,\n syncDrafts: false,\n // write any config defaults here\n }\n\n // add afterChange and afterDelete hooks to every search-enabled collection\n const collectionsWithSearchHooks = config?.collections\n ?.map((collection) => {\n const { hooks: existingHooks } = collection\n\n const enabledCollections = searchConfig.collections || []\n const isEnabled = enabledCollections.indexOf(collection.slug) > -1\n if (isEnabled) {\n return {\n ...collection,\n hooks: {\n ...collection.hooks,\n afterChange: [\n ...(existingHooks?.afterChange || []),\n async (args: any) => {\n await syncWithSearch({\n ...args,\n collection: collection.slug,\n searchConfig,\n })\n },\n ],\n afterDelete: [...(existingHooks?.afterDelete || []), deleteFromSearch],\n },\n }\n }\n\n return collection\n })\n .filter(Boolean)\n\n return {\n ...config,\n collections: [\n ...(collectionsWithSearchHooks || []),\n generateSearchCollection(searchConfig),\n ],\n }\n }\n\n return config\n }\n\nexport default Search\n"],"names":["deleteFromSearch","syncWithSearch","generateSearchCollection","Search","incomingSearchConfig","config","collections","searchConfig","deleteDrafts","syncDrafts","collectionsWithSearchHooks","map","collection","hooks","existingHooks","enabledCollections","isEnabled","indexOf","slug","afterChange","args","afterDelete","filter","Boolean"],"mappings":"AAIA,OAAOA,sBAAsB,qCAAoC;AACjE,OAAOC,oBAAoB,mCAAkC;AAC7D,SAASC,wBAAwB,QAAQ,oBAAmB;AAE5D,MAAMC,SACJ,CAACC,uBACD,CAACC;QACC,MAAM,EAAEC,WAAW,EAAE,GAAGD;QAExB,IAAIC,aAAa;YACf,MAAMC,eAA6B;gBACjC,GAAGH,oBAAoB;gBACvBI,cAAc;gBACdC,YAAY;YAEd;YAEA,2EAA2E;YAC3E,MAAMC,6BAA6BL,QAAQC,aACvCK,IAAI,CAACC;gBACL,MAAM,EAAEC,OAAOC,aAAa,EAAE,GAAGF;gBAEjC,MAAMG,qBAAqBR,aAAaD,WAAW,IAAI,EAAE;gBACzD,MAAMU,YAAYD,mBAAmBE,OAAO,CAACL,WAAWM,IAAI,IAAI,CAAC;gBACjE,IAAIF,WAAW;oBACb,OAAO;wBACL,GAAGJ,UAAU;wBACbC,OAAO;4BACL,GAAGD,WAAWC,KAAK;4BACnBM,aAAa;mCACPL,eAAeK,eAAe,EAAE;gCACpC,OAAOC;oCACL,MAAMnB,eAAe;wCACnB,GAAGmB,IAAI;wCACPR,YAAYA,WAAWM,IAAI;wCAC3BX;oCACF;gCACF;6BACD;4BACDc,aAAa;mCAAKP,eAAeO,eAAe,EAAE;gCAAGrB;6BAAiB;wBACxE;oBACF;gBACF;gBAEA,OAAOY;YACT,GACCU,OAAOC;YAEV,OAAO;gBACL,GAAGlB,MAAM;gBACTC,aAAa;uBACPI,8BAA8B,EAAE;oBACpCR,yBAAyBK;iBAC1B;YACH;QACF;QAEA,OAAOF;IACT;AAEF,eAAeF,OAAM"}
|
package/dist/types.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
});
|
|
1
|
+
// Extend the `CollectionAfterChangeHook` with more function args
|
|
2
|
+
// Convert the `collection` arg from `SanitizedCollectionConfig` to a string
|
|
3
|
+
export { };
|
|
5
4
|
|
|
6
|
-
//# sourceMappingURL=
|
|
5
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type { Payload } from 'payload'\nimport type { CollectionAfterChangeHook, CollectionConfig, PayloadRequest } from 'payload/types'\n\nexport interface DocToSync {\n [key: string]: any\n doc: {\n relationTo: string\n value: string\n }\n title: string\n}\n\nexport type BeforeSync = (args: {\n originalDoc: {\n [key: string]: any\n }\n payload: Payload\n req: PayloadRequest\n searchDoc: DocToSync\n}) => DocToSync | Promise<DocToSync>\n\nexport interface SearchConfig {\n beforeSync?: BeforeSync\n collections?: string[]\n defaultPriorities?: {\n [collection: string]: ((doc: any) => Promise<number> | number) | number\n }\n deleteDrafts?: boolean\n searchOverrides?: Partial<CollectionConfig>\n syncDrafts?: boolean\n}\n\n// Extend the `CollectionAfterChangeHook` with more function args\n// Convert the `collection` arg from `SanitizedCollectionConfig` to a string\nexport type SyncWithSearch = (\n Args: Omit<Parameters<CollectionAfterChangeHook>[0], 'collection'> & {\n collection: string\n },\n) => ReturnType<CollectionAfterChangeHook>\n"],"names":[],"mappings":"AAgCA,iEAAiE;AACjE,4EAA4E;AAC5E,WAI0C"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/plugin-search",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0-alpha.43",
|
|
4
4
|
"homepage:": "https://payloadcms.com",
|
|
5
5
|
"repository": "git@github.com:payloadcms/plugin-search.git",
|
|
6
6
|
"description": "Search plugin for Payload",
|
|
7
7
|
"main": "./dist/index.js",
|
|
8
8
|
"types": "./dist/index.d.ts",
|
|
9
|
+
"type": "module",
|
|
9
10
|
"keywords": [
|
|
10
11
|
"payload",
|
|
11
12
|
"cms",
|
|
@@ -18,18 +19,19 @@
|
|
|
18
19
|
"author": "dev@trbl.design",
|
|
19
20
|
"license": "MIT",
|
|
20
21
|
"peerDependencies": {
|
|
21
|
-
"
|
|
22
|
-
"
|
|
22
|
+
"react": "^16.8.0 || ^17.0.0 || ^18.0.0",
|
|
23
|
+
"payload": "3.0.0-alpha.43"
|
|
23
24
|
},
|
|
24
25
|
"dependencies": {
|
|
25
|
-
"
|
|
26
|
+
"deepmerge": "4.3.1",
|
|
27
|
+
"@payloadcms/ui": "3.0.0-alpha.43"
|
|
26
28
|
},
|
|
27
29
|
"devDependencies": {
|
|
28
30
|
"@types/express": "^4.17.9",
|
|
29
31
|
"@types/react": "18.0.21",
|
|
30
32
|
"react": "^18.0.0",
|
|
31
33
|
"@payloadcms/eslint-config": "1.1.1",
|
|
32
|
-
"payload": "
|
|
34
|
+
"payload": "3.0.0-alpha.43"
|
|
33
35
|
},
|
|
34
36
|
"exports": null,
|
|
35
37
|
"publishConfig": {
|