@payloadcms/plugin-nested-docs 4.0.0-internal.8ba6b5b → 4.0.0-internal.934870d

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.
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumbs.d.ts","sourceRoot":"","sources":["../../src/fields/breadcrumbs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEhD,eAAO,MAAM,sBAAsB,GACjC,YAAY,MAAM,EAClB,YAAW,OAAO,CAAC,UAAU,CAAM,KAClC,KAyCD,CAAA"}
1
+ {"version":3,"file":"breadcrumbs.d.ts","sourceRoot":"","sources":["../../src/fields/breadcrumbs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEhD,eAAO,MAAM,sBAAsB,eACrB,MAAM,cACP,OAAO,CAAC,UAAU,CAAC,KAC7B,KAyCD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"parent.d.ts","sourceRoot":"","sources":["../../src/fields/parent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAEtD,eAAO,MAAM,iBAAiB,GAC5B,YAAY,MAAM,EAClB,YAAY,OAAO,CACjB;IACE,OAAO,EAAE,KAAK,CAAA;CACf,GAAG,uBAAuB,CAC5B,KACA,uBAYD,CAAA"}
1
+ {"version":3,"file":"parent.d.ts","sourceRoot":"","sources":["../../src/fields/parent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAEtD,eAAO,MAAM,iBAAiB,eAChB,MAAM,cACN,OAAO,CACjB;IACE,OAAO,EAAE,KAAK,CAAA;CACf,GAAG,uBAAuB,CAC5B,KACA,uBAYD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"populateBreadcrumbsBeforeChange.d.ts","sourceRoot":"","sources":["../../src/hooks/populateBreadcrumbsBeforeChange.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAA;AAEzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAIzD,eAAO,MAAM,+BAA+B,GACzC,cAAc,sBAAsB,KAAG,0BAWpC,CAAA"}
1
+ {"version":3,"file":"populateBreadcrumbsBeforeChange.d.ts","sourceRoot":"","sources":["../../src/hooks/populateBreadcrumbsBeforeChange.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAA;AAEzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAIzD,eAAO,MAAM,+BAA+B,iBAC3B,sBAAsB,KAAG,0BAWpC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"resaveChildren.d.ts","sourceRoot":"","sources":["../../src/hooks/resaveChildren.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAc,MAAM,SAAS,CAAA;AAIpE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAIzD,eAAO,MAAM,cAAc,GACxB,cAAc,sBAAsB,KAAG,yBA8FvC,CAAA"}
1
+ {"version":3,"file":"resaveChildren.d.ts","sourceRoot":"","sources":["../../src/hooks/resaveChildren.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAc,MAAM,SAAS,CAAA;AAIpE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAIzD,eAAO,MAAM,cAAc,iBACV,sBAAsB,KAAG,yBAiGvC,CAAA"}
@@ -12,6 +12,7 @@ export const resaveChildren = (pluginConfig)=>async ({ collection, doc, req })=>
12
12
  draft: true,
13
13
  limit: 0,
14
14
  locale: req.locale,
15
+ overrideAccess: true,
15
16
  req,
16
17
  where: {
17
18
  [parentSlug]: {
@@ -26,6 +27,7 @@ export const resaveChildren = (pluginConfig)=>async ({ collection, doc, req })=>
26
27
  draft: false,
27
28
  limit: 0,
28
29
  locale: req.locale,
30
+ overrideAccess: true,
29
31
  req,
30
32
  where: {
31
33
  [parentSlug]: {
@@ -67,6 +69,7 @@ export const resaveChildren = (pluginConfig)=>async ({ collection, doc, req })=>
67
69
  depth: 0,
68
70
  draft: isDraft,
69
71
  locale: req.locale,
72
+ overrideAccess: true,
70
73
  req
71
74
  });
72
75
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hooks/resaveChildren.ts"],"sourcesContent":["import type { CollectionAfterChangeHook, JsonObject } from 'payload'\n\nimport { APIError, ValidationError } from 'payload'\n\nimport type { NestedDocsPluginConfig } from '../types.js'\n\nimport { populateBreadcrumbs } from '../utilities/populateBreadcrumbs.js'\n\nexport const resaveChildren =\n (pluginConfig: NestedDocsPluginConfig): CollectionAfterChangeHook =>\n async ({ collection, doc, req }) => {\n if (collection?.versions?.drafts && doc._status !== 'published') {\n // If the parent is a draft, don't resave children\n return\n }\n\n const parentSlug = pluginConfig?.parentFieldSlug || 'parent'\n\n const initialDraftChildren = await req.payload.find({\n collection: collection.slug,\n depth: 0,\n draft: true,\n limit: 0,\n locale: req.locale,\n req,\n where: {\n [parentSlug]: {\n equals: doc.id,\n },\n },\n })\n\n const draftChildren = initialDraftChildren.docs.filter((child) => child._status === 'draft')\n\n const publishedChildren = await req.payload.find({\n collection: collection.slug,\n depth: 0,\n draft: false,\n limit: 0,\n locale: req.locale,\n req,\n where: {\n [parentSlug]: {\n equals: doc.id,\n },\n },\n })\n\n const childrenById = [...draftChildren, ...publishedChildren.docs].reduce<\n Record<string, JsonObject[]>\n >((acc, child) => {\n acc[child.id] = acc[child.id] || []\n acc[child.id]!.push(child)\n return acc\n }, {})\n\n const sortedChildren = Object.values(childrenById).flatMap((group: JsonObject[]) => {\n return group.sort((a, b) => {\n if (a.updatedAt !== b.updatedAt) {\n return a.updatedAt > b.updatedAt ? 1 : -1\n }\n return a._status === 'published' ? 1 : -1\n })\n })\n\n if (sortedChildren.length) {\n try {\n for (const child of sortedChildren) {\n const isDraft = child._status !== 'published'\n\n await req.payload.update({\n id: child.id,\n collection: collection.slug,\n data: await populateBreadcrumbs({\n collection,\n data: child,\n generateLabel: pluginConfig.generateLabel,\n generateURL: pluginConfig.generateURL,\n parentFieldName: pluginConfig.parentFieldSlug,\n req,\n }),\n depth: 0,\n draft: isDraft,\n locale: req.locale,\n req,\n })\n }\n } catch (err: unknown) {\n req.payload.logger.error(\n `Nested Docs plugin encountered an error while re-saving a child document.`,\n )\n req.payload.logger.error(err)\n\n if (err instanceof ValidationError && err.data?.errors?.length) {\n throw new APIError(\n 'Could not publish or save changes: One or more children are invalid.',\n 400,\n )\n }\n }\n }\n\n return undefined\n }\n"],"names":["APIError","ValidationError","populateBreadcrumbs","resaveChildren","pluginConfig","collection","doc","req","versions","drafts","_status","parentSlug","parentFieldSlug","initialDraftChildren","payload","find","slug","depth","draft","limit","locale","where","equals","id","draftChildren","docs","filter","child","publishedChildren","childrenById","reduce","acc","push","sortedChildren","Object","values","flatMap","group","sort","a","b","updatedAt","length","isDraft","update","data","generateLabel","generateURL","parentFieldName","err","logger","error","errors","undefined"],"mappings":"AAEA,SAASA,QAAQ,EAAEC,eAAe,QAAQ,UAAS;AAInD,SAASC,mBAAmB,QAAQ,sCAAqC;AAEzE,OAAO,MAAMC,iBACX,CAACC,eACD,OAAO,EAAEC,UAAU,EAAEC,GAAG,EAAEC,GAAG,EAAE;QAC7B,IAAIF,YAAYG,UAAUC,UAAUH,IAAII,OAAO,KAAK,aAAa;YAC/D,kDAAkD;YAClD;QACF;QAEA,MAAMC,aAAaP,cAAcQ,mBAAmB;QAEpD,MAAMC,uBAAuB,MAAMN,IAAIO,OAAO,CAACC,IAAI,CAAC;YAClDV,YAAYA,WAAWW,IAAI;YAC3BC,OAAO;YACPC,OAAO;YACPC,OAAO;YACPC,QAAQb,IAAIa,MAAM;YAClBb;YACAc,OAAO;gBACL,CAACV,WAAW,EAAE;oBACZW,QAAQhB,IAAIiB,EAAE;gBAChB;YACF;QACF;QAEA,MAAMC,gBAAgBX,qBAAqBY,IAAI,CAACC,MAAM,CAAC,CAACC,QAAUA,MAAMjB,OAAO,KAAK;QAEpF,MAAMkB,oBAAoB,MAAMrB,IAAIO,OAAO,CAACC,IAAI,CAAC;YAC/CV,YAAYA,WAAWW,IAAI;YAC3BC,OAAO;YACPC,OAAO;YACPC,OAAO;YACPC,QAAQb,IAAIa,MAAM;YAClBb;YACAc,OAAO;gBACL,CAACV,WAAW,EAAE;oBACZW,QAAQhB,IAAIiB,EAAE;gBAChB;YACF;QACF;QAEA,MAAMM,eAAe;eAAIL;eAAkBI,kBAAkBH,IAAI;SAAC,CAACK,MAAM,CAEvE,CAACC,KAAKJ;YACNI,GAAG,CAACJ,MAAMJ,EAAE,CAAC,GAAGQ,GAAG,CAACJ,MAAMJ,EAAE,CAAC,IAAI,EAAE;YACnCQ,GAAG,CAACJ,MAAMJ,EAAE,CAAC,CAAES,IAAI,CAACL;YACpB,OAAOI;QACT,GAAG,CAAC;QAEJ,MAAME,iBAAiBC,OAAOC,MAAM,CAACN,cAAcO,OAAO,CAAC,CAACC;YAC1D,OAAOA,MAAMC,IAAI,CAAC,CAACC,GAAGC;gBACpB,IAAID,EAAEE,SAAS,KAAKD,EAAEC,SAAS,EAAE;oBAC/B,OAAOF,EAAEE,SAAS,GAAGD,EAAEC,SAAS,GAAG,IAAI,CAAC;gBAC1C;gBACA,OAAOF,EAAE7B,OAAO,KAAK,cAAc,IAAI,CAAC;YAC1C;QACF;QAEA,IAAIuB,eAAeS,MAAM,EAAE;YACzB,IAAI;gBACF,KAAK,MAAMf,SAASM,eAAgB;oBAClC,MAAMU,UAAUhB,MAAMjB,OAAO,KAAK;oBAElC,MAAMH,IAAIO,OAAO,CAAC8B,MAAM,CAAC;wBACvBrB,IAAII,MAAMJ,EAAE;wBACZlB,YAAYA,WAAWW,IAAI;wBAC3B6B,MAAM,MAAM3C,oBAAoB;4BAC9BG;4BACAwC,MAAMlB;4BACNmB,eAAe1C,aAAa0C,aAAa;4BACzCC,aAAa3C,aAAa2C,WAAW;4BACrCC,iBAAiB5C,aAAaQ,eAAe;4BAC7CL;wBACF;wBACAU,OAAO;wBACPC,OAAOyB;wBACPvB,QAAQb,IAAIa,MAAM;wBAClBb;oBACF;gBACF;YACF,EAAE,OAAO0C,KAAc;gBACrB1C,IAAIO,OAAO,CAACoC,MAAM,CAACC,KAAK,CACtB,CAAC,yEAAyE,CAAC;gBAE7E5C,IAAIO,OAAO,CAACoC,MAAM,CAACC,KAAK,CAACF;gBAEzB,IAAIA,eAAehD,mBAAmBgD,IAAIJ,IAAI,EAAEO,QAAQV,QAAQ;oBAC9D,MAAM,IAAI1C,SACR,wEACA;gBAEJ;YACF;QACF;QAEA,OAAOqD;IACT,EAAC"}
1
+ {"version":3,"sources":["../../src/hooks/resaveChildren.ts"],"sourcesContent":["import type { CollectionAfterChangeHook, JsonObject } from 'payload'\n\nimport { APIError, ValidationError } from 'payload'\n\nimport type { NestedDocsPluginConfig } from '../types.js'\n\nimport { populateBreadcrumbs } from '../utilities/populateBreadcrumbs.js'\n\nexport const resaveChildren =\n (pluginConfig: NestedDocsPluginConfig): CollectionAfterChangeHook =>\n async ({ collection, doc, req }) => {\n if (collection?.versions?.drafts && doc._status !== 'published') {\n // If the parent is a draft, don't resave children\n return\n }\n\n const parentSlug = pluginConfig?.parentFieldSlug || 'parent'\n\n const initialDraftChildren = await req.payload.find({\n collection: collection.slug,\n depth: 0,\n draft: true,\n limit: 0,\n locale: req.locale,\n overrideAccess: true,\n req,\n where: {\n [parentSlug]: {\n equals: doc.id,\n },\n },\n })\n\n const draftChildren = initialDraftChildren.docs.filter((child) => child._status === 'draft')\n\n const publishedChildren = await req.payload.find({\n collection: collection.slug,\n depth: 0,\n draft: false,\n limit: 0,\n locale: req.locale,\n overrideAccess: true,\n req,\n where: {\n [parentSlug]: {\n equals: doc.id,\n },\n },\n })\n\n const childrenById = [...draftChildren, ...publishedChildren.docs].reduce<\n Record<string, JsonObject[]>\n >((acc, child) => {\n acc[child.id] = acc[child.id] || []\n acc[child.id]!.push(child)\n return acc\n }, {})\n\n const sortedChildren = Object.values(childrenById).flatMap((group: JsonObject[]) => {\n return group.sort((a, b) => {\n if (a.updatedAt !== b.updatedAt) {\n return a.updatedAt > b.updatedAt ? 1 : -1\n }\n return a._status === 'published' ? 1 : -1\n })\n })\n\n if (sortedChildren.length) {\n try {\n for (const child of sortedChildren) {\n const isDraft = child._status !== 'published'\n\n await req.payload.update({\n id: child.id,\n collection: collection.slug,\n data: await populateBreadcrumbs({\n collection,\n data: child,\n generateLabel: pluginConfig.generateLabel,\n generateURL: pluginConfig.generateURL,\n parentFieldName: pluginConfig.parentFieldSlug,\n req,\n }),\n depth: 0,\n draft: isDraft,\n locale: req.locale,\n overrideAccess: true,\n req,\n })\n }\n } catch (err: unknown) {\n req.payload.logger.error(\n `Nested Docs plugin encountered an error while re-saving a child document.`,\n )\n req.payload.logger.error(err)\n\n if (err instanceof ValidationError && err.data?.errors?.length) {\n throw new APIError(\n 'Could not publish or save changes: One or more children are invalid.',\n 400,\n )\n }\n }\n }\n\n return undefined\n }\n"],"names":["APIError","ValidationError","populateBreadcrumbs","resaveChildren","pluginConfig","collection","doc","req","versions","drafts","_status","parentSlug","parentFieldSlug","initialDraftChildren","payload","find","slug","depth","draft","limit","locale","overrideAccess","where","equals","id","draftChildren","docs","filter","child","publishedChildren","childrenById","reduce","acc","push","sortedChildren","Object","values","flatMap","group","sort","a","b","updatedAt","length","isDraft","update","data","generateLabel","generateURL","parentFieldName","err","logger","error","errors","undefined"],"mappings":"AAEA,SAASA,QAAQ,EAAEC,eAAe,QAAQ,UAAS;AAInD,SAASC,mBAAmB,QAAQ,sCAAqC;AAEzE,OAAO,MAAMC,iBACX,CAACC,eACD,OAAO,EAAEC,UAAU,EAAEC,GAAG,EAAEC,GAAG,EAAE;QAC7B,IAAIF,YAAYG,UAAUC,UAAUH,IAAII,OAAO,KAAK,aAAa;YAC/D,kDAAkD;YAClD;QACF;QAEA,MAAMC,aAAaP,cAAcQ,mBAAmB;QAEpD,MAAMC,uBAAuB,MAAMN,IAAIO,OAAO,CAACC,IAAI,CAAC;YAClDV,YAAYA,WAAWW,IAAI;YAC3BC,OAAO;YACPC,OAAO;YACPC,OAAO;YACPC,QAAQb,IAAIa,MAAM;YAClBC,gBAAgB;YAChBd;YACAe,OAAO;gBACL,CAACX,WAAW,EAAE;oBACZY,QAAQjB,IAAIkB,EAAE;gBAChB;YACF;QACF;QAEA,MAAMC,gBAAgBZ,qBAAqBa,IAAI,CAACC,MAAM,CAAC,CAACC,QAAUA,MAAMlB,OAAO,KAAK;QAEpF,MAAMmB,oBAAoB,MAAMtB,IAAIO,OAAO,CAACC,IAAI,CAAC;YAC/CV,YAAYA,WAAWW,IAAI;YAC3BC,OAAO;YACPC,OAAO;YACPC,OAAO;YACPC,QAAQb,IAAIa,MAAM;YAClBC,gBAAgB;YAChBd;YACAe,OAAO;gBACL,CAACX,WAAW,EAAE;oBACZY,QAAQjB,IAAIkB,EAAE;gBAChB;YACF;QACF;QAEA,MAAMM,eAAe;eAAIL;eAAkBI,kBAAkBH,IAAI;SAAC,CAACK,MAAM,CAEvE,CAACC,KAAKJ;YACNI,GAAG,CAACJ,MAAMJ,EAAE,CAAC,GAAGQ,GAAG,CAACJ,MAAMJ,EAAE,CAAC,IAAI,EAAE;YACnCQ,GAAG,CAACJ,MAAMJ,EAAE,CAAC,CAAES,IAAI,CAACL;YACpB,OAAOI;QACT,GAAG,CAAC;QAEJ,MAAME,iBAAiBC,OAAOC,MAAM,CAACN,cAAcO,OAAO,CAAC,CAACC;YAC1D,OAAOA,MAAMC,IAAI,CAAC,CAACC,GAAGC;gBACpB,IAAID,EAAEE,SAAS,KAAKD,EAAEC,SAAS,EAAE;oBAC/B,OAAOF,EAAEE,SAAS,GAAGD,EAAEC,SAAS,GAAG,IAAI,CAAC;gBAC1C;gBACA,OAAOF,EAAE9B,OAAO,KAAK,cAAc,IAAI,CAAC;YAC1C;QACF;QAEA,IAAIwB,eAAeS,MAAM,EAAE;YACzB,IAAI;gBACF,KAAK,MAAMf,SAASM,eAAgB;oBAClC,MAAMU,UAAUhB,MAAMlB,OAAO,KAAK;oBAElC,MAAMH,IAAIO,OAAO,CAAC+B,MAAM,CAAC;wBACvBrB,IAAII,MAAMJ,EAAE;wBACZnB,YAAYA,WAAWW,IAAI;wBAC3B8B,MAAM,MAAM5C,oBAAoB;4BAC9BG;4BACAyC,MAAMlB;4BACNmB,eAAe3C,aAAa2C,aAAa;4BACzCC,aAAa5C,aAAa4C,WAAW;4BACrCC,iBAAiB7C,aAAaQ,eAAe;4BAC7CL;wBACF;wBACAU,OAAO;wBACPC,OAAO0B;wBACPxB,QAAQb,IAAIa,MAAM;wBAClBC,gBAAgB;wBAChBd;oBACF;gBACF;YACF,EAAE,OAAO2C,KAAc;gBACrB3C,IAAIO,OAAO,CAACqC,MAAM,CAACC,KAAK,CACtB,CAAC,yEAAyE,CAAC;gBAE7E7C,IAAIO,OAAO,CAACqC,MAAM,CAACC,KAAK,CAACF;gBAEzB,IAAIA,eAAejD,mBAAmBiD,IAAIJ,IAAI,EAAEO,QAAQV,QAAQ;oBAC9D,MAAM,IAAI3C,SACR,wEACA;gBAEJ;YACF;QACF;QAEA,OAAOsD;IACT,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"resaveSelfAfterCreate.d.ts","sourceRoot":"","sources":["../../src/hooks/resaveSelfAfterCreate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAExD,OAAO,KAAK,EAAc,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAKrE,eAAO,MAAM,qBAAqB,GAC/B,cAAc,sBAAsB,KAAG,yBAgCvC,CAAA"}
1
+ {"version":3,"file":"resaveSelfAfterCreate.d.ts","sourceRoot":"","sources":["../../src/hooks/resaveSelfAfterCreate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAExD,OAAO,KAAK,EAAc,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAKrE,eAAO,MAAM,qBAAqB,iBACjB,sBAAsB,KAAG,yBAiCvC,CAAA"}
@@ -20,6 +20,7 @@ export const resaveSelfAfterCreate = (pluginConfig)=>async ({ collection, doc, o
20
20
  depth: 0,
21
21
  draft: collection?.versions?.drafts && doc._status !== 'published',
22
22
  locale,
23
+ overrideAccess: true,
23
24
  req
24
25
  });
25
26
  } catch (err) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/hooks/resaveSelfAfterCreate.ts"],"sourcesContent":["import type { CollectionAfterChangeHook } from 'payload'\n\nimport type { Breadcrumb, NestedDocsPluginConfig } from '../types.js'\n\n// This hook automatically re-saves a document after it is created\n// so that we can build its breadcrumbs with the newly created document's ID.\n\nexport const resaveSelfAfterCreate =\n (pluginConfig: NestedDocsPluginConfig): CollectionAfterChangeHook =>\n async ({ collection, doc, operation, req }) => {\n if (operation !== 'create') {\n return undefined\n }\n\n const { locale, payload } = req\n const breadcrumbSlug = pluginConfig.breadcrumbsFieldSlug || 'breadcrumbs'\n const breadcrumbs = doc[breadcrumbSlug] as unknown as Breadcrumb[]\n\n try {\n await payload.update({\n id: doc.id,\n collection: collection.slug,\n data: {\n [breadcrumbSlug]:\n breadcrumbs?.map((crumb, i) => ({\n ...crumb,\n doc: breadcrumbs.length === i + 1 ? doc.id : crumb.doc,\n })) || [],\n },\n depth: 0,\n draft: collection?.versions?.drafts && doc._status !== 'published',\n locale,\n req,\n })\n } catch (err: unknown) {\n payload.logger.error(\n `Nested Docs plugin has had an error while adding breadcrumbs during document creation.`,\n )\n payload.logger.error(err)\n }\n }\n"],"names":["resaveSelfAfterCreate","pluginConfig","collection","doc","operation","req","undefined","locale","payload","breadcrumbSlug","breadcrumbsFieldSlug","breadcrumbs","update","id","slug","data","map","crumb","i","length","depth","draft","versions","drafts","_status","err","logger","error"],"mappings":"AAIA,kEAAkE;AAClE,6EAA6E;AAE7E,OAAO,MAAMA,wBACX,CAACC,eACD,OAAO,EAAEC,UAAU,EAAEC,GAAG,EAAEC,SAAS,EAAEC,GAAG,EAAE;QACxC,IAAID,cAAc,UAAU;YAC1B,OAAOE;QACT;QAEA,MAAM,EAAEC,MAAM,EAAEC,OAAO,EAAE,GAAGH;QAC5B,MAAMI,iBAAiBR,aAAaS,oBAAoB,IAAI;QAC5D,MAAMC,cAAcR,GAAG,CAACM,eAAe;QAEvC,IAAI;YACF,MAAMD,QAAQI,MAAM,CAAC;gBACnBC,IAAIV,IAAIU,EAAE;gBACVX,YAAYA,WAAWY,IAAI;gBAC3BC,MAAM;oBACJ,CAACN,eAAe,EACdE,aAAaK,IAAI,CAACC,OAAOC,IAAO,CAAA;4BAC9B,GAAGD,KAAK;4BACRd,KAAKQ,YAAYQ,MAAM,KAAKD,IAAI,IAAIf,IAAIU,EAAE,GAAGI,MAAMd,GAAG;wBACxD,CAAA,MAAO,EAAE;gBACb;gBACAiB,OAAO;gBACPC,OAAOnB,YAAYoB,UAAUC,UAAUpB,IAAIqB,OAAO,KAAK;gBACvDjB;gBACAF;YACF;QACF,EAAE,OAAOoB,KAAc;YACrBjB,QAAQkB,MAAM,CAACC,KAAK,CAClB,CAAC,sFAAsF,CAAC;YAE1FnB,QAAQkB,MAAM,CAACC,KAAK,CAACF;QACvB;IACF,EAAC"}
1
+ {"version":3,"sources":["../../src/hooks/resaveSelfAfterCreate.ts"],"sourcesContent":["import type { CollectionAfterChangeHook } from 'payload'\n\nimport type { Breadcrumb, NestedDocsPluginConfig } from '../types.js'\n\n// This hook automatically re-saves a document after it is created\n// so that we can build its breadcrumbs with the newly created document's ID.\n\nexport const resaveSelfAfterCreate =\n (pluginConfig: NestedDocsPluginConfig): CollectionAfterChangeHook =>\n async ({ collection, doc, operation, req }) => {\n if (operation !== 'create') {\n return undefined\n }\n\n const { locale, payload } = req\n const breadcrumbSlug = pluginConfig.breadcrumbsFieldSlug || 'breadcrumbs'\n const breadcrumbs = doc[breadcrumbSlug] as unknown as Breadcrumb[]\n\n try {\n await payload.update({\n id: doc.id,\n collection: collection.slug,\n data: {\n [breadcrumbSlug]:\n breadcrumbs?.map((crumb, i) => ({\n ...crumb,\n doc: breadcrumbs.length === i + 1 ? doc.id : crumb.doc,\n })) || [],\n },\n depth: 0,\n draft: collection?.versions?.drafts && doc._status !== 'published',\n locale,\n overrideAccess: true,\n req,\n })\n } catch (err: unknown) {\n payload.logger.error(\n `Nested Docs plugin has had an error while adding breadcrumbs during document creation.`,\n )\n payload.logger.error(err)\n }\n }\n"],"names":["resaveSelfAfterCreate","pluginConfig","collection","doc","operation","req","undefined","locale","payload","breadcrumbSlug","breadcrumbsFieldSlug","breadcrumbs","update","id","slug","data","map","crumb","i","length","depth","draft","versions","drafts","_status","overrideAccess","err","logger","error"],"mappings":"AAIA,kEAAkE;AAClE,6EAA6E;AAE7E,OAAO,MAAMA,wBACX,CAACC,eACD,OAAO,EAAEC,UAAU,EAAEC,GAAG,EAAEC,SAAS,EAAEC,GAAG,EAAE;QACxC,IAAID,cAAc,UAAU;YAC1B,OAAOE;QACT;QAEA,MAAM,EAAEC,MAAM,EAAEC,OAAO,EAAE,GAAGH;QAC5B,MAAMI,iBAAiBR,aAAaS,oBAAoB,IAAI;QAC5D,MAAMC,cAAcR,GAAG,CAACM,eAAe;QAEvC,IAAI;YACF,MAAMD,QAAQI,MAAM,CAAC;gBACnBC,IAAIV,IAAIU,EAAE;gBACVX,YAAYA,WAAWY,IAAI;gBAC3BC,MAAM;oBACJ,CAACN,eAAe,EACdE,aAAaK,IAAI,CAACC,OAAOC,IAAO,CAAA;4BAC9B,GAAGD,KAAK;4BACRd,KAAKQ,YAAYQ,MAAM,KAAKD,IAAI,IAAIf,IAAIU,EAAE,GAAGI,MAAMd,GAAG;wBACxD,CAAA,MAAO,EAAE;gBACb;gBACAiB,OAAO;gBACPC,OAAOnB,YAAYoB,UAAUC,UAAUpB,IAAIqB,OAAO,KAAK;gBACvDjB;gBACAkB,gBAAgB;gBAChBpB;YACF;QACF,EAAE,OAAOqB,KAAc;YACrBlB,QAAQmB,MAAM,CAACC,KAAK,CAClB,CAAC,sFAAsF,CAAC;YAE1FpB,QAAQmB,MAAM,CAACC,KAAK,CAACF;QACvB;IACF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"formatBreadcrumb.d.ts","sourceRoot":"","sources":["../../src/utilities/formatBreadcrumb.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAExE,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzE,KAAK,IAAI,GAAG;IACV;;;OAGG;IACH,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,UAAU,EAAE,yBAAyB,CAAA;IACrC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAC/B,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,gBAAgB,GAAI,oEAO9B,IAAI,KAAG,UAwBT,CAAA"}
1
+ {"version":3,"file":"formatBreadcrumb.d.ts","sourceRoot":"","sources":["../../src/utilities/formatBreadcrumb.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAExE,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzE,KAAK,IAAI,GAAG;IACV;;;OAGG;IACH,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,UAAU,EAAE,yBAAyB,CAAA;IACrC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAA;IAC/B,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,gBAAgB,uEAO1B,IAAI,KAAG,UAwBT,CAAA"}
@@ -1,4 +1,4 @@
1
1
  import type { CollectionConfig, Document, PayloadRequest } from 'payload';
2
2
  import type { NestedDocsPluginConfig } from '../types.js';
3
- export declare const getParents: (req: PayloadRequest, pluginConfig: Pick<NestedDocsPluginConfig, "generateLabel" | "generateURL" | "parentFieldSlug">, collection: CollectionConfig, doc: Record<string, unknown>, docs?: Array<Record<string, unknown>>) => Promise<Document[]>;
3
+ export declare const getParents: (req: PayloadRequest, pluginConfig: Pick<NestedDocsPluginConfig, 'generateLabel' | 'generateURL' | 'parentFieldSlug'>, collection: CollectionConfig, doc: Record<string, unknown>, docs?: Array<Record<string, unknown>>) => Promise<Document[]>;
4
4
  //# sourceMappingURL=getParents.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getParents.d.ts","sourceRoot":"","sources":["../../src/utilities/getParents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAEzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAEzD,eAAO,MAAM,UAAU,GACrB,KAAK,cAAc,EACnB,cAAc,IAAI,CAAC,sBAAsB,EAAE,eAAe,GAAG,aAAa,GAAG,iBAAiB,CAAC,EAC/F,YAAY,gBAAgB,EAC5B,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,OAAM,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM,KACxC,OAAO,CAAC,QAAQ,EAAE,CAmCpB,CAAA"}
1
+ {"version":3,"file":"getParents.d.ts","sourceRoot":"","sources":["../../src/utilities/getParents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAEzE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAEzD,eAAO,MAAM,UAAU,QAChB,cAAc,gBACL,IAAI,CAAC,sBAAsB,EAAE,eAAe,GAAG,aAAa,GAAG,iBAAiB,CAAC,cACnF,gBAAgB,OACvB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,SACtB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,KACnC,OAAO,CAAC,QAAQ,EAAE,CAoCpB,CAAA"}
@@ -10,6 +10,7 @@ export const getParents = async (req, pluginConfig, collection, doc, docs = [])=
10
10
  collection: collection.slug,
11
11
  depth: 0,
12
12
  disableErrors: true,
13
+ overrideAccess: true,
13
14
  req
14
15
  });
15
16
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/getParents.ts"],"sourcesContent":["import type { CollectionConfig, Document, PayloadRequest } from 'payload'\n\nimport type { NestedDocsPluginConfig } from '../types.js'\n\nexport const getParents = async (\n req: PayloadRequest,\n pluginConfig: Pick<NestedDocsPluginConfig, 'generateLabel' | 'generateURL' | 'parentFieldSlug'>,\n collection: CollectionConfig,\n doc: Record<string, unknown>,\n docs: Array<Record<string, unknown>> = [],\n): Promise<Document[]> => {\n const parentSlug = pluginConfig?.parentFieldSlug || 'parent'\n const parent = doc[parentSlug]\n let retrievedParent: null | Record<string, unknown> = null\n\n if (parent) {\n // If not auto-populated, and we have an ID\n if (typeof parent === 'string' || typeof parent === 'number') {\n retrievedParent = await req.payload.findByID({\n id: parent,\n collection: collection.slug,\n depth: 0,\n disableErrors: true,\n req,\n })\n }\n\n // If auto-populated\n if (typeof parent === 'object') {\n retrievedParent = parent as Record<string, unknown>\n }\n\n if (retrievedParent) {\n if (retrievedParent[parentSlug]) {\n return getParents(req, pluginConfig, collection, retrievedParent, [\n retrievedParent,\n ...docs,\n ])\n }\n\n return [retrievedParent, ...docs]\n }\n }\n\n return docs\n}\n"],"names":["getParents","req","pluginConfig","collection","doc","docs","parentSlug","parentFieldSlug","parent","retrievedParent","payload","findByID","id","slug","depth","disableErrors"],"mappings":"AAIA,OAAO,MAAMA,aAAa,OACxBC,KACAC,cACAC,YACAC,KACAC,OAAuC,EAAE;IAEzC,MAAMC,aAAaJ,cAAcK,mBAAmB;IACpD,MAAMC,SAASJ,GAAG,CAACE,WAAW;IAC9B,IAAIG,kBAAkD;IAEtD,IAAID,QAAQ;QACV,2CAA2C;QAC3C,IAAI,OAAOA,WAAW,YAAY,OAAOA,WAAW,UAAU;YAC5DC,kBAAkB,MAAMR,IAAIS,OAAO,CAACC,QAAQ,CAAC;gBAC3CC,IAAIJ;gBACJL,YAAYA,WAAWU,IAAI;gBAC3BC,OAAO;gBACPC,eAAe;gBACfd;YACF;QACF;QAEA,oBAAoB;QACpB,IAAI,OAAOO,WAAW,UAAU;YAC9BC,kBAAkBD;QACpB;QAEA,IAAIC,iBAAiB;YACnB,IAAIA,eAAe,CAACH,WAAW,EAAE;gBAC/B,OAAON,WAAWC,KAAKC,cAAcC,YAAYM,iBAAiB;oBAChEA;uBACGJ;iBACJ;YACH;YAEA,OAAO;gBAACI;mBAAoBJ;aAAK;QACnC;IACF;IAEA,OAAOA;AACT,EAAC"}
1
+ {"version":3,"sources":["../../src/utilities/getParents.ts"],"sourcesContent":["import type { CollectionConfig, Document, PayloadRequest } from 'payload'\n\nimport type { NestedDocsPluginConfig } from '../types.js'\n\nexport const getParents = async (\n req: PayloadRequest,\n pluginConfig: Pick<NestedDocsPluginConfig, 'generateLabel' | 'generateURL' | 'parentFieldSlug'>,\n collection: CollectionConfig,\n doc: Record<string, unknown>,\n docs: Array<Record<string, unknown>> = [],\n): Promise<Document[]> => {\n const parentSlug = pluginConfig?.parentFieldSlug || 'parent'\n const parent = doc[parentSlug]\n let retrievedParent: null | Record<string, unknown> = null\n\n if (parent) {\n // If not auto-populated, and we have an ID\n if (typeof parent === 'string' || typeof parent === 'number') {\n retrievedParent = await req.payload.findByID({\n id: parent,\n collection: collection.slug,\n depth: 0,\n disableErrors: true,\n overrideAccess: true,\n req,\n })\n }\n\n // If auto-populated\n if (typeof parent === 'object') {\n retrievedParent = parent as Record<string, unknown>\n }\n\n if (retrievedParent) {\n if (retrievedParent[parentSlug]) {\n return getParents(req, pluginConfig, collection, retrievedParent, [\n retrievedParent,\n ...docs,\n ])\n }\n\n return [retrievedParent, ...docs]\n }\n }\n\n return docs\n}\n"],"names":["getParents","req","pluginConfig","collection","doc","docs","parentSlug","parentFieldSlug","parent","retrievedParent","payload","findByID","id","slug","depth","disableErrors","overrideAccess"],"mappings":"AAIA,OAAO,MAAMA,aAAa,OACxBC,KACAC,cACAC,YACAC,KACAC,OAAuC,EAAE;IAEzC,MAAMC,aAAaJ,cAAcK,mBAAmB;IACpD,MAAMC,SAASJ,GAAG,CAACE,WAAW;IAC9B,IAAIG,kBAAkD;IAEtD,IAAID,QAAQ;QACV,2CAA2C;QAC3C,IAAI,OAAOA,WAAW,YAAY,OAAOA,WAAW,UAAU;YAC5DC,kBAAkB,MAAMR,IAAIS,OAAO,CAACC,QAAQ,CAAC;gBAC3CC,IAAIJ;gBACJL,YAAYA,WAAWU,IAAI;gBAC3BC,OAAO;gBACPC,eAAe;gBACfC,gBAAgB;gBAChBf;YACF;QACF;QAEA,oBAAoB;QACpB,IAAI,OAAOO,WAAW,UAAU;YAC9BC,kBAAkBD;QACpB;QAEA,IAAIC,iBAAiB;YACnB,IAAIA,eAAe,CAACH,WAAW,EAAE;gBAC/B,OAAON,WAAWC,KAAKC,cAAcC,YAAYM,iBAAiB;oBAChEA;uBACGJ;iBACJ;YACH;YAEA,OAAO;gBAACI;mBAAoBJ;aAAK;QACnC;IACF;IAEA,OAAOA;AACT,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"populateBreadcrumbs.d.ts","sourceRoot":"","sources":["../../src/utilities/populateBreadcrumbs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAExF,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAK7D,KAAK,IAAI,GAAG;IACV,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,UAAU,EAAE,yBAAyB,CAAA;IACrC,IAAI,EAAE,IAAI,CAAA;IACV,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,WAAW,CAAC,EAAE,QAAQ,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AACD,eAAO,MAAM,mBAAmB,GAAU,4GASvC,IAAI,KAAG,OAAO,CAAC,IAAI,CAoCrB,CAAA"}
1
+ {"version":3,"file":"populateBreadcrumbs.d.ts","sourceRoot":"","sources":["../../src/utilities/populateBreadcrumbs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAExF,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAK7D,KAAK,IAAI,GAAG;IACV,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,UAAU,EAAE,yBAAyB,CAAA;IACrC,IAAI,EAAE,IAAI,CAAA;IACV,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,WAAW,CAAC,EAAE,QAAQ,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,GAAG,EAAE,cAAc,CAAA;CACpB,CAAA;AACD,eAAO,MAAM,mBAAmB,+GAS7B,IAAI,KAAG,OAAO,CAAC,IAAI,CAoCrB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payloadcms/plugin-nested-docs",
3
- "version": "4.0.0-internal.8ba6b5b",
3
+ "version": "4.0.0-internal.934870d",
4
4
  "description": "The official Nested Docs plugin for Payload",
5
5
  "homepage": "https://payloadcms.com",
6
6
  "repository": {
@@ -38,10 +38,10 @@
38
38
  ],
39
39
  "devDependencies": {
40
40
  "@payloadcms/eslint-config": "3.28.0",
41
- "payload": "4.0.0-internal.8ba6b5b"
41
+ "payload": "4.0.0-internal.934870d"
42
42
  },
43
43
  "peerDependencies": {
44
- "payload": "4.0.0-internal.8ba6b5b"
44
+ "payload": "4.0.0-internal.934870d"
45
45
  },
46
46
  "publishConfig": {
47
47
  "registry": "https://registry.npmjs.org/"
@@ -52,7 +52,7 @@
52
52
  "build:swc": "swc ./src -d ./dist --config-file .swcrc --strip-leading-paths",
53
53
  "build:types": "tsc --emitDeclarationOnly --outDir dist",
54
54
  "clean": "rimraf -g {dist,*.tsbuildinfo}",
55
- "copyfiles": "copyfiles -u 1 \"src/**/*.{html,css,scss,ttf,woff,woff2,eot,svg,jpg,png,json}\" dist/",
55
+ "copyfiles": "copyfiles -u 1 -e \"**/*.spec.*\" \"src/**/*.{html,css,scss,ttf,woff,woff2,eot,svg,jpg,png,json}\" dist/",
56
56
  "lint": "eslint .",
57
57
  "lint:fix": "eslint . --fix"
58
58
  }