@payloadcms/plugin-search 3.61.0 → 3.62.0-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/types.d.ts CHANGED
@@ -70,7 +70,7 @@ export type SanitizedSearchPluginConfig = {
70
70
  } & SearchPluginConfigWithLocales;
71
71
  export type SyncWithSearchArgs = {
72
72
  collection: string;
73
- pluginConfig: SearchPluginConfig;
73
+ pluginConfig: SanitizedSearchPluginConfig;
74
74
  } & Omit<Parameters<CollectionAfterChangeHook>[0], 'collection'>;
75
75
  export type SyncDocArgs = {
76
76
  locale?: Locale['code'];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,0BAA0B,EAC1B,gBAAgB,EAChB,KAAK,EACL,MAAM,EACN,OAAO,EACP,cAAc,EACd,WAAW,EACZ,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;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,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;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,eAAe,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,cAAc,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC,CAAA;IACzF;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAA;CACjD,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,CAAA;CAClC,CAAA;AAED,MAAM,MAAM,6BAA6B,GAAG;IAC1C,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB,GAAG,kBAAkB,CAAA;AAEtB,MAAM,MAAM,2BAA2B,GAAG;IACxC,gBAAgB,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,OAAO,CAAA;CACpB,GAAG,6BAA6B,CAAA;AAEjC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,kBAAkB,CAAA;CACjC,GAAG,IAAI,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAA;AAEhE,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;CACzB,GAAG,IAAI,CAAC,kBAAkB,EAAE,SAAS,GAAG,aAAa,CAAC,CAAA;AAIvD,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,kBAAkB,KAAK,UAAU,CAAC,yBAAyB,CAAC,CAAA;AAEhG,MAAM,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,kBAAkB,KAAK,0BAA0B,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,0BAA0B,EAC1B,gBAAgB,EAChB,KAAK,EACL,MAAM,EACN,OAAO,EACP,cAAc,EACd,WAAW,EACZ,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;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,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;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,eAAe,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,cAAc,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC,CAAA;IACzF;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAA;CACjD,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,CAAA;CAClC,CAAA;AAED,MAAM,MAAM,6BAA6B,GAAG;IAC1C,MAAM,CAAC,EAAE,gBAAgB,CAAA;IACzB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CACnB,GAAG,kBAAkB,CAAA;AAEtB,MAAM,MAAM,2BAA2B,GAAG;IACxC,gBAAgB,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,OAAO,CAAA;CACpB,GAAG,6BAA6B,CAAA;AAEjC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY,EAAE,2BAA2B,CAAA;CAC1C,GAAG,IAAI,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAA;AAEhE,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;IACvB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAA;CACzB,GAAG,IAAI,CAAC,kBAAkB,EAAE,SAAS,GAAG,aAAa,CAAC,CAAA;AAIvD,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,kBAAkB,KAAK,UAAU,CAAC,yBAAyB,CAAC,CAAA;AAEhG,MAAM,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,kBAAkB,KAAK,0BAA0B,CAAA"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type {\n CollectionAfterChangeHook,\n CollectionBeforeDeleteHook,\n CollectionConfig,\n Field,\n Locale,\n Payload,\n PayloadRequest,\n StaticLabel,\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 /**\n * @deprecated\n * This plugin gets the api route from the config directly and does not need to be passed in.\n * As long as you have `routes.api` set in your Payload config, the plugin will use that.\n * This property will be removed in the next major version.\n */\n apiBasePath?: string\n beforeSync?: BeforeSync\n collections?: string[]\n defaultPriorities?: {\n [collection: string]: ((doc: any) => number | Promise<number>) | number\n }\n /**\n * Controls whether drafts are deleted from the search index\n *\n * @default true\n */\n deleteDrafts?: boolean\n localize?: boolean\n /**\n * We use batching when re-indexing large collections. You can control the amount of items per batch, lower numbers should help with memory.\n *\n * @default 50\n */\n reindexBatchSize?: number\n searchOverrides?: { fields?: FieldsOverride } & Partial<Omit<CollectionConfig, 'fields'>>\n /**\n * Controls whether drafts are synced to the search index\n *\n * @default false\n */\n syncDrafts?: boolean\n}\n\nexport type CollectionLabels = {\n [collection: string]: CollectionConfig['labels']\n}\n\nexport type ResolvedCollectionLabels = {\n [collection: string]: StaticLabel\n}\n\nexport type SearchPluginConfigWithLocales = {\n labels?: CollectionLabels\n locales?: string[]\n} & SearchPluginConfig\n\nexport type SanitizedSearchPluginConfig = {\n reindexBatchSize: number\n syncDrafts: boolean\n} & SearchPluginConfigWithLocales\n\nexport type SyncWithSearchArgs = {\n collection: string\n pluginConfig: SearchPluginConfig\n} & Omit<Parameters<CollectionAfterChangeHook>[0], 'collection'>\n\nexport type SyncDocArgs = {\n locale?: Locale['code']\n onSyncError?: () => void\n} & Omit<SyncWithSearchArgs, 'context' | 'previousDoc'>\n\n// Extend the `CollectionAfterChangeHook` with more function args\n// Convert the `collection` arg from `SanitizedCollectionConfig` to a string\nexport type SyncWithSearch = (Args: SyncWithSearchArgs) => ReturnType<CollectionAfterChangeHook>\n\nexport type DeleteFromSearch = (args: SearchPluginConfig) => CollectionBeforeDeleteHook\n"],"names":[],"mappings":"AAkGA,WAAuF"}
1
+ {"version":3,"sources":["../src/types.ts"],"sourcesContent":["import type {\n CollectionAfterChangeHook,\n CollectionBeforeDeleteHook,\n CollectionConfig,\n Field,\n Locale,\n Payload,\n PayloadRequest,\n StaticLabel,\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 /**\n * @deprecated\n * This plugin gets the api route from the config directly and does not need to be passed in.\n * As long as you have `routes.api` set in your Payload config, the plugin will use that.\n * This property will be removed in the next major version.\n */\n apiBasePath?: string\n beforeSync?: BeforeSync\n collections?: string[]\n defaultPriorities?: {\n [collection: string]: ((doc: any) => number | Promise<number>) | number\n }\n /**\n * Controls whether drafts are deleted from the search index\n *\n * @default true\n */\n deleteDrafts?: boolean\n localize?: boolean\n /**\n * We use batching when re-indexing large collections. You can control the amount of items per batch, lower numbers should help with memory.\n *\n * @default 50\n */\n reindexBatchSize?: number\n searchOverrides?: { fields?: FieldsOverride } & Partial<Omit<CollectionConfig, 'fields'>>\n /**\n * Controls whether drafts are synced to the search index\n *\n * @default false\n */\n syncDrafts?: boolean\n}\n\nexport type CollectionLabels = {\n [collection: string]: CollectionConfig['labels']\n}\n\nexport type ResolvedCollectionLabels = {\n [collection: string]: StaticLabel\n}\n\nexport type SearchPluginConfigWithLocales = {\n labels?: CollectionLabels\n locales?: string[]\n} & SearchPluginConfig\n\nexport type SanitizedSearchPluginConfig = {\n reindexBatchSize: number\n syncDrafts: boolean\n} & SearchPluginConfigWithLocales\n\nexport type SyncWithSearchArgs = {\n collection: string\n pluginConfig: SanitizedSearchPluginConfig\n} & Omit<Parameters<CollectionAfterChangeHook>[0], 'collection'>\n\nexport type SyncDocArgs = {\n locale?: Locale['code']\n onSyncError?: () => void\n} & Omit<SyncWithSearchArgs, 'context' | 'previousDoc'>\n\n// Extend the `CollectionAfterChangeHook` with more function args\n// Convert the `collection` arg from `SanitizedCollectionConfig` to a string\nexport type SyncWithSearch = (Args: SyncWithSearchArgs) => ReturnType<CollectionAfterChangeHook>\n\nexport type DeleteFromSearch = (args: SearchPluginConfig) => CollectionBeforeDeleteHook\n"],"names":[],"mappings":"AAkGA,WAAuF"}
@@ -1 +1 @@
1
- {"version":3,"file":"syncDocAsSearchIndex.d.ts","sourceRoot":"","sources":["../../src/utilities/syncDocAsSearchIndex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzD,eAAO,MAAM,oBAAoB,8FAS9B,WAAW,iBAwPb,CAAA"}
1
+ {"version":3,"file":"syncDocAsSearchIndex.d.ts","sourceRoot":"","sources":["../../src/utilities/syncDocAsSearchIndex.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzD,eAAO,MAAM,oBAAoB,8FAS9B,WAAW,iBAyPb,CAAA"}
@@ -10,7 +10,8 @@ export const syncDocAsSearchIndex = async ({ collection, doc, locale, onSyncErro
10
10
  },
11
11
  title
12
12
  };
13
- const docKey = `${collection}:${id}`;
13
+ const docKeyPrefix = `${collection}:${id}`;
14
+ const docKey = pluginConfig.locales?.length ? `${docKeyPrefix}:${syncLocale}` : docKeyPrefix;
14
15
  const syncedDocsSet = req.context?.syncedDocsSet || new Set();
15
16
  if (syncedDocsSet.has(docKey)) {
16
17
  /*
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/syncDocAsSearchIndex.ts"],"sourcesContent":["import type { DocToSync, SyncDocArgs } from '../types.js'\n\nexport const syncDocAsSearchIndex = async ({\n collection,\n doc,\n locale,\n onSyncError,\n operation,\n pluginConfig,\n req: { payload },\n req,\n}: SyncDocArgs) => {\n const { id, _status: status, title } = doc || {}\n\n const { beforeSync, defaultPriorities, deleteDrafts, searchOverrides, syncDrafts } = pluginConfig\n\n const searchSlug = searchOverrides?.slug || 'search'\n const syncLocale = locale || req.locale\n\n let dataToSave: DocToSync = {\n doc: {\n relationTo: collection,\n value: id,\n },\n title,\n }\n const docKey = `${collection}:${id}`\n const syncedDocsSet = (req.context?.syncedDocsSet as Set<string>) || new Set<string>()\n\n if (syncedDocsSet.has(docKey)) {\n /*\n * prevents duplicate syncing of documents in the same request\n * this can happen when hooks call `payload.update` within the create lifecycle\n * like the nested-docs plugin does\n */\n return doc\n } else {\n syncedDocsSet.add(docKey)\n }\n\n req.context.syncedDocsSet = syncedDocsSet\n\n if (typeof beforeSync === 'function') {\n let docToSyncWith = doc\n if (payload.config?.localization) {\n // Check if document is trashed (has deletedAt field)\n const isTrashDocument = doc && 'deletedAt' in doc && doc.deletedAt\n\n docToSyncWith = await payload.findByID({\n id,\n collection,\n locale: syncLocale,\n req,\n // Include trashed documents when the document being synced is trashed\n trash: isTrashDocument,\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 if (priority !== undefined) {\n defaultPriority = priority\n }\n }\n\n const doSync = syncDrafts || (!syncDrafts && status !== 'draft')\n\n try {\n if (operation === 'create' && doSync) {\n await payload.create({\n collection: searchSlug,\n data: {\n ...dataToSave,\n priority: defaultPriority,\n },\n depth: 0,\n locale: syncLocale,\n req,\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: syncLocale,\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 depth: 0,\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 depth: 0,\n locale: syncLocale,\n req,\n })\n } catch (err: unknown) {\n payload.logger.error({ err, msg: `Error updating ${searchSlug} document.` })\n }\n }\n\n // Check if document is trashed and delete from search\n const isTrashDocument = doc && 'deletedAt' in doc && doc.deletedAt\n\n if (isTrashDocument) {\n try {\n await payload.delete({\n id: searchDocID,\n collection: searchSlug,\n depth: 0,\n req,\n })\n } catch (err: unknown) {\n payload.logger.error({\n err,\n msg: `Error deleting ${searchSlug} document for trashed doc.`,\n })\n }\n }\n\n if (deleteDrafts && status === 'draft') {\n // Check to see if there's a published version of the doc\n // We don't want to remove the search doc if there is a published version but a new draft has been created\n const {\n docs: [docWithPublish],\n } = await payload.find({\n collection,\n depth: 0,\n draft: false,\n limit: 1,\n locale: syncLocale,\n pagination: false,\n req,\n where: {\n and: [\n {\n _status: {\n equals: 'published',\n },\n },\n {\n id: {\n equals: id,\n },\n },\n ],\n },\n })\n\n if (!docWithPublish && !isTrashDocument) {\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 depth: 0,\n req,\n })\n } catch (err: unknown) {\n payload.logger.error({ err, msg: `Error deleting ${searchSlug} document.` })\n }\n }\n }\n } else if (doSync) {\n try {\n await payload.create({\n collection: searchSlug,\n data: {\n ...dataToSave,\n priority: defaultPriority,\n },\n depth: 0,\n locale: syncLocale,\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 if (onSyncError) {\n onSyncError()\n }\n }\n\n return doc\n}\n"],"names":["syncDocAsSearchIndex","collection","doc","locale","onSyncError","operation","pluginConfig","req","payload","id","_status","status","title","beforeSync","defaultPriorities","deleteDrafts","searchOverrides","syncDrafts","searchSlug","slug","syncLocale","dataToSave","relationTo","value","docKey","syncedDocsSet","context","Set","has","add","docToSyncWith","config","localization","isTrashDocument","deletedAt","findByID","trash","originalDoc","searchDoc","defaultPriority","priority","err","logger","error","undefined","doSync","create","data","depth","searchDocQuery","find","where","equals","docs","foundDoc","duplicativeDocs","length","duplicativeDocIDs","map","delete","in","msg","searchDocID","update","docWithPublish","draft","limit","pagination","and"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/utilities/syncDocAsSearchIndex.ts"],"sourcesContent":["import type { DocToSync, SyncDocArgs } from '../types.js'\n\nexport const syncDocAsSearchIndex = async ({\n collection,\n doc,\n locale,\n onSyncError,\n operation,\n pluginConfig,\n req: { payload },\n req,\n}: SyncDocArgs) => {\n const { id, _status: status, title } = doc || {}\n\n const { beforeSync, defaultPriorities, deleteDrafts, searchOverrides, syncDrafts } = pluginConfig\n\n const searchSlug = searchOverrides?.slug || 'search'\n const syncLocale = locale || req.locale\n\n let dataToSave: DocToSync = {\n doc: {\n relationTo: collection,\n value: id,\n },\n title,\n }\n const docKeyPrefix = `${collection}:${id}`\n const docKey = pluginConfig.locales?.length ? `${docKeyPrefix}:${syncLocale}` : docKeyPrefix\n const syncedDocsSet = (req.context?.syncedDocsSet as Set<string>) || new Set<string>()\n\n if (syncedDocsSet.has(docKey)) {\n /*\n * prevents duplicate syncing of documents in the same request\n * this can happen when hooks call `payload.update` within the create lifecycle\n * like the nested-docs plugin does\n */\n return doc\n } else {\n syncedDocsSet.add(docKey)\n }\n\n req.context.syncedDocsSet = syncedDocsSet\n\n if (typeof beforeSync === 'function') {\n let docToSyncWith = doc\n if (payload.config?.localization) {\n // Check if document is trashed (has deletedAt field)\n const isTrashDocument = doc && 'deletedAt' in doc && doc.deletedAt\n\n docToSyncWith = await payload.findByID({\n id,\n collection,\n locale: syncLocale,\n req,\n // Include trashed documents when the document being synced is trashed\n trash: isTrashDocument,\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 if (priority !== undefined) {\n defaultPriority = priority\n }\n }\n\n const doSync = syncDrafts || (!syncDrafts && status !== 'draft')\n\n try {\n if (operation === 'create' && doSync) {\n await payload.create({\n collection: searchSlug,\n data: {\n ...dataToSave,\n priority: defaultPriority,\n },\n depth: 0,\n locale: syncLocale,\n req,\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: syncLocale,\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 depth: 0,\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 depth: 0,\n locale: syncLocale,\n req,\n })\n } catch (err: unknown) {\n payload.logger.error({ err, msg: `Error updating ${searchSlug} document.` })\n }\n }\n\n // Check if document is trashed and delete from search\n const isTrashDocument = doc && 'deletedAt' in doc && doc.deletedAt\n\n if (isTrashDocument) {\n try {\n await payload.delete({\n id: searchDocID,\n collection: searchSlug,\n depth: 0,\n req,\n })\n } catch (err: unknown) {\n payload.logger.error({\n err,\n msg: `Error deleting ${searchSlug} document for trashed doc.`,\n })\n }\n }\n\n if (deleteDrafts && status === 'draft') {\n // Check to see if there's a published version of the doc\n // We don't want to remove the search doc if there is a published version but a new draft has been created\n const {\n docs: [docWithPublish],\n } = await payload.find({\n collection,\n depth: 0,\n draft: false,\n limit: 1,\n locale: syncLocale,\n pagination: false,\n req,\n where: {\n and: [\n {\n _status: {\n equals: 'published',\n },\n },\n {\n id: {\n equals: id,\n },\n },\n ],\n },\n })\n\n if (!docWithPublish && !isTrashDocument) {\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 depth: 0,\n req,\n })\n } catch (err: unknown) {\n payload.logger.error({ err, msg: `Error deleting ${searchSlug} document.` })\n }\n }\n }\n } else if (doSync) {\n try {\n await payload.create({\n collection: searchSlug,\n data: {\n ...dataToSave,\n priority: defaultPriority,\n },\n depth: 0,\n locale: syncLocale,\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 if (onSyncError) {\n onSyncError()\n }\n }\n\n return doc\n}\n"],"names":["syncDocAsSearchIndex","collection","doc","locale","onSyncError","operation","pluginConfig","req","payload","id","_status","status","title","beforeSync","defaultPriorities","deleteDrafts","searchOverrides","syncDrafts","searchSlug","slug","syncLocale","dataToSave","relationTo","value","docKeyPrefix","docKey","locales","length","syncedDocsSet","context","Set","has","add","docToSyncWith","config","localization","isTrashDocument","deletedAt","findByID","trash","originalDoc","searchDoc","defaultPriority","priority","err","logger","error","undefined","doSync","create","data","depth","searchDocQuery","find","where","equals","docs","foundDoc","duplicativeDocs","duplicativeDocIDs","map","delete","in","msg","searchDocID","update","docWithPublish","draft","limit","pagination","and"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/plugin-search",
3
- "version": "3.61.0",
3
+ "version": "3.62.0-canary.0",
4
4
  "description": "Search plugin for Payload",
5
5
  "keywords": [
6
6
  "payload",
@@ -50,19 +50,19 @@
50
50
  "dist"
51
51
  ],
52
52
  "dependencies": {
53
- "@payloadcms/ui": "3.61.0",
54
- "@payloadcms/next": "3.61.0"
53
+ "@payloadcms/next": "3.62.0-canary.0",
54
+ "@payloadcms/ui": "3.62.0-canary.0"
55
55
  },
56
56
  "devDependencies": {
57
57
  "@types/react": "19.1.12",
58
58
  "@types/react-dom": "19.1.9",
59
59
  "@payloadcms/eslint-config": "3.28.0",
60
- "payload": "3.61.0"
60
+ "payload": "3.62.0-canary.0"
61
61
  },
62
62
  "peerDependencies": {
63
63
  "react": "^19.0.0 || ^19.0.0-rc-65a56d0e-20241020",
64
64
  "react-dom": "^19.0.0 || ^19.0.0-rc-65a56d0e-20241020",
65
- "payload": "3.61.0"
65
+ "payload": "3.62.0-canary.0"
66
66
  },
67
67
  "publishConfig": {
68
68
  "registry": "https://registry.npmjs.org/"