payload 3.0.0-beta.134 → 3.0.0-beta.135

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 (59) hide show
  1. package/dist/admin/forms/Description.d.ts +5 -2
  2. package/dist/admin/forms/Description.d.ts.map +1 -1
  3. package/dist/admin/forms/Description.js.map +1 -1
  4. package/dist/admin/views/types.d.ts +4 -10
  5. package/dist/admin/views/types.d.ts.map +1 -1
  6. package/dist/admin/views/types.js.map +1 -1
  7. package/dist/auth/types.d.ts +9 -0
  8. package/dist/auth/types.d.ts.map +1 -1
  9. package/dist/auth/types.js.map +1 -1
  10. package/dist/bin/generateImportMap/getFromImportMap.d.ts +9 -0
  11. package/dist/bin/generateImportMap/getFromImportMap.d.ts.map +1 -0
  12. package/dist/bin/generateImportMap/getFromImportMap.js +18 -0
  13. package/dist/bin/generateImportMap/getFromImportMap.js.map +1 -0
  14. package/dist/bin/generateImportMap/iterateConfig.d.ts.map +1 -1
  15. package/dist/bin/generateImportMap/iterateConfig.js +1 -1
  16. package/dist/bin/generateImportMap/iterateConfig.js.map +1 -1
  17. package/dist/bin/generateImportMap/iterateFields.d.ts.map +1 -1
  18. package/dist/bin/generateImportMap/iterateFields.js +2 -0
  19. package/dist/bin/generateImportMap/iterateFields.js.map +1 -1
  20. package/dist/collections/config/client.d.ts +5 -2
  21. package/dist/collections/config/client.d.ts.map +1 -1
  22. package/dist/collections/config/client.js +6 -4
  23. package/dist/collections/config/client.js.map +1 -1
  24. package/dist/config/client.d.ts +3 -1
  25. package/dist/config/client.d.ts.map +1 -1
  26. package/dist/config/client.js +5 -3
  27. package/dist/config/client.js.map +1 -1
  28. package/dist/exports/shared.d.ts +1 -0
  29. package/dist/exports/shared.d.ts.map +1 -1
  30. package/dist/exports/shared.js +1 -0
  31. package/dist/exports/shared.js.map +1 -1
  32. package/dist/fields/config/client.d.ts +5 -2
  33. package/dist/fields/config/client.d.ts.map +1 -1
  34. package/dist/fields/config/client.js +23 -28
  35. package/dist/fields/config/client.js.map +1 -1
  36. package/dist/fields/config/types.d.ts +67 -2
  37. package/dist/fields/config/types.d.ts.map +1 -1
  38. package/dist/fields/config/types.js.map +1 -1
  39. package/dist/globals/config/client.d.ts +5 -2
  40. package/dist/globals/config/client.d.ts.map +1 -1
  41. package/dist/globals/config/client.js +6 -4
  42. package/dist/globals/config/client.js.map +1 -1
  43. package/dist/index.d.ts +5 -5
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +4 -1
  46. package/dist/index.js.map +1 -1
  47. package/dist/queues/config/generateJobsJSONSchemas.js +5 -2
  48. package/dist/queues/config/generateJobsJSONSchemas.js.map +1 -1
  49. package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
  50. package/dist/utilities/configToJSONSchema.js +4 -2
  51. package/dist/utilities/configToJSONSchema.js.map +1 -1
  52. package/dist/utilities/deepCopyObject.d.ts.map +1 -1
  53. package/dist/utilities/deepCopyObject.js +8 -0
  54. package/dist/utilities/deepCopyObject.js.map +1 -1
  55. package/dist/utilities/sanitizePermissions.js +1 -1
  56. package/dist/utilities/sanitizePermissions.js.map +1 -1
  57. package/dist/utilities/sanitizePermissions.spec.js +134 -1
  58. package/dist/utilities/sanitizePermissions.spec.js.map +1 -1
  59. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/sanitizePermissions.spec.ts"],"sourcesContent":["import type { CollectionPermission, Permissions } from '../auth/types.js'\n\nimport { recursivelySanitizePermissions, sanitizePermissions } from './sanitizePermissions.js'\n\n/* eslint-disable perfectionist/sort-objects */\ndescribe('recursivelySanitizePermissions', () => {\n it('should sanitize a basic collection', () => {\n const permissions: CollectionPermission = {\n fields: {\n text: {\n create: {\n permission: true,\n },\n read: {\n permission: true,\n },\n update: {\n permission: true,\n },\n },\n },\n create: {\n permission: true,\n },\n read: {\n permission: true,\n },\n update: {\n permission: true,\n },\n delete: {\n permission: false,\n },\n readVersions: {\n permission: true,\n },\n }\n\n recursivelySanitizePermissions(permissions)\n\n expect(permissions).toStrictEqual({\n fields: true,\n create: true,\n read: true,\n update: true,\n readVersions: true,\n })\n })\n\n it('should sanitize a collection with where queries', () => {\n const permissions: CollectionPermission = {\n fields: {},\n create: {\n permission: true,\n where: {\n user: {\n equals: 2,\n },\n },\n },\n read: {\n permission: true,\n },\n update: {\n permission: true,\n },\n delete: {\n permission: false,\n },\n readVersions: {\n permission: true,\n where: {\n user: {\n equals: 1,\n },\n },\n },\n }\n\n recursivelySanitizePermissions(permissions)\n\n expect(permissions).toStrictEqual({\n create: {\n permission: true,\n where: {\n user: {\n equals: 2,\n },\n },\n },\n read: true,\n update: true,\n readVersions: {\n permission: true,\n where: {\n user: {\n equals: 1,\n },\n },\n },\n })\n })\n\n it('should sanitize a collection with nested fields in blocks', () => {\n const permissions: CollectionPermission = {\n create: {\n permission: true,\n },\n delete: {\n permission: true,\n },\n read: {\n permission: true,\n },\n update: {\n permission: true,\n },\n fields: {\n layout: {\n create: {\n permission: true,\n },\n blocks: {\n blockWithTitle: {\n fields: {\n blockTitle: {\n create: {\n permission: true,\n },\n read: {\n permission: true,\n },\n update: {\n permission: true,\n },\n },\n id: {\n create: {\n permission: true,\n },\n read: {\n permission: true,\n },\n update: {\n permission: true,\n },\n },\n blockName: {\n create: {\n permission: true,\n },\n read: {\n permission: true,\n },\n update: {\n permission: true,\n },\n },\n },\n },\n },\n read: {\n permission: true,\n },\n update: {\n permission: true,\n },\n },\n },\n }\n\n recursivelySanitizePermissions(permissions)\n\n expect(permissions).toStrictEqual({\n create: true,\n delete: true,\n fields: true,\n read: true,\n update: true,\n })\n })\n\n it('should sanitize a collection with nested fields in blocks without truncating', () => {\n const permissions: CollectionPermission = {\n create: {\n permission: true,\n },\n delete: {\n permission: true,\n },\n read: {\n permission: true,\n },\n update: {\n permission: true,\n },\n fields: {\n layout: {\n create: {\n permission: true,\n },\n blocks: {\n blockWithTitle: {\n fields: {\n blockTitle: {\n create: {\n permission: true,\n },\n read: {\n permission: true,\n },\n update: {\n permission: true,\n },\n },\n id: {\n create: {\n permission: true,\n },\n read: {\n permission: true,\n },\n update: {\n permission: true,\n },\n },\n blockName: {\n create: {\n permission: false,\n },\n read: {\n permission: true,\n },\n update: {\n permission: false,\n },\n },\n },\n },\n },\n read: {\n permission: true,\n },\n update: {\n permission: true,\n },\n },\n },\n }\n\n recursivelySanitizePermissions(permissions)\n\n expect(permissions).toStrictEqual({\n create: true,\n delete: true,\n read: true,\n update: true,\n fields: {\n layout: {\n create: true,\n blocks: {\n blockWithTitle: {\n fields: {\n blockTitle: true,\n id: true,\n blockName: {\n read: true,\n },\n },\n },\n },\n read: true,\n update: true,\n },\n },\n })\n })\n\n it('should sanitize a collection with nested fields in arrays', () => {\n const permissions: Partial<CollectionPermission> = {\n fields: {\n arrayOfText: {\n create: {\n permission: true,\n },\n fields: {\n text: {\n create: {\n permission: true,\n },\n read: {\n permission: true,\n },\n update: {\n permission: true,\n },\n },\n hiddenText: {\n create: {\n permission: true,\n },\n read: {\n permission: false,\n },\n update: {\n permission: true,\n },\n },\n id: {\n create: {\n permission: true,\n },\n read: {\n permission: true,\n },\n update: {\n permission: true,\n },\n },\n },\n read: {\n permission: true,\n },\n update: {\n permission: true,\n },\n },\n },\n }\n\n recursivelySanitizePermissions(permissions)\n\n expect(permissions).toStrictEqual({\n fields: {\n arrayOfText: {\n create: true,\n fields: {\n text: true,\n hiddenText: {\n create: true,\n update: true,\n },\n id: true,\n },\n read: true,\n update: true,\n },\n },\n })\n })\n\n it('should sanitize a collection with nested fields in richText', () => {\n const permissions: Partial<CollectionPermission> = {\n fields: {\n text: {\n create: {\n permission: true,\n },\n read: {\n permission: true,\n },\n update: {\n permission: true,\n },\n },\n richText: {\n create: {\n permission: true,\n },\n read: {\n permission: true,\n },\n update: {\n permission: true,\n },\n },\n },\n }\n\n recursivelySanitizePermissions(permissions)\n\n expect(permissions).toStrictEqual({\n fields: true,\n })\n })\n})\n\ndescribe('sanitizePermissions', () => {\n it('should return nothing for unauthenticated user', () => {\n const permissions: Permissions = {\n canAccessAdmin: false,\n collections: {\n 'payload-preferences': {\n fields: {\n user: {\n create: {\n permission: false,\n },\n read: {\n permission: false,\n },\n update: {\n permission: false,\n },\n },\n },\n create: {\n permission: false,\n },\n read: {\n permission: false,\n },\n update: {\n permission: false,\n },\n delete: {\n permission: false,\n },\n },\n },\n globals: {\n menu: {\n fields: {\n globalText: {\n create: {\n permission: false,\n },\n read: {\n permission: false,\n },\n update: {\n permission: false,\n },\n },\n },\n read: {\n permission: false,\n },\n update: {\n permission: false,\n },\n },\n },\n }\n\n const sanitizedPermissions = sanitizePermissions(permissions)\n\n expect(sanitizedPermissions).toStrictEqual({})\n })\n})\n"],"names":["recursivelySanitizePermissions","sanitizePermissions","describe","it","permissions","fields","text","create","permission","read","update","delete","readVersions","expect","toStrictEqual","where","user","equals","layout","blocks","blockWithTitle","blockTitle","id","blockName","arrayOfText","hiddenText","richText","canAccessAdmin","collections","globals","menu","globalText","sanitizedPermissions"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/utilities/sanitizePermissions.spec.ts"],"sourcesContent":["import type { CollectionPermission, Permissions } from '../auth/types.js'\n\nimport { recursivelySanitizePermissions, sanitizePermissions } from './sanitizePermissions.js'\n\n/* eslint-disable perfectionist/sort-objects */\ndescribe('recursivelySanitizePermissions', () => {\n it('should sanitize a basic collection', () => {\n const permissions: CollectionPermission = {\n fields: {\n text: {\n create: {\n permission: true,\n },\n read: {\n permission: true,\n },\n update: {\n permission: true,\n },\n },\n },\n create: {\n permission: true,\n },\n read: {\n permission: true,\n },\n update: {\n permission: true,\n },\n delete: {\n permission: false,\n },\n readVersions: {\n permission: true,\n },\n }\n\n recursivelySanitizePermissions(permissions)\n\n expect(permissions).toStrictEqual({\n fields: true,\n create: true,\n read: true,\n update: true,\n readVersions: true,\n })\n })\n\n it('should sanitize a collection with where queries', () => {\n const permissions: CollectionPermission = {\n fields: {},\n create: {\n permission: true,\n where: {\n user: {\n equals: 2,\n },\n },\n },\n read: {\n permission: true,\n },\n update: {\n permission: true,\n },\n delete: {\n permission: false,\n },\n readVersions: {\n permission: true,\n where: {\n user: {\n equals: 1,\n },\n },\n },\n }\n\n recursivelySanitizePermissions(permissions)\n\n expect(permissions).toStrictEqual({\n create: {\n permission: true,\n where: {\n user: {\n equals: 2,\n },\n },\n },\n read: true,\n update: true,\n readVersions: {\n permission: true,\n where: {\n user: {\n equals: 1,\n },\n },\n },\n })\n })\n\n it('should sanitize a collection with nested fields in blocks', () => {\n const permissions: CollectionPermission = {\n create: {\n permission: true,\n },\n delete: {\n permission: true,\n },\n read: {\n permission: true,\n },\n update: {\n permission: true,\n },\n fields: {\n layout: {\n create: {\n permission: true,\n },\n blocks: {\n blockWithTitle: {\n fields: {\n blockTitle: {\n create: {\n permission: true,\n },\n read: {\n permission: true,\n },\n update: {\n permission: true,\n },\n },\n id: {\n create: {\n permission: true,\n },\n read: {\n permission: true,\n },\n update: {\n permission: true,\n },\n },\n blockName: {\n create: {\n permission: true,\n },\n read: {\n permission: true,\n },\n update: {\n permission: true,\n },\n },\n },\n create: {\n permission: true,\n },\n read: {\n permission: true,\n },\n update: {\n permission: true,\n },\n },\n },\n read: {\n permission: true,\n },\n update: {\n permission: true,\n },\n },\n },\n }\n\n recursivelySanitizePermissions(permissions)\n\n expect(permissions).toStrictEqual({\n create: true,\n delete: true,\n fields: true,\n read: true,\n update: true,\n })\n })\n\n it('should sanitize a collection with nested fields in blocks without truncating', () => {\n const permissions: CollectionPermission = {\n create: {\n permission: true,\n },\n delete: {\n permission: true,\n },\n read: {\n permission: true,\n },\n update: {\n permission: true,\n },\n fields: {\n layout: {\n create: {\n permission: true,\n },\n blocks: {\n blockWithTitle: {\n fields: {\n blockTitle: {\n create: {\n permission: true,\n },\n read: {\n permission: true,\n },\n update: {\n permission: true,\n },\n },\n id: {\n create: {\n permission: true,\n },\n read: {\n permission: true,\n },\n update: {\n permission: true,\n },\n },\n blockName: {\n create: {\n permission: false,\n },\n read: {\n permission: true,\n },\n update: {\n permission: false,\n },\n },\n },\n create: {\n permission: true,\n },\n read: {\n permission: true,\n },\n update: {\n permission: true,\n },\n },\n },\n read: {\n permission: true,\n },\n update: {\n permission: true,\n },\n },\n },\n }\n\n recursivelySanitizePermissions(permissions)\n\n expect(permissions).toStrictEqual({\n create: true,\n delete: true,\n read: true,\n update: true,\n fields: {\n layout: {\n create: true,\n blocks: {\n blockWithTitle: {\n fields: {\n blockTitle: true,\n id: true,\n blockName: {\n read: true,\n },\n },\n create: true,\n update: true,\n read: true,\n },\n },\n read: true,\n update: true,\n },\n },\n })\n })\n\n it('should sanitize a collection with nested fields in arrays', () => {\n const permissions: Partial<CollectionPermission> = {\n fields: {\n arrayOfText: {\n create: {\n permission: true,\n },\n fields: {\n text: {\n create: {\n permission: true,\n },\n read: {\n permission: true,\n },\n update: {\n permission: true,\n },\n },\n hiddenText: {\n create: {\n permission: true,\n },\n read: {\n permission: false,\n },\n update: {\n permission: true,\n },\n },\n id: {\n create: {\n permission: true,\n },\n read: {\n permission: true,\n },\n update: {\n permission: true,\n },\n },\n },\n read: {\n permission: true,\n },\n update: {\n permission: true,\n },\n },\n },\n }\n\n recursivelySanitizePermissions(permissions)\n\n expect(permissions).toStrictEqual({\n fields: {\n arrayOfText: {\n create: true,\n fields: {\n text: true,\n hiddenText: {\n create: true,\n update: true,\n },\n id: true,\n },\n read: true,\n update: true,\n },\n },\n })\n })\n\n it('should sanitize blocks with subfield named blocks', () => {\n const permissions: CollectionPermission = {\n fields: {\n content: {\n create: { permission: true },\n blocks: {\n test: {\n fields: {\n blocks: {\n create: { permission: true },\n fields: {\n arrayText: {\n create: { permission: true },\n read: { permission: true },\n update: { permission: true },\n },\n id: {\n create: { permission: true },\n read: { permission: true },\n update: { permission: true },\n },\n },\n read: { permission: true },\n update: { permission: true },\n },\n id: {\n create: { permission: true },\n read: { permission: true },\n update: { permission: true },\n },\n blockName: {\n create: { permission: true },\n read: { permission: true },\n update: { permission: true },\n },\n },\n create: { permission: true },\n read: { permission: true },\n update: { permission: true },\n },\n },\n read: { permission: true },\n update: { permission: true },\n },\n },\n create: {\n permission: true,\n },\n read: {\n permission: true,\n },\n update: {\n permission: true,\n },\n delete: {\n permission: false,\n },\n readVersions: {\n permission: true,\n },\n }\n\n recursivelySanitizePermissions(permissions)\n\n expect(permissions).toStrictEqual({\n fields: true,\n create: true,\n read: true,\n update: true,\n readVersions: true,\n })\n })\n\n it('should sanitize a collection with nested fields in richText', () => {\n const permissions: Partial<CollectionPermission> = {\n fields: {\n text: {\n create: {\n permission: true,\n },\n read: {\n permission: true,\n },\n update: {\n permission: true,\n },\n },\n richText: {\n create: {\n permission: true,\n },\n read: {\n permission: true,\n },\n update: {\n permission: true,\n },\n },\n },\n }\n\n recursivelySanitizePermissions(permissions)\n\n expect(permissions).toStrictEqual({\n fields: true,\n })\n })\n})\n\ndescribe('sanitizePermissions', () => {\n it('should return nothing for unauthenticated user', () => {\n const permissions: Permissions = {\n canAccessAdmin: false,\n collections: {\n 'payload-preferences': {\n fields: {\n user: {\n create: {\n permission: false,\n },\n read: {\n permission: false,\n },\n update: {\n permission: false,\n },\n },\n },\n create: {\n permission: false,\n },\n read: {\n permission: false,\n },\n update: {\n permission: false,\n },\n delete: {\n permission: false,\n },\n },\n },\n globals: {\n menu: {\n fields: {\n globalText: {\n create: {\n permission: false,\n },\n read: {\n permission: false,\n },\n update: {\n permission: false,\n },\n },\n },\n read: {\n permission: false,\n },\n update: {\n permission: false,\n },\n },\n },\n }\n\n const sanitizedPermissions = sanitizePermissions(permissions)\n\n expect(sanitizedPermissions).toStrictEqual({})\n })\n})\n"],"names":["recursivelySanitizePermissions","sanitizePermissions","describe","it","permissions","fields","text","create","permission","read","update","delete","readVersions","expect","toStrictEqual","where","user","equals","layout","blocks","blockWithTitle","blockTitle","id","blockName","arrayOfText","hiddenText","content","test","arrayText","richText","canAccessAdmin","collections","globals","menu","globalText","sanitizedPermissions"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "payload",
3
- "version": "3.0.0-beta.134",
3
+ "version": "3.0.0-beta.135",
4
4
  "description": "Node, React, Headless CMS and Application Framework built on Next.js",
5
5
  "keywords": [
6
6
  "admin panel",
@@ -97,7 +97,7 @@
97
97
  "tsx": "4.19.2",
98
98
  "uuid": "10.0.0",
99
99
  "ws": "^8.16.0",
100
- "@payloadcms/translations": "3.0.0-beta.134"
100
+ "@payloadcms/translations": "3.0.0-beta.135"
101
101
  },
102
102
  "devDependencies": {
103
103
  "@hyrious/esbuild-plugin-commonjs": "^0.2.4",