@payloadcms/plugin-search 3.0.0-beta.13 → 3.0.0-beta.131
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.d.ts +2 -3
- package/dist/Search/hooks/deleteFromSearch.d.ts.map +1 -1
- package/dist/Search/hooks/deleteFromSearch.js +6 -5
- package/dist/Search/hooks/deleteFromSearch.js.map +1 -1
- package/dist/Search/hooks/syncWithSearch.d.ts +1 -2
- package/dist/Search/hooks/syncWithSearch.d.ts.map +1 -1
- package/dist/Search/hooks/syncWithSearch.js +52 -20
- package/dist/Search/hooks/syncWithSearch.js.map +1 -1
- package/dist/Search/index.d.ts +3 -3
- package/dist/Search/index.d.ts.map +1 -1
- package/dist/Search/index.js +59 -47
- package/dist/Search/index.js.map +1 -1
- package/dist/Search/ui/index.client.d.ts +3 -0
- package/dist/Search/ui/index.client.d.ts.map +1 -0
- package/dist/Search/ui/index.client.js +51 -0
- package/dist/Search/ui/index.client.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 +3 -22
- package/dist/Search/ui/index.js.map +1 -1
- package/dist/exports/client.d.ts +2 -0
- package/dist/exports/client.d.ts.map +1 -0
- package/dist/exports/client.js +3 -0
- package/dist/exports/client.js.map +1 -0
- package/dist/exports/types.d.ts +2 -0
- package/dist/exports/types.d.ts.map +1 -0
- package/dist/exports/types.js +3 -0
- package/dist/exports/types.js.map +1 -0
- package/dist/index.d.ts +3 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -11
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +19 -10
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +1 -1
- package/license.md +22 -0
- package/package.json +54 -34
- package/types.d.ts +0 -1
- package/types.js +0 -1
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
declare const deleteFromSearch:
|
|
3
|
-
export default deleteFromSearch;
|
|
1
|
+
import type { DeleteFromSearch } from '../../types.js';
|
|
2
|
+
export declare const deleteFromSearch: DeleteFromSearch;
|
|
4
3
|
//# sourceMappingURL=deleteFromSearch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deleteFromSearch.d.ts","sourceRoot":"","sources":["../../../src/Search/hooks/deleteFromSearch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"deleteFromSearch.d.ts","sourceRoot":"","sources":["../../../src/Search/hooks/deleteFromSearch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEtD,eAAO,MAAM,gBAAgB,EAAE,gBAkC9B,CAAA"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
const deleteFromSearch = async ({ doc, req: { payload }, req })=>{
|
|
1
|
+
export const deleteFromSearch = async ({ doc, pluginConfig, req: { payload }, req })=>{
|
|
2
|
+
const searchSlug = pluginConfig?.searchOverrides?.slug || 'search';
|
|
2
3
|
try {
|
|
3
4
|
const searchDocQuery = await payload.find({
|
|
4
|
-
collection:
|
|
5
|
+
collection: searchSlug,
|
|
5
6
|
depth: 0,
|
|
6
7
|
req,
|
|
7
8
|
where: {
|
|
@@ -13,17 +14,17 @@ const deleteFromSearch = async ({ doc, req: { payload }, req })=>{
|
|
|
13
14
|
if (searchDocQuery?.docs?.[0]) {
|
|
14
15
|
await payload.delete({
|
|
15
16
|
id: searchDocQuery?.docs?.[0]?.id,
|
|
16
|
-
collection:
|
|
17
|
+
collection: searchSlug,
|
|
17
18
|
req
|
|
18
19
|
});
|
|
19
20
|
}
|
|
20
21
|
} catch (err) {
|
|
21
22
|
payload.logger.error({
|
|
22
|
-
err
|
|
23
|
+
err,
|
|
24
|
+
msg: `Error deleting ${searchSlug} doc.`
|
|
23
25
|
});
|
|
24
26
|
}
|
|
25
27
|
return doc;
|
|
26
28
|
};
|
|
27
|
-
export default deleteFromSearch;
|
|
28
29
|
|
|
29
30
|
//# sourceMappingURL=deleteFromSearch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/Search/hooks/deleteFromSearch.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"sources":["../../../src/Search/hooks/deleteFromSearch.ts"],"sourcesContent":["import type { DeleteFromSearch } from '../../types.js'\n\nexport const deleteFromSearch: DeleteFromSearch = async ({\n doc,\n pluginConfig,\n req: { payload },\n req,\n}) => {\n const searchSlug = pluginConfig?.searchOverrides?.slug || 'search'\n try {\n const searchDocQuery = await payload.find({\n collection: searchSlug,\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: searchSlug,\n req,\n })\n }\n } catch (err: unknown) {\n payload.logger.error({\n err,\n msg: `Error deleting ${searchSlug} doc.`,\n })\n }\n\n return doc\n}\n"],"names":["deleteFromSearch","doc","pluginConfig","req","payload","searchSlug","searchOverrides","slug","searchDocQuery","find","collection","depth","where","equals","id","docs","delete","err","logger","error","msg"],"mappings":"AAEA,OAAO,MAAMA,mBAAqC,OAAO,EACvDC,GAAG,EACHC,YAAY,EACZC,KAAK,EAAEC,OAAO,EAAE,EAChBD,GAAG,EACJ;IACC,MAAME,aAAaH,cAAcI,iBAAiBC,QAAQ;IAC1D,IAAI;QACF,MAAMC,iBAAiB,MAAMJ,QAAQK,IAAI,CAAC;YACxCC,YAAYL;YACZM,OAAO;YACPR;YACAS,OAAO;gBACL,aAAa;oBACXC,QAAQZ,IAAIa,EAAE;gBAChB;YACF;QACF;QAEA,IAAIN,gBAAgBO,MAAM,CAAC,EAAE,EAAE;YAC7B,MAAMX,QAAQY,MAAM,CAAC;gBACnBF,IAAIN,gBAAgBO,MAAM,CAAC,EAAE,EAAED;gBAC/BJ,YAAYL;gBACZF;YACF;QACF;IACF,EAAE,OAAOc,KAAc;QACrBb,QAAQc,MAAM,CAACC,KAAK,CAAC;YACnBF;YACAG,KAAK,CAAC,eAAe,EAAEf,WAAW,KAAK,CAAC;QAC1C;IACF;IAEA,OAAOJ;AACT,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syncWithSearch.d.ts","sourceRoot":"","sources":["../../../src/Search/hooks/syncWithSearch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"syncWithSearch.d.ts","sourceRoot":"","sources":["../../../src/Search/hooks/syncWithSearch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE/D,eAAO,MAAM,cAAc,EAAE,cAmL5B,CAAA"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
const syncWithSearch = async (args)=>{
|
|
2
|
-
const { collection, doc, operation, req: { payload }, req
|
|
3
|
-
searchConfig } = args;
|
|
1
|
+
export const syncWithSearch = async (args)=>{
|
|
2
|
+
const { collection, doc, operation, pluginConfig, req: { payload }, req } = args;
|
|
4
3
|
const { id, _status: status, title } = doc || {};
|
|
5
|
-
const { beforeSync, defaultPriorities, deleteDrafts, syncDrafts } =
|
|
6
|
-
;
|
|
4
|
+
const { beforeSync, defaultPriorities, deleteDrafts, searchOverrides, syncDrafts } = pluginConfig;
|
|
5
|
+
const searchSlug = searchOverrides?.slug || 'search';
|
|
7
6
|
let dataToSave = {
|
|
8
7
|
doc: {
|
|
9
8
|
relationTo: collection,
|
|
@@ -12,8 +11,17 @@ const syncWithSearch = async (args)=>{
|
|
|
12
11
|
title
|
|
13
12
|
};
|
|
14
13
|
if (typeof beforeSync === 'function') {
|
|
14
|
+
let docToSyncWith = doc;
|
|
15
|
+
if (payload.config?.localization) {
|
|
16
|
+
docToSyncWith = await payload.findByID({
|
|
17
|
+
id,
|
|
18
|
+
collection,
|
|
19
|
+
locale: req.locale,
|
|
20
|
+
req
|
|
21
|
+
});
|
|
22
|
+
}
|
|
15
23
|
dataToSave = await beforeSync({
|
|
16
|
-
originalDoc:
|
|
24
|
+
originalDoc: docToSyncWith,
|
|
17
25
|
payload,
|
|
18
26
|
req,
|
|
19
27
|
searchDoc: dataToSave
|
|
@@ -27,7 +35,7 @@ const syncWithSearch = async (args)=>{
|
|
|
27
35
|
defaultPriority = await priority(doc);
|
|
28
36
|
} catch (err) {
|
|
29
37
|
payload.logger.error(err);
|
|
30
|
-
payload.logger.error(`Error gathering default priority for
|
|
38
|
+
payload.logger.error(`Error gathering default priority for ${searchSlug} documents related to ${collection}`);
|
|
31
39
|
}
|
|
32
40
|
} else {
|
|
33
41
|
defaultPriority = priority;
|
|
@@ -38,11 +46,12 @@ const syncWithSearch = async (args)=>{
|
|
|
38
46
|
if (operation === 'create') {
|
|
39
47
|
if (doSync) {
|
|
40
48
|
await payload.create({
|
|
41
|
-
collection:
|
|
49
|
+
collection: searchSlug,
|
|
42
50
|
data: {
|
|
43
51
|
...dataToSave,
|
|
44
52
|
priority: defaultPriority
|
|
45
53
|
},
|
|
54
|
+
locale: req.locale,
|
|
46
55
|
req
|
|
47
56
|
});
|
|
48
57
|
}
|
|
@@ -51,10 +60,14 @@ const syncWithSearch = async (args)=>{
|
|
|
51
60
|
try {
|
|
52
61
|
// find the correct doc to sync with
|
|
53
62
|
const searchDocQuery = await payload.find({
|
|
54
|
-
collection:
|
|
63
|
+
collection: searchSlug,
|
|
55
64
|
depth: 0,
|
|
65
|
+
locale: req.locale,
|
|
56
66
|
req,
|
|
57
67
|
where: {
|
|
68
|
+
'doc.relationTo': {
|
|
69
|
+
equals: collection
|
|
70
|
+
},
|
|
58
71
|
'doc.value': {
|
|
59
72
|
equals: id
|
|
60
73
|
}
|
|
@@ -68,7 +81,7 @@ const syncWithSearch = async (args)=>{
|
|
|
68
81
|
try {
|
|
69
82
|
const duplicativeDocIDs = duplicativeDocs.map(({ id })=>id);
|
|
70
83
|
await payload.delete({
|
|
71
|
-
collection:
|
|
84
|
+
collection: searchSlug,
|
|
72
85
|
req,
|
|
73
86
|
where: {
|
|
74
87
|
id: {
|
|
@@ -77,7 +90,10 @@ const syncWithSearch = async (args)=>{
|
|
|
77
90
|
}
|
|
78
91
|
});
|
|
79
92
|
} catch (err) {
|
|
80
|
-
payload.logger.error(
|
|
93
|
+
payload.logger.error({
|
|
94
|
+
err,
|
|
95
|
+
msg: `Error deleting duplicative ${searchSlug} documents.`
|
|
96
|
+
});
|
|
81
97
|
}
|
|
82
98
|
}
|
|
83
99
|
if (foundDoc) {
|
|
@@ -87,15 +103,19 @@ const syncWithSearch = async (args)=>{
|
|
|
87
103
|
try {
|
|
88
104
|
await payload.update({
|
|
89
105
|
id: searchDocID,
|
|
90
|
-
collection:
|
|
106
|
+
collection: searchSlug,
|
|
91
107
|
data: {
|
|
92
108
|
...dataToSave,
|
|
93
109
|
priority: foundDoc.priority || defaultPriority
|
|
94
110
|
},
|
|
111
|
+
locale: req.locale,
|
|
95
112
|
req
|
|
96
113
|
});
|
|
97
114
|
} catch (err) {
|
|
98
|
-
payload.logger.error(
|
|
115
|
+
payload.logger.error({
|
|
116
|
+
err,
|
|
117
|
+
msg: `Error updating ${searchSlug} document.`
|
|
118
|
+
});
|
|
99
119
|
}
|
|
100
120
|
}
|
|
101
121
|
if (deleteDrafts && status === 'draft') {
|
|
@@ -103,36 +123,48 @@ const syncWithSearch = async (args)=>{
|
|
|
103
123
|
try {
|
|
104
124
|
await payload.delete({
|
|
105
125
|
id: searchDocID,
|
|
106
|
-
collection:
|
|
126
|
+
collection: searchSlug,
|
|
107
127
|
req
|
|
108
128
|
});
|
|
109
129
|
} catch (err) {
|
|
110
|
-
payload.logger.error(
|
|
130
|
+
payload.logger.error({
|
|
131
|
+
err,
|
|
132
|
+
msg: `Error deleting ${searchSlug} document.`
|
|
133
|
+
});
|
|
111
134
|
}
|
|
112
135
|
}
|
|
113
136
|
} else if (doSync) {
|
|
114
137
|
try {
|
|
115
138
|
await payload.create({
|
|
116
|
-
collection:
|
|
139
|
+
collection: searchSlug,
|
|
117
140
|
data: {
|
|
118
141
|
...dataToSave,
|
|
119
142
|
priority: defaultPriority
|
|
120
143
|
},
|
|
144
|
+
locale: req.locale,
|
|
121
145
|
req
|
|
122
146
|
});
|
|
123
147
|
} catch (err) {
|
|
124
|
-
payload.logger.error(
|
|
148
|
+
payload.logger.error({
|
|
149
|
+
err,
|
|
150
|
+
msg: `Error creating ${searchSlug} document.`
|
|
151
|
+
});
|
|
125
152
|
}
|
|
126
153
|
}
|
|
127
154
|
} catch (err) {
|
|
128
|
-
payload.logger.error(
|
|
155
|
+
payload.logger.error({
|
|
156
|
+
err,
|
|
157
|
+
msg: `Error finding ${searchSlug} document.`
|
|
158
|
+
});
|
|
129
159
|
}
|
|
130
160
|
}
|
|
131
161
|
} catch (err) {
|
|
132
|
-
payload.logger.error(
|
|
162
|
+
payload.logger.error({
|
|
163
|
+
err,
|
|
164
|
+
msg: `Error syncing ${searchSlug} document related to ${collection} with id: '${id}'.`
|
|
165
|
+
});
|
|
133
166
|
}
|
|
134
167
|
return doc;
|
|
135
168
|
};
|
|
136
|
-
export default syncWithSearch;
|
|
137
169
|
|
|
138
170
|
//# sourceMappingURL=syncWithSearch.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/Search/hooks/syncWithSearch.ts"],"sourcesContent":["import type { DocToSync,
|
|
1
|
+
{"version":3,"sources":["../../../src/Search/hooks/syncWithSearch.ts"],"sourcesContent":["import type { DocToSync, SyncWithSearch } from '../../types.js'\n\nexport const syncWithSearch: SyncWithSearch = async (args) => {\n const {\n collection,\n doc,\n operation,\n pluginConfig,\n req: { payload },\n req,\n } = args\n\n const { id, _status: status, title } = doc || {}\n\n const { beforeSync, defaultPriorities, deleteDrafts, searchOverrides, syncDrafts } = pluginConfig\n\n const searchSlug = searchOverrides?.slug || 'search'\n\n let dataToSave: DocToSync = {\n doc: {\n relationTo: collection,\n value: id,\n },\n title,\n }\n\n if (typeof beforeSync === 'function') {\n let docToSyncWith = doc\n if (payload.config?.localization) {\n docToSyncWith = await payload.findByID({\n id,\n collection,\n locale: req.locale,\n req,\n })\n }\n dataToSave = await beforeSync({\n originalDoc: docToSyncWith,\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 ${searchSlug} 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: searchSlug,\n data: {\n ...dataToSave,\n priority: defaultPriority,\n },\n locale: req.locale,\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: searchSlug,\n depth: 0,\n locale: req.locale,\n req,\n where: {\n 'doc.relationTo': {\n equals: collection,\n },\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: searchSlug,\n req,\n where: { id: { in: duplicativeDocIDs } },\n })\n } catch (err: unknown) {\n payload.logger.error({\n err,\n msg: `Error deleting duplicative ${searchSlug} documents.`,\n })\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: searchSlug,\n data: {\n ...dataToSave,\n priority: foundDoc.priority || defaultPriority,\n },\n locale: req.locale,\n req,\n })\n } catch (err: unknown) {\n payload.logger.error({ err, msg: `Error updating ${searchSlug} 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: searchSlug,\n req,\n })\n } catch (err: unknown) {\n payload.logger.error({ err, msg: `Error deleting ${searchSlug} document.` })\n }\n }\n } else if (doSync) {\n try {\n await payload.create({\n collection: searchSlug,\n data: {\n ...dataToSave,\n priority: defaultPriority,\n },\n locale: req.locale,\n req,\n })\n } catch (err: unknown) {\n payload.logger.error({ err, msg: `Error creating ${searchSlug} document.` })\n }\n }\n } catch (err: unknown) {\n payload.logger.error({ err, msg: `Error finding ${searchSlug} document.` })\n }\n }\n } catch (err: unknown) {\n payload.logger.error({\n err,\n msg: `Error syncing ${searchSlug} document related to ${collection} with id: '${id}'.`,\n })\n }\n\n return doc\n}\n"],"names":["syncWithSearch","args","collection","doc","operation","pluginConfig","req","payload","id","_status","status","title","beforeSync","defaultPriorities","deleteDrafts","searchOverrides","syncDrafts","searchSlug","slug","dataToSave","relationTo","value","docToSyncWith","config","localization","findByID","locale","originalDoc","searchDoc","defaultPriority","priority","err","logger","error","doSync","create","data","searchDocQuery","find","depth","where","equals","docs","foundDoc","duplicativeDocs","length","duplicativeDocIDs","map","delete","in","msg","searchDocID","update"],"mappings":"AAEA,OAAO,MAAMA,iBAAiC,OAAOC;IACnD,MAAM,EACJC,UAAU,EACVC,GAAG,EACHC,SAAS,EACTC,YAAY,EACZC,KAAK,EAAEC,OAAO,EAAE,EAChBD,GAAG,EACJ,GAAGL;IAEJ,MAAM,EAAEO,EAAE,EAAEC,SAASC,MAAM,EAAEC,KAAK,EAAE,GAAGR,OAAO,CAAC;IAE/C,MAAM,EAAES,UAAU,EAAEC,iBAAiB,EAAEC,YAAY,EAAEC,eAAe,EAAEC,UAAU,EAAE,GAAGX;IAErF,MAAMY,aAAaF,iBAAiBG,QAAQ;IAE5C,IAAIC,aAAwB;QAC1BhB,KAAK;YACHiB,YAAYlB;YACZmB,OAAOb;QACT;QACAG;IACF;IAEA,IAAI,OAAOC,eAAe,YAAY;QACpC,IAAIU,gBAAgBnB;QACpB,IAAII,QAAQgB,MAAM,EAAEC,cAAc;YAChCF,gBAAgB,MAAMf,QAAQkB,QAAQ,CAAC;gBACrCjB;gBACAN;gBACAwB,QAAQpB,IAAIoB,MAAM;gBAClBpB;YACF;QACF;QACAa,aAAa,MAAMP,WAAW;YAC5Be,aAAaL;YACbf;YACAD;YACAsB,WAAWT;QACb;IACF;IAEA,IAAIU,kBAAkB;IACtB,IAAIhB,mBAAmB;QACrB,MAAM,EAAE,CAACX,WAAW,EAAE4B,QAAQ,EAAE,GAAGjB;QAEnC,IAAI,OAAOiB,aAAa,YAAY;YAClC,IAAI;gBACFD,kBAAkB,MAAMC,SAAS3B;YACnC,EAAE,OAAO4B,KAAc;gBACrBxB,QAAQyB,MAAM,CAACC,KAAK,CAACF;gBACrBxB,QAAQyB,MAAM,CAACC,KAAK,CAClB,CAAC,qCAAqC,EAAEhB,WAAW,sBAAsB,EAAEf,WAAW,CAAC;YAE3F;QACF,OAAO;YACL2B,kBAAkBC;QACpB;IACF;IAEA,MAAMI,SAASlB,cAAe,CAACA,cAAcN,WAAW;IAExD,IAAI;QACF,IAAIN,cAAc,UAAU;YAC1B,IAAI8B,QAAQ;gBACV,MAAM3B,QAAQ4B,MAAM,CAAC;oBACnBjC,YAAYe;oBACZmB,MAAM;wBACJ,GAAGjB,UAAU;wBACbW,UAAUD;oBACZ;oBACAH,QAAQpB,IAAIoB,MAAM;oBAClBpB;gBACF;YACF;QACF;QAEA,IAAIF,cAAc,UAAU;YAC1B,IAAI;gBACF,oCAAoC;gBACpC,MAAMiC,iBAAiB,MAAM9B,QAAQ+B,IAAI,CAAC;oBACxCpC,YAAYe;oBACZsB,OAAO;oBACPb,QAAQpB,IAAIoB,MAAM;oBAClBpB;oBACAkC,OAAO;wBACL,kBAAkB;4BAChBC,QAAQvC;wBACV;wBACA,aAAa;4BACXuC,QAAQjC;wBACV;oBACF;gBACF;gBAEA,MAAMkC,OAGDL,gBAAgBK,QAAQ,EAAE;gBAE/B,MAAM,CAACC,UAAU,GAAGC,gBAAgB,GAAGF;gBAEvC,yEAAyE;gBACzE,wGAAwG;gBACxG,IAAIE,gBAAgBC,MAAM,GAAG,GAAG;oBAC9B,IAAI;wBACF,MAAMC,oBAAoBF,gBAAgBG,GAAG,CAAC,CAAC,EAAEvC,EAAE,EAAE,GAAKA;wBAC1D,MAAMD,QAAQyC,MAAM,CAAC;4BACnB9C,YAAYe;4BACZX;4BACAkC,OAAO;gCAAEhC,IAAI;oCAAEyC,IAAIH;gCAAkB;4BAAE;wBACzC;oBACF,EAAE,OAAOf,KAAc;wBACrBxB,QAAQyB,MAAM,CAACC,KAAK,CAAC;4BACnBF;4BACAmB,KAAK,CAAC,2BAA2B,EAAEjC,WAAW,WAAW,CAAC;wBAC5D;oBACF;gBACF;gBAEA,IAAI0B,UAAU;oBACZ,MAAM,EAAEnC,IAAI2C,WAAW,EAAE,GAAGR;oBAE5B,IAAIT,QAAQ;wBACV,0BAA0B;wBAC1B,IAAI;4BACF,MAAM3B,QAAQ6C,MAAM,CAAC;gCACnB5C,IAAI2C;gCACJjD,YAAYe;gCACZmB,MAAM;oCACJ,GAAGjB,UAAU;oCACbW,UAAUa,SAASb,QAAQ,IAAID;gCACjC;gCACAH,QAAQpB,IAAIoB,MAAM;gCAClBpB;4BACF;wBACF,EAAE,OAAOyB,KAAc;4BACrBxB,QAAQyB,MAAM,CAACC,KAAK,CAAC;gCAAEF;gCAAKmB,KAAK,CAAC,eAAe,EAAEjC,WAAW,UAAU,CAAC;4BAAC;wBAC5E;oBACF;oBACA,IAAIH,gBAAgBJ,WAAW,SAAS;wBACtC,oEAAoE;wBACpE,IAAI;4BACF,MAAMH,QAAQyC,MAAM,CAAC;gCACnBxC,IAAI2C;gCACJjD,YAAYe;gCACZX;4BACF;wBACF,EAAE,OAAOyB,KAAc;4BACrBxB,QAAQyB,MAAM,CAACC,KAAK,CAAC;gCAAEF;gCAAKmB,KAAK,CAAC,eAAe,EAAEjC,WAAW,UAAU,CAAC;4BAAC;wBAC5E;oBACF;gBACF,OAAO,IAAIiB,QAAQ;oBACjB,IAAI;wBACF,MAAM3B,QAAQ4B,MAAM,CAAC;4BACnBjC,YAAYe;4BACZmB,MAAM;gCACJ,GAAGjB,UAAU;gCACbW,UAAUD;4BACZ;4BACAH,QAAQpB,IAAIoB,MAAM;4BAClBpB;wBACF;oBACF,EAAE,OAAOyB,KAAc;wBACrBxB,QAAQyB,MAAM,CAACC,KAAK,CAAC;4BAAEF;4BAAKmB,KAAK,CAAC,eAAe,EAAEjC,WAAW,UAAU,CAAC;wBAAC;oBAC5E;gBACF;YACF,EAAE,OAAOc,KAAc;gBACrBxB,QAAQyB,MAAM,CAACC,KAAK,CAAC;oBAAEF;oBAAKmB,KAAK,CAAC,cAAc,EAAEjC,WAAW,UAAU,CAAC;gBAAC;YAC3E;QACF;IACF,EAAE,OAAOc,KAAc;QACrBxB,QAAQyB,MAAM,CAACC,KAAK,CAAC;YACnBF;YACAmB,KAAK,CAAC,cAAc,EAAEjC,WAAW,qBAAqB,EAAEf,WAAW,WAAW,EAAEM,GAAG,EAAE,CAAC;QACxF;IACF;IAEA,OAAOL;AACT,EAAC"}
|
package/dist/Search/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CollectionConfig } from 'payload
|
|
2
|
-
import type {
|
|
3
|
-
export declare const generateSearchCollection: (
|
|
1
|
+
import type { CollectionConfig } from 'payload';
|
|
2
|
+
import type { SearchPluginConfig } from '../types.js';
|
|
3
|
+
export declare const generateSearchCollection: (pluginConfig: SearchPluginConfig) => 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,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Search/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAS,MAAM,SAAS,CAAA;AAEtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAGrD,eAAO,MAAM,wBAAwB,iBAAkB,kBAAkB,KAAG,gBAyE3E,CAAA"}
|
package/dist/Search/index.js
CHANGED
|
@@ -1,11 +1,53 @@
|
|
|
1
|
-
import deepMerge from 'deepmerge';
|
|
2
|
-
import { LinkToDoc } from './ui/index.js';
|
|
3
1
|
// all settings can be overridden by the config
|
|
4
|
-
export const generateSearchCollection = (
|
|
5
|
-
|
|
2
|
+
export const generateSearchCollection = (pluginConfig)=>{
|
|
3
|
+
const defaultFields = [
|
|
4
|
+
{
|
|
5
|
+
name: 'title',
|
|
6
|
+
type: 'text',
|
|
7
|
+
admin: {
|
|
8
|
+
readOnly: true
|
|
9
|
+
},
|
|
10
|
+
localized: pluginConfig.localize
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
name: 'priority',
|
|
14
|
+
type: 'number',
|
|
15
|
+
admin: {
|
|
16
|
+
position: 'sidebar'
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
name: 'doc',
|
|
21
|
+
type: 'relationship',
|
|
22
|
+
admin: {
|
|
23
|
+
position: 'sidebar',
|
|
24
|
+
readOnly: true
|
|
25
|
+
},
|
|
26
|
+
index: true,
|
|
27
|
+
maxDepth: 0,
|
|
28
|
+
relationTo: pluginConfig?.collections || [],
|
|
29
|
+
required: true
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
name: 'docUrl',
|
|
33
|
+
type: 'ui',
|
|
34
|
+
admin: {
|
|
35
|
+
components: {
|
|
36
|
+
Field: {
|
|
37
|
+
path: '@payloadcms/plugin-search/client#LinkToDoc'
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
position: 'sidebar'
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
];
|
|
44
|
+
const newConfig = {
|
|
45
|
+
...pluginConfig?.searchOverrides || {},
|
|
46
|
+
slug: pluginConfig?.searchOverrides?.slug || 'search',
|
|
6
47
|
access: {
|
|
7
48
|
create: ()=>false,
|
|
8
|
-
read: ()=>true
|
|
49
|
+
read: ()=>true,
|
|
50
|
+
...pluginConfig?.searchOverrides?.access || {}
|
|
9
51
|
},
|
|
10
52
|
admin: {
|
|
11
53
|
defaultColumns: [
|
|
@@ -13,50 +55,20 @@ export const generateSearchCollection = (searchConfig)=>deepMerge({
|
|
|
13
55
|
],
|
|
14
56
|
description: '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.',
|
|
15
57
|
enableRichTextRelationship: false,
|
|
16
|
-
useAsTitle: 'title'
|
|
58
|
+
useAsTitle: 'title',
|
|
59
|
+
...pluginConfig?.searchOverrides?.admin || {}
|
|
17
60
|
},
|
|
18
|
-
fields:
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
type: 'text',
|
|
22
|
-
admin: {
|
|
23
|
-
readOnly: true
|
|
24
|
-
}
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
name: 'priority',
|
|
28
|
-
type: 'number',
|
|
29
|
-
admin: {
|
|
30
|
-
position: 'sidebar'
|
|
31
|
-
}
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
name: 'doc',
|
|
35
|
-
type: 'relationship',
|
|
36
|
-
admin: {
|
|
37
|
-
position: 'sidebar',
|
|
38
|
-
readOnly: true
|
|
39
|
-
},
|
|
40
|
-
index: true,
|
|
41
|
-
maxDepth: 0,
|
|
42
|
-
relationTo: searchConfig?.collections || [],
|
|
43
|
-
required: true
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
name: 'docUrl',
|
|
47
|
-
type: 'ui',
|
|
48
|
-
admin: {
|
|
49
|
-
components: {
|
|
50
|
-
Field: LinkToDoc
|
|
51
|
-
},
|
|
52
|
-
position: 'sidebar'
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
],
|
|
61
|
+
fields: pluginConfig?.searchOverrides?.fields && typeof pluginConfig?.searchOverrides?.fields === 'function' ? pluginConfig?.searchOverrides.fields({
|
|
62
|
+
defaultFields
|
|
63
|
+
}) : defaultFields,
|
|
56
64
|
labels: {
|
|
57
|
-
|
|
58
|
-
|
|
65
|
+
...pluginConfig?.searchOverrides?.labels || {
|
|
66
|
+
plural: 'Search Results',
|
|
67
|
+
singular: 'Search Result'
|
|
68
|
+
}
|
|
59
69
|
}
|
|
60
|
-
}
|
|
70
|
+
};
|
|
71
|
+
return newConfig;
|
|
72
|
+
};
|
|
61
73
|
|
|
62
74
|
//# sourceMappingURL=index.js.map
|
package/dist/Search/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Search/index.ts"],"sourcesContent":["import type { CollectionConfig } from 'payload
|
|
1
|
+
{"version":3,"sources":["../../src/Search/index.ts"],"sourcesContent":["import type { CollectionConfig, Field } from 'payload'\n\nimport type { SearchPluginConfig } from '../types.js'\n\n// all settings can be overridden by the config\nexport const generateSearchCollection = (pluginConfig: SearchPluginConfig): CollectionConfig => {\n const defaultFields: Field[] = [\n {\n name: 'title',\n type: 'text',\n admin: {\n readOnly: true,\n },\n localized: pluginConfig.localize,\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: pluginConfig?.collections || [],\n required: true,\n },\n {\n name: 'docUrl',\n type: 'ui',\n admin: {\n components: {\n Field: {\n path: '@payloadcms/plugin-search/client#LinkToDoc',\n },\n },\n position: 'sidebar',\n },\n },\n ]\n\n const newConfig: CollectionConfig = {\n ...(pluginConfig?.searchOverrides || {}),\n slug: pluginConfig?.searchOverrides?.slug || 'search',\n access: {\n create: (): boolean => false,\n read: (): boolean => true,\n ...(pluginConfig?.searchOverrides?.access || {}),\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 ...(pluginConfig?.searchOverrides?.admin || {}),\n },\n fields:\n pluginConfig?.searchOverrides?.fields &&\n typeof pluginConfig?.searchOverrides?.fields === 'function'\n ? pluginConfig?.searchOverrides.fields({ defaultFields })\n : defaultFields,\n labels: {\n ...(pluginConfig?.searchOverrides?.labels || {\n plural: 'Search Results',\n singular: 'Search Result',\n }),\n },\n }\n\n return newConfig\n}\n"],"names":["generateSearchCollection","pluginConfig","defaultFields","name","type","admin","readOnly","localized","localize","position","index","maxDepth","relationTo","collections","required","components","Field","path","newConfig","searchOverrides","slug","access","create","read","defaultColumns","description","enableRichTextRelationship","useAsTitle","fields","labels","plural","singular"],"mappings":"AAIA,+CAA+C;AAC/C,OAAO,MAAMA,2BAA2B,CAACC;IACvC,MAAMC,gBAAyB;QAC7B;YACEC,MAAM;YACNC,MAAM;YACNC,OAAO;gBACLC,UAAU;YACZ;YACAC,WAAWN,aAAaO,QAAQ;QAClC;QACA;YACEL,MAAM;YACNC,MAAM;YACNC,OAAO;gBACLI,UAAU;YACZ;QACF;QACA;YACEN,MAAM;YACNC,MAAM;YACNC,OAAO;gBACLI,UAAU;gBACVH,UAAU;YACZ;YACAI,OAAO;YACPC,UAAU;YACVC,YAAYX,cAAcY,eAAe,EAAE;YAC3CC,UAAU;QACZ;QACA;YACEX,MAAM;YACNC,MAAM;YACNC,OAAO;gBACLU,YAAY;oBACVC,OAAO;wBACLC,MAAM;oBACR;gBACF;gBACAR,UAAU;YACZ;QACF;KACD;IAED,MAAMS,YAA8B;QAClC,GAAIjB,cAAckB,mBAAmB,CAAC,CAAC;QACvCC,MAAMnB,cAAckB,iBAAiBC,QAAQ;QAC7CC,QAAQ;YACNC,QAAQ,IAAe;YACvBC,MAAM,IAAe;YACrB,GAAItB,cAAckB,iBAAiBE,UAAU,CAAC,CAAC;QACjD;QACAhB,OAAO;YACLmB,gBAAgB;gBAAC;aAAQ;YACzBC,aACE;YACFC,4BAA4B;YAC5BC,YAAY;YACZ,GAAI1B,cAAckB,iBAAiBd,SAAS,CAAC,CAAC;QAChD;QACAuB,QACE3B,cAAckB,iBAAiBS,UAC/B,OAAO3B,cAAckB,iBAAiBS,WAAW,aAC7C3B,cAAckB,gBAAgBS,OAAO;YAAE1B;QAAc,KACrDA;QACN2B,QAAQ;YACN,GAAI5B,cAAckB,iBAAiBU,UAAU;gBAC3CC,QAAQ;gBACRC,UAAU;YACZ,CAAC;QACH;IACF;IAEA,OAAOb;AACT,EAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/Search/ui/index.client.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EA+CnC,CAAA"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useConfig, useField } from '@payloadcms/ui';
|
|
4
|
+
import { formatAdminURL } from '@payloadcms/ui/shared';
|
|
5
|
+
import React from 'react';
|
|
6
|
+
// TODO: fix this import to work in dev mode within the monorepo in a way that is backwards compatible with 1.x
|
|
7
|
+
// import CopyToClipboard from 'payload/dist/admin/components/elements/CopyToClipboard'
|
|
8
|
+
export const LinkToDocClient = ()=>{
|
|
9
|
+
const { config } = useConfig();
|
|
10
|
+
const { routes: { admin: adminRoute }, serverURL } = config;
|
|
11
|
+
const { value } = useField({
|
|
12
|
+
path: 'doc'
|
|
13
|
+
});
|
|
14
|
+
const href = `${serverURL}${formatAdminURL({
|
|
15
|
+
adminRoute,
|
|
16
|
+
path: `/collections/${value.relationTo || ''}/${value.value || ''}`
|
|
17
|
+
})}`;
|
|
18
|
+
if (!value.relationTo || !value.value) {
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
return /*#__PURE__*/ _jsxs("div", {
|
|
22
|
+
style: {
|
|
23
|
+
marginBottom: 'var(--spacing-field, 1rem)'
|
|
24
|
+
},
|
|
25
|
+
children: [
|
|
26
|
+
/*#__PURE__*/ _jsx("div", {
|
|
27
|
+
children: /*#__PURE__*/ _jsx("span", {
|
|
28
|
+
className: "label",
|
|
29
|
+
style: {
|
|
30
|
+
color: '#9A9A9A'
|
|
31
|
+
},
|
|
32
|
+
children: "Doc URL"
|
|
33
|
+
})
|
|
34
|
+
}),
|
|
35
|
+
/*#__PURE__*/ _jsx("div", {
|
|
36
|
+
style: {
|
|
37
|
+
fontWeight: '600',
|
|
38
|
+
overflow: 'hidden',
|
|
39
|
+
textOverflow: 'ellipsis'
|
|
40
|
+
},
|
|
41
|
+
children: /*#__PURE__*/ _jsx("a", {
|
|
42
|
+
href: href,
|
|
43
|
+
target: "_blank",
|
|
44
|
+
children: href
|
|
45
|
+
})
|
|
46
|
+
})
|
|
47
|
+
]
|
|
48
|
+
});
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
//# sourceMappingURL=index.client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/Search/ui/index.client.tsx"],"sourcesContent":["'use client'\n\nimport { useConfig, useField } from '@payloadcms/ui'\nimport { formatAdminURL } from '@payloadcms/ui/shared'\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\nexport const LinkToDocClient: React.FC = () => {\n const { config } = useConfig()\n\n const {\n routes: {\n admin: adminRoute, // already includes leading slash\n },\n serverURL,\n } = config\n\n const { value } = useField<{ relationTo?: string; value?: string }>({ path: 'doc' })\n\n const href = `${serverURL}${formatAdminURL({\n adminRoute,\n path: `/collections/${value.relationTo || ''}/${value.value || ''}`,\n })}`\n\n if (!value.relationTo || !value.value) {\n return null\n }\n\n return (\n <div style={{ marginBottom: 'var(--spacing-field, 1rem)' }}>\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} target=\"_blank\">\n {href}\n </a>\n </div>\n </div>\n )\n}\n"],"names":["useConfig","useField","formatAdminURL","React","LinkToDocClient","config","routes","admin","adminRoute","serverURL","value","path","href","relationTo","div","style","marginBottom","span","className","color","fontWeight","overflow","textOverflow","a","target"],"mappings":"AAAA;;AAEA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,iBAAgB;AACpD,SAASC,cAAc,QAAQ,wBAAuB;AACtD,OAAOC,WAAW,QAAO;AACzB,+GAA+G;AAC/G,uFAAuF;AAEvF,OAAO,MAAMC,kBAA4B;IACvC,MAAM,EAAEC,MAAM,EAAE,GAAGL;IAEnB,MAAM,EACJM,QAAQ,EACNC,OAAOC,UAAU,EAClB,EACDC,SAAS,EACV,GAAGJ;IAEJ,MAAM,EAAEK,KAAK,EAAE,GAAGT,SAAkD;QAAEU,MAAM;IAAM;IAElF,MAAMC,OAAO,CAAC,EAAEH,UAAU,EAAEP,eAAe;QACzCM;QACAG,MAAM,CAAC,aAAa,EAAED,MAAMG,UAAU,IAAI,GAAG,CAAC,EAAEH,MAAMA,KAAK,IAAI,GAAG,CAAC;IACrE,GAAG,CAAC;IAEJ,IAAI,CAACA,MAAMG,UAAU,IAAI,CAACH,MAAMA,KAAK,EAAE;QACrC,OAAO;IACT;IAEA,qBACE,MAACI;QAAIC,OAAO;YAAEC,cAAc;QAA6B;;0BACvD,KAACF;0BACC,cAAA,KAACG;oBACCC,WAAU;oBACVH,OAAO;wBACLI,OAAO;oBACT;8BACD;;;0BAKH,KAACL;gBACCC,OAAO;oBACLK,YAAY;oBACZC,UAAU;oBACVC,cAAc;gBAChB;0BAEA,cAAA,KAACC;oBAAEX,MAAMA;oBAAMY,QAAO;8BACnBZ;;;;;AAKX,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Search/ui/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Search/ui/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtC,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,CAEvC,CAAA"}
|
package/dist/Search/ui/index.js
CHANGED
|
@@ -1,27 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { useConfig } from '@payloadcms/ui/providers/Config';
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
2
|
import React from 'react';
|
|
3
|
+
import { LinkToDocClient } from './index.client.js';
|
|
4
4
|
export const LinkToDoc = ()=>{
|
|
5
|
-
|
|
6
|
-
const fields = form.fields;
|
|
7
|
-
const { doc: { value: { relationTo, value: docId } } } = fields;
|
|
8
|
-
const config = useConfig();
|
|
9
|
-
const { routes: { admin: adminRoute }, serverURL } = config;
|
|
10
|
-
const href = `${serverURL}${adminRoute}/collections/${relationTo}/${docId}`;
|
|
11
|
-
return /*#__PURE__*/ React.createElement("div", null, /*#__PURE__*/ React.createElement("div", null, /*#__PURE__*/ React.createElement("span", {
|
|
12
|
-
className: "label",
|
|
13
|
-
style: {
|
|
14
|
-
color: '#9A9A9A'
|
|
15
|
-
}
|
|
16
|
-
}, "Doc URL")), /*#__PURE__*/ React.createElement("div", {
|
|
17
|
-
style: {
|
|
18
|
-
fontWeight: '600',
|
|
19
|
-
overflow: 'hidden',
|
|
20
|
-
textOverflow: 'ellipsis'
|
|
21
|
-
}
|
|
22
|
-
}, /*#__PURE__*/ React.createElement("a", {
|
|
23
|
-
href: href
|
|
24
|
-
}, href)));
|
|
5
|
+
return /*#__PURE__*/ _jsx(LinkToDocClient, {});
|
|
25
6
|
};
|
|
26
7
|
|
|
27
8
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/Search/ui/index.tsx"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"sources":["../../../src/Search/ui/index.tsx"],"sourcesContent":["import type { UIField } from 'payload'\n\nimport React from 'react'\n\nimport { LinkToDocClient } from './index.client.js'\n\nexport const LinkToDoc: React.FC<UIField> = () => {\n return <LinkToDocClient />\n}\n"],"names":["React","LinkToDocClient","LinkToDoc"],"mappings":";AAEA,OAAOA,WAAW,QAAO;AAEzB,SAASC,eAAe,QAAQ,oBAAmB;AAEnD,OAAO,MAAMC,YAA+B;IAC1C,qBAAO,KAACD;AACV,EAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/exports/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/exports/client.ts"],"sourcesContent":["export { LinkToDoc } from '../Search/ui/index.js'\n"],"names":["LinkToDoc"],"mappings":"AAAA,SAASA,SAAS,QAAQ,wBAAuB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/exports/types.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/exports/types.ts"],"sourcesContent":["export type { BeforeSync, DocToSync, SearchPluginConfig, SyncWithSearch } from '../types.js'\n"],"names":[],"mappings":"AAAA,WAA4F"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type { Config } from 'payload
|
|
2
|
-
import type {
|
|
3
|
-
declare const
|
|
4
|
-
export default Search;
|
|
1
|
+
import type { Config } from 'payload';
|
|
2
|
+
import type { SearchPluginConfig } from './types.js';
|
|
3
|
+
export declare const searchPlugin: (incomingPluginConfig: SearchPluginConfig) => (config: Config) => Config;
|
|
5
4
|
//# 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,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAwD,MAAM,EAAE,MAAM,SAAS,CAAA;AAE3F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AASpD,eAAO,MAAM,YAAY,yBACA,kBAAkB,cAChC,MAAM,KAAG,MAoEjB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,18 +1,23 @@
|
|
|
1
|
-
import deleteFromSearch from './Search/hooks/deleteFromSearch.js';
|
|
2
|
-
import syncWithSearch from './Search/hooks/syncWithSearch.js';
|
|
1
|
+
import { deleteFromSearch } from './Search/hooks/deleteFromSearch.js';
|
|
2
|
+
import { syncWithSearch } from './Search/hooks/syncWithSearch.js';
|
|
3
3
|
import { generateSearchCollection } from './Search/index.js';
|
|
4
|
-
const
|
|
4
|
+
export const searchPlugin = (incomingPluginConfig)=>(config)=>{
|
|
5
5
|
const { collections } = config;
|
|
6
|
+
// If the user defines `localize` to either true or false, use that
|
|
7
|
+
// Otherwise, set it based on if their config has localization enabled or disabled
|
|
8
|
+
const shouldLocalize = typeof incomingPluginConfig.localize === 'boolean' ? incomingPluginConfig.localize : Boolean(config.localization);
|
|
9
|
+
incomingPluginConfig.localize = shouldLocalize;
|
|
6
10
|
if (collections) {
|
|
7
|
-
const
|
|
8
|
-
|
|
11
|
+
const pluginConfig = {
|
|
12
|
+
// write any config defaults here
|
|
9
13
|
deleteDrafts: true,
|
|
10
|
-
syncDrafts: false
|
|
14
|
+
syncDrafts: false,
|
|
15
|
+
...incomingPluginConfig
|
|
11
16
|
};
|
|
12
17
|
// add afterChange and afterDelete hooks to every search-enabled collection
|
|
13
18
|
const collectionsWithSearchHooks = config?.collections?.map((collection)=>{
|
|
14
19
|
const { hooks: existingHooks } = collection;
|
|
15
|
-
const enabledCollections =
|
|
20
|
+
const enabledCollections = pluginConfig.collections || [];
|
|
16
21
|
const isEnabled = enabledCollections.indexOf(collection.slug) > -1;
|
|
17
22
|
if (isEnabled) {
|
|
18
23
|
return {
|
|
@@ -25,13 +30,18 @@ const Search = (incomingSearchConfig)=>(config)=>{
|
|
|
25
30
|
await syncWithSearch({
|
|
26
31
|
...args,
|
|
27
32
|
collection: collection.slug,
|
|
28
|
-
|
|
33
|
+
pluginConfig
|
|
29
34
|
});
|
|
30
35
|
}
|
|
31
36
|
],
|
|
32
37
|
afterDelete: [
|
|
33
38
|
...existingHooks?.afterDelete || [],
|
|
34
|
-
|
|
39
|
+
async (args)=>{
|
|
40
|
+
await deleteFromSearch({
|
|
41
|
+
...args,
|
|
42
|
+
pluginConfig
|
|
43
|
+
});
|
|
44
|
+
}
|
|
35
45
|
]
|
|
36
46
|
}
|
|
37
47
|
};
|
|
@@ -42,12 +52,11 @@ const Search = (incomingSearchConfig)=>(config)=>{
|
|
|
42
52
|
...config,
|
|
43
53
|
collections: [
|
|
44
54
|
...collectionsWithSearchHooks || [],
|
|
45
|
-
generateSearchCollection(
|
|
55
|
+
generateSearchCollection(pluginConfig)
|
|
46
56
|
]
|
|
47
57
|
};
|
|
48
58
|
}
|
|
49
59
|
return config;
|
|
50
60
|
};
|
|
51
|
-
export default Search;
|
|
52
61
|
|
|
53
62
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type { Config } from 'payload
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import type { CollectionAfterChangeHook, CollectionAfterDeleteHook, Config } from 'payload'\n\nimport type { SearchPluginConfig } 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\ntype CollectionAfterChangeHookArgs = Parameters<CollectionAfterChangeHook>[0]\ntype CollectionAfterDeleteHookArgs = Parameters<CollectionAfterDeleteHook>[0]\n\nexport const searchPlugin =\n (incomingPluginConfig: SearchPluginConfig) =>\n (config: Config): Config => {\n const { collections } = config\n\n // If the user defines `localize` to either true or false, use that\n // Otherwise, set it based on if their config has localization enabled or disabled\n const shouldLocalize =\n typeof incomingPluginConfig.localize === 'boolean'\n ? incomingPluginConfig.localize\n : Boolean(config.localization)\n incomingPluginConfig.localize = shouldLocalize\n\n if (collections) {\n const pluginConfig: SearchPluginConfig = {\n // write any config defaults here\n deleteDrafts: true,\n syncDrafts: false,\n ...incomingPluginConfig,\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 = pluginConfig.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: CollectionAfterChangeHookArgs) => {\n await syncWithSearch({\n ...args,\n collection: collection.slug,\n pluginConfig,\n })\n },\n ],\n afterDelete: [\n ...(existingHooks?.afterDelete || []),\n async (args: CollectionAfterDeleteHookArgs) => {\n await deleteFromSearch({\n ...args,\n pluginConfig,\n })\n },\n ],\n },\n }\n }\n\n return collection\n })\n .filter(Boolean)\n\n return {\n ...config,\n collections: [\n ...(collectionsWithSearchHooks || []),\n generateSearchCollection(pluginConfig),\n ],\n }\n }\n\n return config\n }\n"],"names":["deleteFromSearch","syncWithSearch","generateSearchCollection","searchPlugin","incomingPluginConfig","config","collections","shouldLocalize","localize","Boolean","localization","pluginConfig","deleteDrafts","syncDrafts","collectionsWithSearchHooks","map","collection","hooks","existingHooks","enabledCollections","isEnabled","indexOf","slug","afterChange","args","afterDelete","filter"],"mappings":"AAIA,SAASA,gBAAgB,QAAQ,qCAAoC;AACrE,SAASC,cAAc,QAAQ,mCAAkC;AACjE,SAASC,wBAAwB,QAAQ,oBAAmB;AAK5D,OAAO,MAAMC,eACX,CAACC,uBACD,CAACC;QACC,MAAM,EAAEC,WAAW,EAAE,GAAGD;QAExB,mEAAmE;QACnE,kFAAkF;QAClF,MAAME,iBACJ,OAAOH,qBAAqBI,QAAQ,KAAK,YACrCJ,qBAAqBI,QAAQ,GAC7BC,QAAQJ,OAAOK,YAAY;QACjCN,qBAAqBI,QAAQ,GAAGD;QAEhC,IAAID,aAAa;YACf,MAAMK,eAAmC;gBACvC,iCAAiC;gBACjCC,cAAc;gBACdC,YAAY;gBACZ,GAAGT,oBAAoB;YACzB;YAEA,2EAA2E;YAC3E,MAAMU,6BAA6BT,QAAQC,aACvCS,IAAI,CAACC;gBACL,MAAM,EAAEC,OAAOC,aAAa,EAAE,GAAGF;gBAEjC,MAAMG,qBAAqBR,aAAaL,WAAW,IAAI,EAAE;gBACzD,MAAMc,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,MAAMvB,eAAe;wCACnB,GAAGuB,IAAI;wCACPR,YAAYA,WAAWM,IAAI;wCAC3BX;oCACF;gCACF;6BACD;4BACDc,aAAa;mCACPP,eAAeO,eAAe,EAAE;gCACpC,OAAOD;oCACL,MAAMxB,iBAAiB;wCACrB,GAAGwB,IAAI;wCACPb;oCACF;gCACF;6BACD;wBACH;oBACF;gBACF;gBAEA,OAAOK;YACT,GACCU,OAAOjB;YAEV,OAAO;gBACL,GAAGJ,MAAM;gBACTC,aAAa;uBACPQ,8BAA8B,EAAE;oBACpCZ,yBAAyBS;iBAC1B;YACH;QACF;QAEA,OAAON;IACT,EAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import type { Payload } from 'payload';
|
|
2
|
-
|
|
3
|
-
export interface DocToSync {
|
|
1
|
+
import type { CollectionAfterChangeHook, CollectionAfterDeleteHook, CollectionConfig, Field, Payload, PayloadRequest } from 'payload';
|
|
2
|
+
export type DocToSync = {
|
|
4
3
|
[key: string]: any;
|
|
5
4
|
doc: {
|
|
6
5
|
relationTo: string;
|
|
7
6
|
value: string;
|
|
8
7
|
};
|
|
9
8
|
title: string;
|
|
10
|
-
}
|
|
9
|
+
};
|
|
11
10
|
export type BeforeSync = (args: {
|
|
12
11
|
originalDoc: {
|
|
13
12
|
[key: string]: any;
|
|
@@ -16,17 +15,27 @@ export type BeforeSync = (args: {
|
|
|
16
15
|
req: PayloadRequest;
|
|
17
16
|
searchDoc: DocToSync;
|
|
18
17
|
}) => DocToSync | Promise<DocToSync>;
|
|
19
|
-
export
|
|
18
|
+
export type FieldsOverride = (args: {
|
|
19
|
+
defaultFields: Field[];
|
|
20
|
+
}) => Field[];
|
|
21
|
+
export type SearchPluginConfig = {
|
|
20
22
|
beforeSync?: BeforeSync;
|
|
21
23
|
collections?: string[];
|
|
22
24
|
defaultPriorities?: {
|
|
23
|
-
[collection: string]: ((doc: any) =>
|
|
25
|
+
[collection: string]: ((doc: any) => number | Promise<number>) | number;
|
|
24
26
|
};
|
|
25
27
|
deleteDrafts?: boolean;
|
|
26
|
-
|
|
28
|
+
localize?: boolean;
|
|
29
|
+
searchOverrides?: {
|
|
30
|
+
fields?: FieldsOverride;
|
|
31
|
+
} & Partial<Omit<CollectionConfig, 'fields'>>;
|
|
27
32
|
syncDrafts?: boolean;
|
|
28
|
-
}
|
|
29
|
-
export type SyncWithSearch = (Args:
|
|
33
|
+
};
|
|
34
|
+
export type SyncWithSearch = (Args: {
|
|
30
35
|
collection: string;
|
|
31
|
-
|
|
36
|
+
pluginConfig: SearchPluginConfig;
|
|
37
|
+
} & Omit<Parameters<CollectionAfterChangeHook>[0], 'collection'>) => ReturnType<CollectionAfterChangeHook>;
|
|
38
|
+
export type DeleteFromSearch = (Args: {
|
|
39
|
+
pluginConfig: SearchPluginConfig;
|
|
40
|
+
} & Omit<Parameters<CollectionAfterDeleteHook>[0], 'collection'>) => ReturnType<CollectionAfterDeleteHook>;
|
|
32
41
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,yBAAyB,EACzB,gBAAgB,EAChB,KAAK,EACL,OAAO,EACP,cAAc,EACf,MAAM,SAAS,CAAA;AAEhB,MAAM,MAAM,SAAS,GAAG;IACtB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;IAClB,GAAG,EAAE;QACH,UAAU,EAAE,MAAM,CAAA;QAClB,KAAK,EAAE,MAAM,CAAA;KACd,CAAA;IACD,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE;IAC9B,WAAW,EAAE;QACX,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KACnB,CAAA;IACD,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,cAAc,CAAA;IACnB,SAAS,EAAE,SAAS,CAAA;CACrB,KAAK,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;AAEpC,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE;IAAE,aAAa,EAAE,KAAK,EAAE,CAAA;CAAE,KAAK,KAAK,EAAE,CAAA;AAE1E,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,iBAAiB,CAAC,EAAE;QAClB,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAA;KACxE,CAAA;IACD,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,eAAe,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,cAAc,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC,CAAA;IACzF,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,CAAA;AAID,MAAM,MAAM,cAAc,GAAG,CAC3B,IAAI,EAAE;IACJ,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,kBAAkB,CAAA;CACjC,GAAG,IAAI,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,KAC7D,UAAU,CAAC,yBAAyB,CAAC,CAAA;AAE1C,MAAM,MAAM,gBAAgB,GAAG,CAC7B,IAAI,EAAE;IACJ,YAAY,EAAE,kBAAkB,CAAA;CACjC,GAAG,IAAI,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,KAC7D,UAAU,CAAC,yBAAyB,CAAC,CAAA"}
|
package/dist/types.js
CHANGED
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type {\n CollectionAfterChangeHook,\n CollectionAfterDeleteHook,\n CollectionConfig,\n Field,\n Payload,\n PayloadRequest,\n} from 'payload'\n\nexport type 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 type FieldsOverride = (args: { defaultFields: Field[] }) => Field[]\n\nexport type SearchPluginConfig = {\n beforeSync?: BeforeSync\n collections?: string[]\n defaultPriorities?: {\n [collection: string]: ((doc: any) => number | Promise<number>) | number\n }\n deleteDrafts?: boolean\n localize?: boolean\n searchOverrides?: { fields?: FieldsOverride } & Partial<Omit<CollectionConfig, 'fields'>>\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: {\n collection: string\n pluginConfig: SearchPluginConfig\n } & Omit<Parameters<CollectionAfterChangeHook>[0], 'collection'>,\n) => ReturnType<CollectionAfterChangeHook>\n\nexport type DeleteFromSearch = (\n Args: {\n pluginConfig: SearchPluginConfig\n } & Omit<Parameters<CollectionAfterDeleteHook>[0], 'collection'>,\n) => ReturnType<CollectionAfterDeleteHook>\n"],"names":[],"mappings":"AAkDA,WAI0C"}
|
package/license.md
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2018-2024 Payload CMS, Inc. <info@payloadcms.com>
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
6
|
+
a copy of this software and associated documentation files (the
|
|
7
|
+
'Software'), to deal in the Software without restriction, including
|
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
11
|
+
the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be
|
|
14
|
+
included in all copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
19
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
20
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
21
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
22
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
package/package.json
CHANGED
|
@@ -1,16 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/plugin-search",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
4
|
-
"homepage:": "https://payloadcms.com",
|
|
5
|
-
"repository": {
|
|
6
|
-
"type": "git",
|
|
7
|
-
"url": "https://github.com/payloadcms/payload.git",
|
|
8
|
-
"directory": "packages/plugin-search"
|
|
9
|
-
},
|
|
3
|
+
"version": "3.0.0-beta.131",
|
|
10
4
|
"description": "Search plugin for Payload",
|
|
11
|
-
"main": "./dist/index.js",
|
|
12
|
-
"types": "./dist/index.d.ts",
|
|
13
|
-
"type": "module",
|
|
14
5
|
"keywords": [
|
|
15
6
|
"payload",
|
|
16
7
|
"cms",
|
|
@@ -20,43 +11,72 @@
|
|
|
20
11
|
"search",
|
|
21
12
|
"algolia"
|
|
22
13
|
],
|
|
23
|
-
"
|
|
14
|
+
"repository": {
|
|
15
|
+
"type": "git",
|
|
16
|
+
"url": "https://github.com/payloadcms/payload.git",
|
|
17
|
+
"directory": "packages/plugin-search"
|
|
18
|
+
},
|
|
24
19
|
"license": "MIT",
|
|
25
|
-
"
|
|
26
|
-
|
|
27
|
-
|
|
20
|
+
"author": "Payload <dev@payloadcms.com> (https://payloadcms.com)",
|
|
21
|
+
"maintainers": [
|
|
22
|
+
{
|
|
23
|
+
"name": "Payload",
|
|
24
|
+
"email": "info@payloadcms.com",
|
|
25
|
+
"url": "https://payloadcms.com"
|
|
26
|
+
}
|
|
27
|
+
],
|
|
28
|
+
"type": "module",
|
|
29
|
+
"exports": {
|
|
30
|
+
".": {
|
|
31
|
+
"import": "./dist/index.js",
|
|
32
|
+
"types": "./dist/index.d.ts",
|
|
33
|
+
"default": "./dist/index.js"
|
|
34
|
+
},
|
|
35
|
+
"./types": {
|
|
36
|
+
"import": "./dist/exports/types.js",
|
|
37
|
+
"types": "./dist/exports/types.d.ts",
|
|
38
|
+
"default": "./dist/exports/types.js"
|
|
39
|
+
},
|
|
40
|
+
"./client": {
|
|
41
|
+
"import": "./dist/exports/client.js",
|
|
42
|
+
"types": "./dist/exports/client.d.ts",
|
|
43
|
+
"default": "./dist/exports/client.js"
|
|
44
|
+
}
|
|
28
45
|
},
|
|
46
|
+
"main": "./dist/index.js",
|
|
47
|
+
"types": "./dist/index.d.ts",
|
|
48
|
+
"files": [
|
|
49
|
+
"dist"
|
|
50
|
+
],
|
|
29
51
|
"dependencies": {
|
|
30
|
-
"
|
|
31
|
-
"@payloadcms/ui": "3.0.0-beta.13"
|
|
52
|
+
"@payloadcms/ui": "3.0.0-beta.131"
|
|
32
53
|
},
|
|
33
54
|
"devDependencies": {
|
|
34
|
-
"@types/
|
|
35
|
-
"@types/react": "
|
|
36
|
-
"
|
|
37
|
-
"@payloadcms/eslint-config": "
|
|
38
|
-
"payload": "3.0.0-beta.13"
|
|
55
|
+
"@types/react": "npm:types-react@19.0.0-rc.1",
|
|
56
|
+
"@types/react-dom": "npm:types-react-dom@19.0.0-rc.1",
|
|
57
|
+
"payload": "3.0.0-beta.131",
|
|
58
|
+
"@payloadcms/eslint-config": "3.0.0-beta.112"
|
|
39
59
|
},
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
"types": "./dist/index.d.ts"
|
|
45
|
-
}
|
|
60
|
+
"peerDependencies": {
|
|
61
|
+
"react": "^19.0.0 || ^19.0.0-rc-65a56d0e-20241020",
|
|
62
|
+
"react-dom": "^19.0.0 || ^19.0.0-rc-65a56d0e-20241020",
|
|
63
|
+
"payload": "3.0.0-beta.131"
|
|
46
64
|
},
|
|
47
65
|
"publishConfig": {
|
|
48
66
|
"registry": "https://registry.npmjs.org/"
|
|
49
67
|
},
|
|
50
|
-
"
|
|
51
|
-
|
|
52
|
-
"types.
|
|
53
|
-
"types.
|
|
54
|
-
|
|
68
|
+
"homepage:": "https://payloadcms.com",
|
|
69
|
+
"overrides": {
|
|
70
|
+
"@types/react": "npm:types-react@19.0.0-rc.1",
|
|
71
|
+
"@types/react-dom": "npm:types-react-dom@19.0.0-rc.1"
|
|
72
|
+
},
|
|
55
73
|
"scripts": {
|
|
56
|
-
"build": "pnpm build:
|
|
57
|
-
"build:swc": "swc ./src -d ./dist --config-file .swcrc",
|
|
74
|
+
"build": "pnpm build:types && pnpm build:swc",
|
|
75
|
+
"build:swc": "swc ./src -d ./dist --config-file .swcrc --strip-leading-paths",
|
|
58
76
|
"build:types": "tsc --emitDeclarationOnly --outDir dist",
|
|
59
77
|
"clean": "rimraf {dist,*.tsbuildinfo}",
|
|
78
|
+
"lint": "eslint .",
|
|
79
|
+
"lint:fix": "eslint . --fix",
|
|
60
80
|
"test": "echo \"Error: no tests specified\""
|
|
61
81
|
}
|
|
62
82
|
}
|
package/types.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './dist/types'
|
package/types.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
module.exports = require('./dist/types')
|