UNPKG

mzinga

Version:

Node, React and MongoDB Headless CMS and Application Framework

204 lines (203 loc) 17.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return _default; } }); const _forgotPassword = /*#__PURE__*/ _interop_require_default(require("../auth/requestHandlers/forgotPassword")); const _init = /*#__PURE__*/ _interop_require_default(require("../auth/requestHandlers/init")); const _login = /*#__PURE__*/ _interop_require_default(require("../auth/requestHandlers/login")); const _logout = /*#__PURE__*/ _interop_require_default(require("../auth/requestHandlers/logout")); const _me = /*#__PURE__*/ _interop_require_default(require("../auth/requestHandlers/me")); const _refresh = /*#__PURE__*/ _interop_require_default(require("../auth/requestHandlers/refresh")); const _registerFirstUser = /*#__PURE__*/ _interop_require_default(require("../auth/requestHandlers/registerFirstUser")); const _resetPassword = /*#__PURE__*/ _interop_require_default(require("../auth/requestHandlers/resetPassword")); const _unlock = /*#__PURE__*/ _interop_require_default(require("../auth/requestHandlers/unlock")); const _verifyEmail = /*#__PURE__*/ _interop_require_default(require("../auth/requestHandlers/verifyEmail")); const _count = /*#__PURE__*/ _interop_require_default(require("./requestHandlers/count")); const _create = /*#__PURE__*/ _interop_require_default(require("./requestHandlers/create")); const _delete = /*#__PURE__*/ _interop_require_default(require("./requestHandlers/delete")); const _deleteByID = /*#__PURE__*/ _interop_require_default(require("./requestHandlers/deleteByID")); const _docAccess = /*#__PURE__*/ _interop_require_default(require("./requestHandlers/docAccess")); const _find = /*#__PURE__*/ _interop_require_default(require("./requestHandlers/find")); const _findByID = /*#__PURE__*/ _interop_require_default(require("./requestHandlers/findByID")); const _findVersionByID = /*#__PURE__*/ _interop_require_default(require("./requestHandlers/findVersionByID")); const _findVersions = /*#__PURE__*/ _interop_require_default(require("./requestHandlers/findVersions")); const _restoreVersion = /*#__PURE__*/ _interop_require_default(require("./requestHandlers/restoreVersion")); const _update = /*#__PURE__*/ _interop_require_default(require("./requestHandlers/update")); const _updateByID = /*#__PURE__*/ _interop_require_wildcard(require("./requestHandlers/updateByID")); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interop_require_wildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = { __proto__: null }; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for(var key in obj){ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } const buildEndpoints = (collection)=>{ if (!collection.endpoints) return []; const endpoints = [ ...collection.endpoints ]; if (collection.auth) { if (!collection.auth.disableLocalStrategy) { if (collection.auth.verify) { endpoints.push({ handler: _verifyEmail.default, method: 'post', path: '/verify/:token' }); } if (collection.auth.maxLoginAttempts > 0) { endpoints.push({ handler: _unlock.default, method: 'post', path: '/unlock' }); } endpoints.push({ handler: _login.default, method: 'post', path: '/login' }, { handler: _registerFirstUser.default, method: 'post', path: '/first-register' }, { handler: _forgotPassword.default, method: 'post', path: '/forgot-password' }, { handler: _resetPassword.default, method: 'post', path: '/reset-password' }); } endpoints.push({ handler: _init.default, method: 'get', path: '/init' }, { handler: _me.default, method: 'get', path: '/me' }, { handler: _logout.default, method: 'post', path: '/logout' }, { handler: _refresh.default, method: 'post', path: '/refresh-token' }); } if (collection.versions) { endpoints.push({ handler: _findVersions.default, method: 'get', path: '/versions' }, { handler: _findVersionByID.default, method: 'get', path: '/versions/:id' }, { handler: _restoreVersion.default, method: 'post', path: '/versions/:id' }); } endpoints.push({ handler: _find.default, method: 'get', path: '/' }, { handler: _create.default, method: 'post', path: '/' }, { handler: _count.default, method: 'get', path: '/count' }, { handler: _docAccess.default, method: 'get', path: '/access/:id' }, { handler: _docAccess.default, method: 'post', path: '/access/:id' }, { handler: _docAccess.default, method: 'post', path: '/access' }, { handler: _updateByID.deprecatedUpdate, method: 'put', path: '/:id' }, { handler: _update.default, method: 'patch', path: '/' }, { handler: _updateByID.default, method: 'patch', path: '/:id' }, { handler: _findByID.default, method: 'get', path: '/:id' }, { handler: _deleteByID.default, method: 'delete', path: '/:id' }, { handler: _delete.default, method: 'delete', path: '/' }); return endpoints; }; const _default = buildEndpoints; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb2xsZWN0aW9ucy9idWlsZEVuZHBvaW50cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVuZHBvaW50IH0gZnJvbSAnLi4vY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi9jb25maWcvdHlwZXMnXG5cbmltcG9ydCBmb3Jnb3RQYXNzd29yZEhhbmRsZXIgZnJvbSAnLi4vYXV0aC9yZXF1ZXN0SGFuZGxlcnMvZm9yZ290UGFzc3dvcmQnXG5pbXBvcnQgaW5pdEhhbmRsZXIgZnJvbSAnLi4vYXV0aC9yZXF1ZXN0SGFuZGxlcnMvaW5pdCdcbmltcG9ydCBsb2dpbkhhbmRsZXIgZnJvbSAnLi4vYXV0aC9yZXF1ZXN0SGFuZGxlcnMvbG9naW4nXG5pbXBvcnQgbG9nb3V0SGFuZGxlciBmcm9tICcuLi9hdXRoL3JlcXVlc3RIYW5kbGVycy9sb2dvdXQnXG5pbXBvcnQgbWVIYW5kbGVyIGZyb20gJy4uL2F1dGgvcmVxdWVzdEhhbmRsZXJzL21lJ1xuaW1wb3J0IHJlZnJlc2hIYW5kbGVyIGZyb20gJy4uL2F1dGgvcmVxdWVzdEhhbmRsZXJzL3JlZnJlc2gnXG5pbXBvcnQgcmVnaXN0ZXJGaXJzdFVzZXJIYW5kbGVyIGZyb20gJy4uL2F1dGgvcmVxdWVzdEhhbmRsZXJzL3JlZ2lzdGVyRmlyc3RVc2VyJ1xuaW1wb3J0IHJlc2V0UGFzc3dvcmQgZnJvbSAnLi4vYXV0aC9yZXF1ZXN0SGFuZGxlcnMvcmVzZXRQYXNzd29yZCdcbmltcG9ydCB1bmxvY2sgZnJvbSAnLi4vYXV0aC9yZXF1ZXN0SGFuZGxlcnMvdW5sb2NrJ1xuaW1wb3J0IHZlcmlmeUVtYWlsIGZyb20gJy4uL2F1dGgvcmVxdWVzdEhhbmRsZXJzL3ZlcmlmeUVtYWlsJ1xuaW1wb3J0IGNvdW50IGZyb20gJy4vcmVxdWVzdEhhbmRsZXJzL2NvdW50J1xuaW1wb3J0IGNyZWF0ZSBmcm9tICcuL3JlcXVlc3RIYW5kbGVycy9jcmVhdGUnXG5pbXBvcnQgZGVsZXRlSGFuZGxlciBmcm9tICcuL3JlcXVlc3RIYW5kbGVycy9kZWxldGUnXG5pbXBvcnQgZGVsZXRlQnlJRCBmcm9tICcuL3JlcXVlc3RIYW5kbGVycy9kZWxldGVCeUlEJ1xuaW1wb3J0IGRvY0FjY2Vzc1JlcXVlc3RIYW5kbGVyIGZyb20gJy4vcmVxdWVzdEhhbmRsZXJzL2RvY0FjY2VzcydcbmltcG9ydCBmaW5kIGZyb20gJy4vcmVxdWVzdEhhbmRsZXJzL2ZpbmQnXG5pbXBvcnQgZmluZEJ5SUQgZnJvbSAnLi9yZXF1ZXN0SGFuZGxlcnMvZmluZEJ5SUQnXG5pbXBvcnQgZmluZFZlcnNpb25CeUlEIGZyb20gJy4vcmVxdWVzdEhhbmRsZXJzL2ZpbmRWZXJzaW9uQnlJRCdcbmltcG9ydCBmaW5kVmVyc2lvbnMgZnJvbSAnLi9yZXF1ZXN0SGFuZGxlcnMvZmluZFZlcnNpb25zJ1xuaW1wb3J0IHJlc3RvcmVWZXJzaW9uIGZyb20gJy4vcmVxdWVzdEhhbmRsZXJzL3Jlc3RvcmVWZXJzaW9uJ1xuaW1wb3J0IHVwZGF0ZSBmcm9tICcuL3JlcXVlc3RIYW5kbGVycy91cGRhdGUnXG5pbXBvcnQgdXBkYXRlQnlJRCwgeyBkZXByZWNhdGVkVXBkYXRlIH0gZnJvbSAnLi9yZXF1ZXN0SGFuZGxlcnMvdXBkYXRlQnlJRCdcblxuY29uc3QgYnVpbGRFbmRwb2ludHMgPSAoY29sbGVjdGlvbjogU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyk6IEVuZHBvaW50W10gPT4ge1xuICBpZiAoIWNvbGxlY3Rpb24uZW5kcG9pbnRzKSByZXR1cm4gW11cbiAgY29uc3QgZW5kcG9pbnRzID0gWy4uLmNvbGxlY3Rpb24uZW5kcG9pbnRzXVxuXG4gIGlmIChjb2xsZWN0aW9uLmF1dGgpIHtcbiAgICBpZiAoIWNvbGxlY3Rpb24uYXV0aC5kaXNhYmxlTG9jYWxTdHJhdGVneSkge1xuICAgICAgaWYgKGNvbGxlY3Rpb24uYXV0aC52ZXJpZnkpIHtcbiAgICAgICAgZW5kcG9pbnRzLnB1c2goe1xuICAgICAgICAgIGhhbmRsZXI6IHZlcmlmeUVtYWlsLFxuICAgICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICAgIHBhdGg6ICcvdmVyaWZ5Lzp0b2tlbicsXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIGlmIChjb2xsZWN0aW9uLmF1dGgubWF4TG9naW5BdHRlbXB0cyA+IDApIHtcbiAgICAgICAgZW5kcG9pbnRzLnB1c2goe1xuICAgICAgICAgIGhhbmRsZXI6IHVubG9jayxcbiAgICAgICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgICAgICBwYXRoOiAnL3VubG9jaycsXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIGVuZHBvaW50cy5wdXNoKFxuICAgICAgICB7XG4gICAgICAgICAgaGFuZGxlcjogbG9naW5IYW5kbGVyLFxuICAgICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICAgIHBhdGg6ICcvbG9naW4nLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaGFuZGxlcjogcmVnaXN0ZXJGaXJzdFVzZXJIYW5kbGVyLFxuICAgICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICAgIHBhdGg6ICcvZmlyc3QtcmVnaXN0ZXInLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgaGFuZGxlcjogZm9yZ290UGFzc3dvcmRIYW5kbGVyLFxuICAgICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICAgIHBhdGg6ICcvZm9yZ290LXBhc3N3b3JkJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGhhbmRsZXI6IHJlc2V0UGFzc3dvcmQsXG4gICAgICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICAgICAgcGF0aDogJy9yZXNldC1wYXNzd29yZCcsXG4gICAgICAgIH0sXG4gICAgICApXG4gICAgfVxuXG4gICAgZW5kcG9pbnRzLnB1c2goXG4gICAgICB7XG4gICAgICAgIGhhbmRsZXI6IGluaXRIYW5kbGVyLFxuICAgICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgICBwYXRoOiAnL2luaXQnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaGFuZGxlcjogbWVIYW5kbGVyLFxuICAgICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgICBwYXRoOiAnL21lJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGhhbmRsZXI6IGxvZ291dEhhbmRsZXIsXG4gICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICBwYXRoOiAnL2xvZ291dCcsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBoYW5kbGVyOiByZWZyZXNoSGFuZGxlcixcbiAgICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICAgIHBhdGg6ICcvcmVmcmVzaC10b2tlbicsXG4gICAgICB9LFxuICAgIClcbiAgfVxuXG4gIGlmIChjb2xsZWN0aW9uLnZlcnNpb25zKSB7XG4gICAgZW5kcG9pbnRzLnB1c2goXG4gICAgICB7XG4gICAgICAgIGhhbmRsZXI6IGZpbmRWZXJzaW9ucyxcbiAgICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgICAgcGF0aDogJy92ZXJzaW9ucycsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBoYW5kbGVyOiBmaW5kVmVyc2lvbkJ5SUQsXG4gICAgICAgIG1ldGhvZDogJ2dldCcsXG4gICAgICAgIHBhdGg6ICcvdmVyc2lvbnMvOmlkJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGhhbmRsZXI6IHJlc3RvcmVWZXJzaW9uLFxuICAgICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgICAgcGF0aDogJy92ZXJzaW9ucy86aWQnLFxuICAgICAgfSxcbiAgICApXG4gIH1cblxuICBlbmRwb2ludHMucHVzaChcbiAgICB7XG4gICAgICBoYW5kbGVyOiBmaW5kLFxuICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgIHBhdGg6ICcvJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGhhbmRsZXI6IGNyZWF0ZSxcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgcGF0aDogJy8nLFxuICAgIH0sXG4gICAge1xuICAgICAgaGFuZGxlcjogY291bnQsXG4gICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgcGF0aDogJy9jb3VudCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBoYW5kbGVyOiBkb2NBY2Nlc3NSZXF1ZXN0SGFuZGxlcixcbiAgICAgIG1ldGhvZDogJ2dldCcsXG4gICAgICBwYXRoOiAnL2FjY2Vzcy86aWQnLFxuICAgIH0sXG4gICAge1xuICAgICAgaGFuZGxlcjogZG9jQWNjZXNzUmVxdWVzdEhhbmRsZXIsXG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIHBhdGg6ICcvYWNjZXNzLzppZCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBoYW5kbGVyOiBkb2NBY2Nlc3NSZXF1ZXN0SGFuZGxlcixcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgcGF0aDogJy9hY2Nlc3MnLFxuICAgIH0sXG4gICAge1xuICAgICAgaGFuZGxlcjogZGVwcmVjYXRlZFVwZGF0ZSxcbiAgICAgIG1ldGhvZDogJ3B1dCcsXG4gICAgICBwYXRoOiAnLzppZCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBoYW5kbGVyOiB1cGRhdGUsXG4gICAgICBtZXRob2Q6ICdwYXRjaCcsXG4gICAgICBwYXRoOiAnLycsXG4gICAgfSxcbiAgICB7XG4gICAgICBoYW5kbGVyOiB1cGRhdGVCeUlELFxuICAgICAgbWV0aG9kOiAncGF0Y2gnLFxuICAgICAgcGF0aDogJy86aWQnLFxuICAgIH0sXG4gICAge1xuICAgICAgaGFuZGxlcjogZmluZEJ5SUQsXG4gICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgcGF0aDogJy86aWQnLFxuICAgIH0sXG4gICAge1xuICAgICAgaGFuZGxlcjogZGVsZXRlQnlJRCxcbiAgICAgIG1ldGhvZDogJ2RlbGV0ZScsXG4gICAgICBwYXRoOiAnLzppZCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBoYW5kbGVyOiBkZWxldGVIYW5kbGVyLFxuICAgICAgbWV0aG9kOiAnZGVsZXRlJyxcbiAgICAgIHBhdGg6ICcvJyxcbiAgICB9LFxuICApXG5cbiAgcmV0dXJuIGVuZHBvaW50c1xufVxuXG5leHBvcnQgZGVmYXVsdCBidWlsZEVuZHBvaW50c1xuIl0sIm5hbWVzIjpbImJ1aWxkRW5kcG9pbnRzIiwiY29sbGVjdGlvbiIsImVuZHBvaW50cyIsImF1dGgiLCJkaXNhYmxlTG9jYWxTdHJhdGVneSIsInZlcmlmeSIsInB1c2giLCJoYW5kbGVyIiwidmVyaWZ5RW1haWwiLCJtZXRob2QiLCJwYXRoIiwibWF4TG9naW5BdHRlbXB0cyIsInVubG9jayIsImxvZ2luSGFuZGxlciIsInJlZ2lzdGVyRmlyc3RVc2VySGFuZGxlciIsImZvcmdvdFBhc3N3b3JkSGFuZGxlciIsInJlc2V0UGFzc3dvcmQiLCJpbml0SGFuZGxlciIsIm1lSGFuZGxlciIsImxvZ291dEhhbmRsZXIiLCJyZWZyZXNoSGFuZGxlciIsInZlcnNpb25zIiwiZmluZFZlcnNpb25zIiwiZmluZFZlcnNpb25CeUlEIiwicmVzdG9yZVZlcnNpb24iLCJmaW5kIiwiY3JlYXRlIiwiY291bnQiLCJkb2NBY2Nlc3NSZXF1ZXN0SGFuZGxlciIsImRlcHJlY2F0ZWRVcGRhdGUiLCJ1cGRhdGUiLCJ1cGRhdGVCeUlEIiwiZmluZEJ5SUQiLCJkZWxldGVCeUlEIiwiZGVsZXRlSGFuZGxlciJdLCJyYW5nZU1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7IiwibWFwcGluZ3MiOiI7Ozs7K0JBc0xBOzs7ZUFBQTs7O3VFQW5M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