payload 3.86.0-internal.8bd478e → 3.86.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.
Files changed (45) hide show
  1. package/bin.js +11 -0
  2. package/dist/admin/fields/Row.d.ts +2 -2
  3. package/dist/admin/fields/Row.d.ts.map +1 -1
  4. package/dist/admin/fields/Row.js.map +1 -1
  5. package/dist/admin/forms/Field.d.ts +1 -3
  6. package/dist/admin/forms/Field.d.ts.map +1 -1
  7. package/dist/admin/forms/Field.js.map +1 -1
  8. package/dist/collections/config/types.d.ts +4 -0
  9. package/dist/collections/config/types.d.ts.map +1 -1
  10. package/dist/collections/config/types.js.map +1 -1
  11. package/dist/collections/operations/delete.d.ts.map +1 -1
  12. package/dist/collections/operations/delete.js +3 -0
  13. package/dist/collections/operations/delete.js.map +1 -1
  14. package/dist/collections/operations/update.d.ts.map +1 -1
  15. package/dist/collections/operations/update.js +7 -2
  16. package/dist/collections/operations/update.js.map +1 -1
  17. package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.d.ts +9 -0
  18. package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.d.ts.map +1 -0
  19. package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.js +170 -0
  20. package/dist/collections/operations/utilities/copyDataWithFreshRowIDs.js.map +1 -0
  21. package/dist/config/orderable/index.d.ts.map +1 -1
  22. package/dist/config/orderable/index.js +23 -0
  23. package/dist/config/orderable/index.js.map +1 -1
  24. package/dist/config/types.d.ts +7 -0
  25. package/dist/config/types.d.ts.map +1 -1
  26. package/dist/config/types.js.map +1 -1
  27. package/dist/errors/ValidationError.d.ts +1 -0
  28. package/dist/errors/ValidationError.d.ts.map +1 -1
  29. package/dist/errors/ValidationError.js.map +1 -1
  30. package/dist/index.bundled.d.ts +15 -5
  31. package/dist/uploads/checkFileAccess.d.ts.map +1 -1
  32. package/dist/uploads/checkFileAccess.js +30 -9
  33. package/dist/uploads/checkFileAccess.js.map +1 -1
  34. package/dist/utilities/createPayloadRequest.d.ts.map +1 -1
  35. package/dist/utilities/createPayloadRequest.js +1 -0
  36. package/dist/utilities/createPayloadRequest.js.map +1 -1
  37. package/dist/utilities/isURLAllowed.d.ts.map +1 -1
  38. package/dist/utilities/isURLAllowed.js +9 -3
  39. package/dist/utilities/isURLAllowed.js.map +1 -1
  40. package/dist/utilities/isURLAllowed.spec.js +78 -0
  41. package/dist/utilities/isURLAllowed.spec.js.map +1 -0
  42. package/dist/versions/schedule/job.d.ts.map +1 -1
  43. package/dist/versions/schedule/job.js +4 -1
  44. package/dist/versions/schedule/job.js.map +1 -1
  45. package/package.json +3 -3
@@ -0,0 +1,78 @@
1
+ import { describe, expect, it } from 'vitest';
2
+ import { isURLAllowed } from './isURLAllowed.js';
3
+ describe('isURLAllowed', ()=>{
4
+ describe('hostname matching', ()=>{
5
+ const allowList = [
6
+ {
7
+ hostname: 'cdn.example.com'
8
+ }
9
+ ];
10
+ it('should allow an exactly matching hostname', ()=>{
11
+ expect(isURLAllowed('https://cdn.example.com/file.png', allowList)).toBe(true);
12
+ });
13
+ it('should deny a different hostname', ()=>{
14
+ expect(isURLAllowed('https://attacker.com/file.png', allowList)).toBe(false);
15
+ });
16
+ it('should deny a userinfo `@` trick (hostname is the real authority)', ()=>{
17
+ expect(isURLAllowed('https://cdn.example.com@attacker.com/file.png', allowList)).toBe(false);
18
+ });
19
+ it('should deny an invalid URL', ()=>{
20
+ expect(isURLAllowed('not a url', allowList)).toBe(false);
21
+ });
22
+ });
23
+ describe('pathname matching', ()=>{
24
+ it('should treat a literal dot as a literal, not a wildcard', ()=>{
25
+ const allowList = [
26
+ {
27
+ hostname: 'cdn.example.com',
28
+ pathname: '/files/report.json'
29
+ }
30
+ ];
31
+ expect(isURLAllowed('https://cdn.example.com/files/report.json', allowList)).toBe(true);
32
+ // Previously the unescaped `.` matched any character, widening the allow-list.
33
+ expect(isURLAllowed('https://cdn.example.com/files/reportXjson', allowList)).toBe(false);
34
+ });
35
+ it('should not let other regex metacharacters broaden the match', ()=>{
36
+ const allowList = [
37
+ {
38
+ hostname: 'cdn.example.com',
39
+ pathname: '/a+b/(c)'
40
+ }
41
+ ];
42
+ expect(isURLAllowed('https://cdn.example.com/a+b/(c)', allowList)).toBe(true);
43
+ expect(isURLAllowed('https://cdn.example.com/aaab/c', allowList)).toBe(false);
44
+ });
45
+ it('should match a single segment with `*` but not across slashes', ()=>{
46
+ const allowList = [
47
+ {
48
+ hostname: 'cdn.example.com',
49
+ pathname: '/uploads/*'
50
+ }
51
+ ];
52
+ expect(isURLAllowed('https://cdn.example.com/uploads/photo.png', allowList)).toBe(true);
53
+ expect(isURLAllowed('https://cdn.example.com/uploads/nested/photo.png', allowList)).toBe(false);
54
+ });
55
+ it('should match across slashes with `**`', ()=>{
56
+ const allowList = [
57
+ {
58
+ hostname: 'cdn.example.com',
59
+ pathname: '/uploads/**'
60
+ }
61
+ ];
62
+ expect(isURLAllowed('https://cdn.example.com/uploads/photo.png', allowList)).toBe(true);
63
+ expect(isURLAllowed('https://cdn.example.com/uploads/nested/photo.png', allowList)).toBe(true);
64
+ });
65
+ it('should allow an optional trailing slash', ()=>{
66
+ const allowList = [
67
+ {
68
+ hostname: 'cdn.example.com',
69
+ pathname: '/assets/'
70
+ }
71
+ ];
72
+ expect(isURLAllowed('https://cdn.example.com/assets', allowList)).toBe(true);
73
+ expect(isURLAllowed('https://cdn.example.com/assets/', allowList)).toBe(true);
74
+ });
75
+ });
76
+ });
77
+
78
+ //# sourceMappingURL=isURLAllowed.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utilities/isURLAllowed.spec.ts"],"sourcesContent":["import { describe, expect, it } from 'vitest'\n\nimport type { AllowList } from '../uploads/types.js'\n\nimport { isURLAllowed } from './isURLAllowed.js'\n\ndescribe('isURLAllowed', () => {\n describe('hostname matching', () => {\n const allowList: AllowList = [{ hostname: 'cdn.example.com' }]\n\n it('should allow an exactly matching hostname', () => {\n expect(isURLAllowed('https://cdn.example.com/file.png', allowList)).toBe(true)\n })\n\n it('should deny a different hostname', () => {\n expect(isURLAllowed('https://attacker.com/file.png', allowList)).toBe(false)\n })\n\n it('should deny a userinfo `@` trick (hostname is the real authority)', () => {\n expect(isURLAllowed('https://cdn.example.com@attacker.com/file.png', allowList)).toBe(false)\n })\n\n it('should deny an invalid URL', () => {\n expect(isURLAllowed('not a url', allowList)).toBe(false)\n })\n })\n\n describe('pathname matching', () => {\n it('should treat a literal dot as a literal, not a wildcard', () => {\n const allowList: AllowList = [{ hostname: 'cdn.example.com', pathname: '/files/report.json' }]\n\n expect(isURLAllowed('https://cdn.example.com/files/report.json', allowList)).toBe(true)\n // Previously the unescaped `.` matched any character, widening the allow-list.\n expect(isURLAllowed('https://cdn.example.com/files/reportXjson', allowList)).toBe(false)\n })\n\n it('should not let other regex metacharacters broaden the match', () => {\n const allowList: AllowList = [{ hostname: 'cdn.example.com', pathname: '/a+b/(c)' }]\n\n expect(isURLAllowed('https://cdn.example.com/a+b/(c)', allowList)).toBe(true)\n expect(isURLAllowed('https://cdn.example.com/aaab/c', allowList)).toBe(false)\n })\n\n it('should match a single segment with `*` but not across slashes', () => {\n const allowList: AllowList = [{ hostname: 'cdn.example.com', pathname: '/uploads/*' }]\n\n expect(isURLAllowed('https://cdn.example.com/uploads/photo.png', allowList)).toBe(true)\n expect(isURLAllowed('https://cdn.example.com/uploads/nested/photo.png', allowList)).toBe(\n false,\n )\n })\n\n it('should match across slashes with `**`', () => {\n const allowList: AllowList = [{ hostname: 'cdn.example.com', pathname: '/uploads/**' }]\n\n expect(isURLAllowed('https://cdn.example.com/uploads/photo.png', allowList)).toBe(true)\n expect(isURLAllowed('https://cdn.example.com/uploads/nested/photo.png', allowList)).toBe(true)\n })\n\n it('should allow an optional trailing slash', () => {\n const allowList: AllowList = [{ hostname: 'cdn.example.com', pathname: '/assets/' }]\n\n expect(isURLAllowed('https://cdn.example.com/assets', allowList)).toBe(true)\n expect(isURLAllowed('https://cdn.example.com/assets/', allowList)).toBe(true)\n })\n })\n})\n"],"names":["describe","expect","it","isURLAllowed","allowList","hostname","toBe","pathname"],"mappings":"AAAA,SAASA,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,SAAQ;AAI7C,SAASC,YAAY,QAAQ,oBAAmB;AAEhDH,SAAS,gBAAgB;IACvBA,SAAS,qBAAqB;QAC5B,MAAMI,YAAuB;YAAC;gBAAEC,UAAU;YAAkB;SAAE;QAE9DH,GAAG,6CAA6C;YAC9CD,OAAOE,aAAa,oCAAoCC,YAAYE,IAAI,CAAC;QAC3E;QAEAJ,GAAG,oCAAoC;YACrCD,OAAOE,aAAa,iCAAiCC,YAAYE,IAAI,CAAC;QACxE;QAEAJ,GAAG,qEAAqE;YACtED,OAAOE,aAAa,iDAAiDC,YAAYE,IAAI,CAAC;QACxF;QAEAJ,GAAG,8BAA8B;YAC/BD,OAAOE,aAAa,aAAaC,YAAYE,IAAI,CAAC;QACpD;IACF;IAEAN,SAAS,qBAAqB;QAC5BE,GAAG,2DAA2D;YAC5D,MAAME,YAAuB;gBAAC;oBAAEC,UAAU;oBAAmBE,UAAU;gBAAqB;aAAE;YAE9FN,OAAOE,aAAa,6CAA6CC,YAAYE,IAAI,CAAC;YAClF,+EAA+E;YAC/EL,OAAOE,aAAa,6CAA6CC,YAAYE,IAAI,CAAC;QACpF;QAEAJ,GAAG,+DAA+D;YAChE,MAAME,YAAuB;gBAAC;oBAAEC,UAAU;oBAAmBE,UAAU;gBAAW;aAAE;YAEpFN,OAAOE,aAAa,mCAAmCC,YAAYE,IAAI,CAAC;YACxEL,OAAOE,aAAa,kCAAkCC,YAAYE,IAAI,CAAC;QACzE;QAEAJ,GAAG,iEAAiE;YAClE,MAAME,YAAuB;gBAAC;oBAAEC,UAAU;oBAAmBE,UAAU;gBAAa;aAAE;YAEtFN,OAAOE,aAAa,6CAA6CC,YAAYE,IAAI,CAAC;YAClFL,OAAOE,aAAa,oDAAoDC,YAAYE,IAAI,CACtF;QAEJ;QAEAJ,GAAG,yCAAyC;YAC1C,MAAME,YAAuB;gBAAC;oBAAEC,UAAU;oBAAmBE,UAAU;gBAAc;aAAE;YAEvFN,OAAOE,aAAa,6CAA6CC,YAAYE,IAAI,CAAC;YAClFL,OAAOE,aAAa,oDAAoDC,YAAYE,IAAI,CAAC;QAC3F;QAEAJ,GAAG,2CAA2C;YAC5C,MAAME,YAAuB;gBAAC;oBAAEC,UAAU;oBAAmBE,UAAU;gBAAW;aAAE;YAEpFN,OAAOE,aAAa,kCAAkCC,YAAYE,IAAI,CAAC;YACvEL,OAAOE,aAAa,mCAAmCC,YAAYE,IAAI,CAAC;QAC1E;IACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"job.d.ts","sourceRoot":"","sources":["../../../src/versions/schedule/job.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAA;AACxE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAA;AAE1D,KAAK,IAAI,GAAG;IACV,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,sBAAsB,6CAIhC,IAAI,KAAG,UAAU,CAAC;IAAE,KAAK,EAAE,wBAAwB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA+FvE,CAAA"}
1
+ {"version":3,"file":"job.d.ts","sourceRoot":"","sources":["../../../src/versions/schedule/job.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAA;AACxE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAA;AAE1D,KAAK,IAAI,GAAG;IACV,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB,CAAA;AAED,eAAO,MAAM,sBAAsB,6CAIhC,IAAI,KAAG,UAAU,CAAC;IAAE,KAAK,EAAE,wBAAwB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAsGvE,CAAA"}
@@ -21,8 +21,11 @@ export const getSchedulePublishTask = ({ adminUserSlug, collections, globals })=
21
21
  }
22
22
  }
23
23
  if (input.doc) {
24
+ // input.doc.value is always a string (#10481); coerce back to the real ID type.
25
+ const idType = req.payload.collections[input.doc.relationTo]?.customIDType ?? req.payload.db?.defaultIDType ?? 'text';
26
+ const id = idType === 'number' ? Number(input.doc.value) : input.doc.value;
24
27
  await req.payload.update({
25
- id: input.doc.value,
28
+ id,
26
29
  collection: input.doc.relationTo,
27
30
  data: {
28
31
  _status
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/versions/schedule/job.ts"],"sourcesContent":["import type { Field } from '../../fields/config/types.js'\nimport type { TypedUser } from '../../index.js'\nimport type { TaskConfig } from '../../queues/config/types/taskTypes.js'\nimport type { SchedulePublishTaskInput } from './types.js'\n\ntype Args = {\n adminUserSlug: string\n collections: string[]\n globals: string[]\n}\n\nexport const getSchedulePublishTask = ({\n adminUserSlug,\n collections,\n globals,\n}: Args): TaskConfig<{ input: SchedulePublishTaskInput; output: object }> => {\n return {\n slug: 'schedulePublish',\n handler: async ({ input, req }) => {\n const _status = input?.type === 'publish' || !input?.type ? 'published' : 'draft'\n\n const userID = input.user\n\n let user: null | TypedUser = null\n\n if (userID) {\n user = (await req.payload.findByID({\n id: userID,\n collection: adminUserSlug,\n depth: 0,\n })) as TypedUser\n\n user.collection = adminUserSlug\n }\n\n let publishSpecificLocale: string\n\n if (input?.type === 'publish' && input.locale && req.payload.config.localization) {\n const matchedLocale = req.payload.config.localization.locales.find(\n ({ code }) => code === input.locale,\n )\n\n if (matchedLocale) {\n publishSpecificLocale = input.locale\n }\n }\n\n if (input.doc) {\n await req.payload.update({\n id: input.doc.value,\n collection: input.doc.relationTo,\n data: {\n _status,\n },\n depth: 0,\n overrideAccess: user === null,\n publishSpecificLocale: publishSpecificLocale!,\n user,\n })\n }\n\n if (input.global) {\n await req.payload.updateGlobal({\n slug: input.global,\n data: {\n _status,\n },\n depth: 0,\n overrideAccess: user === null,\n publishSpecificLocale: publishSpecificLocale!,\n user,\n })\n }\n\n return {\n output: {},\n }\n },\n inputSchema: [\n {\n name: 'type',\n type: 'radio',\n defaultValue: 'publish',\n options: ['publish', 'unpublish'],\n },\n {\n name: 'locale',\n type: 'text',\n },\n ...(collections.length > 0\n ? [\n {\n name: 'doc',\n type: 'relationship',\n relationTo: collections,\n } satisfies Field,\n ]\n : []),\n {\n name: 'global',\n type: 'select',\n options: globals,\n },\n {\n name: 'user',\n type: 'relationship',\n relationTo: adminUserSlug,\n },\n ],\n }\n}\n"],"names":["getSchedulePublishTask","adminUserSlug","collections","globals","slug","handler","input","req","_status","type","userID","user","payload","findByID","id","collection","depth","publishSpecificLocale","locale","config","localization","matchedLocale","locales","find","code","doc","update","value","relationTo","data","overrideAccess","global","updateGlobal","output","inputSchema","name","defaultValue","options","length"],"mappings":"AAWA,OAAO,MAAMA,yBAAyB,CAAC,EACrCC,aAAa,EACbC,WAAW,EACXC,OAAO,EACF;IACL,OAAO;QACLC,MAAM;QACNC,SAAS,OAAO,EAAEC,KAAK,EAAEC,GAAG,EAAE;YAC5B,MAAMC,UAAUF,OAAOG,SAAS,aAAa,CAACH,OAAOG,OAAO,cAAc;YAE1E,MAAMC,SAASJ,MAAMK,IAAI;YAEzB,IAAIA,OAAyB;YAE7B,IAAID,QAAQ;gBACVC,OAAQ,MAAMJ,IAAIK,OAAO,CAACC,QAAQ,CAAC;oBACjCC,IAAIJ;oBACJK,YAAYd;oBACZe,OAAO;gBACT;gBAEAL,KAAKI,UAAU,GAAGd;YACpB;YAEA,IAAIgB;YAEJ,IAAIX,OAAOG,SAAS,aAAaH,MAAMY,MAAM,IAAIX,IAAIK,OAAO,CAACO,MAAM,CAACC,YAAY,EAAE;gBAChF,MAAMC,gBAAgBd,IAAIK,OAAO,CAACO,MAAM,CAACC,YAAY,CAACE,OAAO,CAACC,IAAI,CAChE,CAAC,EAAEC,IAAI,EAAE,GAAKA,SAASlB,MAAMY,MAAM;gBAGrC,IAAIG,eAAe;oBACjBJ,wBAAwBX,MAAMY,MAAM;gBACtC;YACF;YAEA,IAAIZ,MAAMmB,GAAG,EAAE;gBACb,MAAMlB,IAAIK,OAAO,CAACc,MAAM,CAAC;oBACvBZ,IAAIR,MAAMmB,GAAG,CAACE,KAAK;oBACnBZ,YAAYT,MAAMmB,GAAG,CAACG,UAAU;oBAChCC,MAAM;wBACJrB;oBACF;oBACAQ,OAAO;oBACPc,gBAAgBnB,SAAS;oBACzBM,uBAAuBA;oBACvBN;gBACF;YACF;YAEA,IAAIL,MAAMyB,MAAM,EAAE;gBAChB,MAAMxB,IAAIK,OAAO,CAACoB,YAAY,CAAC;oBAC7B5B,MAAME,MAAMyB,MAAM;oBAClBF,MAAM;wBACJrB;oBACF;oBACAQ,OAAO;oBACPc,gBAAgBnB,SAAS;oBACzBM,uBAAuBA;oBACvBN;gBACF;YACF;YAEA,OAAO;gBACLsB,QAAQ,CAAC;YACX;QACF;QACAC,aAAa;YACX;gBACEC,MAAM;gBACN1B,MAAM;gBACN2B,cAAc;gBACdC,SAAS;oBAAC;oBAAW;iBAAY;YACnC;YACA;gBACEF,MAAM;gBACN1B,MAAM;YACR;eACIP,YAAYoC,MAAM,GAAG,IACrB;gBACE;oBACEH,MAAM;oBACN1B,MAAM;oBACNmB,YAAY1B;gBACd;aACD,GACD,EAAE;YACN;gBACEiC,MAAM;gBACN1B,MAAM;gBACN4B,SAASlC;YACX;YACA;gBACEgC,MAAM;gBACN1B,MAAM;gBACNmB,YAAY3B;YACd;SACD;IACH;AACF,EAAC"}
1
+ {"version":3,"sources":["../../../src/versions/schedule/job.ts"],"sourcesContent":["import type { Field } from '../../fields/config/types.js'\nimport type { TypedUser } from '../../index.js'\nimport type { TaskConfig } from '../../queues/config/types/taskTypes.js'\nimport type { SchedulePublishTaskInput } from './types.js'\n\ntype Args = {\n adminUserSlug: string\n collections: string[]\n globals: string[]\n}\n\nexport const getSchedulePublishTask = ({\n adminUserSlug,\n collections,\n globals,\n}: Args): TaskConfig<{ input: SchedulePublishTaskInput; output: object }> => {\n return {\n slug: 'schedulePublish',\n handler: async ({ input, req }) => {\n const _status = input?.type === 'publish' || !input?.type ? 'published' : 'draft'\n\n const userID = input.user\n\n let user: null | TypedUser = null\n\n if (userID) {\n user = (await req.payload.findByID({\n id: userID,\n collection: adminUserSlug,\n depth: 0,\n })) as TypedUser\n\n user.collection = adminUserSlug\n }\n\n let publishSpecificLocale: string\n\n if (input?.type === 'publish' && input.locale && req.payload.config.localization) {\n const matchedLocale = req.payload.config.localization.locales.find(\n ({ code }) => code === input.locale,\n )\n\n if (matchedLocale) {\n publishSpecificLocale = input.locale\n }\n }\n\n if (input.doc) {\n // input.doc.value is always a string (#10481); coerce back to the real ID type.\n const idType =\n req.payload.collections[input.doc.relationTo]?.customIDType ??\n req.payload.db?.defaultIDType ??\n 'text'\n const id = idType === 'number' ? Number(input.doc.value) : input.doc.value\n\n await req.payload.update({\n id,\n collection: input.doc.relationTo,\n data: {\n _status,\n },\n depth: 0,\n overrideAccess: user === null,\n publishSpecificLocale: publishSpecificLocale!,\n user,\n })\n }\n\n if (input.global) {\n await req.payload.updateGlobal({\n slug: input.global,\n data: {\n _status,\n },\n depth: 0,\n overrideAccess: user === null,\n publishSpecificLocale: publishSpecificLocale!,\n user,\n })\n }\n\n return {\n output: {},\n }\n },\n inputSchema: [\n {\n name: 'type',\n type: 'radio',\n defaultValue: 'publish',\n options: ['publish', 'unpublish'],\n },\n {\n name: 'locale',\n type: 'text',\n },\n ...(collections.length > 0\n ? [\n {\n name: 'doc',\n type: 'relationship',\n relationTo: collections,\n } satisfies Field,\n ]\n : []),\n {\n name: 'global',\n type: 'select',\n options: globals,\n },\n {\n name: 'user',\n type: 'relationship',\n relationTo: adminUserSlug,\n },\n ],\n }\n}\n"],"names":["getSchedulePublishTask","adminUserSlug","collections","globals","slug","handler","input","req","_status","type","userID","user","payload","findByID","id","collection","depth","publishSpecificLocale","locale","config","localization","matchedLocale","locales","find","code","doc","idType","relationTo","customIDType","db","defaultIDType","Number","value","update","data","overrideAccess","global","updateGlobal","output","inputSchema","name","defaultValue","options","length"],"mappings":"AAWA,OAAO,MAAMA,yBAAyB,CAAC,EACrCC,aAAa,EACbC,WAAW,EACXC,OAAO,EACF;IACL,OAAO;QACLC,MAAM;QACNC,SAAS,OAAO,EAAEC,KAAK,EAAEC,GAAG,EAAE;YAC5B,MAAMC,UAAUF,OAAOG,SAAS,aAAa,CAACH,OAAOG,OAAO,cAAc;YAE1E,MAAMC,SAASJ,MAAMK,IAAI;YAEzB,IAAIA,OAAyB;YAE7B,IAAID,QAAQ;gBACVC,OAAQ,MAAMJ,IAAIK,OAAO,CAACC,QAAQ,CAAC;oBACjCC,IAAIJ;oBACJK,YAAYd;oBACZe,OAAO;gBACT;gBAEAL,KAAKI,UAAU,GAAGd;YACpB;YAEA,IAAIgB;YAEJ,IAAIX,OAAOG,SAAS,aAAaH,MAAMY,MAAM,IAAIX,IAAIK,OAAO,CAACO,MAAM,CAACC,YAAY,EAAE;gBAChF,MAAMC,gBAAgBd,IAAIK,OAAO,CAACO,MAAM,CAACC,YAAY,CAACE,OAAO,CAACC,IAAI,CAChE,CAAC,EAAEC,IAAI,EAAE,GAAKA,SAASlB,MAAMY,MAAM;gBAGrC,IAAIG,eAAe;oBACjBJ,wBAAwBX,MAAMY,MAAM;gBACtC;YACF;YAEA,IAAIZ,MAAMmB,GAAG,EAAE;gBACb,gFAAgF;gBAChF,MAAMC,SACJnB,IAAIK,OAAO,CAACV,WAAW,CAACI,MAAMmB,GAAG,CAACE,UAAU,CAAC,EAAEC,gBAC/CrB,IAAIK,OAAO,CAACiB,EAAE,EAAEC,iBAChB;gBACF,MAAMhB,KAAKY,WAAW,WAAWK,OAAOzB,MAAMmB,GAAG,CAACO,KAAK,IAAI1B,MAAMmB,GAAG,CAACO,KAAK;gBAE1E,MAAMzB,IAAIK,OAAO,CAACqB,MAAM,CAAC;oBACvBnB;oBACAC,YAAYT,MAAMmB,GAAG,CAACE,UAAU;oBAChCO,MAAM;wBACJ1B;oBACF;oBACAQ,OAAO;oBACPmB,gBAAgBxB,SAAS;oBACzBM,uBAAuBA;oBACvBN;gBACF;YACF;YAEA,IAAIL,MAAM8B,MAAM,EAAE;gBAChB,MAAM7B,IAAIK,OAAO,CAACyB,YAAY,CAAC;oBAC7BjC,MAAME,MAAM8B,MAAM;oBAClBF,MAAM;wBACJ1B;oBACF;oBACAQ,OAAO;oBACPmB,gBAAgBxB,SAAS;oBACzBM,uBAAuBA;oBACvBN;gBACF;YACF;YAEA,OAAO;gBACL2B,QAAQ,CAAC;YACX;QACF;QACAC,aAAa;YACX;gBACEC,MAAM;gBACN/B,MAAM;gBACNgC,cAAc;gBACdC,SAAS;oBAAC;oBAAW;iBAAY;YACnC;YACA;gBACEF,MAAM;gBACN/B,MAAM;YACR;eACIP,YAAYyC,MAAM,GAAG,IACrB;gBACE;oBACEH,MAAM;oBACN/B,MAAM;oBACNkB,YAAYzB;gBACd;aACD,GACD,EAAE;YACN;gBACEsC,MAAM;gBACN/B,MAAM;gBACNiC,SAASvC;YACX;YACA;gBACEqC,MAAM;gBACN/B,MAAM;gBACNkB,YAAY1B;YACd;SACD;IACH;AACF,EAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "payload",
3
- "version": "3.86.0-internal.8bd478e",
3
+ "version": "3.86.0",
4
4
  "description": "Node, React, Headless CMS and Application Framework built on Next.js",
5
5
  "keywords": [
6
6
  "admin panel",
@@ -112,10 +112,10 @@
112
112
  "sanitize-filename": "1.6.3",
113
113
  "ts-essentials": "10.0.3",
114
114
  "tsx": "4.22.4",
115
- "undici": "7.24.4",
115
+ "undici": "7.28.0",
116
116
  "uuid": "13.0.2",
117
117
  "ws": "^8.16.0",
118
- "@payloadcms/translations": "3.86.0-internal.8bd478e"
118
+ "@payloadcms/translations": "3.86.0"
119
119
  },
120
120
  "devDependencies": {
121
121
  "@hyrious/esbuild-plugin-commonjs": "0.2.6",