payload 0.17.2 → 0.17.3

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 (32) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/admin/components/elements/DeleteDocument/index.js +5 -2
  3. package/dist/auth/requestHandlers/me.js +3 -2
  4. package/dist/collections/config/defaults.d.ts +1 -0
  5. package/dist/collections/config/defaults.js +2 -1
  6. package/dist/collections/config/schema.js +6 -1
  7. package/dist/collections/config/types.d.ts +5 -1
  8. package/dist/collections/init.js +20 -18
  9. package/dist/collections/operations/local/create.js +5 -5
  10. package/dist/collections/operations/local/delete.js +4 -4
  11. package/dist/collections/operations/local/findByID.js +4 -4
  12. package/dist/collections/operations/local/findVersionByID.js +5 -5
  13. package/dist/collections/tests/collections.spec.js +10 -1
  14. package/dist/collections/tests/endpoints.spec.d.ts +1 -0
  15. package/dist/collections/tests/endpoints.spec.js +71 -0
  16. package/dist/config/types.d.ts +6 -1
  17. package/dist/config/validate.js +1 -2
  18. package/dist/fields/hooks/beforeChange/promise.js +4 -4
  19. package/dist/globals/config/sanitize.js +3 -1
  20. package/dist/globals/config/schema.js +6 -1
  21. package/dist/globals/config/types.d.ts +2 -1
  22. package/dist/globals/init.js +9 -6
  23. package/dist/globals/requestHandlers/globals.spec.js +14 -1
  24. package/dist/init/mountEndpoints.d.ts +4 -0
  25. package/dist/init/mountEndpoints.js +9 -0
  26. package/docs/access-control/collections.mdx +80 -8
  27. package/docs/access-control/overview.mdx +2 -2
  28. package/docs/configuration/collections.mdx +8 -7
  29. package/docs/configuration/globals.mdx +1 -0
  30. package/docs/fields/overview.mdx +1 -30
  31. package/docs/rest-api/overview.mdx +46 -0
  32. package/package.json +2 -2
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const load_1 = __importDefault(require("../../config/load"));
7
+ const testCredentials_1 = require("../../mongoose/testCredentials");
8
+ require('isomorphic-fetch');
9
+ const { serverURL: url } = (0, load_1.default)();
10
+ let token = null;
11
+ let headers = null;
12
+ describe('Collections - REST', () => {
13
+ beforeAll(async (done) => {
14
+ const response = await fetch(`${url}/api/admins/login`, {
15
+ body: JSON.stringify({
16
+ email: testCredentials_1.email,
17
+ password: testCredentials_1.password,
18
+ }),
19
+ headers: {
20
+ 'Content-Type': 'application/json',
21
+ },
22
+ method: 'post',
23
+ });
24
+ const data = await response.json();
25
+ ({ token } = data);
26
+ headers = {
27
+ Authorization: `JWT ${token}`,
28
+ 'Content-Type': 'application/json',
29
+ };
30
+ done();
31
+ });
32
+ describe('Endpoints', () => {
33
+ it('should GET a static endpoint', async () => {
34
+ const response = await fetch(`${url}/api/endpoints/say-hello/joe-bloggs`, {
35
+ headers: {
36
+ ...headers,
37
+ },
38
+ method: 'get',
39
+ });
40
+ const data = await response.json();
41
+ expect(response.status).toBe(200);
42
+ expect(data.message).toStrictEqual(`Hey Joey! Welcome to ${url}/api`);
43
+ });
44
+ it('should GET an endpoint with a parameter', async () => {
45
+ const response = await fetch(`${url}/api/endpoints/say-hello/George`, {
46
+ headers: {
47
+ ...headers,
48
+ },
49
+ method: 'get',
50
+ });
51
+ const data = await response.json();
52
+ expect(response.status).toBe(200);
53
+ expect(data.message).toStrictEqual('Hello George!');
54
+ });
55
+ it('should POST an endpoint with data', async () => {
56
+ const params = { name: 'George', age: 29 };
57
+ const response = await fetch(`${url}/api/endpoints/whoami`, {
58
+ body: JSON.stringify(params),
59
+ headers: {
60
+ ...headers,
61
+ },
62
+ method: 'post',
63
+ });
64
+ const data = await response.json();
65
+ expect(response.status).toBe(200);
66
+ expect(data.name).toStrictEqual(params.name);
67
+ expect(data.age).toStrictEqual(params.age);
68
+ });
69
+ });
70
+ });
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5kcG9pbnRzLnNwZWMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29sbGVjdGlvbnMvdGVzdHMvZW5kcG9pbnRzLnNwZWMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2REFBMEM7QUFDMUMsb0VBQWlFO0FBRWpFLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBRTVCLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBQSxjQUFTLEdBQUUsQ0FBQztBQUV2QyxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUM7QUFDakIsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDO0FBRW5CLFFBQVEsQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLEVBQUU7SUFDbEMsU0FBUyxDQUFDLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTtRQUN2QixNQUFNLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxHQUFHLEdBQUcsbUJBQW1CLEVBQUU7WUFDdEQsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUM7Z0JBQ25CLEtBQUssRUFBTCx1QkFBSztnQkFDTCxRQUFRLEVBQVIsMEJBQVE7YUFDVCxDQUFDO1lBQ0YsT0FBTyxFQUFFO2dCQUNQLGNBQWMsRUFBRSxrQkFBa0I7YUFDbkM7WUFDRCxNQUFNLEVBQUUsTUFBTTtTQUNmLENBQUMsQ0FBQztRQUVILE1BQU0sSUFBSSxHQUFHLE1BQU0sUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRW5DLENBQUMsRUFBRSxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNuQixPQUFPLEdBQUc7WUFDUixhQUFhLEVBQUUsT0FBTyxLQUFLLEVBQUU7WUFDN0IsY0FBYyxFQUFFLGtCQUFrQjtTQUNuQyxDQUFDO1FBRUYsSUFBSSxFQUFFLENBQUM7SUFDVCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFO1FBQ3pCLEVBQUUsQ0FBQyw4QkFBOEIsRUFBRSxLQUFLLElBQUksRUFBRTtZQUM1QyxNQUFNLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxHQUFHLEdBQUcscUNBQXFDLEVBQUU7Z0JBQ3hFLE9BQU8sRUFBRTtvQkFDUCxHQUFHLE9BQU87aUJBQ1g7Z0JBQ0QsTUFBTSxFQUFFLEtBQUs7YUFDZCxDQUFDLENBQUM7WUFDSCxNQUFNLElBQUksR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNuQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNsQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsR0FBRyxNQUFNLENBQUMsQ0FBQztRQUN4RSxDQUFDLENBQUMsQ0FBQztRQUNILEVBQUUsQ0FBQyx5Q0FBeUMsRUFBRSxLQUFLLElBQUksRUFBRTtZQUN2RCxNQUFNLFFBQVEsR0FBRyxNQUFNLEtBQUssQ0FBQyxHQUFHLEdBQUcsaUNBQWlDLEVBQUU7Z0JBQ3BFLE9BQU8sRUFBRTtvQkFDUCxHQUFHLE9BQU87aUJBQ1g7Z0JBQ0QsTUFBTSxFQUFFLEtBQUs7YUFDZCxDQUFDLENBQUM7WUFDSCxNQUFNLElBQUksR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNuQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNsQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FBQztRQUNILEVBQUUsQ0FBQyxtQ0FBbUMsRUFBRSxLQUFLLElBQUksRUFBRTtZQUNqRCxNQUFNLE1BQU0sR0FBRyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDO1lBQzNDLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLEdBQUcsR0FBRyx1QkFBdUIsRUFBRTtnQkFDMUQsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDO2dCQUM1QixPQUFPLEVBQUU7b0JBQ1AsR0FBRyxPQUFPO2lCQUNYO2dCQUNELE1BQU0sRUFBRSxNQUFNO2FBQ2YsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxJQUFJLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbkMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbEMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMifQ==
@@ -1,4 +1,4 @@
1
- import { Express } from 'express';
1
+ import { Express, Handler } from 'express';
2
2
  import { DeepRequired } from 'ts-essentials';
3
3
  import { Transporter } from 'nodemailer';
4
4
  import { Options } from 'express-fileupload';
@@ -60,6 +60,11 @@ export declare type AccessResult = boolean | Where;
60
60
  * Access function
61
61
  */
62
62
  export declare type Access = (args?: any) => AccessResult | Promise<AccessResult>;
63
+ export declare type Endpoint = {
64
+ path: string;
65
+ method: 'get' | 'head' | 'post' | 'put' | 'patch' | 'delete' | 'connect' | 'options' | string;
66
+ handler: Handler | Handler[];
67
+ };
63
68
  export declare type AdminView = React.ComponentType<{
64
69
  user: User;
65
70
  canAccessAdmin: boolean;
@@ -45,7 +45,6 @@ const validateFields = (context, entity) => {
45
45
  });
46
46
  }
47
47
  if (result.error) {
48
- console.log(result.error);
49
48
  result.error.details.forEach(({ message }) => {
50
49
  errors.push(`${context} "${entity.slug}" > Field${(0, types_1.fieldAffectsData)(field) ? ` "${field.name}" >` : ''} ${message}`);
51
50
  });
@@ -106,4 +105,4 @@ const validateSchema = (config, logger) => {
106
105
  return result.value;
107
106
  };
108
107
  exports.default = validateSchema;
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL3ZhbGlkYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxzREFBOEI7QUFDOUIsMEVBQTREO0FBRzVELGtFQUErRDtBQUUvRCxzRUFBb0Q7QUFDcEQsa0RBQTBEO0FBRTFELE1BQU0sY0FBYyxHQUFHLENBQUMsT0FBZSxFQUFFLE1BQXlELEVBQVksRUFBRTtJQUM5RyxNQUFNLE1BQU0sR0FBYSxFQUFFLENBQUM7SUFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUM5QixJQUFJLFFBQVEsR0FBOEIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDMUQsSUFBSSxJQUFBLHdCQUFnQixFQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFO1lBQ2xELFFBQVEsR0FBRyxnQkFBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztTQUMzRDtRQUVELE1BQU0sTUFBTSxHQUFHLGdCQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ2xFLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRTtZQUNsQixRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUU7Z0JBQzdDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLEtBQUssTUFBTSxDQUFDLElBQUksWUFBWSxJQUFBLHdCQUFnQixFQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFB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
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uZmlnL3ZhbGlkYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFQSxzREFBOEI7QUFDOUIsMEVBQTREO0FBRzVELGtFQUErRDtBQUUvRCxzRUFBb0Q7QUFDcEQsa0RBQTBEO0FBRTFELE1BQU0sY0FBYyxHQUFHLENBQUMsT0FBZSxFQUFFLE1BQXlELEVBQVksRUFBRTtJQUM5RyxNQUFNLE1BQU0sR0FBYSxFQUFFLENBQUM7SUFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUM5QixJQUFJLFFBQVEsR0FBOEIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDMUQsSUFBSSxJQUFBLHdCQUFnQixFQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxFQUFFO1lBQ2xELFFBQVEsR0FBRyxnQkFBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztTQUMzRDtRQUVELE1BQU0sTUFBTSxHQUFHLGdCQUFXLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ2xFLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRTtZQUNsQixRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUU7Z0JBQzdDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLEtBQUssTUFBTSxDQUFDLElBQUksWUFBWSxJQUFBLHdCQUFnQixFQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFB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
@@ -71,8 +71,8 @@ const promise = async ({ data, doc, docWithLocales, errors, field, id, mergeLoca
71
71
  }
72
72
  const validationResult = await field.validate(valueToValidate, {
73
73
  ...field,
74
- data: (0, deepmerge_1.default)(doc, data),
75
- siblingData: (0, deepmerge_1.default)(siblingDoc, siblingData),
74
+ data: (0, deepmerge_1.default)(doc, data, { arrayMerge: (_, source) => source }),
75
+ siblingData: (0, deepmerge_1.default)(siblingDoc, siblingData, { arrayMerge: (_, source) => source }),
76
76
  id,
77
77
  operation,
78
78
  user: req.user,
@@ -86,7 +86,7 @@ const promise = async ({ data, doc, docWithLocales, errors, field, id, mergeLoca
86
86
  }
87
87
  }
88
88
  // Push merge locale action if applicable
89
- if (field.localized) {
89
+ if (field.localized && req.payload.config.localization) {
90
90
  mergeLocaleActions.push(() => {
91
91
  const localeData = req.payload.config.localization.locales.reduce((locales, localeID) => {
92
92
  var _a;
@@ -233,4 +233,4 @@ const promise = async ({ data, doc, docWithLocales, errors, field, id, mergeLoca
233
233
  }
234
234
  };
235
235
  exports.promise = promise;
236
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbWlzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZHMvaG9va3MvYmVmb3JlQ2hhbmdlL3Byb21pc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsc0NBQXNDO0FBQ3RDLDBEQUE4QjtBQUM5Qiw4Q0FBNkQ7QUFHN0QsNEVBQXdEO0FBQ3hELHFEQUFrRDtBQW9CbEQsb0VBQW9FO0FBQ3BFLGtCQUFrQjtBQUNsQixvREFBb0Q7QUFDcEQsZ0RBQWdEO0FBQ2hELHdCQUF3QjtBQUN4QixrQkFBa0I7QUFDbEIsK0JBQStCO0FBQy9CLHNCQUFzQjtBQUVmLE1BQU0sT0FBTyxHQUFHLEtBQUssRUFBRSxFQUM1QixJQUFJLEVBQ0osR0FBRyxFQUNILGNBQWMsRUFDZCxNQUFNLEVBQ04sS0FBSyxFQUNMLEVBQUUsRUFDRixrQkFBa0IsRUFDbEIsU0FBUyxFQUNULElBQUksRUFDSixRQUFRLEVBQ1IsR0FBRyxFQUNILFdBQVcsRUFDWCxVQUFVLEVBQ1YscUJBQXFCLEVBQ3JCLGNBQWMsR0FDVCxFQUFpQixFQUFFOztJQUN4QixNQUFNLGVBQWUsR0FBRyxDQUFDLE1BQUEsS0FBSyxDQUFDLEtBQUssMENBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ25HLE1BQU0sc0JBQXNCLEdBQUcsY0FBYyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBRWxFLElBQUksSUFBQSx3QkFBZ0IsRUFBQyxLQUFLLENBQUMsRUFBRTtRQUMzQixJQUFJLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxXQUFXLEVBQUU7WUFDbEQsd0VBQXdFO1lBQ3hFLElBQUksT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLFdBQVcsRUFBRTtnQkFD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
236
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbWlzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9maWVsZHMvaG9va3MvYmVmb3JlQ2hhbmdlL3Byb21pc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsc0NBQXNDO0FBQ3RDLDBEQUE4QjtBQUM5Qiw4Q0FBNkQ7QUFHN0QsNEVBQXdEO0FBQ3hELHFEQUFrRDtBQW9CbEQsb0VBQW9FO0FBQ3BFLGtCQUFrQjtBQUNsQixvREFBb0Q7QUFDcEQsZ0RBQWdEO0FBQ2hELHdCQUF3QjtBQUN4QixrQkFBa0I7QUFDbEIsK0JBQStCO0FBQy9CLHNCQUFzQjtBQUVmLE1BQU0sT0FBTyxHQUFHLEtBQUssRUFBRSxFQUM1QixJQUFJLEVBQ0osR0FBRyxFQUNILGNBQWMsRUFDZCxNQUFNLEVBQ04sS0FBSyxFQUNMLEVBQUUsRUFDRixrQkFBa0IsRUFDbEIsU0FBUyxFQUNULElBQUksRUFDSixRQUFRLEVBQ1IsR0FBRyxFQUNILFdBQVcsRUFDWCxVQUFVLEVBQ1YscUJBQXFCLEVBQ3JCLGNBQWMsR0FDVCxFQUFpQixFQUFFOztJQUN4QixNQUFNLGVBQWUsR0FBRyxDQUFDLE1BQUEsS0FBSyxDQUFDLEtBQUssMENBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ25HLE1BQU0sc0JBQXNCLEdBQUcsY0FBYyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBRWxFLElBQUksSUFBQSx3QkFBZ0IsRUFBQyxLQUFLLENBQUMsRUFBRTtRQUMzQixJQUFJLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxXQUFXLEVBQUU7WUFDbEQsd0VBQXdFO1lBQ3hFLElBQUksT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLFdBQVcsRUFBRTtnQkFD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
@@ -19,6 +19,8 @@ const sanitizeGlobals = (collections, globals) => {
19
19
  // /////////////////////////////////
20
20
  if (!sanitizedGlobal.hooks)
21
21
  sanitizedGlobal.hooks = {};
22
+ if (!sanitizedGlobal.endpoints)
23
+ sanitizedGlobal.endpoints = [];
22
24
  if (!sanitizedGlobal.access)
23
25
  sanitizedGlobal.access = {};
24
26
  if (!sanitizedGlobal.admin)
@@ -66,4 +68,4 @@ const sanitizeGlobals = (collections, globals) => {
66
68
  return sanitizedGlobals;
67
69
  };
68
70
  exports.default = sanitizeGlobals;
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FuaXRpemUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZ2xvYmFscy9jb25maWcvc2FuaXRpemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwwREFBOEI7QUFDOUIsK0RBQXVEO0FBRXZELDRFQUEwRDtBQUUxRCw2RUFBcUQ7QUFDckQsMkVBQTBEO0FBQzFELG1GQUEyRDtBQUMzRCxzREFBZ0U7QUFFaEUsTUFBTSxlQUFlLEdBQUcsQ0FBQyxXQUErQixFQUFFLE9BQXVCLEVBQTJCLEVBQUU7SUFDNUcsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7UUFDOUMsTUFBTSxlQUFlLEdBQUcsRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBRXRDLGVBQWUsQ0FBQyxLQUFLLEdBQUcsZUFBZSxDQUFDLEtBQUssSUFBSSxJQUFBLHNCQUFPLEVBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRS9FLG9DQUFvQztRQUNwQyx1REFBdUQ7UUFDdkQsb0NBQW9DO1FBRXBDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSztZQUFFLGVBQWUsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTTtZQUFFLGVBQWUsQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ3pELElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSztZQUFFLGVBQWUsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBRXZELElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUk7WUFBRSxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyx1QkFBYSxDQUFDO1FBQzlFLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLE1BQU07WUFBRSxlQUFlLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyx1QkFBYSxDQUFDO1FBRWxGLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLGNBQWM7WUFBRSxlQUFlLENBQUMsS0FBSyxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDckYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsWUFBWTtZQUFFLGVBQWUsQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUNqRixJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxXQUFXO1lBQUUsZUFBZSxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQy9FLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLFVBQVU7WUFBRSxlQUFlLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDN0UsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsU0FBUztZQUFFLGVBQWUsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUUzRSxJQUFJLGVBQWUsQ0FBQyxRQUFRLEVBQUU7WUFDNUIsSUFBSSxlQUFlLENBQUMsUUFBUSxLQUFLLElBQUk7Z0JBQUUsZUFBZSxDQUFDLFFBQVEsR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUVwRixJQUFJLGVBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO2dCQUNuQyxJQUFJLGVBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLElBQUksRUFBRTtvQkFDNUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUc7d0JBQ2hDLFFBQVEsRUFBRSxLQUFLO3FCQUNoQixDQUFDO2lCQUNIO2dCQUVELElBQUksZUFBZSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxLQUFLLElBQUk7b0JBQUUsZUFBZSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztnQkFFckcsTUFBTSxhQUFhLEdBQUcsSUFBQSx5QkFBZSxFQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsb0JBQWlCLENBQUMsQ0FBQztnQkFFakYsZUFBZSxDQUFDLE1BQU0sR0FBRztvQkFDdkIsR0FBRyxhQUFhO29CQUNoQixHQUFHLGVBQWUsQ0FBQyxNQUFNO2lCQUMxQixDQUFDO2FBQ0g7WUFFRCxlQUFlLENBQUMsUUFBUSxHQUFHLElBQUEsbUJBQUssRUFBQyxnQ0FBcUIsRUFBRSxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDbkY7UUFFRCxvQ0FBb0M7UUFDcEMsa0JBQWtCO1FBQ2xCLG9DQUFvQztRQUVwQyxNQUFNLGtCQUFrQixHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxRCxlQUFlLENBQUMsTUFBTSxHQUFHLElBQUEsa0JBQWMsRUFBQyxlQUFlLENBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFFcEYsT0FBTyxlQUF3QyxDQUFDO0lBQ2xELENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxnQkFBZ0IsQ0FBQztBQUMxQixDQUFDLENBQUM7QUFFRixrQkFBZSxlQUFlLENBQUMifQ==
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FuaXRpemUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZ2xvYmFscy9jb25maWcvc2FuaXRpemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSwwREFBOEI7QUFDOUIsK0RBQXVEO0FBRXZELDRFQUEwRDtBQUUxRCw2RUFBcUQ7QUFDckQsMkVBQTBEO0FBQzFELG1GQUEyRDtBQUMzRCxzREFBZ0U7QUFFaEUsTUFBTSxlQUFlLEdBQUcsQ0FBQyxXQUErQixFQUFFLE9BQXVCLEVBQTJCLEVBQUU7SUFDNUcsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7UUFDOUMsTUFBTSxlQUFlLEdBQUcsRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBRXRDLGVBQWUsQ0FBQyxLQUFLLEdBQUcsZUFBZSxDQUFDLEtBQUssSUFBSSxJQUFBLHNCQUFPLEVBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRS9FLG9DQUFvQztRQUNwQyx1REFBdUQ7UUFDdkQsb0NBQW9DO1FBRXBDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSztZQUFFLGVBQWUsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUztZQUFFLGVBQWUsQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQy9ELElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTTtZQUFFLGVBQWUsQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ3pELElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSztZQUFFLGVBQWUsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBRXZELElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUk7WUFBRSxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyx1QkFBYSxDQUFDO1FBQzlFLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLE1BQU07WUFBRSxlQUFlLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyx1QkFBYSxDQUFDO1FBRWxGLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLGNBQWM7WUFBRSxlQUFlLENBQUMsS0FBSyxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDckYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsWUFBWTtZQUFFLGVBQWUsQ0FBQyxLQUFLLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUNqRixJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxXQUFXO1lBQUUsZUFBZSxDQUFDLEtBQUssQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQy9FLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLFVBQVU7WUFBRSxlQUFlLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDN0UsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsU0FBUztZQUFFLGVBQWUsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUUzRSxJQUFJLGVBQWUsQ0FBQyxRQUFRLEVBQUU7WUFDNUIsSUFBSSxlQUFlLENBQUMsUUFBUSxLQUFLLElBQUk7Z0JBQUUsZUFBZSxDQUFDLFFBQVEsR0FBRyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUVwRixJQUFJLGVBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFO2dCQUNuQyxJQUFJLGVBQWUsQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLElBQUksRUFBRTtvQkFDNUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUc7d0JBQ2hDLFFBQVEsRUFBRSxLQUFLO3FCQUNoQixDQUFDO2lCQUNIO2dCQUVELElBQUksZUFBZSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxLQUFLLElBQUk7b0JBQUUsZUFBZSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztnQkFFckcsTUFBTSxhQUFhLEdBQUcsSUFBQSx5QkFBZSxFQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsb0JBQWlCLENBQUMsQ0FBQztnQkFFakYsZUFBZSxDQUFDLE1BQU0sR0FBRztvQkFDdkIsR0FBRyxhQUFhO29CQUNoQixHQUFHLGVBQWUsQ0FBQyxNQUFNO2lCQUMxQixDQUFDO2FBQ0g7WUFFRCxlQUFlLENBQUMsUUFBUSxHQUFHLElBQUEsbUJBQUssRUFBQyxnQ0FBcUIsRUFBRSxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDbkY7UUFFRCxvQ0FBb0M7UUFDcEMsa0JBQWtCO1FBQ2xCLG9DQUFvQztRQUVwQyxNQUFNLGtCQUFrQixHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxRCxlQUFlLENBQUMsTUFBTSxHQUFHLElBQUEsa0JBQWMsRUFBQyxlQUFlLENBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFFcEYsT0FBTyxlQUF3QyxDQUFDO0lBQ2xELENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxnQkFBZ0IsQ0FBQztBQUMxQixDQUFDLENBQUM7QUFFRixrQkFBZSxlQUFlLENBQUMifQ==
@@ -19,6 +19,11 @@ const globalSchema = joi_1.default.object().keys({
19
19
  beforeRead: joi_1.default.array().items(joi_1.default.func()),
20
20
  afterRead: joi_1.default.array().items(joi_1.default.func()),
21
21
  }),
22
+ endpoints: joi_1.default.array().items(joi_1.default.object({
23
+ path: joi_1.default.string(),
24
+ method: joi_1.default.string().valid('get', 'head', 'post', 'put', 'patch', 'delete', 'connect', 'options'),
25
+ handler: joi_1.default.alternatives().try(joi_1.default.array().items(joi_1.default.func()), joi_1.default.func()),
26
+ })),
22
27
  access: joi_1.default.object({
23
28
  read: joi_1.default.func(),
24
29
  readVersions: joi_1.default.func(),
@@ -35,4 +40,4 @@ const globalSchema = joi_1.default.object().keys({
35
40
  }), joi_1.default.boolean()),
36
41
  }).unknown();
37
42
  exports.default = globalSchema;
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dsb2JhbHMvY29uZmlnL3NjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDhDQUFzQjtBQUN0QixxRUFBa0U7QUFFbEUsTUFBTSxZQUFZLEdBQUcsYUFBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQztJQUNyQyxJQUFJLEVBQUUsYUFBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM3QixLQUFLLEVBQUUsYUFBRyxDQUFDLE1BQU0sRUFBRTtJQUNuQixLQUFLLEVBQUUsYUFBRyxDQUFDLE1BQU0sQ0FBQztRQUNoQixVQUFVLEVBQUUsYUFBRyxDQUFDLE9BQU8sRUFBRTtRQUN6QixXQUFXLEVBQUUsYUFBRyxDQUFDLFlBQVksRUFBRSxDQUFDLEdBQUcsQ0FDakMsYUFBRyxDQUFDLE1BQU0sRUFBRSxFQUNaLGlDQUFlLENBQ2hCO0tBQ0YsQ0FBQztJQUNGLEtBQUssRUFBRSxhQUFHLENBQUMsTUFBTSxDQUFDO1FBQ2hCLGNBQWMsRUFBRSxhQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLGFBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM3QyxZQUFZLEVBQUUsYUFBRyxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxhQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0MsV0FBVyxFQUFFLGFBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsYUFBRyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFDLFVBQVUsRUFBRSxhQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLGFBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QyxTQUFTLEVBQUUsYUFBRyxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxhQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7S0FDekMsQ0FBQztJQUNGLE1BQU0sRUFBRSxhQUFHLENBQUMsTUFBTSxDQUFDO1FBQ2pCLElBQUksRUFBRSxhQUFHLENBQUMsSUFBSSxFQUFFO1FBQ2hCLFlBQVksRUFBRSxhQUFHLENBQUMsSUFBSSxFQUFFO1FBQ3hCLE1BQU0sRUFBRSxhQUFHLENBQUMsSUFBSSxFQUFFO0tBQ25CLENBQUM7SUFDRixNQUFNLEVBQUUsYUFBRyxDQUFDLEtBQUssRUFBRTtJQUNuQixRQUFRLEVBQUUsYUFBRyxDQUFDLFlBQVksRUFBRSxDQUFDLEdBQUcsQ0FDOUIsYUFBRyxDQUFDLE1BQU0sQ0FBQztRQUNULEdBQUcsRUFBRSxhQUFHLENBQUMsTUFBTSxFQUFFO1FBQ2pCLE1BQU0sRUFBRSxhQUFHLENBQUMsWUFBWSxFQUFFLENBQUMsR0FBRyxDQUM1QixhQUFHLENBQUMsTUFBTSxDQUFDO1lBQ1QsUUFBUSxFQUFFLGFBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxHQUFHLENBQzlCLGFBQUcsQ0FBQyxPQUFPLEVBQUUsRUFDYixhQUFHLENBQUMsTUFBTSxDQUFDO2dCQUNULFFBQVEsRUFBRSxhQUFHLENBQUMsTUFBTSxFQUFFO2FBQ3ZCLENBQUMsQ0FDSDtTQUNGLENBQUMsRUFDRixhQUFHLENBQUMsT0FBTyxFQUFFLENBQ2Q7S0FDRixDQUFDLEVBQ0YsYUFBRyxDQUFDLE9BQU8sRUFBRSxDQUNkO0NBQ0YsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBRWIsa0JBQWUsWUFBWSxDQUFDIn0=
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dsb2JhbHMvY29uZmlnL3NjaGVtYS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDhDQUFzQjtBQUN0QixxRUFBa0U7QUFFbEUsTUFBTSxZQUFZLEdBQUcsYUFBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQztJQUNyQyxJQUFJLEVBQUUsYUFBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM3QixLQUFLLEVBQUUsYUFBRyxDQUFDLE1BQU0sRUFBRTtJQUNuQixLQUFLLEVBQUUsYUFBRyxDQUFDLE1BQU0sQ0FBQztRQUNoQixVQUFVLEVBQUUsYUFBRyxDQUFDLE9BQU8sRUFBRTtRQUN6QixXQUFXLEVBQUUsYUFBRyxDQUFDLFlBQVksRUFBRSxDQUFDLEdBQUcsQ0FDakMsYUFBRyxDQUFDLE1BQU0sRUFBRSxFQUNaLGlDQUFlLENBQ2hCO0tBQ0YsQ0FBQztJQUNGLEtBQUssRUFBRSxhQUFHLENBQUMsTUFBTSxDQUFDO1FBQ2hCLGNBQWMsRUFBRSxhQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLGFBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUM3QyxZQUFZLEVBQUUsYUFBRyxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxhQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0MsV0FBVyxFQUFFLGFBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsYUFBRyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFDLFVBQVUsRUFBRSxhQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLGFBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QyxTQUFTLEVBQUUsYUFBRyxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxhQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7S0FDekMsQ0FBQztJQUNGLFNBQVMsRUFBRSxhQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLGFBQUcsQ0FBQyxNQUFNLENBQUM7UUFDdEMsSUFBSSxFQUFFLGFBQUcsQ0FBQyxNQUFNLEVBQUU7UUFDbEIsTUFBTSxFQUFFLGFBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQztRQUNqRyxPQUFPLEVBQUUsYUFBRyxDQUFDLFlBQVksRUFBRSxDQUFDLEdBQUcsQ0FDN0IsYUFBRyxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxhQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsRUFDN0IsYUFBRyxDQUFDLElBQUksRUFBRSxDQUNYO0tBQ0YsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxFQUFFLGFBQUcsQ0FBQyxNQUFNLENBQUM7UUFDakIsSUFBSSxFQUFFLGFBQUcsQ0FBQyxJQUFJLEVBQUU7UUFDaEIsWUFBWSxFQUFFLGFBQUcsQ0FBQyxJQUFJLEVBQUU7UUFDeEIsTUFBTSxFQUFFLGFBQUcsQ0FBQyxJQUFJLEVBQUU7S0FDbkIsQ0FBQztJQUNGLE1BQU0sRUFBRSxhQUFHLENBQUMsS0FBSyxFQUFFO0lBQ25CLFFBQVEsRUFBRSxhQUFHLENBQUMsWUFBWSxFQUFFLENBQUMsR0FBRyxDQUM5QixhQUFHLENBQUMsTUFBTSxDQUFDO1FBQ1QsR0FBRyxFQUFFLGFBQUcsQ0FBQyxNQUFNLEVBQUU7UUFDakIsTUFBTSxFQUFFLGFBQUcsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxHQUFHLENBQzVCLGFBQUcsQ0FBQyxNQUFNLENBQUM7WUFDVCxRQUFRLEVBQUUsYUFBRyxDQUFDLFlBQVksRUFBRSxDQUFDLEdBQUcsQ0FDOUIsYUFBRyxDQUFDLE9BQU8sRUFBRSxFQUNiLGFBQUcsQ0FBQyxNQUFNLENBQUM7Z0JBQ1QsUUFBUSxFQUFFLGFBQUcsQ0FBQyxNQUFNLEVBQUU7YUFDdkIsQ0FBQyxDQUNIO1NBQ0YsQ0FBQyxFQUNGLGFBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FDZDtLQUNGLENBQUMsRUFDRixhQUFHLENBQUMsT0FBTyxFQUFFLENBQ2Q7Q0FDRixDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7QUFFYixrQkFBZSxZQUFZLENBQUMifQ==
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import { Model, Document } from 'mongoose';
3
3
  import { DeepRequired } from 'ts-essentials';
4
4
  import { PayloadRequest } from '../../express/types';
5
- import { Access, GeneratePreviewURL } from '../../config/types';
5
+ import { Access, Endpoint, GeneratePreviewURL } from '../../config/types';
6
6
  import { Field } from '../../fields/config/types';
7
7
  import { IncomingGlobalVersions, SanitizedGlobalVersions } from '../../versions/types';
8
8
  export declare type TypeWithID = {
@@ -52,6 +52,7 @@ export declare type GlobalConfig = {
52
52
  beforeRead?: BeforeReadHook[];
53
53
  afterRead?: AfterReadHook[];
54
54
  };
55
+ endpoints?: Endpoint[];
55
56
  access?: {
56
57
  read?: Access;
57
58
  readDrafts?: Access;
@@ -11,6 +11,7 @@ const buildModel_1 = __importDefault(require("./buildModel"));
11
11
  const getVersionsModelName_1 = require("../versions/getVersionsModelName");
12
12
  const buildGlobalFields_1 = require("../versions/buildGlobalFields");
13
13
  const buildSchema_1 = __importDefault(require("../mongoose/buildSchema"));
14
+ const mountEndpoints_1 = __importDefault(require("../init/mountEndpoints"));
14
15
  function initGlobals(ctx) {
15
16
  if (ctx.config.globals) {
16
17
  ctx.globals = {
@@ -33,23 +34,25 @@ function initGlobals(ctx) {
33
34
  });
34
35
  // If not local, open routes
35
36
  if (!ctx.local) {
36
- const router = express_1.default.Router();
37
37
  ctx.config.globals.forEach((global) => {
38
+ const router = express_1.default.Router();
39
+ const { slug, endpoints } = global;
40
+ (0, mountEndpoints_1.default)(router, endpoints);
38
41
  router
39
- .route(`/globals/${global.slug}`)
42
+ .route('/')
40
43
  .get(ctx.requestHandlers.globals.findOne(global))
41
44
  .post(ctx.requestHandlers.globals.update(global));
42
45
  if (global.versions) {
43
- router.route(`/globals/${global.slug}/versions`)
46
+ router.route('/versions')
44
47
  .get(ctx.requestHandlers.globals.findVersions(global));
45
- router.route(`/globals/${global.slug}/versions/:id`)
48
+ router.route('/versions/:id')
46
49
  .get(ctx.requestHandlers.globals.findVersionByID(global))
47
50
  .post(ctx.requestHandlers.globals.restoreVersion(global));
48
51
  }
52
+ ctx.router.use(`/globals/${slug}`, router);
49
53
  });
50
- ctx.router.use(router);
51
54
  }
52
55
  }
53
56
  }
54
57
  exports.default = initGlobals;
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nbG9iYWxzL2luaXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxzREFBOEI7QUFDOUIsd0RBQWdDO0FBQ2hDLGdGQUE0QztBQUM1Qyx3RUFBc0Q7QUFDdEQsOERBQXNDO0FBRXRDLDJFQUF3RTtBQUN4RSxxRUFBeUU7QUFDekUsMEVBQWtEO0FBR2xELFNBQXdCLFdBQVcsQ0FBQyxHQUFZO0lBQzlDLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7UUFDdEIsR0FBRyxDQUFDLE9BQU8sR0FBRztZQUNaLEtBQUssRUFBRSxJQUFBLG9CQUFVLEVBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztZQUM3QixNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPO1NBQzNCLENBQUM7UUFFRixHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNwQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUU7Z0JBQ25CLE1BQU0sZ0JBQWdCLEdBQUcsSUFBQSwyQ0FBb0IsRUFBQyxNQUFNLENBQUMsQ0FBQztnQkFFdEQsTUFBTSxhQUFhLEdBQUcsSUFBQSxxQkFBVyxFQUMvQixHQUFHLENBQUMsTUFBTSxFQUNWLElBQUEsNENBQXdCLEVBQUMsTUFBTSxDQUFDLEVBQ2hDO29CQUNFLGFBQWEsRUFBRSxJQUFJO29CQUNuQixPQUFPLEVBQUU7d0JBQ1AsVUFBVSxFQUFFLElBQUk7cUJBQ2pCO2lCQUNGLENBQ0YsQ0FBQztnQkFFRixhQUFhLENBQUMsTUFBTSxDQUFDLDhCQUFRLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FBQztxQkFDeEQsTUFBTSxDQUFDLG9CQUFnQixDQUFDLENBQUM7Z0JBRTVCLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLGtCQUFRLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLGFBQWEsQ0FBb0IsQ0FBQzthQUNoRztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsNEJBQTRCO1FBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFO1lBQ2QsTUFBTSxNQUFNLEdBQUcsaUJBQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUVoQyxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDcEMsTUFBTTtxQkFDSCxLQUFLLENBQUMsWUFBWSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7cUJBQ2hDLEdBQUcsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7cUJBQ2hELElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFFcEQsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFO29CQUNuQixNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksTUFBTSxDQUFDLElBQUksV0FBVyxDQUFDO3lCQUM3QyxHQUFHLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7b0JBRXpELE1BQU0sQ0FBQyxLQUFLLENBQUMsWUFBWSxNQUFNLENBQUMsSUFBSSxlQUFlLENBQUM7eUJBQ2pELEdBQUcsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7eUJBQ3hELElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztpQkFDN0Q7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUVILEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3hCO0tBQ0Y7QUFDSCxDQUFDO0FBcERELDhCQW9EQyJ9
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9nbG9iYWxzL2luaXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxzREFBOEI7QUFDOUIsd0RBQWdDO0FBQ2hDLGdGQUE0QztBQUM1Qyx3RUFBc0Q7QUFDdEQsOERBQXNDO0FBRXRDLDJFQUF3RTtBQUN4RSxxRUFBeUU7QUFDekUsMEVBQWtEO0FBRWxELDRFQUFvRDtBQUVwRCxTQUF3QixXQUFXLENBQUMsR0FBWTtJQUM5QyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFO1FBQ3RCLEdBQUcsQ0FBQyxPQUFPLEdBQUc7WUFDWixLQUFLLEVBQUUsSUFBQSxvQkFBVSxFQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7WUFDN0IsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTztTQUMzQixDQUFDO1FBRUYsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDcEMsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFO2dCQUNuQixNQUFNLGdCQUFnQixHQUFHLElBQUEsMkNBQW9CLEVBQUMsTUFBTSxDQUFDLENBQUM7Z0JBRXRELE1BQU0sYUFBYSxHQUFHLElBQUEscUJBQVcsRUFDL0IsR0FBRyxDQUFDLE1BQU0sRUFDVixJQUFBLDRDQUF3QixFQUFDLE1BQU0sQ0FBQyxFQUNoQztvQkFDRSxhQUFhLEVBQUUsSUFBSTtvQkFDbkIsT0FBTyxFQUFFO3dCQUNQLFVBQVUsRUFBRSxJQUFJO3FCQUNqQjtpQkFDRixDQUNGLENBQUM7Z0JBRUYsYUFBYSxDQUFDLE1BQU0sQ0FBQyw4QkFBUSxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUM7cUJBQ3hELE1BQU0sQ0FBQyxvQkFBZ0IsQ0FBQyxDQUFDO2dCQUU1QixHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxrQkFBUSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhLENBQW9CLENBQUM7YUFDaEc7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILDRCQUE0QjtRQUM1QixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRTtZQUNkLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNwQyxNQUFNLE1BQU0sR0FBRyxpQkFBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNoQyxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLE1BQU0sQ0FBQztnQkFFbkMsSUFBQSx3QkFBYyxFQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFFbEMsTUFBTTtxQkFDSCxLQUFLLENBQUMsR0FBRyxDQUFDO3FCQUNWLEdBQUcsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7cUJBQ2hELElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFFcEQsSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFO29CQUNuQixNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQzt5QkFDdEIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO29CQUV6RCxNQUFNLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQzt5QkFDMUIsR0FBRyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQzt5QkFDeEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2lCQUM3RDtnQkFFRCxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxZQUFZLElBQUksRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQzdDLENBQUMsQ0FBQyxDQUFDO1NBQ0o7S0FDRjtBQUNILENBQUM7QUF2REQsOEJBdURDIn0=
@@ -157,5 +157,18 @@ describe('Globals - REST', () => {
157
157
  expect(textarea).toStrictEqual(navData.es.nav1.textarea);
158
158
  });
159
159
  });
160
+ describe('Endpoints', () => {
161
+ it('should respond with number of navigation items', async () => {
162
+ const response = await fetch(`${url}/api/globals/navigation-array/count`, {
163
+ headers: {
164
+ Authorization: `JWT ${token}`,
165
+ 'Content-Type': 'application/json',
166
+ },
167
+ });
168
+ expect(response.status).toBe(200);
169
+ const data = await response.json();
170
+ expect(data.count).toStrictEqual(2);
171
+ });
172
+ });
160
173
  });
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFscy5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dsb2JhbHMvcmVxdWVzdEhhbmRsZXJzL2dsb2JhbHMuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7Ozs7O0FBRUgsNkRBQTBDO0FBQzFDLG9FQUFpRTtBQUVqRSxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUU1QixNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUEsY0FBUyxHQUFFLENBQUM7QUFFdkMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDO0FBRWpCLE1BQU0sT0FBTyxHQUFHO0lBQ2QsRUFBRSxFQUFFO1FBQ0YsSUFBSSxFQUFFO1lBQ0osSUFBSSxFQUFFLGNBQWM7WUFDcEIsUUFBUSxFQUFFLHNCQUFzQjtTQUNqQztRQUNELElBQUksRUFBRTtZQUNKLElBQUksRUFBRSxjQUFjO1lBQ3BCLFFBQVEsRUFBRSwyQkFBMkI7U0FDdEM7S0FDRjtJQUNELEVBQUUsRUFBRTtRQUNGLElBQUksRUFBRTtZQUNKLElBQUksRUFBRSxjQUFjO1lBQ3BCLFFBQVEsRUFBRSwyQkFBMkI7U0FDdEM7UUFDRCxJQUFJLEVBQUU7WUFDSixJQUFJLEVBQUUsY0FBYztZQUNwQixRQUFRLEVBQUUsb0NBQW9DO1NBQy9DO0tBQ0Y7Q0FDRixDQUFDO0FBRUYsUUFBUSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsRUFBRTtJQUM5QixTQUFTLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFO1FBQ3ZCLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLEdBQUcsR0FBRyxtQkFBbUIsRUFBRTtZQUN0RCxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDbkIsS0FBSyxFQUFMLHVCQUFLO2dCQUNMLFFBQVEsRUFBUiwwQkFBUTthQUNULENBQUM7WUFDRixPQUFPLEVBQUU7Z0JBQ1AsY0FBYyxFQUFFLGtCQUFr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
174
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFscy5zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2dsb2JhbHMvcmVxdWVzdEhhbmRsZXJzL2dsb2JhbHMuc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7Ozs7O0FBRUgsNkRBQTBDO0FBQzFDLG9FQUFpRTtBQUVqRSxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUU1QixNQUFNLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUEsY0FBUyxHQUFFLENBQUM7QUFFdkMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDO0FBRWpCLE1BQU0sT0FBTyxHQUFHO0lBQ2QsRUFBRSxFQUFFO1FBQ0YsSUFBSSxFQUFFO1lBQ0osSUFBSSxFQUFFLGNBQWM7WUFDcEIsUUFBUSxFQUFFLHNCQUFzQjtTQUNqQztRQUNELElBQUksRUFBRTtZQUNKLElBQUksRUFBRSxjQUFjO1lBQ3BCLFFBQVEsRUFBRSwyQkFBMkI7U0FDdEM7S0FDRjtJQUNELEVBQUUsRUFBRTtRQUNGLElBQUksRUFBRTtZQUNKLElBQUksRUFBRSxjQUFjO1lBQ3BCLFFBQVEsRUFBRSwyQkFBMkI7U0FDdEM7UUFDRCxJQUFJLEVBQUU7WUFDSixJQUFJLEVBQUUsY0FBYztZQUNwQixRQUFRLEVBQUUsb0NBQW9DO1NBQy9DO0tBQ0Y7Q0FDRixDQUFDO0FBRUYsUUFBUSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsRUFBRTtJQUM5QixTQUFTLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFO1FBQ3ZCLE1BQU0sUUFBUSxHQUFHLE1BQU0sS0FBSyxDQUFDLEdBQUcsR0FBRyxtQkFBbUIsRUFBRTtZQUN0RCxJQUFJLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQztnQkFDbkIsS0FBSyxFQUFMLHVCQUFLO2dCQUNMLFFBQVEsRUFBUiwwQkFBUTthQUNULENBQUM7WUFDRixPQUFPLEVBQUU7Z0JBQ1AsY0FBYyxFQUFFLGtCQUFr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
@@ -0,0 +1,4 @@
1
+ import { Router } from 'express';
2
+ import { Endpoint } from '../config/types';
3
+ declare function mountEndpoints(router: Router, endpoints: Endpoint[]): void;
4
+ export default mountEndpoints;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function mountEndpoints(router, endpoints) {
4
+ endpoints.forEach((endpoint) => {
5
+ router[endpoint.method](endpoint.path, endpoint.handler);
6
+ });
7
+ }
8
+ exports.default = mountEndpoints;
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW91bnRFbmRwb2ludHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5pdC9tb3VudEVuZHBvaW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUdBLFNBQVMsY0FBYyxDQUFDLE1BQWMsRUFBRSxTQUFxQjtJQUMzRCxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7UUFDN0IsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMzRCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxrQkFBZSxjQUFjLENBQUMifQ==
@@ -46,52 +46,124 @@ export default {
46
46
 
47
47
  Returns a boolean which allows/denies access to the `create` request.
48
48
 
49
- **Available argument properties :**
49
+ **Available argument properties:**
50
50
 
51
51
  | Option | Description |
52
52
  | ---------- | ----------- |
53
53
  | **`req`** | The Express `request` object containing the currently authenticated `user` |
54
54
  | **`data`** | The data passed to create the document with. |
55
55
 
56
+ **Example:**
57
+
58
+ ```js
59
+ const PublicUsers = {
60
+ slug: 'public-users',
61
+ access: {
62
+ // highlight-start
63
+ // allow guest users to self-registration
64
+ create: () => true,
65
+ // highlight-end
66
+ ...
67
+ },
68
+ fields: [ ... ],
69
+ }
70
+ ```
71
+
56
72
  ### Read
57
73
 
58
74
  Read access functions can return a boolean result or optionally return a [query constraint](/docs/queries/overview) which limits the documents that are returned to only those that match the constraint you provide. This can be helpful to restrict users' access to only certain documents however you specify.
59
75
 
60
- **Available argument properties :**
76
+ **Available argument properties:**
61
77
 
62
78
  | Option | Description |
63
79
  | --------- | ----------- |
64
80
  | **`req`** | The Express `request` object containing the currently authenticated `user` |
65
- | **`id`** | `id` of document requested, if within `findByID`. |
81
+ | **`id`** | `id` of document requested, if within `findByID` |
82
+
83
+ **Example:**
84
+
85
+ ```js
86
+ const canReadPage = ({ req: { user } }) => {
87
+ // allow authenticated users
88
+ if (user) {
89
+ return true;
90
+ }
91
+ // using a query constraint, guest users can access when a field named 'isPublic' is set to true
92
+ return {
93
+ where: {
94
+ // assumes we have a checkbox field named 'isPublic'
95
+ isPublic: {
96
+ equals: true
97
+ }
98
+ }
99
+ }
100
+ };
101
+ ```
66
102
 
67
103
  ### Update
68
104
 
69
105
  Update access functions can return a boolean result or optionally return a [query constraint](/docs/queries/overview) to limit the document(s) that can be updated by the currently authenticated user. For example, returning a `query` from the `update` Access Control is helpful in cases where you would like to restrict a user to only being able to update the documents containing a `createdBy` relationship field equal to the user's ID.
70
106
 
71
- **Available argument properties :**
107
+ **Available argument properties:**
72
108
 
73
109
  | Option | Description |
74
110
  | ---------- | ----------- |
75
111
  | **`req`** | The Express `request` object containing the currently authenticated `user` |
76
112
  | **`id`** | `id` of document requested to update |
77
- | **`data`** | The data passed to update the document with. |
113
+ | **`data`** | The data passed to update the document with |
114
+
115
+ **Example:**
116
+
117
+ ```js
118
+
119
+ const canUpdateUser = ({ req: { user }, id }) => {
120
+ // allow users with a role of 'admin'
121
+ if (user.roles && user.roles.some((role) => role === 'admin')) {
122
+ return true;
123
+ }
124
+ // allow any other users to update only oneself
125
+ return user.id === id;
126
+ };
127
+ ```
78
128
 
79
129
  ### Delete
80
130
 
81
131
  Similarly to the Update function, returns a boolean or a [query constraint](/docs/queries/overview) to limit which documents can be deleted by which users.
82
132
 
83
- **Available argument properties :**
133
+ **Available argument properties:**
84
134
 
85
135
  | Option | Description |
86
136
  | --------- | ----------- |
87
137
  | **`req`** | The Express `request` object with additional `user` property, which is the currently logged in user |
88
138
  | **`id`** | `id` of document requested to delete |
89
139
 
140
+ **Example:**
141
+
142
+ ```js
143
+ const canDeleteCustomer = async ({ req, id }) => {
144
+ if (!id) {
145
+ // allow the admin UI to show controls to delete since it is indeterminate without the id
146
+ return true;
147
+ }
148
+ // query another collection using the id
149
+ const result = await req.payload.find({
150
+ collection: 'contracts',
151
+ limit: 0,
152
+ depth: 0,
153
+ where: {
154
+ customer: { equals: id },
155
+ },
156
+ });
157
+
158
+ return result.totalDocs === 0;
159
+ };
160
+ ```
161
+
90
162
  ### Admin
91
163
 
92
164
  If the Collection is [used to access the Payload Admin panel](/docs/admin/overview#the-admin-user-collection), the `Admin` Access Control function determines whether or not the currently logged in user can access the admin UI.
93
165
 
94
- **Available argument properties :**
166
+ **Available argument properties:**
95
167
 
96
168
  | Option | Description |
97
169
  | --------- | ----------- |
@@ -101,7 +173,7 @@ If the Collection is [used to access the Payload Admin panel](/docs/admin/overvi
101
173
 
102
174
  Determines which users can [unlock](/docs/authentication/operations#unlock) other users who may be blocked from authenticating successfully due to [failing too many login attempts](/docs/authentication/config#options).
103
175
 
104
- **Available argument properties :**
176
+ **Available argument properties:**
105
177
 
106
178
  | Option | Description |
107
179
  | --------- | ----------- |
@@ -50,7 +50,7 @@ You can manage access within Payload on three different levels:
50
50
  <Banner type="success">
51
51
  <strong>Note:</strong><br/>
52
52
  Access control functions are utilized in two places. It's important to understand how and when your access control is executed.
53
- <Banner />
53
+ </Banner>
54
54
 
55
55
  #### As you execute operations
56
56
 
@@ -67,6 +67,6 @@ To accomplish this, Payload ships with an `Access` operation, which is executed
67
67
  <Banner type="warning">
68
68
  <strong>Important:</strong><br/>
69
69
  When your access control functions are executed via the <strong>access</strong> operation, the <strong>id</strong> and <strong>data</strong> arguments will be <strong>undefined</strong>, because Payload is executing your functions without referencing a specific document.
70
- <Banner />
70
+ </Banner>
71
71
 
72
72
  If you use `id` or `data` within your access control functions, make sure to check that they are defined first. If they are not, then you can assume that your access control is being executed via the `access` operation, to determine solely what the user can do within the Admin UI.
@@ -25,6 +25,7 @@ It's often best practice to write your Collections in separate files and then im
25
25
  | **`upload`** | Specify options if you would like this Collection to support file uploads. For more, consult the [Uploads](/docs/upload/overview) documentation. |
26
26
  | **`timestamps`** | Set to false to disable documents' automatically generated `createdAt` and `updatedAt` timestamps. |
27
27
  | **`versions`** | Set to true to enable default options, or configure with object properties. [More](/docs/versions/overview#collection-config)|
28
+ | **`endpoints`** | Add custom routes to the REST API. [More](/docs/rest-api#custom-endpoints) |
28
29
 
29
30
  *\* An asterisk denotes that a property is required.*
30
31
 
@@ -80,25 +81,25 @@ If the function is specified, a Preview button will automatically appear in the
80
81
  **Example collection with preview function:**
81
82
 
82
83
  ```js
83
- {
84
+ const Posts = {
84
85
  slug: 'posts',
85
86
  fields: [
86
87
  {
87
88
  name: 'slug',
88
89
  type: 'text',
89
90
  required: true,
90
- }
91
- ]
91
+ },
92
+ ],
92
93
  admin: {
93
94
  preview: (doc, { locale }) => {
94
95
  if (doc?.slug) {
95
- return `https://bigbird.com/preview/posts/${doc.slug}?locale=${locale}`,
96
+ return `https://bigbird.com/preview/posts/${doc.slug}?locale=${locale}`;
96
97
  }
97
98
 
98
99
  return null;
99
- }
100
- }
101
- }
100
+ },
101
+ },
102
+ };
102
103
  ```
103
104
 
104
105
  ### Access control
@@ -22,6 +22,7 @@ As with Collection configs, it's often best practice to write your Globals in se
22
22
  | **`hooks`** | Entry points to "tie in" to collection actions at specific points. [More](/docs/hooks/overview#global-hooks) |
23
23
  | **`access`** | Provide access control functions to define exactly who should be able to do what with this Global. [More](/docs/access-control/overview/#globals) |
24
24
  | **`versions`** | Set to true to enable default options, or configure with object properties. [More](/docs/versions/overview#globals-config)|
25
+ | **`endpoints`** | Add custom routes to the REST API. [More](/docs/rest-api#custom-endpoints)|
25
26
 
26
27
  *\* An asterisk denotes that a property is required.*
27
28