parse-server 2.8.4 → 8.6.2
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.
- package/LICENSE +167 -25
- package/NOTICE +10 -0
- package/README.md +929 -278
- package/lib/AccountLockout.js +47 -30
- package/lib/Adapters/AdapterLoader.js +21 -6
- package/lib/Adapters/Analytics/AnalyticsAdapter.js +15 -12
- package/lib/Adapters/Auth/AuthAdapter.js +116 -13
- package/lib/Adapters/Auth/BaseCodeAuthAdapter.js +99 -0
- package/lib/Adapters/Auth/OAuth1Client.js +27 -46
- package/lib/Adapters/Auth/apple.js +123 -0
- package/lib/Adapters/Auth/facebook.js +162 -35
- package/lib/Adapters/Auth/gcenter.js +217 -0
- package/lib/Adapters/Auth/github.js +118 -48
- package/lib/Adapters/Auth/google.js +160 -51
- package/lib/Adapters/Auth/gpgames.js +125 -0
- package/lib/Adapters/Auth/httpsRequest.js +6 -7
- package/lib/Adapters/Auth/index.js +170 -62
- package/lib/Adapters/Auth/instagram.js +114 -40
- package/lib/Adapters/Auth/janraincapture.js +52 -23
- package/lib/Adapters/Auth/janrainengage.js +19 -36
- package/lib/Adapters/Auth/keycloak.js +148 -0
- package/lib/Adapters/Auth/ldap.js +167 -0
- package/lib/Adapters/Auth/line.js +125 -0
- package/lib/Adapters/Auth/linkedin.js +111 -55
- package/lib/Adapters/Auth/meetup.js +24 -34
- package/lib/Adapters/Auth/mfa.js +324 -0
- package/lib/Adapters/Auth/microsoft.js +111 -0
- package/lib/Adapters/Auth/oauth2.js +97 -162
- package/lib/Adapters/Auth/phantauth.js +53 -0
- package/lib/Adapters/Auth/qq.js +108 -49
- package/lib/Adapters/Auth/spotify.js +107 -55
- package/lib/Adapters/Auth/twitter.js +188 -48
- package/lib/Adapters/Auth/utils.js +28 -0
- package/lib/Adapters/Auth/vkontakte.js +26 -39
- package/lib/Adapters/Auth/wechat.js +106 -44
- package/lib/Adapters/Auth/weibo.js +132 -58
- package/lib/Adapters/Cache/CacheAdapter.js +13 -8
- package/lib/Adapters/Cache/InMemoryCache.js +3 -13
- package/lib/Adapters/Cache/InMemoryCacheAdapter.js +5 -13
- package/lib/Adapters/Cache/LRUCache.js +13 -27
- package/lib/Adapters/Cache/NullCacheAdapter.js +3 -8
- package/lib/Adapters/Cache/RedisCacheAdapter.js +85 -76
- package/lib/Adapters/Cache/SchemaCache.js +25 -0
- package/lib/Adapters/Email/MailAdapter.js +10 -8
- package/lib/Adapters/Files/FilesAdapter.js +83 -25
- package/lib/Adapters/Files/GridFSBucketAdapter.js +231 -0
- package/lib/Adapters/Files/GridStoreAdapter.js +4 -91
- package/lib/Adapters/Logger/LoggerAdapter.js +18 -14
- package/lib/Adapters/Logger/WinstonLogger.js +69 -88
- package/lib/Adapters/Logger/WinstonLoggerAdapter.js +7 -16
- package/lib/Adapters/MessageQueue/EventEmitterMQ.js +8 -26
- package/lib/Adapters/PubSub/EventEmitterPubSub.js +12 -25
- package/lib/Adapters/PubSub/PubSubAdapter.js +34 -0
- package/lib/Adapters/PubSub/RedisPubSub.js +42 -19
- package/lib/Adapters/Push/PushAdapter.js +14 -7
- package/lib/Adapters/Storage/Mongo/MongoCollection.js +137 -45
- package/lib/Adapters/Storage/Mongo/MongoSchemaCollection.js +158 -63
- package/lib/Adapters/Storage/Mongo/MongoStorageAdapter.js +320 -168
- package/lib/Adapters/Storage/Mongo/MongoTransform.js +279 -306
- package/lib/Adapters/Storage/Postgres/PostgresClient.js +14 -10
- package/lib/Adapters/Storage/Postgres/PostgresConfigParser.js +47 -21
- package/lib/Adapters/Storage/Postgres/PostgresStorageAdapter.js +854 -468
- package/lib/Adapters/Storage/Postgres/sql/index.js +4 -6
- package/lib/Adapters/Storage/StorageAdapter.js +1 -1
- package/lib/Adapters/WebSocketServer/WSAdapter.js +35 -0
- package/lib/Adapters/WebSocketServer/WSSAdapter.js +66 -0
- package/lib/Auth.js +488 -125
- package/lib/ClientSDK.js +2 -6
- package/lib/Config.js +525 -94
- package/lib/Controllers/AdaptableController.js +5 -25
- package/lib/Controllers/AnalyticsController.js +22 -23
- package/lib/Controllers/CacheController.js +10 -31
- package/lib/Controllers/DatabaseController.js +767 -313
- package/lib/Controllers/FilesController.js +49 -54
- package/lib/Controllers/HooksController.js +80 -84
- package/lib/Controllers/LiveQueryController.js +35 -22
- package/lib/Controllers/LoggerController.js +22 -58
- package/lib/Controllers/ParseGraphQLController.js +293 -0
- package/lib/Controllers/PushController.js +58 -49
- package/lib/Controllers/SchemaController.js +916 -422
- package/lib/Controllers/UserController.js +265 -180
- package/lib/Controllers/index.js +90 -125
- package/lib/Controllers/types.js +1 -1
- package/lib/Deprecator/Deprecations.js +30 -0
- package/lib/Deprecator/Deprecator.js +127 -0
- package/lib/Error.js +48 -0
- package/lib/GraphQL/ParseGraphQLSchema.js +375 -0
- package/lib/GraphQL/ParseGraphQLServer.js +214 -0
- package/lib/GraphQL/helpers/objectsMutations.js +30 -0
- package/lib/GraphQL/helpers/objectsQueries.js +246 -0
- package/lib/GraphQL/loaders/configMutations.js +87 -0
- package/lib/GraphQL/loaders/configQueries.js +79 -0
- package/lib/GraphQL/loaders/defaultGraphQLMutations.js +21 -0
- package/lib/GraphQL/loaders/defaultGraphQLQueries.js +23 -0
- package/lib/GraphQL/loaders/defaultGraphQLTypes.js +1098 -0
- package/lib/GraphQL/loaders/defaultRelaySchema.js +53 -0
- package/lib/GraphQL/loaders/filesMutations.js +107 -0
- package/lib/GraphQL/loaders/functionsMutations.js +78 -0
- package/lib/GraphQL/loaders/parseClassMutations.js +268 -0
- package/lib/GraphQL/loaders/parseClassQueries.js +127 -0
- package/lib/GraphQL/loaders/parseClassTypes.js +493 -0
- package/lib/GraphQL/loaders/schemaDirectives.js +62 -0
- package/lib/GraphQL/loaders/schemaMutations.js +162 -0
- package/lib/GraphQL/loaders/schemaQueries.js +81 -0
- package/lib/GraphQL/loaders/schemaTypes.js +341 -0
- package/lib/GraphQL/loaders/usersMutations.js +433 -0
- package/lib/GraphQL/loaders/usersQueries.js +90 -0
- package/lib/GraphQL/parseGraphQLUtils.js +63 -0
- package/lib/GraphQL/transformers/className.js +14 -0
- package/lib/GraphQL/transformers/constraintType.js +53 -0
- package/lib/GraphQL/transformers/inputType.js +51 -0
- package/lib/GraphQL/transformers/mutation.js +274 -0
- package/lib/GraphQL/transformers/outputType.js +51 -0
- package/lib/GraphQL/transformers/query.js +237 -0
- package/lib/GraphQL/transformers/schemaFields.js +99 -0
- package/lib/KeyPromiseQueue.js +48 -0
- package/lib/LiveQuery/Client.js +25 -33
- package/lib/LiveQuery/Id.js +2 -5
- package/lib/LiveQuery/ParseCloudCodePublisher.js +26 -23
- package/lib/LiveQuery/ParseLiveQueryServer.js +560 -285
- package/lib/LiveQuery/ParsePubSub.js +7 -16
- package/lib/LiveQuery/ParseWebSocketServer.js +42 -39
- package/lib/LiveQuery/QueryTools.js +76 -15
- package/lib/LiveQuery/RequestSchema.js +111 -97
- package/lib/LiveQuery/SessionTokenCache.js +23 -36
- package/lib/LiveQuery/Subscription.js +8 -17
- package/lib/LiveQuery/equalObjects.js +2 -3
- package/lib/Options/Definitions.js +1355 -382
- package/lib/Options/docs.js +301 -62
- package/lib/Options/index.js +11 -1
- package/lib/Options/parsers.js +14 -10
- package/lib/Page.js +44 -0
- package/lib/ParseMessageQueue.js +6 -13
- package/lib/ParseServer.js +474 -235
- package/lib/ParseServerRESTController.js +102 -40
- package/lib/PromiseRouter.js +39 -50
- package/lib/Push/PushQueue.js +24 -30
- package/lib/Push/PushWorker.js +32 -56
- package/lib/Push/utils.js +22 -35
- package/lib/RestQuery.js +361 -139
- package/lib/RestWrite.js +713 -344
- package/lib/Routers/AggregateRouter.js +97 -71
- package/lib/Routers/AnalyticsRouter.js +8 -14
- package/lib/Routers/AudiencesRouter.js +16 -35
- package/lib/Routers/ClassesRouter.js +86 -72
- package/lib/Routers/CloudCodeRouter.js +28 -37
- package/lib/Routers/FeaturesRouter.js +22 -25
- package/lib/Routers/FilesRouter.js +266 -171
- package/lib/Routers/FunctionsRouter.js +87 -103
- package/lib/Routers/GlobalConfigRouter.js +94 -33
- package/lib/Routers/GraphQLRouter.js +41 -0
- package/lib/Routers/HooksRouter.js +43 -47
- package/lib/Routers/IAPValidationRouter.js +57 -70
- package/lib/Routers/InstallationsRouter.js +17 -25
- package/lib/Routers/LogsRouter.js +10 -25
- package/lib/Routers/PagesRouter.js +647 -0
- package/lib/Routers/PublicAPIRouter.js +104 -112
- package/lib/Routers/PurgeRouter.js +19 -29
- package/lib/Routers/PushRouter.js +14 -28
- package/lib/Routers/RolesRouter.js +7 -14
- package/lib/Routers/SchemasRouter.js +63 -42
- package/lib/Routers/SecurityRouter.js +34 -0
- package/lib/Routers/SessionsRouter.js +25 -38
- package/lib/Routers/UsersRouter.js +463 -190
- package/lib/SchemaMigrations/DefinedSchemas.js +379 -0
- package/lib/SchemaMigrations/Migrations.js +30 -0
- package/lib/Security/Check.js +109 -0
- package/lib/Security/CheckGroup.js +44 -0
- package/lib/Security/CheckGroups/CheckGroupDatabase.js +44 -0
- package/lib/Security/CheckGroups/CheckGroupServerConfig.js +96 -0
- package/lib/Security/CheckGroups/CheckGroups.js +21 -0
- package/lib/Security/CheckRunner.js +213 -0
- package/lib/SharedRest.js +29 -0
- package/lib/StatusHandler.js +96 -93
- package/lib/TestUtils.js +70 -14
- package/lib/Utils.js +468 -0
- package/lib/batch.js +74 -40
- package/lib/cache.js +8 -8
- package/lib/cli/definitions/parse-live-query-server.js +4 -3
- package/lib/cli/definitions/parse-server.js +4 -3
- package/lib/cli/parse-live-query-server.js +9 -17
- package/lib/cli/parse-server.js +49 -47
- package/lib/cli/utils/commander.js +20 -29
- package/lib/cli/utils/runner.js +31 -32
- package/lib/cloud-code/Parse.Cloud.js +711 -36
- package/lib/cloud-code/Parse.Server.js +21 -0
- package/lib/cryptoUtils.js +6 -11
- package/lib/defaults.js +21 -15
- package/lib/deprecated.js +1 -1
- package/lib/index.js +78 -67
- package/lib/logger.js +12 -20
- package/lib/middlewares.js +484 -160
- package/lib/password.js +10 -6
- package/lib/request.js +175 -0
- package/lib/requiredParameter.js +4 -3
- package/lib/rest.js +157 -82
- package/lib/triggers.js +627 -185
- package/lib/vendor/README.md +3 -3
- package/lib/vendor/mongodbUrl.js +224 -137
- package/package.json +135 -57
- package/postinstall.js +38 -50
- package/public_html/invalid_verification_link.html +3 -3
- package/types/@types/@parse/fs-files-adapter/index.d.ts +5 -0
- package/types/@types/deepcopy/index.d.ts +5 -0
- package/types/LiveQuery/ParseLiveQueryServer.d.ts +40 -0
- package/types/Options/index.d.ts +301 -0
- package/types/ParseServer.d.ts +65 -0
- package/types/eslint.config.mjs +30 -0
- package/types/index.d.ts +21 -0
- package/types/logger.d.ts +2 -0
- package/types/tests.ts +44 -0
- package/types/tsconfig.json +24 -0
- package/CHANGELOG.md +0 -1246
- package/PATENTS +0 -37
- package/bin/dev +0 -37
- package/lib/.DS_Store +0 -0
- package/lib/Adapters/Auth/common.js +0 -2
- package/lib/Adapters/Auth/facebookaccountkit.js +0 -69
- package/lib/Controllers/SchemaCache.js +0 -97
- package/lib/LiveQuery/.DS_Store +0 -0
- package/lib/cli/utils/parsers.js +0 -77
- package/lib/cloud-code/.DS_Store +0 -0
- package/lib/cloud-code/HTTPResponse.js +0 -57
- package/lib/cloud-code/Untitled-1 +0 -123
- package/lib/cloud-code/httpRequest.js +0 -102
- package/lib/cloud-code/team.html +0 -123
- package/lib/graphql/ParseClass.js +0 -234
- package/lib/graphql/Schema.js +0 -197
- package/lib/graphql/index.js +0 -1
- package/lib/graphql/types/ACL.js +0 -35
- package/lib/graphql/types/Date.js +0 -25
- package/lib/graphql/types/File.js +0 -24
- package/lib/graphql/types/GeoPoint.js +0 -35
- package/lib/graphql/types/JSONObject.js +0 -30
- package/lib/graphql/types/NumberInput.js +0 -43
- package/lib/graphql/types/NumberQuery.js +0 -42
- package/lib/graphql/types/Pointer.js +0 -35
- package/lib/graphql/types/QueryConstraint.js +0 -61
- package/lib/graphql/types/StringQuery.js +0 -39
- package/lib/graphql/types/index.js +0 -110
|
@@ -3,44 +3,32 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.PushRouter =
|
|
7
|
-
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
var _PromiseRouter2 = _interopRequireDefault(_PromiseRouter);
|
|
11
|
-
|
|
12
|
-
var _middlewares = require("../middlewares");
|
|
13
|
-
|
|
14
|
-
var middleware = _interopRequireWildcard(_middlewares);
|
|
15
|
-
|
|
6
|
+
exports.default = exports.PushRouter = void 0;
|
|
7
|
+
var _PromiseRouter = _interopRequireDefault(require("../PromiseRouter"));
|
|
8
|
+
var middleware = _interopRequireWildcard(require("../middlewares"));
|
|
16
9
|
var _node = require("parse/node");
|
|
17
|
-
|
|
18
|
-
function _interopRequireWildcard(
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
class PushRouter extends _PromiseRouter2.default {
|
|
23
|
-
|
|
10
|
+
var _Error = require("../Error");
|
|
11
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
+
class PushRouter extends _PromiseRouter.default {
|
|
24
14
|
mountRoutes() {
|
|
25
|
-
this.route(
|
|
15
|
+
this.route('POST', '/push', middleware.promiseEnforceMasterKeyAccess, PushRouter.handlePOST);
|
|
26
16
|
}
|
|
27
|
-
|
|
28
17
|
static handlePOST(req) {
|
|
29
18
|
if (req.auth.isReadOnly) {
|
|
30
|
-
throw
|
|
19
|
+
throw (0, _Error.createSanitizedError)(_node.Parse.Error.OPERATION_FORBIDDEN, "read-only masterKey isn't allowed to send push notifications.", req.config);
|
|
31
20
|
}
|
|
32
21
|
const pushController = req.config.pushController;
|
|
33
22
|
if (!pushController) {
|
|
34
23
|
throw new _node.Parse.Error(_node.Parse.Error.PUSH_MISCONFIGURED, 'Push controller is not set');
|
|
35
24
|
}
|
|
36
|
-
|
|
37
25
|
const where = PushRouter.getQueryCondition(req);
|
|
38
26
|
let resolve;
|
|
39
27
|
const promise = new Promise(_resolve => {
|
|
40
28
|
resolve = _resolve;
|
|
41
29
|
});
|
|
42
30
|
let pushStatusId;
|
|
43
|
-
pushController.sendPush(req.body, where, req.config, req.auth, objectId => {
|
|
31
|
+
pushController.sendPush(req.body || {}, where, req.config, req.auth, objectId => {
|
|
44
32
|
pushStatusId = objectId;
|
|
45
33
|
resolve({
|
|
46
34
|
headers: {
|
|
@@ -65,7 +53,6 @@ class PushRouter extends _PromiseRouter2.default {
|
|
|
65
53
|
const body = req.body || {};
|
|
66
54
|
const hasWhere = typeof body.where !== 'undefined';
|
|
67
55
|
const hasChannels = typeof body.channels !== 'undefined';
|
|
68
|
-
|
|
69
56
|
let where;
|
|
70
57
|
if (hasWhere && hasChannels) {
|
|
71
58
|
throw new _node.Parse.Error(_node.Parse.Error.PUSH_MISCONFIGURED, 'Channels and query can not be set at the same time.');
|
|
@@ -73,8 +60,8 @@ class PushRouter extends _PromiseRouter2.default {
|
|
|
73
60
|
where = body.where;
|
|
74
61
|
} else if (hasChannels) {
|
|
75
62
|
where = {
|
|
76
|
-
|
|
77
|
-
|
|
63
|
+
channels: {
|
|
64
|
+
$in: body.channels
|
|
78
65
|
}
|
|
79
66
|
};
|
|
80
67
|
} else {
|
|
@@ -83,7 +70,6 @@ class PushRouter extends _PromiseRouter2.default {
|
|
|
83
70
|
return where;
|
|
84
71
|
}
|
|
85
72
|
}
|
|
86
|
-
|
|
87
73
|
exports.PushRouter = PushRouter;
|
|
88
|
-
exports.default = PushRouter;
|
|
89
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
74
|
+
var _default = exports.default = PushRouter;
|
|
75
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfUHJvbWlzZVJvdXRlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwibWlkZGxld2FyZSIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX25vZGUiLCJfRXJyb3IiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJkZWZhdWx0IiwiaGFzIiwiZ2V0Iiwic2V0IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJQdXNoUm91dGVyIiwiUHJvbWlzZVJvdXRlciIsIm1vdW50Um91dGVzIiwicm91dGUiLCJwcm9taXNlRW5mb3JjZU1hc3RlcktleUFjY2VzcyIsImhhbmRsZVBPU1QiLCJyZXEiLCJhdXRoIiwiaXNSZWFkT25seSIsImNyZWF0ZVNhbml0aXplZEVycm9yIiwiUGFyc2UiLCJFcnJvciIsIk9QRVJBVElPTl9GT1JCSURERU4iLCJjb25maWciLCJwdXNoQ29udHJvbGxlciIsIlBVU0hfTUlTQ09ORklHVVJFRCIsIndoZXJlIiwiZ2V0UXVlcnlDb25kaXRpb24iLCJyZXNvbHZlIiwicHJvbWlzZSIsIlByb21pc2UiLCJfcmVzb2x2ZSIsInB1c2hTdGF0dXNJZCIsInNlbmRQdXNoIiwiYm9keSIsIm9iamVjdElkIiwiaGVhZGVycyIsInJlc3BvbnNlIiwicmVzdWx0IiwiY2F0Y2giLCJlcnIiLCJsb2dnZXJDb250cm9sbGVyIiwiZXJyb3IiLCJoYXNXaGVyZSIsImhhc0NoYW5uZWxzIiwiY2hhbm5lbHMiLCIkaW4iLCJleHBvcnRzIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvUm91dGVycy9QdXNoUm91dGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQcm9taXNlUm91dGVyIGZyb20gJy4uL1Byb21pc2VSb3V0ZXInO1xuaW1wb3J0ICogYXMgbWlkZGxld2FyZSBmcm9tICcuLi9taWRkbGV3YXJlcyc7XG5pbXBvcnQgeyBQYXJzZSB9IGZyb20gJ3BhcnNlL25vZGUnO1xuaW1wb3J0IHsgY3JlYXRlU2FuaXRpemVkRXJyb3IgfSBmcm9tICcuLi9FcnJvcic7XG5cbmV4cG9ydCBjbGFzcyBQdXNoUm91dGVyIGV4dGVuZHMgUHJvbWlzZVJvdXRlciB7XG4gIG1vdW50Um91dGVzKCkge1xuICAgIHRoaXMucm91dGUoJ1BPU1QnLCAnL3B1c2gnLCBtaWRkbGV3YXJlLnByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzLCBQdXNoUm91dGVyLmhhbmRsZVBPU1QpO1xuICB9XG5cbiAgc3RhdGljIGhhbmRsZVBPU1QocmVxKSB7XG4gICAgaWYgKHJlcS5hdXRoLmlzUmVhZE9ubHkpIHtcbiAgICAgIHRocm93IGNyZWF0ZVNhbml0aXplZEVycm9yKFxuICAgICAgICBQYXJzZS5FcnJvci5PUEVSQVRJT05fRk9SQklEREVOLFxuICAgICAgICBcInJlYWQtb25seSBtYXN0ZXJLZXkgaXNuJ3QgYWxsb3dlZCB0byBzZW5kIHB1c2ggbm90aWZpY2F0aW9ucy5cIixcbiAgICAgICAgcmVxLmNvbmZpZ1xuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgcHVzaENvbnRyb2xsZXIgPSByZXEuY29uZmlnLnB1c2hDb250cm9sbGVyO1xuICAgIGlmICghcHVzaENvbnRyb2xsZXIpIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5QVVNIX01JU0NPTkZJR1VSRUQsICdQdXNoIGNvbnRyb2xsZXIgaXMgbm90IHNldCcpO1xuICAgIH1cblxuICAgIGNvbnN0IHdoZXJlID0gUHVzaFJvdXRlci5nZXRRdWVyeUNvbmRpdGlvbihyZXEpO1xuICAgIGxldCByZXNvbHZlO1xuICAgIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZShfcmVzb2x2ZSA9PiB7XG4gICAgICByZXNvbHZlID0gX3Jlc29sdmU7XG4gICAgfSk7XG4gICAgbGV0IHB1c2hTdGF0dXNJZDtcbiAgICBwdXNoQ29udHJvbGxlclxuICAgICAgLnNlbmRQdXNoKHJlcS5ib2R5IHx8IHt9LCB3aGVyZSwgcmVxLmNvbmZpZywgcmVxLmF1dGgsIG9iamVjdElkID0+IHtcbiAgICAgICAgcHVzaFN0YXR1c0lkID0gb2JqZWN0SWQ7XG4gICAgICAgIHJlc29sdmUoe1xuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICdYLVBhcnNlLVB1c2gtU3RhdHVzLUlkJzogcHVzaFN0YXR1c0lkLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVzcG9uc2U6IHtcbiAgICAgICAgICAgIHJlc3VsdDogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgcmVxLmNvbmZpZy5sb2dnZXJDb250cm9sbGVyLmVycm9yKFxuICAgICAgICAgIGBfUHVzaFN0YXR1cyAke3B1c2hTdGF0dXNJZH06IGVycm9yIHdoaWxlIHNlbmRpbmcgcHVzaGAsXG4gICAgICAgICAgZXJyXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICByZXR1cm4gcHJvbWlzZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgcXVlcnkgY29uZGl0aW9uIGZyb20gdGhlIHJlcXVlc3QgYm9keS5cbiAgICogQHBhcmFtIHtPYmplY3R9IHJlcSBBIHJlcXVlc3Qgb2JqZWN0XG4gICAqIEByZXR1cm5zIHtPYmplY3R9IFRoZSBxdWVyeSBjb25kaXRpb24sIHRoZSB3aGVyZSBmaWVsZCBpbiBhIHF1ZXJ5IGFwaSBjYWxsXG4gICAqL1xuICBzdGF0aWMgZ2V0UXVlcnlDb25kaXRpb24ocmVxKSB7XG4gICAgY29uc3QgYm9keSA9IHJlcS5ib2R5IHx8IHt9O1xuICAgIGNvbnN0IGhhc1doZXJlID0gdHlwZW9mIGJvZHkud2hlcmUgIT09ICd1bmRlZmluZWQnO1xuICAgIGNvbnN0IGhhc0NoYW5uZWxzID0gdHlwZW9mIGJvZHkuY2hhbm5lbHMgIT09ICd1bmRlZmluZWQnO1xuXG4gICAgbGV0IHdoZXJlO1xuICAgIGlmIChoYXNXaGVyZSAmJiBoYXNDaGFubmVscykge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFxuICAgICAgICBQYXJzZS5FcnJvci5QVVNIX01JU0NPTkZJR1VSRUQsXG4gICAgICAgICdDaGFubmVscyBhbmQgcXVlcnkgY2FuIG5vdCBiZSBzZXQgYXQgdGhlIHNhbWUgdGltZS4nXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoaGFzV2hlcmUpIHtcbiAgICAgIHdoZXJlID0gYm9keS53aGVyZTtcbiAgICB9IGVsc2UgaWYgKGhhc0NoYW5uZWxzKSB7XG4gICAgICB3aGVyZSA9IHtcbiAgICAgICAgY2hhbm5lbHM6IHtcbiAgICAgICAgICAkaW46IGJvZHkuY2hhbm5lbHMsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoXG4gICAgICAgIFBhcnNlLkVycm9yLlBVU0hfTUlTQ09ORklHVVJFRCxcbiAgICAgICAgJ1NlbmRpbmcgYSBwdXNoIHJlcXVpcmVzIGVpdGhlciBcImNoYW5uZWxzXCIgb3IgYSBcIndoZXJlXCIgcXVlcnkuJ1xuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIHdoZXJlO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFB1c2hSb3V0ZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLGNBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFVBQUEsR0FBQUMsdUJBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLEtBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLE1BQUEsR0FBQUosT0FBQTtBQUFnRCxTQUFBRSx3QkFBQUcsQ0FBQSxFQUFBQyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUwsdUJBQUEsWUFBQUEsQ0FBQUcsQ0FBQSxFQUFBQyxDQUFBLFNBQUFBLENBQUEsSUFBQUQsQ0FBQSxJQUFBQSxDQUFBLENBQUFLLFVBQUEsU0FBQUwsQ0FBQSxNQUFBTSxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxLQUFBQyxTQUFBLFFBQUFDLE9BQUEsRUFBQVYsQ0FBQSxpQkFBQUEsQ0FBQSx1QkFBQUEsQ0FBQSx5QkFBQUEsQ0FBQSxTQUFBUSxDQUFBLE1BQUFGLENBQUEsR0FBQUwsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsUUFBQUcsQ0FBQSxDQUFBSyxHQUFBLENBQUFYLENBQUEsVUFBQU0sQ0FBQSxDQUFBTSxHQUFBLENBQUFaLENBQUEsR0FBQU0sQ0FBQSxDQUFBTyxHQUFBLENBQUFiLENBQUEsRUFBQVEsQ0FBQSxnQkFBQVAsQ0FBQSxJQUFBRCxDQUFBLGdCQUFBQyxDQUFBLE9BQUFhLGNBQUEsQ0FBQUMsSUFBQSxDQUFBZixDQUFBLEVBQUFDLENBQUEsT0FBQU0sQ0FBQSxJQUFBRCxDQUFBLEdBQUFVLE1BQUEsQ0FBQUMsY0FBQSxLQUFBRCxNQUFBLENBQUFFLHdCQUFBLENBQUFsQixDQUFBLEVBQUFDLENBQUEsT0FBQU0sQ0FBQSxDQUFBSyxHQUFBLElBQUFMLENBQUEsQ0FBQU0sR0FBQSxJQUFBUCxDQUFBLENBQUFFLENBQUEsRUFBQVAsQ0FBQSxFQUFBTSxDQUFBLElBQUFDLENBQUEsQ0FBQVAsQ0FBQSxJQUFBRCxDQUFBLENBQUFDLENBQUEsV0FBQU8sQ0FBQSxLQUFBUixDQUFBLEVBQUFDLENBQUE7QUFBQSxTQUFBUCx1QkFBQU0sQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxHQUFBTCxDQUFBLEtBQUFVLE9BQUEsRUFBQVYsQ0FBQTtBQUV6QyxNQUFNbUIsVUFBVSxTQUFTQyxzQkFBYSxDQUFDO0VBQzVDQyxXQUFXQSxDQUFBLEVBQUc7SUFDWixJQUFJLENBQUNDLEtBQUssQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFMUIsVUFBVSxDQUFDMkIsNkJBQTZCLEVBQUVKLFVBQVUsQ0FBQ0ssVUFBVSxDQUFDO0VBQzlGO0VBRUEsT0FBT0EsVUFBVUEsQ0FBQ0MsR0FBRyxFQUFFO0lBQ3JCLElBQUlBLEdBQUcsQ0FBQ0MsSUFBSSxDQUFDQyxVQUFVLEVBQUU7TUFDdkIsTUFBTSxJQUFBQywyQkFBb0IsRUFDeEJDLFdBQUssQ0FBQ0MsS0FBSyxDQUFDQyxtQkFBbUIsRUFDL0IsK0RBQStELEVBQy9ETixHQUFHLENBQUNPLE1BQ04sQ0FBQztJQUNIO0lBQ0EsTUFBTUMsY0FBYyxHQUFHUixHQUFHLENBQUNPLE1BQU0sQ0FBQ0MsY0FBYztJQUNoRCxJQUFJLENBQUNBLGNBQWMsRUFBRTtNQUNuQixNQUFNLElBQUlKLFdBQUssQ0FBQ0MsS0FBSyxDQUFDRCxXQUFLLENBQUNDLEtBQUssQ0FBQ0ksa0JBQWtCLEVBQUUsNEJBQTRCLENBQUM7SUFDckY7SUFFQSxNQUFNQyxLQUFLLEdBQUdoQixVQUFVLENBQUNpQixpQkFBaUIsQ0FBQ1gsR0FBRyxDQUFDO0lBQy9DLElBQUlZLE9BQU87SUFDWCxNQUFNQyxPQUFPLEdBQUcsSUFBSUMsT0FBTyxDQUFDQyxRQUFRLElBQUk7TUFDdENILE9BQU8sR0FBR0csUUFBUTtJQUNwQixDQUFDLENBQUM7SUFDRixJQUFJQyxZQUFZO0lBQ2hCUixjQUFjLENBQ1hTLFFBQVEsQ0FBQ2pCLEdBQUcsQ0FBQ2tCLElBQUksSUFBSSxDQUFDLENBQUMsRUFBRVIsS0FBSyxFQUFFVixHQUFHLENBQUNPLE1BQU0sRUFBRVAsR0FBRyxDQUFDQyxJQUFJLEVBQUVrQixRQUFRLElBQUk7TUFDakVILFlBQVksR0FBR0csUUFBUTtNQUN2QlAsT0FBTyxDQUFDO1FBQ05RLE9BQU8sRUFBRTtVQUNQLHdCQUF3QixFQUFFSjtRQUM1QixDQUFDO1FBQ0RLLFFBQVEsRUFBRTtVQUNSQyxNQUFNLEVBQUU7UUFDVjtNQUNGLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUNEQyxLQUFLLENBQUNDLEdBQUcsSUFBSTtNQUNaeEIsR0FBRyxDQUFDTyxNQUFNLENBQUNrQixnQkFBZ0IsQ0FBQ0MsS0FBSyxDQUMvQixlQUFlVixZQUFZLDRCQUE0QixFQUN2RFEsR0FDRixDQUFDO0lBQ0gsQ0FBQyxDQUFDO0lBQ0osT0FBT1gsT0FBTztFQUNoQjs7RUFFQTtBQUNGO0FBQ0E7QUFDQTtBQUNBO0VBQ0UsT0FBT0YsaUJBQWlCQSxDQUFDWCxHQUFHLEVBQUU7SUFDNUIsTUFBTWtCLElBQUksR0FBR2xCLEdBQUcsQ0FBQ2tCLElBQUksSUFBSSxDQUFDLENBQUM7SUFDM0IsTUFBTVMsUUFBUSxHQUFHLE9BQU9ULElBQUksQ0FBQ1IsS0FBSyxLQUFLLFdBQVc7SUFDbEQsTUFBTWtCLFdBQVcsR0FBRyxPQUFPVixJQUFJLENBQUNXLFFBQVEsS0FBSyxXQUFXO0lBRXhELElBQUluQixLQUFLO0lBQ1QsSUFBSWlCLFFBQVEsSUFBSUMsV0FBVyxFQUFFO01BQzNCLE1BQU0sSUFBSXhCLFdBQUssQ0FBQ0MsS0FBSyxDQUNuQkQsV0FBSyxDQUFDQyxLQUFLLENBQUNJLGtCQUFrQixFQUM5QixxREFDRixDQUFDO0lBQ0gsQ0FBQyxNQUFNLElBQUlrQixRQUFRLEVBQUU7TUFDbkJqQixLQUFLLEdBQUdRLElBQUksQ0FBQ1IsS0FBSztJQUNwQixDQUFDLE1BQU0sSUFBSWtCLFdBQVcsRUFBRTtNQUN0QmxCLEtBQUssR0FBRztRQUNObUIsUUFBUSxFQUFFO1VBQ1JDLEdBQUcsRUFBRVosSUFBSSxDQUFDVztRQUNaO01BQ0YsQ0FBQztJQUNILENBQUMsTUFBTTtNQUNMLE1BQU0sSUFBSXpCLFdBQUssQ0FBQ0MsS0FBSyxDQUNuQkQsV0FBSyxDQUFDQyxLQUFLLENBQUNJLGtCQUFrQixFQUM5QiwrREFDRixDQUFDO0lBQ0g7SUFDQSxPQUFPQyxLQUFLO0VBQ2Q7QUFDRjtBQUFDcUIsT0FBQSxDQUFBckMsVUFBQSxHQUFBQSxVQUFBO0FBQUEsSUFBQXNDLFFBQUEsR0FBQUQsT0FBQSxDQUFBOUMsT0FBQSxHQUVjUyxVQUFVIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -1,21 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.RolesRouter =
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
var _ClassesRouter2 = _interopRequireDefault(_ClassesRouter);
|
|
11
|
-
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
|
-
class RolesRouter extends _ClassesRouter2.default {
|
|
6
|
+
exports.default = exports.RolesRouter = void 0;
|
|
7
|
+
var _ClassesRouter = _interopRequireDefault(require("./ClassesRouter"));
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
+
class RolesRouter extends _ClassesRouter.default {
|
|
15
10
|
className() {
|
|
16
11
|
return '_Role';
|
|
17
12
|
}
|
|
18
|
-
|
|
19
13
|
mountRoutes() {
|
|
20
14
|
this.route('GET', '/roles', req => {
|
|
21
15
|
return this.handleFind(req);
|
|
@@ -34,7 +28,6 @@ class RolesRouter extends _ClassesRouter2.default {
|
|
|
34
28
|
});
|
|
35
29
|
}
|
|
36
30
|
}
|
|
37
|
-
|
|
38
31
|
exports.RolesRouter = RolesRouter;
|
|
39
|
-
exports.default = RolesRouter;
|
|
40
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
32
|
+
var _default = exports.default = RolesRouter;
|
|
33
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQ2xhc3Nlc1JvdXRlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiUm9sZXNSb3V0ZXIiLCJDbGFzc2VzUm91dGVyIiwiY2xhc3NOYW1lIiwibW91bnRSb3V0ZXMiLCJyb3V0ZSIsInJlcSIsImhhbmRsZUZpbmQiLCJoYW5kbGVHZXQiLCJoYW5kbGVDcmVhdGUiLCJoYW5kbGVVcGRhdGUiLCJoYW5kbGVEZWxldGUiLCJleHBvcnRzIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvUm91dGVycy9Sb2xlc1JvdXRlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ2xhc3Nlc1JvdXRlciBmcm9tICcuL0NsYXNzZXNSb3V0ZXInO1xuXG5leHBvcnQgY2xhc3MgUm9sZXNSb3V0ZXIgZXh0ZW5kcyBDbGFzc2VzUm91dGVyIHtcbiAgY2xhc3NOYW1lKCkge1xuICAgIHJldHVybiAnX1JvbGUnO1xuICB9XG5cbiAgbW91bnRSb3V0ZXMoKSB7XG4gICAgdGhpcy5yb3V0ZSgnR0VUJywgJy9yb2xlcycsIHJlcSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVGaW5kKHJlcSk7XG4gICAgfSk7XG4gICAgdGhpcy5yb3V0ZSgnR0VUJywgJy9yb2xlcy86b2JqZWN0SWQnLCByZXEgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlR2V0KHJlcSk7XG4gICAgfSk7XG4gICAgdGhpcy5yb3V0ZSgnUE9TVCcsICcvcm9sZXMnLCByZXEgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlQ3JlYXRlKHJlcSk7XG4gICAgfSk7XG4gICAgdGhpcy5yb3V0ZSgnUFVUJywgJy9yb2xlcy86b2JqZWN0SWQnLCByZXEgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlVXBkYXRlKHJlcSk7XG4gICAgfSk7XG4gICAgdGhpcy5yb3V0ZSgnREVMRVRFJywgJy9yb2xlcy86b2JqZWN0SWQnLCByZXEgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlRGVsZXRlKHJlcSk7XG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgUm9sZXNSb3V0ZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLGNBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUE0QyxTQUFBRCx1QkFBQUUsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUVyQyxNQUFNRyxXQUFXLFNBQVNDLHNCQUFhLENBQUM7RUFDN0NDLFNBQVNBLENBQUEsRUFBRztJQUNWLE9BQU8sT0FBTztFQUNoQjtFQUVBQyxXQUFXQSxDQUFBLEVBQUc7SUFDWixJQUFJLENBQUNDLEtBQUssQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFQyxHQUFHLElBQUk7TUFDakMsT0FBTyxJQUFJLENBQUNDLFVBQVUsQ0FBQ0QsR0FBRyxDQUFDO0lBQzdCLENBQUMsQ0FBQztJQUNGLElBQUksQ0FBQ0QsS0FBSyxDQUFDLEtBQUssRUFBRSxrQkFBa0IsRUFBRUMsR0FBRyxJQUFJO01BQzNDLE9BQU8sSUFBSSxDQUFDRSxTQUFTLENBQUNGLEdBQUcsQ0FBQztJQUM1QixDQUFDLENBQUM7SUFDRixJQUFJLENBQUNELEtBQUssQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFQyxHQUFHLElBQUk7TUFDbEMsT0FBTyxJQUFJLENBQUNHLFlBQVksQ0FBQ0gsR0FBRyxDQUFDO0lBQy9CLENBQUMsQ0FBQztJQUNGLElBQUksQ0FBQ0QsS0FBSyxDQUFDLEtBQUssRUFBRSxrQkFBa0IsRUFBRUMsR0FBRyxJQUFJO01BQzNDLE9BQU8sSUFBSSxDQUFDSSxZQUFZLENBQUNKLEdBQUcsQ0FBQztJQUMvQixDQUFDLENBQUM7SUFDRixJQUFJLENBQUNELEtBQUssQ0FBQyxRQUFRLEVBQUUsa0JBQWtCLEVBQUVDLEdBQUcsSUFBSTtNQUM5QyxPQUFPLElBQUksQ0FBQ0ssWUFBWSxDQUFDTCxHQUFHLENBQUM7SUFDL0IsQ0FBQyxDQUFDO0VBQ0o7QUFDRjtBQUFDTSxPQUFBLENBQUFYLFdBQUEsR0FBQUEsV0FBQTtBQUFBLElBQUFZLFFBQUEsR0FBQUQsT0FBQSxDQUFBWixPQUFBLEdBRWNDLFdBQVciLCJpZ25vcmVMaXN0IjpbXX0=
|
|
@@ -1,38 +1,39 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.SchemasRouter =
|
|
7
|
-
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
var
|
|
11
|
-
|
|
12
|
-
var _middlewares = require('../middlewares');
|
|
13
|
-
|
|
14
|
-
var middleware = _interopRequireWildcard(_middlewares);
|
|
15
|
-
|
|
16
|
-
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
|
|
17
|
-
|
|
18
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
-
|
|
6
|
+
exports.internalUpdateSchema = exports.internalCreateSchema = exports.SchemasRouter = void 0;
|
|
7
|
+
var _PromiseRouter = _interopRequireDefault(require("../PromiseRouter"));
|
|
8
|
+
var middleware = _interopRequireWildcard(require("../middlewares"));
|
|
9
|
+
var _Error = require("../Error");
|
|
10
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
20
12
|
// schemas.js
|
|
21
13
|
|
|
22
14
|
var Parse = require('parse/node').Parse,
|
|
23
|
-
|
|
24
|
-
|
|
15
|
+
SchemaController = require('../Controllers/SchemaController');
|
|
25
16
|
function classNameMismatchResponse(bodyClass, pathClass) {
|
|
26
17
|
throw new Parse.Error(Parse.Error.INVALID_CLASS_NAME, `Class name mismatch between ${bodyClass} and ${pathClass}.`);
|
|
27
18
|
}
|
|
28
|
-
|
|
29
19
|
function getAllSchemas(req) {
|
|
30
|
-
return req.config.database.loadSchema({
|
|
20
|
+
return req.config.database.loadSchema({
|
|
21
|
+
clearCache: true
|
|
22
|
+
}).then(schemaController => schemaController.getAllClasses({
|
|
23
|
+
clearCache: true
|
|
24
|
+
})).then(schemas => ({
|
|
25
|
+
response: {
|
|
26
|
+
results: schemas
|
|
27
|
+
}
|
|
28
|
+
}));
|
|
31
29
|
}
|
|
32
|
-
|
|
33
30
|
function getOneSchema(req) {
|
|
34
31
|
const className = req.params.className;
|
|
35
|
-
return req.config.database.loadSchema({
|
|
32
|
+
return req.config.database.loadSchema({
|
|
33
|
+
clearCache: true
|
|
34
|
+
}).then(schemaController => schemaController.getOneSchema(className, true)).then(schema => ({
|
|
35
|
+
response: schema
|
|
36
|
+
})).catch(error => {
|
|
36
37
|
if (error === undefined) {
|
|
37
38
|
throw new Parse.Error(Parse.Error.INVALID_CLASS_NAME, `Class ${className} does not exist.`);
|
|
38
39
|
} else {
|
|
@@ -40,50 +41,70 @@ function getOneSchema(req) {
|
|
|
40
41
|
}
|
|
41
42
|
});
|
|
42
43
|
}
|
|
43
|
-
|
|
44
|
-
|
|
44
|
+
const checkIfDefinedSchemasIsUsed = req => {
|
|
45
|
+
if (req.config?.schema?.lockSchemas === true) {
|
|
46
|
+
throw new Parse.Error(Parse.Error.OPERATION_FORBIDDEN, 'Cannot perform this operation when schemas options is used.');
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
const internalCreateSchema = async (className, body, config) => {
|
|
50
|
+
const controller = await config.database.loadSchema({
|
|
51
|
+
clearCache: true
|
|
52
|
+
});
|
|
53
|
+
const response = await controller.addClassIfNotExists(className, body.fields, body.classLevelPermissions, body.indexes);
|
|
54
|
+
return {
|
|
55
|
+
response
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
exports.internalCreateSchema = internalCreateSchema;
|
|
59
|
+
const internalUpdateSchema = async (className, body, config) => {
|
|
60
|
+
const controller = await config.database.loadSchema({
|
|
61
|
+
clearCache: true
|
|
62
|
+
});
|
|
63
|
+
const response = await controller.updateClass(className, body.fields || {}, body.classLevelPermissions, body.indexes, config.database);
|
|
64
|
+
return {
|
|
65
|
+
response
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
exports.internalUpdateSchema = internalUpdateSchema;
|
|
69
|
+
async function createSchema(req) {
|
|
70
|
+
checkIfDefinedSchemasIsUsed(req);
|
|
45
71
|
if (req.auth.isReadOnly) {
|
|
46
|
-
throw
|
|
72
|
+
throw (0, _Error.createSanitizedError)(Parse.Error.OPERATION_FORBIDDEN, "read-only masterKey isn't allowed to create a schema.", req.config);
|
|
47
73
|
}
|
|
48
|
-
if (req.params.className && req.body
|
|
74
|
+
if (req.params.className && req.body?.className) {
|
|
49
75
|
if (req.params.className != req.body.className) {
|
|
50
76
|
return classNameMismatchResponse(req.body.className, req.params.className);
|
|
51
77
|
}
|
|
52
78
|
}
|
|
53
|
-
|
|
54
|
-
const className = req.params.className || req.body.className;
|
|
79
|
+
const className = req.params.className || req.body?.className;
|
|
55
80
|
if (!className) {
|
|
56
81
|
throw new Parse.Error(135, `POST ${req.path} needs a class name.`);
|
|
57
82
|
}
|
|
58
|
-
|
|
59
|
-
return req.config.database.loadSchema({ clearCache: true }).then(schema => schema.addClassIfNotExists(className, req.body.fields, req.body.classLevelPermissions, req.body.indexes)).then(schema => ({ response: schema }));
|
|
83
|
+
return await internalCreateSchema(className, req.body || {}, req.config);
|
|
60
84
|
}
|
|
61
|
-
|
|
62
85
|
function modifySchema(req) {
|
|
86
|
+
checkIfDefinedSchemasIsUsed(req);
|
|
63
87
|
if (req.auth.isReadOnly) {
|
|
64
|
-
throw
|
|
88
|
+
throw (0, _Error.createSanitizedError)(Parse.Error.OPERATION_FORBIDDEN, "read-only masterKey isn't allowed to update a schema.", req.config);
|
|
65
89
|
}
|
|
66
|
-
if (req.body
|
|
90
|
+
if (req.body?.className && req.body.className != req.params.className) {
|
|
67
91
|
return classNameMismatchResponse(req.body.className, req.params.className);
|
|
68
92
|
}
|
|
69
|
-
|
|
70
|
-
const submittedFields = req.body.fields || {};
|
|
71
93
|
const className = req.params.className;
|
|
72
|
-
|
|
73
|
-
return req.config.database.loadSchema({ clearCache: true }).then(schema => schema.updateClass(className, submittedFields, req.body.classLevelPermissions, req.body.indexes, req.config.database)).then(result => ({ response: result }));
|
|
94
|
+
return internalUpdateSchema(className, req.body || {}, req.config);
|
|
74
95
|
}
|
|
75
|
-
|
|
76
96
|
const deleteSchema = req => {
|
|
77
97
|
if (req.auth.isReadOnly) {
|
|
78
|
-
throw
|
|
98
|
+
throw (0, _Error.createSanitizedError)(Parse.Error.OPERATION_FORBIDDEN, "read-only masterKey isn't allowed to delete a schema.", req.config);
|
|
79
99
|
}
|
|
80
100
|
if (!SchemaController.classNameIsValid(req.params.className)) {
|
|
81
101
|
throw new Parse.Error(Parse.Error.INVALID_CLASS_NAME, SchemaController.invalidClassNameMessage(req.params.className));
|
|
82
102
|
}
|
|
83
|
-
return req.config.database.deleteSchema(req.params.className).then(() => ({
|
|
103
|
+
return req.config.database.deleteSchema(req.params.className).then(() => ({
|
|
104
|
+
response: {}
|
|
105
|
+
}));
|
|
84
106
|
};
|
|
85
|
-
|
|
86
|
-
class SchemasRouter extends _PromiseRouter2.default {
|
|
107
|
+
class SchemasRouter extends _PromiseRouter.default {
|
|
87
108
|
mountRoutes() {
|
|
88
109
|
this.route('GET', '/schemas', middleware.promiseEnforceMasterKeyAccess, getAllSchemas);
|
|
89
110
|
this.route('GET', '/schemas/:className', middleware.promiseEnforceMasterKeyAccess, getOneSchema);
|
|
@@ -94,4 +115,4 @@ class SchemasRouter extends _PromiseRouter2.default {
|
|
|
94
115
|
}
|
|
95
116
|
}
|
|
96
117
|
exports.SchemasRouter = SchemasRouter;
|
|
97
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Sb3V0ZXJzL1NjaGVtYXNSb3V0ZXIuanMiXSwibmFtZXMiOlsibWlkZGxld2FyZSIsIlBhcnNlIiwicmVxdWlyZSIsIlNjaGVtYUNvbnRyb2xsZXIiLCJjbGFzc05hbWVNaXNtYXRjaFJlc3BvbnNlIiwiYm9keUNsYXNzIiwicGF0aENsYXNzIiwiRXJyb3IiLCJJTlZBTElEX0NMQVNTX05BTUUiLCJnZXRBbGxTY2hlbWFzIiwicmVxIiwiY29uZmlnIiwiZGF0YWJhc2UiLCJsb2FkU2NoZW1hIiwiY2xlYXJDYWNoZSIsInRoZW4iLCJzY2hlbWFDb250cm9sbGVyIiwiZ2V0QWxsQ2xhc3NlcyIsInNjaGVtYXMiLCJyZXNwb25zZSIsInJlc3VsdHMiLCJnZXRPbmVTY2hlbWEiLCJjbGFzc05hbWUiLCJwYXJhbXMiLCJzY2hlbWEiLCJjYXRjaCIsImVycm9yIiwidW5kZWZpbmVkIiwiSU5URVJOQUxfU0VSVkVSX0VSUk9SIiwiY3JlYXRlU2NoZW1hIiwiYXV0aCIsImlzUmVhZE9ubHkiLCJPUEVSQVRJT05fRk9SQklEREVOIiwiYm9keSIsInBhdGgiLCJhZGRDbGFzc0lmTm90RXhpc3RzIiwiZmllbGRzIiwiY2xhc3NMZXZlbFBlcm1pc3Npb25zIiwiaW5kZXhlcyIsIm1vZGlmeVNjaGVtYSIsInN1Ym1pdHRlZEZpZWxkcyIsInVwZGF0ZUNsYXNzIiwicmVzdWx0IiwiZGVsZXRlU2NoZW1hIiwiY2xhc3NOYW1lSXNWYWxpZCIsImludmFsaWRDbGFzc05hbWVNZXNzYWdlIiwiU2NoZW1hc1JvdXRlciIsIlByb21pc2VSb3V0ZXIiLCJtb3VudFJvdXRlcyIsInJvdXRlIiwicHJvbWlzZUVuZm9yY2VNYXN0ZXJLZXlBY2Nlc3MiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFLQTs7OztBQUNBOztJQUFZQSxVOzs7Ozs7QUFOWjs7QUFFQSxJQUFJQyxRQUFRQyxRQUFRLFlBQVIsRUFBc0JELEtBQWxDO0FBQUEsSUFDRUUsbUJBQW1CRCxRQUFRLGlDQUFS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WyIvLyBzY2hlbWFzLmpzXG5cbnZhciBQYXJzZSA9IHJlcXVpcmUoJ3BhcnNlL25vZGUnKS5QYXJzZSxcbiAgU2NoZW1hQ29udHJvbGxlciA9IHJlcXVpcmUoJy4uL0NvbnRyb2xsZXJzL1NjaGVtYUNvbnRyb2xsZXInKTtcblxuaW1wb3J0IFByb21pc2VSb3V0ZXIgICBmcm9tICcuLi9Qcm9taXNlUm91dGVyJztcbmltcG9ydCAqIGFzIG1pZGRsZXdhcmUgZnJvbSBcIi4uL21pZGRsZXdhcmVzXCI7XG5cbmZ1bmN0aW9uIGNsYXNzTmFtZU1pc21hdGNoUmVzcG9uc2UoYm9keUNsYXNzLCBwYXRoQ2xhc3MpIHtcbiAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFxuICAgIFBhcnNlLkVycm9yLklOVkFMSURfQ0xBU1NfTkFNRSxcbiAgICBgQ2xhc3MgbmFtZSBtaXNtYXRjaCBiZXR3ZWVuICR7Ym9keUNsYXNzfSBhbmQgJHtwYXRoQ2xhc3N9LmBcbiAgKTtcbn1cblxuZnVuY3Rpb24gZ2V0QWxsU2NoZW1hcyhyZXEpIHtcbiAgcmV0dXJuIHJlcS5jb25maWcuZGF0YWJhc2UubG9hZFNjaGVtYSh7IGNsZWFyQ2FjaGU6IHRydWV9KVxuICAgIC50aGVuKHNjaGVtYUNvbnRyb2xsZXIgPT4gc2NoZW1hQ29udHJvbGxlci5nZXRBbGxDbGFzc2VzKHRydWUpKVxuICAgIC50aGVuKHNjaGVtYXMgPT4gKHsgcmVzcG9uc2U6IHsgcmVzdWx0czogc2NoZW1hcyB9IH0pKTtcbn1cblxuZnVuY3Rpb24gZ2V0T25lU2NoZW1hKHJlcSkge1xuICBjb25zdCBjbGFzc05hbWUgPSByZXEucGFyYW1zLmNsYXNzTmFtZTtcbiAgcmV0dXJuIHJlcS5jb25maWcuZGF0YWJhc2UubG9hZFNjaGVtYSh7IGNsZWFyQ2FjaGU6IHRydWV9KVxuICAgIC50aGVuKHNjaGVtYUNvbnRyb2xsZXIgPT4gc2NoZW1hQ29udHJvbGxlci5nZXRPbmVTY2hlbWEoY2xhc3NOYW1lLCB0cnVlKSlcbiAgICAudGhlbihzY2hlbWEgPT4gKHsgcmVzcG9uc2U6IHNjaGVtYSB9KSlcbiAgICAuY2F0Y2goZXJyb3IgPT4ge1xuICAgICAgaWYgKGVycm9yID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLklOVkFMSURfQ0xBU1NfTkFNRSwgYENsYXNzICR7Y2xhc3NOYW1lfSBkb2VzIG5vdCBleGlzdC5gKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5JTlRFUk5BTF9TRVJWRVJfRVJST1IsICdEYXRhYmFzZSBhZGFwdGVyIGVycm9yLicpO1xuICAgICAgfVxuICAgIH0pO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVTY2hlbWEocmVxKSB7XG4gIGlmIChyZXEuYXV0aC5pc1JlYWRPbmx5KSB7XG4gICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLk9QRVJBVElPTl9GT1JCSURERU4sICdyZWFkLW9ubHkgbWFzdGVyS2V5IGlzblxcJ3QgYWxsb3dlZCB0byBjcmVhdGUgYSBzY2hlbWEuJyk7XG4gIH1cbiAgaWYgKHJlcS5wYXJhbXMuY2xhc3NOYW1lICYmIHJlcS5ib2R5LmNsYXNzTmFtZSkge1xuICAgIGlmIChyZXEucGFyYW1zLmNsYXNzTmFtZSAhPSByZXEuYm9keS5jbGFzc05hbWUpIHtcbiAgICAgIHJldHVybiBjbGFzc05hbWVNaXNtYXRjaFJlc3BvbnNlKHJlcS5ib2R5LmNsYXNzTmFtZSwgcmVxLnBhcmFtcy5jbGFzc05hbWUpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGNsYXNzTmFtZSA9IHJlcS5wYXJhbXMuY2xhc3NOYW1lIHx8IHJlcS5ib2R5LmNsYXNzTmFtZTtcbiAgaWYgKCFjbGFzc05hbWUpIHtcbiAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoMTM1LCBgUE9TVCAke3JlcS5wYXRofSBuZWVkcyBhIGNsYXNzIG5hbWUuYCk7XG4gIH1cblxuICByZXR1cm4gcmVxLmNvbmZpZy5kYXRhYmFzZS5sb2FkU2NoZW1hKHsgY2xlYXJDYWNoZTogdHJ1ZX0pXG4gICAgLnRoZW4oc2NoZW1hID0+IHNjaGVtYS5hZGRDbGFzc0lmTm90RXhpc3RzKGNsYXNzTmFtZSwgcmVxLmJvZHkuZmllbGRzLCByZXEuYm9keS5jbGFzc0xldmVsUGVybWlzc2lvbnMsIHJlcS5ib2R5LmluZGV4ZXMpKVxuICAgIC50aGVuKHNjaGVtYSA9PiAoeyByZXNwb25zZTogc2NoZW1hIH0pKTtcbn1cblxuZnVuY3Rpb24gbW9kaWZ5U2NoZW1hKHJlcSkge1xuICBpZiAocmVxLmF1dGguaXNSZWFkT25seSkge1xuICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5PUEVSQVRJT05fRk9SQklEREVOLCAncmVhZC1vbmx5IG1hc3RlcktleSBpc25cXCd0IGFsbG93ZWQgdG8gdXBkYXRlIGEgc2NoZW1hLicpO1xuICB9XG4gIGlmIChyZXEuYm9keS5jbGFzc05hbWUgJiYgcmVxLmJvZHkuY2xhc3NOYW1lICE9IHJlcS5wYXJhbXMuY2xhc3NOYW1lKSB7XG4gICAgcmV0dXJuIGNsYXNzTmFtZU1pc21hdGNoUmVzcG9uc2UocmVxLmJvZHkuY2xhc3NOYW1lLCByZXEucGFyYW1zLmNsYXNzTmFtZSk7XG4gIH1cblxuICBjb25zdCBzdWJtaXR0ZWRGaWVsZHMgPSByZXEuYm9keS5maWVsZHMgfHwge307XG4gIGNvbnN0IGNsYXNzTmFtZSA9IHJlcS5wYXJhbXMuY2xhc3NOYW1lO1xuXG4gIHJldHVybiByZXEuY29uZmlnLmRhdGFiYXNlLmxvYWRTY2hlbWEoeyBjbGVhckNhY2hlOiB0cnVlfSlcbiAgICAudGhlbihzY2hlbWEgPT4gc2NoZW1hLnVwZGF0ZUNsYXNzKGNsYXNzTmFtZSwgc3VibWl0dGVkRmllbGRzLCByZXEuYm9keS5jbGFzc0xldmVsUGVybWlzc2lvbnMsIHJlcS5ib2R5LmluZGV4ZXMsIHJlcS5jb25maWcuZGF0YWJhc2UpKVxuICAgIC50aGVuKHJlc3VsdCA9PiAoe3Jlc3BvbnNlOiByZXN1bHR9KSk7XG59XG5cbmNvbnN0IGRlbGV0ZVNjaGVtYSA9IHJlcSA9PiB7XG4gIGlmIChyZXEuYXV0aC5pc1JlYWRPbmx5KSB7XG4gICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLk9QRVJBVElPTl9GT1JCSURERU4sICdyZWFkLW9ubHkgbWFzdGVyS2V5IGlzblxcJ3QgYWxsb3dlZCB0byBkZWxldGUgYSBzY2hlbWEuJyk7XG4gIH1cbiAgaWYgKCFTY2hlbWFDb250cm9sbGVyLmNsYXNzTmFtZUlzVmFsaWQocmVxLnBhcmFtcy5jbGFzc05hbWUpKSB7XG4gICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLklOVkFMSURfQ0xBU1NfTkFNRSwgU2NoZW1hQ29udHJvbGxlci5pbnZhbGlkQ2xhc3NOYW1lTWVzc2FnZShyZXEucGFyYW1zLmNsYXNzTmFtZSkpO1xuICB9XG4gIHJldHVybiByZXEuY29uZmlnLmRhdGFiYXNlLmRlbGV0ZVNjaGVtYShyZXEucGFyYW1zLmNsYXNzTmFtZSlcbiAgICAudGhlbigoKSA9PiAoeyByZXNwb25zZToge30gfSkpO1xufVxuXG5leHBvcnQgY2xhc3MgU2NoZW1hc1JvdXRlciBleHRlbmRzIFByb21pc2VSb3V0ZXIge1xuICBtb3VudFJvdXRlcygpIHtcbiAgICB0aGlzLnJvdXRlKCdHRVQnLCAnL3NjaGVtYXMnLCBtaWRkbGV3YXJlLnByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzLCBnZXRBbGxTY2hlbWFzKTtcbiAgICB0aGlzLnJvdXRlKCdHRVQnLCAnL3NjaGVtYXMvOmNsYXNzTmFtZScsIG1pZGRsZXdhcmUucHJvbWlzZUVuZm9yY2VNYXN0ZXJLZXlBY2Nlc3MsIGdldE9uZVNjaGVtYSk7XG4gICAgdGhpcy5yb3V0ZSgnUE9TVCcsICcvc2NoZW1hcycsIG1pZGRsZXdhcmUucHJvbWlzZUVuZm9yY2VNYXN0ZXJLZXlBY2Nlc3MsIGNyZWF0ZVNjaGVtYSk7XG4gICAgdGhpcy5yb3V0ZSgnUE9TVCcsICcvc2NoZW1hcy86Y2xhc3NOYW1lJywgbWlkZGxld2FyZS5wcm9taXNlRW5mb3JjZU1hc3RlcktleUFjY2VzcywgY3JlYXRlU2NoZW1hKTtcbiAgICB0aGlzLnJvdXRlKCdQVVQnLCAnL3NjaGVtYXMvOmNsYXNzTmFtZScsIG1pZGRsZXdhcmUucHJvbWlzZUVuZm9yY2VNYXN0ZXJLZXlBY2Nlc3MsIG1vZGlmeVNjaGVtYSk7XG4gICAgdGhpcy5yb3V0ZSgnREVMRVRFJywgJy9zY2hlbWFzLzpjbGFzc05hbWUnLCBtaWRkbGV3YXJlLnByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzLCBkZWxldGVTY2hlbWEpO1xuICB9XG59XG4iXX0=
|
|
118
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfUHJvbWlzZVJvdXRlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwibWlkZGxld2FyZSIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX0Vycm9yIiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiZGVmYXVsdCIsImhhcyIsImdldCIsInNldCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiUGFyc2UiLCJTY2hlbWFDb250cm9sbGVyIiwiY2xhc3NOYW1lTWlzbWF0Y2hSZXNwb25zZSIsImJvZHlDbGFzcyIsInBhdGhDbGFzcyIsIkVycm9yIiwiSU5WQUxJRF9DTEFTU19OQU1FIiwiZ2V0QWxsU2NoZW1hcyIsInJlcSIsImNvbmZpZyIsImRhdGFiYXNlIiwibG9hZFNjaGVtYSIsImNsZWFyQ2FjaGUiLCJ0aGVuIiwic2NoZW1hQ29udHJvbGxlciIsImdldEFsbENsYXNzZXMiLCJzY2hlbWFzIiwicmVzcG9uc2UiLCJyZXN1bHRzIiwiZ2V0T25lU2NoZW1hIiwiY2xhc3NOYW1lIiwicGFyYW1zIiwic2NoZW1hIiwiY2F0Y2giLCJlcnJvciIsInVuZGVmaW5lZCIsIklOVEVSTkFMX1NFUlZFUl9FUlJPUiIsImNoZWNrSWZEZWZpbmVkU2NoZW1hc0lzVXNlZCIsImxvY2tTY2hlbWFzIiwiT1BFUkFUSU9OX0ZPUkJJRERFTiIsImludGVybmFsQ3JlYXRlU2NoZW1hIiwiYm9keSIsImNvbnRyb2xsZXIiLCJhZGRDbGFzc0lmTm90RXhpc3RzIiwiZmllbGRzIiwiY2xhc3NMZXZlbFBlcm1pc3Npb25zIiwiaW5kZXhlcyIsImV4cG9ydHMiLCJpbnRlcm5hbFVwZGF0ZVNjaGVtYSIsInVwZGF0ZUNsYXNzIiwiY3JlYXRlU2NoZW1hIiwiYXV0aCIsImlzUmVhZE9ubHkiLCJjcmVhdGVTYW5pdGl6ZWRFcnJvciIsInBhdGgiLCJtb2RpZnlTY2hlbWEiLCJkZWxldGVTY2hlbWEiLCJjbGFzc05hbWVJc1ZhbGlkIiwiaW52YWxpZENsYXNzTmFtZU1lc3NhZ2UiLCJTY2hlbWFzUm91dGVyIiwiUHJvbWlzZVJvdXRlciIsIm1vdW50Um91dGVzIiwicm91dGUiLCJwcm9taXNlRW5mb3JjZU1hc3RlcktleUFjY2VzcyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Sb3V0ZXJzL1NjaGVtYXNSb3V0ZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gc2NoZW1hcy5qc1xuXG52YXIgUGFyc2UgPSByZXF1aXJlKCdwYXJzZS9ub2RlJykuUGFyc2UsXG4gIFNjaGVtYUNvbnRyb2xsZXIgPSByZXF1aXJlKCcuLi9Db250cm9sbGVycy9TY2hlbWFDb250cm9sbGVyJyk7XG5cbmltcG9ydCBQcm9taXNlUm91dGVyIGZyb20gJy4uL1Byb21pc2VSb3V0ZXInO1xuaW1wb3J0ICogYXMgbWlkZGxld2FyZSBmcm9tICcuLi9taWRkbGV3YXJlcyc7XG5pbXBvcnQgeyBjcmVhdGVTYW5pdGl6ZWRFcnJvciB9IGZyb20gJy4uL0Vycm9yJztcblxuZnVuY3Rpb24gY2xhc3NOYW1lTWlzbWF0Y2hSZXNwb25zZShib2R5Q2xhc3MsIHBhdGhDbGFzcykge1xuICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoXG4gICAgUGFyc2UuRXJyb3IuSU5WQUxJRF9DTEFTU19OQU1FLFxuICAgIGBDbGFzcyBuYW1lIG1pc21hdGNoIGJldHdlZW4gJHtib2R5Q2xhc3N9IGFuZCAke3BhdGhDbGFzc30uYFxuICApO1xufVxuXG5mdW5jdGlvbiBnZXRBbGxTY2hlbWFzKHJlcSkge1xuICByZXR1cm4gcmVxLmNvbmZpZy5kYXRhYmFzZVxuICAgIC5sb2FkU2NoZW1hKHsgY2xlYXJDYWNoZTogdHJ1ZSB9KVxuICAgIC50aGVuKHNjaGVtYUNvbnRyb2xsZXIgPT4gc2NoZW1hQ29udHJvbGxlci5nZXRBbGxDbGFzc2VzKHsgY2xlYXJDYWNoZTogdHJ1ZSB9KSlcbiAgICAudGhlbihzY2hlbWFzID0+ICh7IHJlc3BvbnNlOiB7IHJlc3VsdHM6IHNjaGVtYXMgfSB9KSk7XG59XG5cbmZ1bmN0aW9uIGdldE9uZVNjaGVtYShyZXEpIHtcbiAgY29uc3QgY2xhc3NOYW1lID0gcmVxLnBhcmFtcy5jbGFzc05hbWU7XG4gIHJldHVybiByZXEuY29uZmlnLmRhdGFiYXNlXG4gICAgLmxvYWRTY2hlbWEoeyBjbGVhckNhY2hlOiB0cnVlIH0pXG4gICAgLnRoZW4oc2NoZW1hQ29udHJvbGxlciA9PiBzY2hlbWFDb250cm9sbGVyLmdldE9uZVNjaGVtYShjbGFzc05hbWUsIHRydWUpKVxuICAgIC50aGVuKHNjaGVtYSA9PiAoeyByZXNwb25zZTogc2NoZW1hIH0pKVxuICAgIC5jYXRjaChlcnJvciA9PiB7XG4gICAgICBpZiAoZXJyb3IgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuSU5WQUxJRF9DTEFTU19OQU1FLCBgQ2xhc3MgJHtjbGFzc05hbWV9IGRvZXMgbm90IGV4aXN0LmApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLklOVEVSTkFMX1NFUlZFUl9FUlJPUiwgJ0RhdGFiYXNlIGFkYXB0ZXIgZXJyb3IuJyk7XG4gICAgICB9XG4gICAgfSk7XG59XG5cbmNvbnN0IGNoZWNrSWZEZWZpbmVkU2NoZW1hc0lzVXNlZCA9IHJlcSA9PiB7XG4gIGlmIChyZXEuY29uZmlnPy5zY2hlbWE/LmxvY2tTY2hlbWFzID09PSB0cnVlKSB7XG4gICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFxuICAgICAgUGFyc2UuRXJyb3IuT1BFUkFUSU9OX0ZPUkJJRERFTixcbiAgICAgICdDYW5ub3QgcGVyZm9ybSB0aGlzIG9wZXJhdGlvbiB3aGVuIHNjaGVtYXMgb3B0aW9ucyBpcyB1c2VkLidcbiAgICApO1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgaW50ZXJuYWxDcmVhdGVTY2hlbWEgPSBhc3luYyAoY2xhc3NOYW1lLCBib2R5LCBjb25maWcpID0+IHtcbiAgY29uc3QgY29udHJvbGxlciA9IGF3YWl0IGNvbmZpZy5kYXRhYmFzZS5sb2FkU2NoZW1hKHsgY2xlYXJDYWNoZTogdHJ1ZSB9KTtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjb250cm9sbGVyLmFkZENsYXNzSWZOb3RFeGlzdHMoXG4gICAgY2xhc3NOYW1lLFxuICAgIGJvZHkuZmllbGRzLFxuICAgIGJvZHkuY2xhc3NMZXZlbFBlcm1pc3Npb25zLFxuICAgIGJvZHkuaW5kZXhlc1xuICApO1xuICByZXR1cm4ge1xuICAgIHJlc3BvbnNlLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGludGVybmFsVXBkYXRlU2NoZW1hID0gYXN5bmMgKGNsYXNzTmFtZSwgYm9keSwgY29uZmlnKSA9PiB7XG4gIGNvbnN0IGNvbnRyb2xsZXIgPSBhd2FpdCBjb25maWcuZGF0YWJhc2UubG9hZFNjaGVtYSh7IGNsZWFyQ2FjaGU6IHRydWUgfSk7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY29udHJvbGxlci51cGRhdGVDbGFzcyhcbiAgICBjbGFzc05hbWUsXG4gICAgYm9keS5maWVsZHMgfHwge30sXG4gICAgYm9keS5jbGFzc0xldmVsUGVybWlzc2lvbnMsXG4gICAgYm9keS5pbmRleGVzLFxuICAgIGNvbmZpZy5kYXRhYmFzZVxuICApO1xuICByZXR1cm4geyByZXNwb25zZSB9O1xufTtcblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlU2NoZW1hKHJlcSkge1xuICBjaGVja0lmRGVmaW5lZFNjaGVtYXNJc1VzZWQocmVxKTtcbiAgaWYgKHJlcS5hdXRoLmlzUmVhZE9ubHkpIHtcbiAgICB0aHJvdyBjcmVhdGVTYW5pdGl6ZWRFcnJvcihcbiAgICAgIFBhcnNlLkVycm9yLk9QRVJBVElPTl9GT1JCSURERU4sXG4gICAgICBcInJlYWQtb25seSBtYXN0ZXJLZXkgaXNuJ3QgYWxsb3dlZCB0byBjcmVhdGUgYSBzY2hlbWEuXCIsXG4gICAgICByZXEuY29uZmlnXG4gICAgKTtcbiAgfVxuICBpZiAocmVxLnBhcmFtcy5jbGFzc05hbWUgJiYgcmVxLmJvZHk/LmNsYXNzTmFtZSkge1xuICAgIGlmIChyZXEucGFyYW1zLmNsYXNzTmFtZSAhPSByZXEuYm9keS5jbGFzc05hbWUpIHtcbiAgICAgIHJldHVybiBjbGFzc05hbWVNaXNtYXRjaFJlc3BvbnNlKHJlcS5ib2R5LmNsYXNzTmFtZSwgcmVxLnBhcmFtcy5jbGFzc05hbWUpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGNsYXNzTmFtZSA9IHJlcS5wYXJhbXMuY2xhc3NOYW1lIHx8IHJlcS5ib2R5Py5jbGFzc05hbWU7XG4gIGlmICghY2xhc3NOYW1lKSB7XG4gICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKDEzNSwgYFBPU1QgJHtyZXEucGF0aH0gbmVlZHMgYSBjbGFzcyBuYW1lLmApO1xuICB9XG5cbiAgcmV0dXJuIGF3YWl0IGludGVybmFsQ3JlYXRlU2NoZW1hKGNsYXNzTmFtZSwgcmVxLmJvZHkgfHwge30sIHJlcS5jb25maWcpO1xufVxuXG5mdW5jdGlvbiBtb2RpZnlTY2hlbWEocmVxKSB7XG4gIGNoZWNrSWZEZWZpbmVkU2NoZW1hc0lzVXNlZChyZXEpO1xuICBpZiAocmVxLmF1dGguaXNSZWFkT25seSkge1xuICAgIHRocm93IGNyZWF0ZVNhbml0aXplZEVycm9yKFxuICAgICAgUGFyc2UuRXJyb3IuT1BFUkFUSU9OX0ZPUkJJRERFTixcbiAgICAgIFwicmVhZC1vbmx5IG1hc3RlcktleSBpc24ndCBhbGxvd2VkIHRvIHVwZGF0ZSBhIHNjaGVtYS5cIixcbiAgICAgIHJlcS5jb25maWdcbiAgICApO1xuICB9XG4gIGlmIChyZXEuYm9keT8uY2xhc3NOYW1lICYmIHJlcS5ib2R5LmNsYXNzTmFtZSAhPSByZXEucGFyYW1zLmNsYXNzTmFtZSkge1xuICAgIHJldHVybiBjbGFzc05hbWVNaXNtYXRjaFJlc3BvbnNlKHJlcS5ib2R5LmNsYXNzTmFtZSwgcmVxLnBhcmFtcy5jbGFzc05hbWUpO1xuICB9XG4gIGNvbnN0IGNsYXNzTmFtZSA9IHJlcS5wYXJhbXMuY2xhc3NOYW1lO1xuXG4gIHJldHVybiBpbnRlcm5hbFVwZGF0ZVNjaGVtYShjbGFzc05hbWUsIHJlcS5ib2R5IHx8IHt9LCByZXEuY29uZmlnKTtcbn1cblxuY29uc3QgZGVsZXRlU2NoZW1hID0gcmVxID0+IHtcbiAgaWYgKHJlcS5hdXRoLmlzUmVhZE9ubHkpIHtcbiAgICB0aHJvdyBjcmVhdGVTYW5pdGl6ZWRFcnJvcihcbiAgICAgIFBhcnNlLkVycm9yLk9QRVJBVElPTl9GT1JCSURERU4sXG4gICAgICBcInJlYWQtb25seSBtYXN0ZXJLZXkgaXNuJ3QgYWxsb3dlZCB0byBkZWxldGUgYSBzY2hlbWEuXCIsXG4gICAgICByZXEuY29uZmlnXG4gICAgKTtcbiAgfVxuICBpZiAoIVNjaGVtYUNvbnRyb2xsZXIuY2xhc3NOYW1lSXNWYWxpZChyZXEucGFyYW1zLmNsYXNzTmFtZSkpIHtcbiAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoXG4gICAgICBQYXJzZS5FcnJvci5JTlZBTElEX0NMQVNTX05BTUUsXG4gICAgICBTY2hlbWFDb250cm9sbGVyLmludmFsaWRDbGFzc05hbWVNZXNzYWdlKHJlcS5wYXJhbXMuY2xhc3NOYW1lKVxuICAgICk7XG4gIH1cbiAgcmV0dXJuIHJlcS5jb25maWcuZGF0YWJhc2UuZGVsZXRlU2NoZW1hKHJlcS5wYXJhbXMuY2xhc3NOYW1lKS50aGVuKCgpID0+ICh7IHJlc3BvbnNlOiB7fSB9KSk7XG59O1xuXG5leHBvcnQgY2xhc3MgU2NoZW1hc1JvdXRlciBleHRlbmRzIFByb21pc2VSb3V0ZXIge1xuICBtb3VudFJvdXRlcygpIHtcbiAgICB0aGlzLnJvdXRlKCdHRVQnLCAnL3NjaGVtYXMnLCBtaWRkbGV3YXJlLnByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzLCBnZXRBbGxTY2hlbWFzKTtcbiAgICB0aGlzLnJvdXRlKFxuICAgICAgJ0dFVCcsXG4gICAgICAnL3NjaGVtYXMvOmNsYXNzTmFtZScsXG4gICAgICBtaWRkbGV3YXJlLnByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzLFxuICAgICAgZ2V0T25lU2NoZW1hXG4gICAgKTtcbiAgICB0aGlzLnJvdXRlKCdQT1NUJywgJy9zY2hlbWFzJywgbWlkZGxld2FyZS5wcm9taXNlRW5mb3JjZU1hc3RlcktleUFjY2VzcywgY3JlYXRlU2NoZW1hKTtcbiAgICB0aGlzLnJvdXRlKFxuICAgICAgJ1BPU1QnLFxuICAgICAgJy9zY2hlbWFzLzpjbGFzc05hbWUnLFxuICAgICAgbWlkZGxld2FyZS5wcm9taXNlRW5mb3JjZU1hc3RlcktleUFjY2VzcyxcbiAgICAgIGNyZWF0ZVNjaGVtYVxuICAgICk7XG4gICAgdGhpcy5yb3V0ZShcbiAgICAgICdQVVQnLFxuICAgICAgJy9zY2hlbWFzLzpjbGFzc05hbWUnLFxuICAgICAgbWlkZGxld2FyZS5wcm9taXNlRW5mb3JjZU1hc3RlcktleUFjY2VzcyxcbiAgICAgIG1vZGlmeVNjaGVtYVxuICAgICk7XG4gICAgdGhpcy5yb3V0ZShcbiAgICAgICdERUxFVEUnLFxuICAgICAgJy9zY2hlbWFzLzpjbGFzc05hbWUnLFxuICAgICAgbWlkZGxld2FyZS5wcm9taXNlRW5mb3JjZU1hc3RlcktleUFjY2VzcyxcbiAgICAgIGRlbGV0ZVNjaGVtYVxuICAgICk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBS0EsSUFBQUEsY0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsTUFBQSxHQUFBSCxPQUFBO0FBQWdELFNBQUFFLHdCQUFBRSxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBSix1QkFBQSxZQUFBQSxDQUFBRSxDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFB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
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = exports.SecurityRouter = void 0;
|
|
7
|
+
var _PromiseRouter = _interopRequireDefault(require("../PromiseRouter"));
|
|
8
|
+
var middleware = _interopRequireWildcard(require("../middlewares"));
|
|
9
|
+
var _CheckRunner = _interopRequireDefault(require("../Security/CheckRunner"));
|
|
10
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
|
+
class SecurityRouter extends _PromiseRouter.default {
|
|
13
|
+
mountRoutes() {
|
|
14
|
+
this.route('GET', '/security', middleware.promiseEnforceMasterKeyAccess, this._enforceSecurityCheckEnabled, async req => {
|
|
15
|
+
const report = await new _CheckRunner.default(req.config.security).run();
|
|
16
|
+
return {
|
|
17
|
+
status: 200,
|
|
18
|
+
response: report
|
|
19
|
+
};
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
async _enforceSecurityCheckEnabled(req) {
|
|
23
|
+
const config = req.config;
|
|
24
|
+
if (!config.security || !config.security.enableCheck) {
|
|
25
|
+
const error = new Error();
|
|
26
|
+
error.status = 409;
|
|
27
|
+
error.message = 'Enable Parse Server option `security.enableCheck` to run security check.';
|
|
28
|
+
throw error;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.SecurityRouter = SecurityRouter;
|
|
33
|
+
var _default = exports.default = SecurityRouter;
|
|
34
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfUHJvbWlzZVJvdXRlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwibWlkZGxld2FyZSIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX0NoZWNrUnVubmVyIiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiZGVmYXVsdCIsImhhcyIsImdldCIsInNldCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiU2VjdXJpdHlSb3V0ZXIiLCJQcm9taXNlUm91dGVyIiwibW91bnRSb3V0ZXMiLCJyb3V0ZSIsInByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzIiwiX2VuZm9yY2VTZWN1cml0eUNoZWNrRW5hYmxlZCIsInJlcSIsInJlcG9ydCIsIkNoZWNrUnVubmVyIiwiY29uZmlnIiwic2VjdXJpdHkiLCJydW4iLCJzdGF0dXMiLCJyZXNwb25zZSIsImVuYWJsZUNoZWNrIiwiZXJyb3IiLCJFcnJvciIsIm1lc3NhZ2UiLCJleHBvcnRzIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvUm91dGVycy9TZWN1cml0eVJvdXRlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUHJvbWlzZVJvdXRlciBmcm9tICcuLi9Qcm9taXNlUm91dGVyJztcbmltcG9ydCAqIGFzIG1pZGRsZXdhcmUgZnJvbSAnLi4vbWlkZGxld2FyZXMnO1xuaW1wb3J0IENoZWNrUnVubmVyIGZyb20gJy4uL1NlY3VyaXR5L0NoZWNrUnVubmVyJztcblxuZXhwb3J0IGNsYXNzIFNlY3VyaXR5Um91dGVyIGV4dGVuZHMgUHJvbWlzZVJvdXRlciB7XG4gIG1vdW50Um91dGVzKCkge1xuICAgIHRoaXMucm91dGUoXG4gICAgICAnR0VUJyxcbiAgICAgICcvc2VjdXJpdHknLFxuICAgICAgbWlkZGxld2FyZS5wcm9taXNlRW5mb3JjZU1hc3RlcktleUFjY2VzcyxcbiAgICAgIHRoaXMuX2VuZm9yY2VTZWN1cml0eUNoZWNrRW5hYmxlZCxcbiAgICAgIGFzeW5jIHJlcSA9PiB7XG4gICAgICAgIGNvbnN0IHJlcG9ydCA9IGF3YWl0IG5ldyBDaGVja1J1bm5lcihyZXEuY29uZmlnLnNlY3VyaXR5KS5ydW4oKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBzdGF0dXM6IDIwMCxcbiAgICAgICAgICByZXNwb25zZTogcmVwb3J0LFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBhc3luYyBfZW5mb3JjZVNlY3VyaXR5Q2hlY2tFbmFibGVkKHJlcSkge1xuICAgIGNvbnN0IGNvbmZpZyA9IHJlcS5jb25maWc7XG4gICAgaWYgKCFjb25maWcuc2VjdXJpdHkgfHwgIWNvbmZpZy5zZWN1cml0eS5lbmFibGVDaGVjaykge1xuICAgICAgY29uc3QgZXJyb3IgPSBuZXcgRXJyb3IoKTtcbiAgICAgIGVycm9yLnN0YXR1cyA9IDQwOTtcbiAgICAgIGVycm9yLm1lc3NhZ2UgPSAnRW5hYmxlIFBhcnNlIFNlcnZlciBvcHRpb24gYHNlY3VyaXR5LmVuYWJsZUNoZWNrYCB0byBydW4gc2VjdXJpdHkgY2hlY2suJztcbiAgICAgIHRocm93IGVycm9yO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBTZWN1cml0eVJvdXRlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsY0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsWUFBQSxHQUFBSixzQkFBQSxDQUFBQyxPQUFBO0FBQWtELFNBQUFFLHdCQUFBRSxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBSix1QkFBQSxZQUFBQSxD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
|
|
@@ -1,80 +1,68 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.SessionsRouter =
|
|
7
|
-
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
var
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
var _node2 = _interopRequireDefault(_node);
|
|
15
|
-
|
|
16
|
-
var _rest = require('../rest');
|
|
17
|
-
|
|
18
|
-
var _rest2 = _interopRequireDefault(_rest);
|
|
19
|
-
|
|
20
|
-
var _Auth = require('../Auth');
|
|
21
|
-
|
|
22
|
-
var _Auth2 = _interopRequireDefault(_Auth);
|
|
23
|
-
|
|
24
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
25
|
-
|
|
26
|
-
class SessionsRouter extends _ClassesRouter2.default {
|
|
27
|
-
|
|
6
|
+
exports.default = exports.SessionsRouter = void 0;
|
|
7
|
+
var _ClassesRouter = _interopRequireDefault(require("./ClassesRouter"));
|
|
8
|
+
var _node = _interopRequireDefault(require("parse/node"));
|
|
9
|
+
var _rest = _interopRequireDefault(require("../rest"));
|
|
10
|
+
var _Auth = _interopRequireDefault(require("../Auth"));
|
|
11
|
+
var _RestWrite = _interopRequireDefault(require("../RestWrite"));
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
|
+
class SessionsRouter extends _ClassesRouter.default {
|
|
28
14
|
className() {
|
|
29
15
|
return '_Session';
|
|
30
16
|
}
|
|
31
|
-
|
|
32
17
|
handleMe(req) {
|
|
33
18
|
// TODO: Verify correct behavior
|
|
34
19
|
if (!req.info || !req.info.sessionToken) {
|
|
35
|
-
throw new
|
|
20
|
+
throw new _node.default.Error(_node.default.Error.INVALID_SESSION_TOKEN, 'Session token required.');
|
|
36
21
|
}
|
|
37
|
-
return
|
|
22
|
+
return _rest.default.find(req.config, _Auth.default.master(req.config), '_Session', {
|
|
23
|
+
sessionToken: req.info.sessionToken
|
|
24
|
+
}, undefined, req.info.clientSDK, req.info.context).then(response => {
|
|
38
25
|
if (!response.results || response.results.length == 0) {
|
|
39
|
-
throw new
|
|
26
|
+
throw new _node.default.Error(_node.default.Error.INVALID_SESSION_TOKEN, 'Session token not found.');
|
|
40
27
|
}
|
|
41
28
|
return {
|
|
42
29
|
response: response.results[0]
|
|
43
30
|
};
|
|
44
31
|
});
|
|
45
32
|
}
|
|
46
|
-
|
|
47
33
|
handleUpdateToRevocableSession(req) {
|
|
48
34
|
const config = req.config;
|
|
49
35
|
const user = req.auth.user;
|
|
50
36
|
// Issue #2720
|
|
51
37
|
// Calling without a session token would result in a not found user
|
|
52
38
|
if (!user) {
|
|
53
|
-
throw new
|
|
39
|
+
throw new _node.default.Error(_node.default.Error.OBJECT_NOT_FOUND, 'invalid session');
|
|
54
40
|
}
|
|
55
41
|
const {
|
|
56
42
|
sessionData,
|
|
57
43
|
createSession
|
|
58
|
-
} =
|
|
44
|
+
} = _RestWrite.default.createSession(config, {
|
|
59
45
|
userId: user.id,
|
|
60
46
|
createdWith: {
|
|
61
|
-
|
|
47
|
+
action: 'upgrade'
|
|
62
48
|
},
|
|
63
49
|
installationId: req.auth.installationId
|
|
64
50
|
});
|
|
65
|
-
|
|
66
51
|
return createSession().then(() => {
|
|
67
52
|
// delete the session token, use the db to skip beforeSave
|
|
68
53
|
return config.database.update('_User', {
|
|
69
54
|
objectId: user.id
|
|
70
55
|
}, {
|
|
71
|
-
sessionToken: {
|
|
56
|
+
sessionToken: {
|
|
57
|
+
__op: 'Delete'
|
|
58
|
+
}
|
|
72
59
|
});
|
|
73
60
|
}).then(() => {
|
|
74
|
-
return Promise.resolve({
|
|
61
|
+
return Promise.resolve({
|
|
62
|
+
response: sessionData
|
|
63
|
+
});
|
|
75
64
|
});
|
|
76
65
|
}
|
|
77
|
-
|
|
78
66
|
mountRoutes() {
|
|
79
67
|
this.route('GET', '/sessions/me', req => {
|
|
80
68
|
return this.handleMe(req);
|
|
@@ -99,7 +87,6 @@ class SessionsRouter extends _ClassesRouter2.default {
|
|
|
99
87
|
});
|
|
100
88
|
}
|
|
101
89
|
}
|
|
102
|
-
|
|
103
90
|
exports.SessionsRouter = SessionsRouter;
|
|
104
|
-
exports.default = SessionsRouter;
|
|
105
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
91
|
+
var _default = exports.default = SessionsRouter;
|
|
92
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfQ2xhc3Nlc1JvdXRlciIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX25vZGUiLCJfcmVzdCIsIl9BdXRoIiwiX1Jlc3RXcml0ZSIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIlNlc3Npb25zUm91dGVyIiwiQ2xhc3Nlc1JvdXRlciIsImNsYXNzTmFtZSIsImhhbmRsZU1lIiwicmVxIiwiaW5mbyIsInNlc3Npb25Ub2tlbiIsIlBhcnNlIiwiRXJyb3IiLCJJTlZBTElEX1NFU1NJT05fVE9LRU4iLCJyZXN0IiwiZmluZCIsImNvbmZpZyIsIkF1dGgiLCJtYXN0ZXIiLCJ1bmRlZmluZWQiLCJjbGllbnRTREsiLCJjb250ZXh0IiwidGhlbiIsInJlc3BvbnNlIiwicmVzdWx0cyIsImxlbmd0aCIsImhhbmRsZVVwZGF0ZVRvUmV2b2NhYmxlU2Vzc2lvbiIsInVzZXIiLCJhdXRoIiwiT0JKRUNUX05PVF9GT1VORCIsInNlc3Npb25EYXRhIiwiY3JlYXRlU2Vzc2lvbiIsIlJlc3RXcml0ZSIsInVzZXJJZCIsImlkIiwiY3JlYXRlZFdpdGgiLCJhY3Rpb24iLCJpbnN0YWxsYXRpb25JZCIsImRhdGFiYXNlIiwidXBkYXRlIiwib2JqZWN0SWQiLCJfX29wIiwiUHJvbWlzZSIsInJlc29sdmUiLCJtb3VudFJvdXRlcyIsInJvdXRlIiwiaGFuZGxlRmluZCIsImhhbmRsZUdldCIsImhhbmRsZUNyZWF0ZSIsImhhbmRsZVVwZGF0ZSIsImhhbmRsZURlbGV0ZSIsImV4cG9ydHMiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Sb3V0ZXJzL1Nlc3Npb25zUm91dGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDbGFzc2VzUm91dGVyIGZyb20gJy4vQ2xhc3Nlc1JvdXRlcic7XG5pbXBvcnQgUGFyc2UgZnJvbSAncGFyc2Uvbm9kZSc7XG5pbXBvcnQgcmVzdCBmcm9tICcuLi9yZXN0JztcbmltcG9ydCBBdXRoIGZyb20gJy4uL0F1dGgnO1xuaW1wb3J0IFJlc3RXcml0ZSBmcm9tICcuLi9SZXN0V3JpdGUnO1xuXG5leHBvcnQgY2xhc3MgU2Vzc2lvbnNSb3V0ZXIgZXh0ZW5kcyBDbGFzc2VzUm91dGVyIHtcbiAgY2xhc3NOYW1lKCkge1xuICAgIHJldHVybiAnX1Nlc3Npb24nO1xuICB9XG5cbiAgaGFuZGxlTWUocmVxKSB7XG4gICAgLy8gVE9ETzogVmVyaWZ5IGNvcnJlY3QgYmVoYXZpb3JcbiAgICBpZiAoIXJlcS5pbmZvIHx8ICFyZXEuaW5mby5zZXNzaW9uVG9rZW4pIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5JTlZBTElEX1NFU1NJT05fVE9LRU4sICdTZXNzaW9uIHRva2VuIHJlcXVpcmVkLicpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdFxuICAgICAgLmZpbmQoXG4gICAgICAgIHJlcS5jb25maWcsXG4gICAgICAgIEF1dGgubWFzdGVyKHJlcS5jb25maWcpLFxuICAgICAgICAnX1Nlc3Npb24nLFxuICAgICAgICB7IHNlc3Npb25Ub2tlbjogcmVxLmluZm8uc2Vzc2lvblRva2VuIH0sXG4gICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgcmVxLmluZm8uY2xpZW50U0RLLFxuICAgICAgICByZXEuaW5mby5jb250ZXh0XG4gICAgICApXG4gICAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgIGlmICghcmVzcG9uc2UucmVzdWx0cyB8fCByZXNwb25zZS5yZXN1bHRzLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLklOVkFMSURfU0VTU0lPTl9UT0tFTiwgJ1Nlc3Npb24gdG9rZW4gbm90IGZvdW5kLicpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcmVzcG9uc2U6IHJlc3BvbnNlLnJlc3VsdHNbMF0sXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgfVxuXG4gIGhhbmRsZVVwZGF0ZVRvUmV2b2NhYmxlU2Vzc2lvbihyZXEpIHtcbiAgICBjb25zdCBjb25maWcgPSByZXEuY29uZmlnO1xuICAgIGNvbnN0IHVzZXIgPSByZXEuYXV0aC51c2VyO1xuICAgIC8vIElzc3VlICMyNzIwXG4gICAgLy8gQ2FsbGluZyB3aXRob3V0IGEgc2Vzc2lvbiB0b2tlbiB3b3VsZCByZXN1bHQgaW4gYSBub3QgZm91bmQgdXNlclxuICAgIGlmICghdXNlcikge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLk9CSkVDVF9OT1RfRk9VTkQsICdpbnZhbGlkIHNlc3Npb24nKTtcbiAgICB9XG4gICAgY29uc3QgeyBzZXNzaW9uRGF0YSwgY3JlYXRlU2Vzc2lvbiB9ID0gUmVzdFdyaXRlLmNyZWF0ZVNlc3Npb24oY29uZmlnLCB7XG4gICAgICB1c2VySWQ6IHVzZXIuaWQsXG4gICAgICBjcmVhdGVkV2l0aDoge1xuICAgICAgICBhY3Rpb246ICd1cGdyYWRlJyxcbiAgICAgIH0sXG4gICAgICBpbnN0YWxsYXRpb25JZDogcmVxLmF1dGguaW5zdGFsbGF0aW9uSWQsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gY3JlYXRlU2Vzc2lvbigpXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIC8vIGRlbGV0ZSB0aGUgc2Vzc2lvbiB0b2tlbiwgdXNlIHRoZSBkYiB0byBza2lwIGJlZm9yZVNhdmVcbiAgICAgICAgcmV0dXJuIGNvbmZpZy5kYXRhYmFzZS51cGRhdGUoXG4gICAgICAgICAgJ19Vc2VyJyxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvYmplY3RJZDogdXNlci5pZCxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHNlc3Npb25Ub2tlbjogeyBfX29wOiAnRGVsZXRlJyB9LFxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoeyByZXNwb25zZTogc2Vzc2lvbkRhdGEgfSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG1vdW50Um91dGVzKCkge1xuICAgIHRoaXMucm91dGUoJ0dFVCcsICcvc2Vzc2lvbnMvbWUnLCByZXEgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlTWUocmVxKTtcbiAgICB9KTtcbiAgICB0aGlzLnJvdXRlKCdHRVQnLCAnL3Nlc3Npb25zJywgcmVxID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZUZpbmQocmVxKTtcbiAgICB9KTtcbiAgICB0aGlzLnJvdXRlKCdHRVQnLCAnL3Nlc3Npb25zLzpvYmplY3RJZCcsIHJlcSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVHZXQocmVxKTtcbiAgICB9KTtcbiAgICB0aGlzLnJvdXRlKCdQT1NUJywgJy9zZXNzaW9ucycsIHJlcSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVDcmVhdGUocmVxKTtcbiAgICB9KTtcbiAgICB0aGlzLnJvdXRlKCdQVVQnLCAnL3Nlc3Npb25zLzpvYmplY3RJZCcsIHJlcSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVVcGRhdGUocmVxKTtcbiAgICB9KTtcbiAgICB0aGlzLnJvdXRlKCdERUxFVEUnLCAnL3Nlc3Npb25zLzpvYmplY3RJZCcsIHJlcSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVEZWxldGUocmVxKTtcbiAgICB9KTtcbiAgICB0aGlzLnJvdXRlKCdQT1NUJywgJy91cGdyYWRlVG9SZXZvY2FibGVTZXNzaW9uJywgcmVxID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZVVwZGF0ZVRvUmV2b2NhYmxlU2Vzc2lvbihyZXEpO1xuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFNlc3Npb25zUm91dGVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxjQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxLQUFBLEdBQUFGLHNCQUFB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
|