@payloadcms/plugin-search 3.0.0-canary.95fcd13 → 3.0.0-canary.96477cf
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.map +1 -1
- package/dist/Search/hooks/deleteFromSearch.js +2 -1
- package/dist/Search/hooks/deleteFromSearch.js.map +1 -1
- package/dist/Search/hooks/syncWithSearch.d.ts.map +1 -1
- package/dist/Search/hooks/syncWithSearch.js +19 -7
- package/dist/Search/hooks/syncWithSearch.js.map +1 -1
- package/dist/Search/index.d.ts.map +1 -1
- package/dist/Search/index.js +5 -7
- package/dist/Search/index.js.map +1 -1
- package/dist/Search/ui/index.client.d.ts.map +1 -1
- package/dist/Search/ui/index.client.js +4 -5
- package/dist/Search/ui/index.client.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/types.d.ts +1 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +22 -15
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deleteFromSearch.d.ts","sourceRoot":"","sources":["../../../src/Search/hooks/deleteFromSearch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAExD,eAAO,MAAM,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"deleteFromSearch.d.ts","sourceRoot":"","sources":["../../../src/Search/hooks/deleteFromSearch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAExD,eAAO,MAAM,gBAAgB,EAAE,yBAgC9B,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/Search/hooks/deleteFromSearch.ts"],"sourcesContent":["import type { CollectionAfterDeleteHook } from 'payload'\n\nexport const deleteFromSearch: CollectionAfterDeleteHook = async ({\n doc,\n req: { payload },\n req,\n}) => {\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
|
|
1
|
+
{"version":3,"sources":["../../../src/Search/hooks/deleteFromSearch.ts"],"sourcesContent":["import type { CollectionAfterDeleteHook } from 'payload'\n\nexport const deleteFromSearch: CollectionAfterDeleteHook = async ({\n doc,\n req: { payload },\n req,\n}) => {\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,\n msg: `Error deleting search doc.`,\n })\n }\n\n return doc\n}\n"],"names":["deleteFromSearch","doc","req","payload","searchDocQuery","find","collection","depth","where","equals","id","docs","delete","err","logger","error","msg"],"mappings":"AAEA,OAAO,MAAMA,mBAA8C,OAAO,EAChEC,GAAG,EACHC,KAAK,EAAEC,OAAO,EAAE,EAChBD,GAAG,EACJ;IACC,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;YACAG,KAAK,CAAC,0BAA0B,CAAC;QACnC;IACF;IAEA,OAAOf;AACT,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,cA0K5B,CAAA"}
|
|
@@ -62,11 +62,11 @@ export const syncWithSearch = async (args)=>{
|
|
|
62
62
|
depth: 0,
|
|
63
63
|
req,
|
|
64
64
|
where: {
|
|
65
|
-
'doc.value': {
|
|
66
|
-
equals: id
|
|
67
|
-
},
|
|
68
65
|
'doc.relationTo': {
|
|
69
66
|
equals: collection
|
|
67
|
+
},
|
|
68
|
+
'doc.value': {
|
|
69
|
+
equals: id
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
72
|
});
|
|
@@ -117,7 +117,10 @@ export const syncWithSearch = async (args)=>{
|
|
|
117
117
|
req
|
|
118
118
|
});
|
|
119
119
|
} catch (err) {
|
|
120
|
-
payload.logger.error(
|
|
120
|
+
payload.logger.error({
|
|
121
|
+
err,
|
|
122
|
+
msg: `Error deleting search document.`
|
|
123
|
+
});
|
|
121
124
|
}
|
|
122
125
|
}
|
|
123
126
|
} else if (doSync) {
|
|
@@ -131,15 +134,24 @@ export const syncWithSearch = async (args)=>{
|
|
|
131
134
|
req
|
|
132
135
|
});
|
|
133
136
|
} catch (err) {
|
|
134
|
-
payload.logger.error(
|
|
137
|
+
payload.logger.error({
|
|
138
|
+
err,
|
|
139
|
+
msg: `Error creating search document.`
|
|
140
|
+
});
|
|
135
141
|
}
|
|
136
142
|
}
|
|
137
143
|
} catch (err) {
|
|
138
|
-
payload.logger.error(
|
|
144
|
+
payload.logger.error({
|
|
145
|
+
err,
|
|
146
|
+
msg: `Error finding search document.`
|
|
147
|
+
});
|
|
139
148
|
}
|
|
140
149
|
}
|
|
141
150
|
} catch (err) {
|
|
142
|
-
payload.logger.error(
|
|
151
|
+
payload.logger.error({
|
|
152
|
+
err,
|
|
153
|
+
msg: `Error syncing search document related to ${collection} with id: '${id}'.`
|
|
154
|
+
});
|
|
143
155
|
}
|
|
144
156
|
return doc;
|
|
145
157
|
};
|
|
@@ -1 +1 @@
|
|
|
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, syncDrafts } = pluginConfig\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: 'all',\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 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.
|
|
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, syncDrafts } = pluginConfig\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: 'all',\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 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.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: '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({ err, msg: `Error deleting search document.` })\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({ err, msg: `Error creating search document.` })\n }\n }\n } catch (err: unknown) {\n payload.logger.error({ err, msg: `Error finding search document.` })\n }\n }\n } catch (err: unknown) {\n payload.logger.error({\n err,\n msg: `Error syncing search 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","syncDrafts","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","searchDocID","update","msg"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
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,gBAsE3E,CAAA"}
|
package/dist/Search/index.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { LinkToDoc } from './ui/index.js';
|
|
2
1
|
// all settings can be overridden by the config
|
|
3
2
|
export const generateSearchCollection = (pluginConfig)=>{
|
|
4
3
|
const defaultFields = [
|
|
@@ -33,7 +32,7 @@ export const generateSearchCollection = (pluginConfig)=>{
|
|
|
33
32
|
type: 'ui',
|
|
34
33
|
admin: {
|
|
35
34
|
components: {
|
|
36
|
-
Field: LinkToDoc
|
|
35
|
+
Field: '@payloadcms/plugin-search/client#LinkToDoc'
|
|
37
36
|
},
|
|
38
37
|
position: 'sidebar'
|
|
39
38
|
}
|
|
@@ -59,12 +58,11 @@ export const generateSearchCollection = (pluginConfig)=>{
|
|
|
59
58
|
fields: pluginConfig?.searchOverrides?.fields && typeof pluginConfig?.searchOverrides?.fields === 'function' ? pluginConfig?.searchOverrides.fields({
|
|
60
59
|
defaultFields
|
|
61
60
|
}) : defaultFields,
|
|
62
|
-
hooks: {
|
|
63
|
-
...pluginConfig?.searchOverrides?.hooks || {}
|
|
64
|
-
},
|
|
65
61
|
labels: {
|
|
66
|
-
|
|
67
|
-
|
|
62
|
+
...pluginConfig?.searchOverrides?.labels || {
|
|
63
|
+
plural: 'Search Results',
|
|
64
|
+
singular: 'Search Result'
|
|
65
|
+
}
|
|
68
66
|
}
|
|
69
67
|
};
|
|
70
68
|
return newConfig;
|
package/dist/Search/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Search/index.ts"],"sourcesContent":["import type { CollectionConfig, Field } from 'payload'\n\nimport type { SearchPluginConfig } from '../types.js'\n\
|
|
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 },\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: '@payloadcms/plugin-search/client#LinkToDoc',\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","position","index","maxDepth","relationTo","collections","required","components","Field","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;QACF;QACA;YACEH,MAAM;YACNC,MAAM;YACNC,OAAO;gBACLE,UAAU;YACZ;QACF;QACA;YACEJ,MAAM;YACNC,MAAM;YACNC,OAAO;gBACLE,UAAU;gBACVD,UAAU;YACZ;YACAE,OAAO;YACPC,UAAU;YACVC,YAAYT,cAAcU,eAAe,EAAE;YAC3CC,UAAU;QACZ;QACA;YACET,MAAM;YACNC,MAAM;YACNC,OAAO;gBACLQ,YAAY;oBACVC,OAAO;gBACT;gBACAP,UAAU;YACZ;QACF;KACD;IAED,MAAMQ,YAA8B;QAClC,GAAId,cAAce,mBAAmB,CAAC,CAAC;QACvCC,MAAMhB,cAAce,iBAAiBC,QAAQ;QAC7CC,QAAQ;YACNC,QAAQ,IAAe;YACvBC,MAAM,IAAe;YACrB,GAAInB,cAAce,iBAAiBE,UAAU,CAAC,CAAC;QACjD;QACAb,OAAO;YACLgB,gBAAgB;gBAAC;aAAQ;YACzBC,aACE;YACFC,4BAA4B;YAC5BC,YAAY;YACZ,GAAIvB,cAAce,iBAAiBX,SAAS,CAAC,CAAC;QAChD;QACAoB,QACExB,cAAce,iBAAiBS,UAC/B,OAAOxB,cAAce,iBAAiBS,WAAW,aAC7CxB,cAAce,gBAAgBS,OAAO;YAAEvB;QAAc,KACrDA;QACNwB,QAAQ;YACN,GAAIzB,cAAce,iBAAiBU,UAAU;gBAC3CC,QAAQ;gBACRC,UAAU;YACZ,CAAC;QACH;IACF;IAEA,OAAOb;AACT,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/Search/ui/index.client.tsx"],"names":[],"mappings":"
|
|
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,EAuCnC,CAAA"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { useConfig
|
|
3
|
+
import { useConfig } from '@payloadcms/ui';
|
|
4
4
|
import { formatAdminURL } from '@payloadcms/ui/shared';
|
|
5
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'
|
|
6
8
|
export const LinkToDocClient = ()=>{
|
|
7
|
-
const
|
|
8
|
-
const fields = form.fields;
|
|
9
|
-
const { doc: { value: { relationTo, value: docId } } } = fields;
|
|
10
|
-
const config = useConfig();
|
|
9
|
+
const { config } = useConfig();
|
|
11
10
|
const { routes: { admin: adminRoute }, serverURL } = config;
|
|
12
11
|
const href = `${serverURL}${formatAdminURL({
|
|
13
12
|
adminRoute,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/Search/ui/index.client.tsx"],"sourcesContent":["'use client'\n\nimport
|
|
1
|
+
{"version":3,"sources":["../../../src/Search/ui/index.client.tsx"],"sourcesContent":["'use client'\n\nimport { useConfig } 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 href = `${serverURL}${formatAdminURL({\n adminRoute,\n path: '/collections/${relationTo}/${docId}',\n })}`\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","formatAdminURL","React","LinkToDocClient","config","routes","admin","adminRoute","serverURL","href","path","div","span","className","style","color","fontWeight","overflow","textOverflow","a"],"mappings":"AAAA;;AAEA,SAASA,SAAS,QAAQ,iBAAgB;AAC1C,SAASC,cAAc,QAAQ,wBAAuB;AACtD,OAAOC,WAAW,QAAO;AACzB,+GAA+G;AAC/G,uFAAuF;AAEvF,OAAO,MAAMC,kBAA4B;IACvC,MAAM,EAAEC,MAAM,EAAE,GAAGJ;IAEnB,MAAM,EACJK,QAAQ,EACNC,OAAOC,UAAU,EAClB,EACDC,SAAS,EACV,GAAGJ;IAEJ,MAAMK,OAAO,CAAC,EAAED,UAAU,EAAEP,eAAe;QACzCM;QACAG,MAAM;IACR,GAAG,CAAC;IAEJ,qBACE,MAACC;;0BACC,KAACA;0BACC,cAAA,KAACC;oBACCC,WAAU;oBACVC,OAAO;wBACLC,OAAO;oBACT;8BACD;;;0BAKH,KAACJ;gBACCG,OAAO;oBACLE,YAAY;oBACZC,UAAU;oBACVC,cAAc;gBAChB;0BAEA,cAAA,KAACC;oBAAEV,MAAMA;8BAAOA;;;;;AAIxB,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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -22,7 +22,7 @@ export type SearchPluginConfig = {
|
|
|
22
22
|
beforeSync?: BeforeSync;
|
|
23
23
|
collections?: string[];
|
|
24
24
|
defaultPriorities?: {
|
|
25
|
-
[collection: string]: ((doc: any) =>
|
|
25
|
+
[collection: string]: ((doc: any) => number | Promise<number>) | number;
|
|
26
26
|
};
|
|
27
27
|
deleteDrafts?: boolean;
|
|
28
28
|
searchOverrides?: {
|
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,EACV,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,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,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,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"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type {\n CollectionAfterChangeHook,\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) =>
|
|
1
|
+
{"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type {\n CollectionAfterChangeHook,\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 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"],"names":[],"mappings":"AAuCA,iEAAiE;AACjE,4EAA4E;AAC5E,WAK0C"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@payloadcms/plugin-search",
|
|
3
|
-
"version": "3.0.0-canary.
|
|
3
|
+
"version": "3.0.0-canary.96477cf",
|
|
4
4
|
"description": "Search plugin for Payload",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"payload",
|
|
@@ -25,10 +25,15 @@
|
|
|
25
25
|
"types": "./dist/index.d.ts",
|
|
26
26
|
"default": "./dist/index.js"
|
|
27
27
|
},
|
|
28
|
-
"
|
|
29
|
-
"import": "./dist/exports
|
|
30
|
-
"types": "./dist/exports
|
|
31
|
-
"default": "./dist/exports
|
|
28
|
+
"./types": {
|
|
29
|
+
"import": "./dist/exports/types.js",
|
|
30
|
+
"types": "./dist/exports/types.d.ts",
|
|
31
|
+
"default": "./dist/exports/types.js"
|
|
32
|
+
},
|
|
33
|
+
"./client": {
|
|
34
|
+
"import": "./dist/exports/client.js",
|
|
35
|
+
"types": "./dist/exports/client.d.ts",
|
|
36
|
+
"default": "./dist/exports/client.js"
|
|
32
37
|
}
|
|
33
38
|
},
|
|
34
39
|
"main": "./dist/index.js",
|
|
@@ -37,33 +42,35 @@
|
|
|
37
42
|
"dist"
|
|
38
43
|
],
|
|
39
44
|
"dependencies": {
|
|
40
|
-
"@payloadcms/ui": "3.0.0-canary.
|
|
45
|
+
"@payloadcms/ui": "3.0.0-canary.96477cf"
|
|
41
46
|
},
|
|
42
47
|
"devDependencies": {
|
|
43
48
|
"@types/express": "^4.17.9",
|
|
44
|
-
"@types/react": "npm:types-react@19.0.0-rc.
|
|
45
|
-
"@types/react-dom": "npm:types-react-dom@19.0.0-rc.
|
|
46
|
-
"
|
|
47
|
-
"
|
|
49
|
+
"@types/react": "npm:types-react@19.0.0-rc.1",
|
|
50
|
+
"@types/react-dom": "npm:types-react-dom@19.0.0-rc.1",
|
|
51
|
+
"payload": "3.0.0-canary.96477cf",
|
|
52
|
+
"@payloadcms/eslint-config": "3.0.0-beta.97"
|
|
48
53
|
},
|
|
49
54
|
"peerDependencies": {
|
|
50
|
-
"react": "^19.0.0 || ^19.0.0-rc-
|
|
51
|
-
"react-dom": "^19.0.0 || ^19.0.0-rc-
|
|
52
|
-
"payload": "3.0.0-canary.
|
|
55
|
+
"react": "^19.0.0 || ^19.0.0-rc-3edc000d-20240926",
|
|
56
|
+
"react-dom": "^19.0.0 || ^19.0.0-rc-3edc000d-20240926",
|
|
57
|
+
"payload": "3.0.0-canary.96477cf"
|
|
53
58
|
},
|
|
54
59
|
"publishConfig": {
|
|
55
60
|
"registry": "https://registry.npmjs.org/"
|
|
56
61
|
},
|
|
57
62
|
"homepage:": "https://payloadcms.com",
|
|
58
63
|
"overrides": {
|
|
59
|
-
"@types/react": "npm:types-react@19.0.0-rc.
|
|
60
|
-
"@types/react-dom": "npm:types-react-dom@19.0.0-rc.
|
|
64
|
+
"@types/react": "npm:types-react@19.0.0-rc.1",
|
|
65
|
+
"@types/react-dom": "npm:types-react-dom@19.0.0-rc.1"
|
|
61
66
|
},
|
|
62
67
|
"scripts": {
|
|
63
68
|
"build": "pnpm build:types && pnpm build:swc",
|
|
64
69
|
"build:swc": "swc ./src -d ./dist --config-file .swcrc --strip-leading-paths",
|
|
65
70
|
"build:types": "tsc --emitDeclarationOnly --outDir dist",
|
|
66
71
|
"clean": "rimraf {dist,*.tsbuildinfo}",
|
|
72
|
+
"lint": "eslint .",
|
|
73
|
+
"lint:fix": "eslint . --fix",
|
|
67
74
|
"test": "echo \"Error: no tests specified\""
|
|
68
75
|
}
|
|
69
76
|
}
|