parse-server 6.0.0-alpha.2 → 6.0.0-alpha.21
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/README.md +45 -17
- package/lib/AccountLockout.js +11 -26
- package/lib/Adapters/AdapterLoader.js +8 -14
- package/lib/Adapters/Analytics/AnalyticsAdapter.js +2 -8
- package/lib/Adapters/Auth/AuthAdapter.js +7 -16
- package/lib/Adapters/Auth/OAuth1Client.js +32 -57
- package/lib/Adapters/Auth/apple.js +6 -22
- package/lib/Adapters/Auth/facebook.js +7 -37
- package/lib/Adapters/Auth/gcenter.js +8 -37
- package/lib/Adapters/Auth/github.js +7 -10
- package/lib/Adapters/Auth/google.js +11 -34
- package/lib/Adapters/Auth/gpgames.js +5 -8
- package/lib/Adapters/Auth/httpsRequest.js +1 -7
- package/lib/Adapters/Auth/index.js +20 -65
- package/lib/Adapters/Auth/instagram.js +5 -9
- package/lib/Adapters/Auth/janraincapture.js +8 -12
- package/lib/Adapters/Auth/janrainengage.js +7 -11
- package/lib/Adapters/Auth/keycloak.js +5 -19
- package/lib/Adapters/Auth/ldap.js +1 -15
- package/lib/Adapters/Auth/line.js +7 -10
- package/lib/Adapters/Auth/linkedin.js +7 -12
- package/lib/Adapters/Auth/meetup.js +7 -10
- package/lib/Adapters/Auth/microsoft.js +7 -10
- package/lib/Adapters/Auth/oauth2.js +6 -18
- package/lib/Adapters/Auth/phantauth.js +8 -10
- package/lib/Adapters/Auth/qq.js +7 -13
- package/lib/Adapters/Auth/spotify.js +7 -14
- package/lib/Adapters/Auth/twitter.js +5 -15
- package/lib/Adapters/Auth/vkontakte.js +9 -15
- package/lib/Adapters/Auth/wechat.js +7 -10
- package/lib/Adapters/Auth/weibo.js +7 -11
- package/lib/Adapters/Cache/CacheAdapter.js +4 -12
- package/lib/Adapters/Cache/InMemoryCache.js +5 -19
- package/lib/Adapters/Cache/InMemoryCacheAdapter.js +1 -11
- package/lib/Adapters/Cache/LRUCache.js +1 -11
- package/lib/Adapters/Cache/NullCacheAdapter.js +1 -8
- package/lib/Adapters/Cache/RedisCacheAdapter.js +46 -87
- package/lib/Adapters/Cache/SchemaCache.js +1 -6
- package/lib/Adapters/Email/MailAdapter.js +2 -7
- package/lib/Adapters/Files/FilesAdapter.js +7 -21
- package/lib/Adapters/Files/GridFSBucketAdapter.js +6 -44
- package/lib/Adapters/Files/GridStoreAdapter.js +1 -1
- package/lib/Adapters/Logger/LoggerAdapter.js +2 -11
- package/lib/Adapters/Logger/WinstonLogger.js +3 -30
- package/lib/Adapters/Logger/WinstonLoggerAdapter.js +5 -16
- package/lib/Adapters/MessageQueue/EventEmitterMQ.js +3 -20
- package/lib/Adapters/PubSub/EventEmitterPubSub.js +1 -16
- package/lib/Adapters/PubSub/PubSubAdapter.js +2 -9
- package/lib/Adapters/PubSub/RedisPubSub.js +13 -10
- package/lib/Adapters/Push/PushAdapter.js +2 -8
- package/lib/Adapters/Storage/Mongo/MongoCollection.js +12 -37
- package/lib/Adapters/Storage/Mongo/MongoSchemaCollection.js +26 -79
- package/lib/Adapters/Storage/Mongo/MongoStorageAdapter.js +78 -209
- package/lib/Adapters/Storage/Mongo/MongoTransform.js +82 -371
- package/lib/Adapters/Storage/Postgres/PostgresClient.js +1 -13
- package/lib/Adapters/Storage/Postgres/PostgresConfigParser.js +1 -20
- package/lib/Adapters/Storage/Postgres/PostgresStorageAdapter.js +119 -446
- package/lib/Adapters/Storage/Postgres/sql/index.js +4 -7
- package/lib/Adapters/Storage/StorageAdapter.js +1 -1
- package/lib/Adapters/WebSocketServer/WSAdapter.js +3 -12
- package/lib/Adapters/WebSocketServer/WSSAdapter.js +7 -12
- package/lib/Auth.js +54 -121
- package/lib/ClientSDK.js +3 -11
- package/lib/Config.js +69 -113
- package/lib/Controllers/AdaptableController.js +6 -18
- package/lib/Controllers/AnalyticsController.js +1 -9
- package/lib/Controllers/CacheController.js +3 -23
- package/lib/Controllers/DatabaseController.js +147 -345
- package/lib/Controllers/FilesController.js +5 -34
- package/lib/Controllers/HooksController.js +1 -51
- package/lib/Controllers/LiveQueryController.js +4 -23
- package/lib/Controllers/LoggerController.js +15 -54
- package/lib/Controllers/ParseGraphQLController.js +49 -104
- package/lib/Controllers/PushController.js +20 -59
- package/lib/Controllers/SchemaController.js +154 -344
- package/lib/Controllers/UserController.js +11 -72
- package/lib/Controllers/index.js +19 -68
- package/lib/Controllers/types.js +1 -1
- package/lib/Deprecator/Deprecations.js +1 -8
- package/lib/Deprecator/Deprecator.js +9 -18
- package/lib/GraphQL/ParseGraphQLSchema.js +16 -100
- package/lib/GraphQL/ParseGraphQLServer.js +2 -29
- package/lib/GraphQL/helpers/objectsMutations.js +2 -12
- package/lib/GraphQL/helpers/objectsQueries.js +18 -76
- package/lib/GraphQL/loaders/defaultGraphQLMutations.js +1 -9
- package/lib/GraphQL/loaders/defaultGraphQLQueries.js +1 -8
- package/lib/GraphQL/loaders/defaultGraphQLTypes.js +9 -115
- package/lib/GraphQL/loaders/defaultRelaySchema.js +6 -18
- package/lib/GraphQL/loaders/filesMutations.js +2 -19
- package/lib/GraphQL/loaders/functionsMutations.js +6 -17
- package/lib/GraphQL/loaders/parseClassMutations.js +6 -44
- package/lib/GraphQL/loaders/parseClassQueries.js +1 -26
- package/lib/GraphQL/loaders/parseClassTypes.js +10 -64
- package/lib/GraphQL/loaders/schemaDirectives.js +1 -17
- package/lib/GraphQL/loaders/schemaMutations.js +1 -20
- package/lib/GraphQL/loaders/schemaQueries.js +1 -14
- package/lib/GraphQL/loaders/schemaTypes.js +2 -6
- package/lib/GraphQL/loaders/usersMutations.js +6 -28
- package/lib/GraphQL/loaders/usersQueries.js +4 -26
- package/lib/GraphQL/parseGraphQLUtils.js +6 -19
- package/lib/GraphQL/transformers/className.js +1 -4
- package/lib/GraphQL/transformers/constraintType.js +1 -20
- package/lib/GraphQL/transformers/inputType.js +1 -20
- package/lib/GraphQL/transformers/mutation.js +6 -51
- package/lib/GraphQL/transformers/outputType.js +1 -20
- package/lib/GraphQL/transformers/query.js +6 -42
- package/lib/GraphQL/transformers/schemaFields.js +7 -34
- package/lib/KeyPromiseQueue.js +1 -12
- package/lib/LiveQuery/Client.js +1 -25
- package/lib/LiveQuery/Id.js +1 -7
- package/lib/LiveQuery/ParseCloudCodePublisher.js +13 -19
- package/lib/LiveQuery/ParseLiveQueryServer.js +92 -306
- package/lib/LiveQuery/ParsePubSub.js +1 -12
- package/lib/LiveQuery/ParseWebSocketServer.js +4 -26
- package/lib/LiveQuery/QueryTools.js +14 -116
- package/lib/LiveQuery/RequestSchema.js +1 -1
- package/lib/LiveQuery/SessionTokenCache.js +1 -17
- package/lib/LiveQuery/Subscription.js +4 -18
- package/lib/LiveQuery/equalObjects.js +2 -14
- package/lib/Options/Definitions.js +79 -10
- package/lib/Options/docs.js +23 -3
- package/lib/Options/index.js +4 -12
- package/lib/Options/parsers.js +1 -18
- package/lib/Page.js +1 -9
- package/lib/ParseMessageQueue.js +1 -10
- package/lib/ParseServer.js +144 -182
- package/lib/ParseServerRESTController.js +6 -33
- package/lib/PromiseRouter.js +16 -50
- package/lib/Push/PushQueue.js +3 -15
- package/lib/Push/PushWorker.js +7 -32
- package/lib/Push/utils.js +9 -38
- package/lib/RestQuery.js +105 -242
- package/lib/RestWrite.js +212 -377
- package/lib/Routers/AggregateRouter.js +14 -51
- package/lib/Routers/AnalyticsRouter.js +2 -8
- package/lib/Routers/AudiencesRouter.js +1 -15
- package/lib/Routers/ClassesRouter.js +3 -53
- package/lib/Routers/CloudCodeRouter.js +1 -19
- package/lib/Routers/FeaturesRouter.js +1 -10
- package/lib/Routers/FilesRouter.js +29 -76
- package/lib/Routers/FunctionsRouter.js +5 -28
- package/lib/Routers/GlobalConfigRouter.js +4 -18
- package/lib/Routers/GraphQLRouter.js +1 -14
- package/lib/Routers/HooksRouter.js +1 -29
- package/lib/Routers/IAPValidationRouter.js +6 -29
- package/lib/Routers/InstallationsRouter.js +2 -12
- package/lib/Routers/LogsRouter.js +4 -16
- package/lib/Routers/PagesRouter.js +69 -129
- package/lib/Routers/PublicAPIRouter.js +3 -62
- package/lib/Routers/PurgeRouter.js +1 -15
- package/lib/Routers/PushRouter.js +2 -18
- package/lib/Routers/RolesRouter.js +1 -7
- package/lib/Routers/SchemasRouter.js +4 -34
- package/lib/Routers/SecurityRouter.js +1 -12
- package/lib/Routers/SessionsRouter.js +3 -19
- package/lib/Routers/UsersRouter.js +58 -155
- package/lib/SchemaMigrations/DefinedSchemas.js +56 -115
- package/lib/SchemaMigrations/Migrations.js +2 -8
- package/lib/Security/Check.js +8 -16
- package/lib/Security/CheckGroup.js +4 -11
- package/lib/Security/CheckGroups/CheckGroupDatabase.js +8 -18
- package/lib/Security/CheckGroups/CheckGroupServerConfig.js +5 -15
- package/lib/Security/CheckGroups/CheckGroups.js +1 -4
- package/lib/Security/CheckRunner.js +22 -41
- package/lib/StatusHandler.js +12 -69
- package/lib/TestUtils.js +1 -6
- package/lib/Utils.js +27 -66
- package/lib/batch.js +17 -28
- package/lib/cache.js +1 -3
- package/lib/cli/definitions/parse-live-query-server.js +1 -3
- package/lib/cli/definitions/parse-server.js +1 -3
- package/lib/cli/parse-live-query-server.js +1 -6
- package/lib/cli/parse-server.js +11 -21
- package/lib/cli/utils/commander.js +13 -51
- package/lib/cli/utils/runner.js +1 -14
- package/lib/cloud-code/Parse.Cloud.js +71 -92
- package/lib/cryptoUtils.js +11 -19
- package/lib/defaults.js +2 -14
- package/lib/deprecated.js +1 -2
- package/lib/index.js +16 -34
- package/lib/logger.js +6 -13
- package/lib/middlewares.js +147 -151
- package/lib/password.js +6 -10
- package/lib/request.js +173 -2
- package/lib/requiredParameter.js +1 -3
- package/lib/rest.js +19 -41
- package/lib/triggers.js +54 -252
- package/lib/vendor/mongodbUrl.js +125 -305
- package/package.json +22 -19
- package/lib/cloud-code/HTTPResponse.js +0 -73
- package/lib/cloud-code/httpRequest.js +0 -192
|
@@ -4,67 +4,49 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = exports.AggregateRouter = void 0;
|
|
7
|
-
|
|
8
7
|
var _ClassesRouter = _interopRequireDefault(require("./ClassesRouter"));
|
|
9
|
-
|
|
10
8
|
var _rest = _interopRequireDefault(require("../rest"));
|
|
11
|
-
|
|
12
9
|
var middleware = _interopRequireWildcard(require("../middlewares"));
|
|
13
|
-
|
|
14
10
|
var _node = _interopRequireDefault(require("parse/node"));
|
|
15
|
-
|
|
16
11
|
var _UsersRouter = _interopRequireDefault(require("./UsersRouter"));
|
|
17
|
-
|
|
18
|
-
var _Deprecator = _interopRequireDefault(require("../Deprecator/Deprecator"));
|
|
19
|
-
|
|
20
12
|
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); }
|
|
21
|
-
|
|
22
13
|
function _interopRequireWildcard(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 = {}; 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; }
|
|
23
|
-
|
|
24
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
25
|
-
|
|
26
15
|
class AggregateRouter extends _ClassesRouter.default {
|
|
27
16
|
handleFind(req) {
|
|
28
17
|
const body = Object.assign(req.body, _ClassesRouter.default.JSONFromQuery(req.query));
|
|
29
18
|
const options = {};
|
|
30
|
-
|
|
31
19
|
if (body.distinct) {
|
|
32
20
|
options.distinct = String(body.distinct);
|
|
33
21
|
}
|
|
34
|
-
|
|
35
22
|
if (body.hint) {
|
|
36
23
|
options.hint = body.hint;
|
|
37
24
|
delete body.hint;
|
|
38
25
|
}
|
|
39
|
-
|
|
40
26
|
if (body.explain) {
|
|
41
27
|
options.explain = body.explain;
|
|
42
28
|
delete body.explain;
|
|
43
29
|
}
|
|
44
|
-
|
|
45
30
|
if (body.readPreference) {
|
|
46
31
|
options.readPreference = body.readPreference;
|
|
47
32
|
delete body.readPreference;
|
|
48
33
|
}
|
|
49
|
-
|
|
50
34
|
options.pipeline = AggregateRouter.getPipeline(body);
|
|
51
|
-
|
|
52
35
|
if (typeof body.where === 'string') {
|
|
53
36
|
body.where = JSON.parse(body.where);
|
|
54
37
|
}
|
|
55
|
-
|
|
56
38
|
return _rest.default.find(req.config, req.auth, this.className(req), body.where, options, req.info.clientSDK, req.info.context).then(response => {
|
|
57
39
|
for (const result of response.results) {
|
|
58
40
|
if (typeof result === 'object') {
|
|
59
41
|
_UsersRouter.default.removeHiddenProperties(result);
|
|
60
42
|
}
|
|
61
43
|
}
|
|
62
|
-
|
|
63
44
|
return {
|
|
64
45
|
response
|
|
65
46
|
};
|
|
66
47
|
});
|
|
67
48
|
}
|
|
49
|
+
|
|
68
50
|
/* Builds a pipeline from the body. Originally the body could be passed as a single object,
|
|
69
51
|
* and now we support many options
|
|
70
52
|
*
|
|
@@ -90,11 +72,8 @@ class AggregateRouter extends _ClassesRouter.default {
|
|
|
90
72
|
* }
|
|
91
73
|
*
|
|
92
74
|
*/
|
|
93
|
-
|
|
94
|
-
|
|
95
75
|
static getPipeline(body) {
|
|
96
76
|
let pipeline = body.pipeline || body;
|
|
97
|
-
|
|
98
77
|
if (!Array.isArray(pipeline)) {
|
|
99
78
|
pipeline = Object.keys(pipeline).map(key => {
|
|
100
79
|
return {
|
|
@@ -102,57 +81,41 @@ class AggregateRouter extends _ClassesRouter.default {
|
|
|
102
81
|
};
|
|
103
82
|
});
|
|
104
83
|
}
|
|
105
|
-
|
|
106
84
|
return pipeline.map(stage => {
|
|
107
85
|
const keys = Object.keys(stage);
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
throw new Error(`Pipeline stages should only have one key found ${keys.join(', ')}`);
|
|
86
|
+
if (keys.length !== 1) {
|
|
87
|
+
throw new _node.default.Error(_node.default.Error.INVALID_QUERY, `Pipeline stages should only have one key but found ${keys.join(', ')}.`);
|
|
111
88
|
}
|
|
112
|
-
|
|
113
89
|
return AggregateRouter.transformStage(keys[0], stage);
|
|
114
90
|
});
|
|
115
91
|
}
|
|
116
|
-
|
|
117
92
|
static transformStage(stageName, stage) {
|
|
118
|
-
|
|
93
|
+
const skipKeys = ['distinct', 'where'];
|
|
94
|
+
if (skipKeys.includes(stageName)) {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
if (stageName[0] !== '$') {
|
|
98
|
+
throw new _node.default.Error(_node.default.Error.INVALID_QUERY, `Invalid aggregate stage '${stageName}'.`);
|
|
99
|
+
}
|
|
100
|
+
if (stageName === '$group') {
|
|
119
101
|
if (Object.prototype.hasOwnProperty.call(stage[stageName], 'objectId')) {
|
|
120
|
-
|
|
121
|
-
usage: 'The use of objectId in aggregation stage $group',
|
|
122
|
-
solution: 'Use _id instead.'
|
|
123
|
-
});
|
|
124
|
-
|
|
125
|
-
stage[stageName]._id = stage[stageName].objectId;
|
|
126
|
-
delete stage[stageName].objectId;
|
|
102
|
+
throw new _node.default.Error(_node.default.Error.INVALID_QUERY, `Cannot use 'objectId' in aggregation stage $group.`);
|
|
127
103
|
}
|
|
128
|
-
|
|
129
104
|
if (!Object.prototype.hasOwnProperty.call(stage[stageName], '_id')) {
|
|
130
105
|
throw new _node.default.Error(_node.default.Error.INVALID_QUERY, `Invalid parameter for query: group. Missing key _id`);
|
|
131
106
|
}
|
|
132
107
|
}
|
|
133
|
-
|
|
134
|
-
if (stageName[0] !== '$') {
|
|
135
|
-
_Deprecator.default.logRuntimeDeprecation({
|
|
136
|
-
usage: "Using aggregation stages without a leading '$'",
|
|
137
|
-
solution: `Try $${stageName} instead.`
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
const key = stageName[0] === '$' ? stageName : `$${stageName}`;
|
|
142
108
|
return {
|
|
143
|
-
[
|
|
109
|
+
[stageName]: stage[stageName]
|
|
144
110
|
};
|
|
145
111
|
}
|
|
146
|
-
|
|
147
112
|
mountRoutes() {
|
|
148
113
|
this.route('GET', '/aggregate/:className', middleware.promiseEnforceMasterKeyAccess, req => {
|
|
149
114
|
return this.handleFind(req);
|
|
150
115
|
});
|
|
151
116
|
}
|
|
152
|
-
|
|
153
117
|
}
|
|
154
|
-
|
|
155
118
|
exports.AggregateRouter = AggregateRouter;
|
|
156
119
|
var _default = AggregateRouter;
|
|
157
120
|
exports.default = _default;
|
|
158
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Sb3V0ZXJzL0FnZ3JlZ2F0ZVJvdXRlci5qcyJdLCJuYW1lcyI6WyJBZ2dyZWdhdGVSb3V0ZXIiLCJDbGFzc2VzUm91dGVyIiwiaGFuZGxlRmluZCIsInJlcSIsImJvZHkiLCJPYmplY3QiLCJhc3NpZ24iLCJKU09ORnJvbVF1ZXJ5IiwicXVlcnkiLCJvcHRpb25zIiwiZGlzdGluY3QiLCJTdHJpbmciLCJoaW50IiwiZXhwbGFpbiIsInJlYWRQcmVmZXJlbmNlIiwicGlwZWxpbmUiLCJnZXRQaXBlbGluZSIsIndoZXJlIiwiSlNPTiIsInBhcnNlIiwicmVzdCIsImZpbmQiLCJjb25maWciLCJhdXRoIiwiY2xhc3NOYW1lIiwiaW5mbyIsImNsaWVudFNESyIsImNvbnRleHQiLCJ0aGVuIiwicmVzcG9uc2UiLCJyZXN1bHQiLCJyZXN1bHRzIiwiVXNlcnNSb3V0ZXIiLCJyZW1vdmVIaWRkZW5Qcm9wZXJ0aWVzIiwiQXJyYXkiLCJpc0FycmF5Iiwia2V5cyIsIm1hcCIsImtleSIsInN0YWdlIiwibGVuZ3RoIiwiRXJyb3IiLCJqb2luIiwidHJhbnNmb3JtU3RhZ2UiLCJzdGFnZU5hbWUiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJEZXByZWNhdG9yIiwibG9nUnVudGltZURlcHJlY2F0aW9uIiwidXNhZ2UiLCJzb2x1dGlvbiIsIl9pZCIsIm9iamVjdElkIiwiUGFyc2UiLCJJTlZBTElEX1FVRVJZIiwibW91bnRSb3V0ZXMiLCJyb3V0ZSIsIm1pZGRsZXdhcmUiLCJwcm9taXNlRW5mb3JjZU1hc3RlcktleUFjY2VzcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7OztBQUVPLE1BQU1BLGVBQU4sU0FBOEJDLHNCQUE5QixDQUE0QztBQUNqREMsRUFBQUEsVUFBVSxDQUFDQyxHQUFELEVBQU07QUFDZCxVQUFNQyxJQUFJLEdBQUdDLE1BQU0sQ0FBQ0MsTUFB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QUcsUUFBT1AsU0FBVTtBQUZHLE9BQWpDO0FBSUQ7O0FBQ0QsVUFBTU4sR0FBRyxHQUFHTSxTQUFTLENBQUMsQ0FBRCxDQUFULEtBQWlCLEdBQWpCLEdBQXVCQSxTQUF2QixHQUFvQyxJQUFHQSxTQUFVLEVBQTdEO0FBQ0EsV0FBTztBQUFFLE9BQUNOLEdBQUQsR0FBT0MsS0FBSyxDQUFDSyxTQUFEO0FBQWQsS0FBUDtBQUNEOztBQUVEWSxFQUFBQSxXQUFXLEdBQUc7QUFDWixTQUFLQyxLQUFMLENBQVcsS0FBWCxFQUFrQix1QkFBbEIsRUFBMkNDLFVBQVUsQ0FBQ0MsNkJBQXRELEVBQXFGeEQsR0FBRyxJQUFJO0FBQzFGLGFBQU8sS0FBS0QsVUFBTCxDQUFnQkMsR0FBaEIsQ0FBUDtBQUNELEtBRkQ7QUFHRDs7QUFySGdEOzs7ZUF3SHBDSCxlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IENsYXNzZXNSb3V0ZXIgZnJvbSAnLi9DbGFzc2VzUm91dGVyJztcbmltcG9ydCByZXN0IGZyb20gJy4uL3Jlc3QnO1xuaW1wb3J0ICogYXMgbWlkZGxld2FyZSBmcm9tICcuLi9taWRkbGV3YXJlcyc7XG5pbXBvcnQgUGFyc2UgZnJvbSAncGFyc2Uvbm9kZSc7XG5pbXBvcnQgVXNlcnNSb3V0ZXIgZnJvbSAnLi9Vc2Vyc1JvdXRlcic7XG5pbXBvcnQgRGVwcmVjYXRvciBmcm9tICcuLi9EZXByZWNhdG9yL0RlcHJlY2F0b3InO1xuXG5leHBvcnQgY2xhc3MgQWdncmVnYXRlUm91dGVyIGV4dGVuZHMgQ2xhc3Nlc1JvdXRlciB7XG4gIGhhbmRsZUZpbmQocmVxKSB7XG4gICAgY29uc3QgYm9keSA9IE9iamVjdC5hc3NpZ24ocmVxLmJvZHksIENsYXNzZXNSb3V0ZXIuSlNPTkZyb21RdWVyeShyZXEucXVlcnkpKTtcbiAgICBjb25zdCBvcHRpb25zID0ge307XG4gICAgaWYgKGJvZHkuZGlzdGluY3QpIHtcbiAgICAgIG9wdGlvbnMuZGlzdGluY3QgPSBTdHJpbmcoYm9keS5kaXN0aW5jdCk7XG4gICAgfVxuICAgIGlmIChib2R5LmhpbnQpIHtcbiAgICAgIG9wdGlvbnMuaGludCA9IGJvZHkuaGludDtcbiAgICAgIGRlbGV0ZSBib2R5LmhpbnQ7XG4gICAgfVxuICAgIGlmIChib2R5LmV4cGxhaW4pIHtcbiAgICAgIG9wdGlvbnMuZXhwbGFpbiA9IGJvZHkuZXhwbGFpbjtcbiAgICAgIGRlbGV0ZSBib2R5LmV4cGxhaW47XG4gICAgfVxuICAgIGlmIChib2R5LnJlYWRQcmVmZXJlbmNlKSB7XG4gICAgICBvcHRpb25zLnJlYWRQcmVmZXJlbmNlID0gYm9keS5yZWFkUHJlZmVyZW5jZTtcbiAgICAgIGRlbGV0ZSBib2R5LnJlYWRQcmVmZXJlbmNlO1xuICAgIH1cbiAgICBvcHRpb25zLnBpcGVsaW5lID0gQWdncmVnYXRlUm91dGVyLmdldFBpcGVsaW5lKGJvZHkpO1xuICAgIGlmICh0eXBlb2YgYm9keS53aGVyZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGJvZHkud2hlcmUgPSBKU09OLnBhcnNlKGJvZHkud2hlcmUpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdFxuICAgICAgLmZpbmQoXG4gICAgICAgIHJlcS5jb25maWcsXG4gICAgICAgIHJlcS5hdXRoLFxuICAgICAgICB0aGlzLmNsYXNzTmFtZShyZXEpLFxuICAgICAgICBib2R5LndoZXJlLFxuICAgICAgICBvcHRpb25zLFxuICAgICAgICByZXEuaW5mby5jbGllbnRTREssXG4gICAgICAgIHJlcS5pbmZvLmNvbnRleHRcbiAgICAgIClcbiAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgZm9yIChjb25zdCByZXN1bHQgb2YgcmVzcG9uc2UucmVzdWx0cykge1xuICAgICAgICAgIGlmICh0eXBlb2YgcmVzdWx0ID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgVXNlcnNSb3V0ZXIucmVtb3ZlSGlkZGVuUHJvcGVydGllcyhyZXN1bHQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyByZXNwb25zZSB9O1xuICAgICAgfSk7XG4gIH1cblxuICAvKiBCdWlsZHMgYSBwaXBlbGluZSBmcm9tIHRoZSBib2R5LiBPcmlnaW5hbGx5IHRoZSBib2R5IGNvdWxkIGJlIHBhc3NlZCBhcyBhIHNpbmdsZSBvYmplY3QsXG4gICAqIGFuZCBub3cgd2Ugc3VwcG9ydCBtYW55IG9wdGlvbnNcbiAgICpcbiAgICogQXJyYXlcbiAgICpcbiAgICogYm9keTogW3tcbiAgICogICBncm91cDogeyBvYmplY3RJZDogJyRuYW1lJyB9LFxuICAgKiB9XVxuICAgKlxuICAgKiBPYmplY3RcbiAgICpcbiAgICogYm9keToge1xuICAgKiAgIGdyb3VwOiB7IG9iamVjdElkOiAnJG5hbWUnIH0sXG4gICAqIH1cbiAgICpcbiAgICpcbiAgICogUGlwZWxpbmUgT3BlcmF0b3Igd2l0aCBhbiBBcnJheSBvciBhbiBPYmplY3RcbiAgICpcbiAgICogYm9keToge1xuICAgKiAgIHBpcGVsaW5lOiB7XG4gICAqICAgICBncm91cDogeyBvYmplY3RJZDogJyRuYW1lJyB9LFxuICAgKiAgIH1cbiAgICogfVxuICAgKlxuICAgKi9cbiAgc3RhdGljIGdldFBpcGVsaW5lKGJvZHkpIHtcbiAgICBsZXQgcGlwZWxpbmUgPSBib2R5LnBpcGVsaW5lIHx8IGJvZHk7XG4gICAgaWYgKCFBcnJheS5pc0FycmF5KHBpcGVsaW5lKSkge1xuICAgICAgcGlwZWxpbmUgPSBPYmplY3Qua2V5cyhwaXBlbGluZSkubWFwKGtleSA9PiB7XG4gICAgICAgIHJldHVybiB7IFtrZXldOiBwaXBlbGluZVtrZXldIH07XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGlwZWxpbmUubWFwKHN0YWdlID0+IHtcbiAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhzdGFnZSk7XG4gICAgICBpZiAoa2V5cy5sZW5ndGggIT0gMSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFBpcGVsaW5lIHN0YWdlcyBzaG91bGQgb25seSBoYXZlIG9uZSBrZXkgZm91bmQgJHtrZXlzLmpvaW4oJywgJyl9YCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gQWdncmVnYXRlUm91dGVyLnRyYW5zZm9ybVN0YWdlKGtleXNbMF0sIHN0YWdlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyB0cmFuc2Zvcm1TdGFnZShzdGFnZU5hbWUsIHN0YWdlKSB7XG4gICAgaWYgKHN0YWdlTmFtZSA9PT0gJ2dyb3VwJykge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzdGFnZVtzdGFnZU5hbWVdLCAnb2JqZWN0SWQnKSkge1xuICAgICAgICBEZXByZWNhdG9yLmxvZ1J1bnRpbWVEZXByZWNhdGlvbih7XG4gICAgICAgICAgdXNhZ2U6ICdUaGUgdXNlIG9mIG9iamVjdElkIGluIGFnZ3JlZ2F0aW9uIHN0YWdlICRncm91cCcsXG4gICAgICAgICAgc29sdXRpb246ICdVc2UgX2lkIGluc3RlYWQuJyxcbiAgICAgICAgfSk7XG4gICAgICAgIHN0YWdlW3N0YWdlTmFtZV0uX2lkID0gc3RhZ2Vbc3RhZ2VOYW1lXS5vYmplY3RJZDtcbiAgICAgICAgZGVsZXRlIHN0YWdlW3N0YWdlTmFtZV0ub2JqZWN0SWQ7XG4gICAgICB9XG4gICAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzdGFnZVtzdGFnZU5hbWVdLCAnX2lkJykpIHtcbiAgICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFxuICAgICAgICAgIFBhcnNlLkVycm9yLklOVkFMSURfUVVFUlksXG4gICAgICAgICAgYEludmFsaWQgcGFyYW1ldGVyIGZvciBxdWVyeTogZ3JvdXAuIE1pc3Npbmcga2V5IF9pZGBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoc3RhZ2VOYW1lWzBdICE9PSAnJCcpIHtcbiAgICAgIERlcHJlY2F0b3IubG9nUnVudGltZURlcHJlY2F0aW9uKHtcbiAgICAgICAgdXNhZ2U6IFwiVXNpbmcgYWdncmVnYXRpb24gc3RhZ2VzIHdpdGhvdXQgYSBsZWFkaW5nICckJ1wiLFxuICAgICAgICBzb2x1dGlvbjogYFRyeSAkJHtzdGFnZU5hbWV9IGluc3RlYWQuYCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBrZXkgPSBzdGFnZU5hbWVbMF0gPT09ICckJyA/IHN0YWdlTmFtZSA6IGAkJHtzdGFnZU5hbWV9YDtcbiAgICByZXR1cm4geyBba2V5XTogc3RhZ2Vbc3RhZ2VOYW1lXSB9O1xuICB9XG5cbiAgbW91bnRSb3V0ZXMoKSB7XG4gICAgdGhpcy5yb3V0ZSgnR0VUJywgJy9hZ2dyZWdhdGUvOmNsYXNzTmFtZScsIG1pZGRsZXdhcmUucHJvbWlzZUVuZm9yY2VNYXN0ZXJLZXlBY2Nlc3MsIHJlcSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVGaW5kKHJlcSk7XG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQWdncmVnYXRlUm91dGVyO1xuIl19
|
|
121
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBZ2dyZWdhdGVSb3V0ZXIiLCJDbGFzc2VzUm91dGVyIiwiaGFuZGxlRmluZCIsInJlcSIsImJvZHkiLCJPYmplY3QiLCJhc3NpZ24iLCJKU09ORnJvbVF1ZXJ5IiwicXVlcnkiLCJvcHRpb25zIiwiZGlzdGluY3QiLCJTdHJpbmciLCJoaW50IiwiZXhwbGFpbiIsInJlYWRQcmVmZXJlbmNlIiwicGlwZWxpbmUiLCJnZXRQaXBlbGluZSIsIndoZXJlIiwiSlNPTiIsInBhcnNlIiwicmVzdCIsImZpbmQiLCJjb25maWciLCJhdXRoIiwiY2xhc3NOYW1lIiwiaW5mbyIsImNsaWVudFNESyIsImNvbnRleHQiLCJ0aGVuIiwicmVzcG9uc2UiLCJyZXN1bHQiLCJyZXN1bHRzIiwiVXNlcnNSb3V0ZXIiLCJyZW1vdmVIaWRkZW5Qcm9wZXJ0aWVzIiwiQXJyYXkiLCJpc0FycmF5Iiwia2V5cyIsIm1hcCIsImtleSIsInN0YWdlIiwibGVuZ3RoIiwiUGFyc2UiLCJFcnJvciIsIklOVkFMSURfUVVFUlkiLCJqb2luIiwidHJhbnNmb3JtU3RhZ2UiLCJzdGFnZU5hbWUiLCJza2lwS2V5cyIsImluY2x1ZGVzIiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwibW91bnRSb3V0ZXMiLCJyb3V0ZSIsIm1pZGRsZXdhcmUiLCJwcm9taXNlRW5mb3JjZU1hc3RlcktleUFjY2VzcyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Sb3V0ZXJzL0FnZ3JlZ2F0ZVJvdXRlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQ2xhc3Nlc1JvdXRlciBmcm9tICcuL0NsYXNzZXNSb3V0ZXInO1xuaW1wb3J0IHJlc3QgZnJvbSAnLi4vcmVzdCc7XG5pbXBvcnQgKiBhcyBtaWRkbGV3YXJlIGZyb20gJy4uL21pZGRsZXdhcmVzJztcbmltcG9ydCBQYXJzZSBmcm9tICdwYXJzZS9ub2RlJztcbmltcG9ydCBVc2Vyc1JvdXRlciBmcm9tICcuL1VzZXJzUm91dGVyJztcblxuZXhwb3J0IGNsYXNzIEFnZ3JlZ2F0ZVJvdXRlciBleHRlbmRzIENsYXNzZXNSb3V0ZXIge1xuICBoYW5kbGVGaW5kKHJlcSkge1xuICAgIGNvbnN0IGJvZHkgPSBPYmplY3QuYXNzaWduKHJlcS5ib2R5LCBDbGFzc2VzUm91dGVyLkpTT05Gcm9tUXVlcnkocmVxLnF1ZXJ5KSk7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHt9O1xuICAgIGlmIChib2R5LmRpc3RpbmN0KSB7XG4gICAgICBvcHRpb25zLmRpc3RpbmN0ID0gU3RyaW5nKGJvZHkuZGlzdGluY3QpO1xuICAgIH1cbiAgICBpZiAoYm9keS5oaW50KSB7XG4gICAgICBvcHRpb25zLmhpbnQgPSBib2R5LmhpbnQ7XG4gICAgICBkZWxldGUgYm9keS5oaW50O1xuICAgIH1cbiAgICBpZiAoYm9keS5leHBsYWluKSB7XG4gICAgICBvcHRpb25zLmV4cGxhaW4gPSBib2R5LmV4cGxhaW47XG4gICAgICBkZWxldGUgYm9keS5leHBsYWluO1xuICAgIH1cbiAgICBpZiAoYm9keS5yZWFkUHJlZmVyZW5jZSkge1xuICAgICAgb3B0aW9ucy5yZWFkUHJlZmVyZW5jZSA9IGJvZHkucmVhZFByZWZlcmVuY2U7XG4gICAgICBkZWxldGUgYm9keS5yZWFkUHJlZmVyZW5jZTtcbiAgICB9XG4gICAgb3B0aW9ucy5waXBlbGluZSA9IEFnZ3JlZ2F0ZVJvdXRlci5nZXRQaXBlbGluZShib2R5KTtcbiAgICBpZiAodHlwZW9mIGJvZHkud2hlcmUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBib2R5LndoZXJlID0gSlNPTi5wYXJzZShib2R5LndoZXJlKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3RcbiAgICAgIC5maW5kKFxuICAgICAgICByZXEuY29uZmlnLFxuICAgICAgICByZXEuYXV0aCxcbiAgICAgICAgdGhpcy5jbGFzc05hbWUocmVxKSxcbiAgICAgICAgYm9keS53aGVyZSxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgcmVxLmluZm8uY2xpZW50U0RLLFxuICAgICAgICByZXEuaW5mby5jb250ZXh0XG4gICAgICApXG4gICAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgcmVzdWx0IG9mIHJlc3BvbnNlLnJlc3VsdHMpIHtcbiAgICAgICAgICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIFVzZXJzUm91dGVyLnJlbW92ZUhpZGRlblByb3BlcnRpZXMocmVzdWx0KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgcmVzcG9uc2UgfTtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyogQnVpbGRzIGEgcGlwZWxpbmUgZnJvbSB0aGUgYm9keS4gT3JpZ2luYWxseSB0aGUgYm9keSBjb3VsZCBiZSBwYXNzZWQgYXMgYSBzaW5nbGUgb2JqZWN0LFxuICAgKiBhbmQgbm93IHdlIHN1cHBvcnQgbWFueSBvcHRpb25zXG4gICAqXG4gICAqIEFycmF5XG4gICAqXG4gICAqIGJvZHk6IFt7XG4gICAqICAgZ3JvdXA6IHsgb2JqZWN0SWQ6ICckbmFtZScgfSxcbiAgICogfV1cbiAgICpcbiAgICogT2JqZWN0XG4gICAqXG4gICAqIGJvZHk6IHtcbiAgICogICBncm91cDogeyBvYmplY3RJZDogJyRuYW1lJyB9LFxuICAgKiB9XG4gICAqXG4gICAqXG4gICAqIFBpcGVsaW5lIE9wZXJhdG9yIHdpdGggYW4gQXJyYXkgb3IgYW4gT2JqZWN0XG4gICAqXG4gICAqIGJvZHk6IHtcbiAgICogICBwaXBlbGluZToge1xuICAgKiAgICAgZ3JvdXA6IHsgb2JqZWN0SWQ6ICckbmFtZScgfSxcbiAgICogICB9XG4gICAqIH1cbiAgICpcbiAgICovXG4gIHN0YXRpYyBnZXRQaXBlbGluZShib2R5KSB7XG4gICAgbGV0IHBpcGVsaW5lID0gYm9keS5waXBlbGluZSB8fCBib2R5O1xuICAgIGlmICghQXJyYXkuaXNBcnJheShwaXBlbGluZSkpIHtcbiAgICAgIHBpcGVsaW5lID0gT2JqZWN0LmtleXMocGlwZWxpbmUpLm1hcChrZXkgPT4ge1xuICAgICAgICByZXR1cm4geyBba2V5XTogcGlwZWxpbmVba2V5XSB9O1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHBpcGVsaW5lLm1hcChzdGFnZSA9PiB7XG4gICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoc3RhZ2UpO1xuICAgICAgaWYgKGtleXMubGVuZ3RoICE9PSAxKSB7XG4gICAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihcbiAgICAgICAgICBQYXJzZS5FcnJvci5JTlZBTElEX1FVRVJZLFxuICAgICAgICAgIGBQaXBlbGluZSBzdGFnZXMgc2hvdWxkIG9ubHkgaGF2ZSBvbmUga2V5IGJ1dCBmb3VuZCAke2tleXMuam9pbignLCAnKX0uYFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIEFnZ3JlZ2F0ZVJvdXRlci50cmFuc2Zvcm1TdGFnZShrZXlzWzBdLCBzdGFnZSk7XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgdHJhbnNmb3JtU3RhZ2Uoc3RhZ2VOYW1lLCBzdGFnZSkge1xuICAgIGNvbnN0IHNraXBLZXlzID0gWydkaXN0aW5jdCcsICd3aGVyZSddO1xuICAgIGlmIChza2lwS2V5cy5pbmNsdWRlcyhzdGFnZU5hbWUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChzdGFnZU5hbWVbMF0gIT09ICckJykge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLklOVkFMSURfUVVFUlksIGBJbnZhbGlkIGFnZ3JlZ2F0ZSBzdGFnZSAnJHtzdGFnZU5hbWV9Jy5gKTtcbiAgICB9XG4gICAgaWYgKHN0YWdlTmFtZSA9PT0gJyRncm91cCcpIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc3RhZ2Vbc3RhZ2VOYW1lXSwgJ29iamVjdElkJykpIHtcbiAgICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFxuICAgICAgICAgIFBhcnNlLkVycm9yLklOVkFMSURfUVVFUlksXG4gICAgICAgICAgYENhbm5vdCB1c2UgJ29iamVjdElkJyBpbiBhZ2dyZWdhdGlvbiBzdGFnZSAkZ3JvdXAuYFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoc3RhZ2Vbc3RhZ2VOYW1lXSwgJ19pZCcpKSB7XG4gICAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihcbiAgICAgICAgICBQYXJzZS5FcnJvci5JTlZBTElEX1FVRVJZLFxuICAgICAgICAgIGBJbnZhbGlkIHBhcmFtZXRlciBmb3IgcXVlcnk6IGdyb3VwLiBNaXNzaW5nIGtleSBfaWRgXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7IFtzdGFnZU5hbWVdOiBzdGFnZVtzdGFnZU5hbWVdIH07XG4gIH1cblxuICBtb3VudFJvdXRlcygpIHtcbiAgICB0aGlzLnJvdXRlKCdHRVQnLCAnL2FnZ3JlZ2F0ZS86Y2xhc3NOYW1lJywgbWlkZGxld2FyZS5wcm9taXNlRW5mb3JjZU1hc3RlcktleUFjY2VzcywgcmVxID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmhhbmRsZUZpbmQocmVxKTtcbiAgICB9KTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBBZ2dyZWdhdGVSb3V0ZXI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFBd0M7QUFBQTtBQUFBO0FBRWpDLE1BQU1BLGVBQWUsU0FBU0Msc0JBQWEsQ0FBQztFQUNqREMsVUFBVSxDQUFDQyxHQUFHLEVBQUU7SUFDZCxNQUFNQyxJQUFJLEdBQUdDLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDSCxHQUFHLENBQUNDLElBQUksRUFBRUgsc0JBQWEsQ0FBQ00sYUFBYSxDQUFDSixHQUFHLENBQUNLLEtBQUssQ0FBQyxDQUFDO0lBQzVFLE1BQU1DLE9BQU8sR0FBRyxDQUFDLENBQUM7SUFDbEIsSUFBSUwsSUFB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
|
|
@@ -4,29 +4,23 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.AnalyticsRouter = void 0;
|
|
7
|
-
|
|
8
7
|
var _PromiseRouter = _interopRequireDefault(require("../PromiseRouter"));
|
|
9
|
-
|
|
10
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
-
|
|
12
9
|
// AnalyticsRouter.js
|
|
10
|
+
|
|
13
11
|
function appOpened(req) {
|
|
14
12
|
const analyticsController = req.config.analyticsController;
|
|
15
13
|
return analyticsController.appOpened(req);
|
|
16
14
|
}
|
|
17
|
-
|
|
18
15
|
function trackEvent(req) {
|
|
19
16
|
const analyticsController = req.config.analyticsController;
|
|
20
17
|
return analyticsController.trackEvent(req);
|
|
21
18
|
}
|
|
22
|
-
|
|
23
19
|
class AnalyticsRouter extends _PromiseRouter.default {
|
|
24
20
|
mountRoutes() {
|
|
25
21
|
this.route('POST', '/events/AppOpened', appOpened);
|
|
26
22
|
this.route('POST', '/events/:eventName', trackEvent);
|
|
27
23
|
}
|
|
28
|
-
|
|
29
24
|
}
|
|
30
|
-
|
|
31
25
|
exports.AnalyticsRouter = AnalyticsRouter;
|
|
32
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhcHBPcGVuZWQiLCJyZXEiLCJhbmFseXRpY3NDb250cm9sbGVyIiwiY29uZmlnIiwidHJhY2tFdmVudCIsIkFuYWx5dGljc1JvdXRlciIsIlByb21pc2VSb3V0ZXIiLCJtb3VudFJvdXRlcyIsInJvdXRlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL1JvdXRlcnMvQW5hbHl0aWNzUm91dGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEFuYWx5dGljc1JvdXRlci5qc1xuaW1wb3J0IFByb21pc2VSb3V0ZXIgZnJvbSAnLi4vUHJvbWlzZVJvdXRlcic7XG5cbmZ1bmN0aW9uIGFwcE9wZW5lZChyZXEpIHtcbiAgY29uc3QgYW5hbHl0aWNzQ29udHJvbGxlciA9IHJlcS5jb25maWcuYW5hbHl0aWNzQ29udHJvbGxlcjtcbiAgcmV0dXJuIGFuYWx5dGljc0NvbnRyb2xsZXIuYXBwT3BlbmVkKHJlcSk7XG59XG5cbmZ1bmN0aW9uIHRyYWNrRXZlbnQocmVxKSB7XG4gIGNvbnN0IGFuYWx5dGljc0NvbnRyb2xsZXIgPSByZXEuY29uZmlnLmFuYWx5dGljc0NvbnRyb2xsZXI7XG4gIHJldHVybiBhbmFseXRpY3NDb250cm9sbGVyLnRyYWNrRXZlbnQocmVxKTtcbn1cblxuZXhwb3J0IGNsYXNzIEFuYWx5dGljc1JvdXRlciBleHRlbmRzIFByb21pc2VSb3V0ZXIge1xuICBtb3VudFJvdXRlcygpIHtcbiAgICB0aGlzLnJvdXRlKCdQT1NUJywgJy9ldmVudHMvQXBwT3BlbmVkJywgYXBwT3BlbmVkKTtcbiAgICB0aGlzLnJvdXRlKCdQT1NUJywgJy9ldmVudHMvOmV2ZW50TmFtZScsIHRyYWNrRXZlbnQpO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBO0FBQTZDO0FBRDdDOztBQUdBLFNBQVNBLFNBQVMsQ0FBQ0MsR0FBRyxFQUFFO0VBQ3RCLE1BQU1DLG1CQUFtQixHQUFHRCxHQUFHLENBQUNFLE1BQU0sQ0FBQ0QsbUJBQW1CO0VBQzFELE9BQU9BLG1CQUFtQixDQUFDRixTQUFTLENBQUNDLEdBQUcsQ0FBQztBQUMzQztBQUVBLFNBQVNHLFVBQVUsQ0FBQ0gsR0FBRyxFQUFFO0VBQ3ZCLE1BQU1DLG1CQUFtQixHQUFHRCxHQUFHLENBQUNFLE1BQU0sQ0FBQ0QsbUJBQW1CO0VBQzFELE9BQU9BLG1CQUFtQixDQUFDRSxVQUFVLENBQUNILEdBQUcsQ0FBQztBQUM1QztBQUVPLE1BQU1JLGVBQWUsU0FBU0Msc0JBQWEsQ0FBQztFQUNqREMsV0FBVyxHQUFHO0lBQ1osSUFBSSxDQUFDQyxLQUFLLENBQUMsTUFBTSxFQUFFLG1CQUFtQixFQUFFUixTQUFTLENBQUM7SUFDbEQsSUFBSSxDQUFDUSxLQUFLLENBQUMsTUFBTSxFQUFFLG9CQUFvQixFQUFFSixVQUFVLENBQUM7RUFDdEQ7QUFDRjtBQUFDIn0=
|
|
@@ -4,29 +4,19 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = exports.AudiencesRouter = void 0;
|
|
7
|
-
|
|
8
7
|
var _ClassesRouter = _interopRequireDefault(require("./ClassesRouter"));
|
|
9
|
-
|
|
10
8
|
var _rest = _interopRequireDefault(require("../rest"));
|
|
11
|
-
|
|
12
9
|
var middleware = _interopRequireWildcard(require("../middlewares"));
|
|
13
|
-
|
|
14
10
|
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); }
|
|
15
|
-
|
|
16
11
|
function _interopRequireWildcard(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 = {}; 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; }
|
|
17
|
-
|
|
18
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
-
|
|
20
13
|
class AudiencesRouter extends _ClassesRouter.default {
|
|
21
14
|
className() {
|
|
22
15
|
return '_Audience';
|
|
23
16
|
}
|
|
24
|
-
|
|
25
17
|
handleFind(req) {
|
|
26
18
|
const body = Object.assign(req.body, _ClassesRouter.default.JSONFromQuery(req.query));
|
|
27
|
-
|
|
28
19
|
const options = _ClassesRouter.default.optionsFromBody(body, req.config.defaultLimit);
|
|
29
|
-
|
|
30
20
|
return _rest.default.find(req.config, req.auth, '_Audience', body.where, options, req.info.clientSDK, req.info.context).then(response => {
|
|
31
21
|
response.results.forEach(item => {
|
|
32
22
|
item.query = JSON.parse(item.query);
|
|
@@ -36,14 +26,12 @@ class AudiencesRouter extends _ClassesRouter.default {
|
|
|
36
26
|
};
|
|
37
27
|
});
|
|
38
28
|
}
|
|
39
|
-
|
|
40
29
|
handleGet(req) {
|
|
41
30
|
return super.handleGet(req).then(data => {
|
|
42
31
|
data.response.query = JSON.parse(data.response.query);
|
|
43
32
|
return data;
|
|
44
33
|
});
|
|
45
34
|
}
|
|
46
|
-
|
|
47
35
|
mountRoutes() {
|
|
48
36
|
this.route('GET', '/push_audiences', middleware.promiseEnforceMasterKeyAccess, req => {
|
|
49
37
|
return this.handleFind(req);
|
|
@@ -61,10 +49,8 @@ class AudiencesRouter extends _ClassesRouter.default {
|
|
|
61
49
|
return this.handleDelete(req);
|
|
62
50
|
});
|
|
63
51
|
}
|
|
64
|
-
|
|
65
52
|
}
|
|
66
|
-
|
|
67
53
|
exports.AudiencesRouter = AudiencesRouter;
|
|
68
54
|
var _default = AudiencesRouter;
|
|
69
55
|
exports.default = _default;
|
|
70
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBdWRpZW5jZXNSb3V0ZXIiLCJDbGFzc2VzUm91dGVyIiwiY2xhc3NOYW1lIiwiaGFuZGxlRmluZCIsInJlcSIsImJvZHkiLCJPYmplY3QiLCJhc3NpZ24iLCJKU09ORnJvbVF1ZXJ5IiwicXVlcnkiLCJvcHRpb25zIiwib3B0aW9uc0Zyb21Cb2R5IiwiY29uZmlnIiwiZGVmYXVsdExpbWl0IiwicmVzdCIsImZpbmQiLCJhdXRoIiwid2hlcmUiLCJpbmZvIiwiY2xpZW50U0RLIiwiY29udGV4dCIsInRoZW4iLCJyZXNwb25zZSIsInJlc3VsdHMiLCJmb3JFYWNoIiwiaXRlbSIsIkpTT04iLCJwYXJzZSIsImhhbmRsZUdldCIsImRhdGEiLCJtb3VudFJvdXRlcyIsInJvdXRlIiwibWlkZGxld2FyZSIsInByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzIiwiaGFuZGxlQ3JlYXRlIiwiaGFuZGxlVXBkYXRlIiwiaGFuZGxlRGVsZXRlIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL1JvdXRlcnMvQXVkaWVuY2VzUm91dGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDbGFzc2VzUm91dGVyIGZyb20gJy4vQ2xhc3Nlc1JvdXRlcic7XG5pbXBvcnQgcmVzdCBmcm9tICcuLi9yZXN0JztcbmltcG9ydCAqIGFzIG1pZGRsZXdhcmUgZnJvbSAnLi4vbWlkZGxld2FyZXMnO1xuXG5leHBvcnQgY2xhc3MgQXVkaWVuY2VzUm91dGVyIGV4dGVuZHMgQ2xhc3Nlc1JvdXRlciB7XG4gIGNsYXNzTmFtZSgpIHtcbiAgICByZXR1cm4gJ19BdWRpZW5jZSc7XG4gIH1cblxuICBoYW5kbGVGaW5kKHJlcSkge1xuICAgIGNvbnN0IGJvZHkgPSBPYmplY3QuYXNzaWduKHJlcS5ib2R5LCBDbGFzc2VzUm91dGVyLkpTT05Gcm9tUXVlcnkocmVxLnF1ZXJ5KSk7XG4gICAgY29uc3Qgb3B0aW9ucyA9IENsYXNzZXNSb3V0ZXIub3B0aW9uc0Zyb21Cb2R5KGJvZHksIHJlcS5jb25maWcuZGVmYXVsdExpbWl0KTtcblxuICAgIHJldHVybiByZXN0XG4gICAgICAuZmluZChcbiAgICAgICAgcmVxLmNvbmZpZyxcbiAgICAgICAgcmVxLmF1dGgsXG4gICAgICAgICdfQXVkaWVuY2UnLFxuICAgICAgICBib2R5LndoZXJlLFxuICAgICAgICBvcHRpb25zLFxuICAgICAgICByZXEuaW5mby5jbGllbnRTREssXG4gICAgICAgIHJlcS5pbmZvLmNvbnRleHRcbiAgICAgIClcbiAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgcmVzcG9uc2UucmVzdWx0cy5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICAgIGl0ZW0ucXVlcnkgPSBKU09OLnBhcnNlKGl0ZW0ucXVlcnkpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4geyByZXNwb25zZTogcmVzcG9uc2UgfTtcbiAgICAgIH0pO1xuICB9XG5cbiAgaGFuZGxlR2V0KHJlcSkge1xuICAgIHJldHVybiBzdXBlci5oYW5kbGVHZXQocmVxKS50aGVuKGRhdGEgPT4ge1xuICAgICAgZGF0YS5yZXNwb25zZS5xdWVyeSA9IEpTT04ucGFyc2UoZGF0YS5yZXNwb25zZS5xdWVyeSk7XG5cbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH0pO1xuICB9XG5cbiAgbW91bnRSb3V0ZXMoKSB7XG4gICAgdGhpcy5yb3V0ZSgnR0VUJywgJy9wdXNoX2F1ZGllbmNlcycsIG1pZGRsZXdhcmUucHJvbWlzZUVuZm9yY2VNYXN0ZXJLZXlBY2Nlc3MsIHJlcSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVGaW5kKHJlcSk7XG4gICAgfSk7XG4gICAgdGhpcy5yb3V0ZShcbiAgICAgICdHRVQnLFxuICAgICAgJy9wdXNoX2F1ZGllbmNlcy86b2JqZWN0SWQnLFxuICAgICAgbWlkZGxld2FyZS5wcm9taXNlRW5mb3JjZU1hc3RlcktleUFjY2VzcyxcbiAgICAgIHJlcSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhbmRsZUdldChyZXEpO1xuICAgICAgfVxuICAgICk7XG4gICAgdGhpcy5yb3V0ZSgnUE9TVCcsICcvcHVzaF9hdWRpZW5jZXMnLCBtaWRkbGV3YXJlLnByb21pc2VFbmZvcmNlTWFzdGVyS2V5QWNjZXNzLCByZXEgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlQ3JlYXRlKHJlcSk7XG4gICAgfSk7XG4gICAgdGhpcy5yb3V0ZShcbiAgICAgICdQVVQnLFxuICAgICAgJy9wdXNoX2F1ZGllbmNlcy86b2JqZWN0SWQnLFxuICAgICAgbWlkZGxld2FyZS5wcm9taXNlRW5mb3JjZU1hc3RlcktleUFjY2VzcyxcbiAgICAgIHJlcSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhbmRsZVVwZGF0ZShyZXEpO1xuICAgICAgfVxuICAgICk7XG4gICAgdGhpcy5yb3V0ZShcbiAgICAgICdERUxFVEUnLFxuICAgICAgJy9wdXNoX2F1ZGllbmNlcy86b2JqZWN0SWQnLFxuICAgICAgbWlkZGxld2FyZS5wcm9taXNlRW5mb3JjZU1hc3RlcktleUFjY2VzcyxcbiAgICAgIHJlcSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhhbmRsZURlbGV0ZShyZXEpO1xuICAgICAgfVxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQXVkaWVuY2VzUm91dGVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFBNkM7QUFBQTtBQUFBO0FBRXRDLE1BQU1BLGVBQWUsU0FBU0Msc0JBQWEsQ0FBQztFQUNqREMsU0FBUyxHQUFHO0lBQ1YsT0FBTyxXQUFXO0VBQ3BCO0VBRUFDLFVBQVUsQ0FBQ0MsR0FBRyxFQUFFO0lBQ2QsTUFBTUMsSUFBSSxHQUFHQyxNQUFNLENBQUNDLE1BQU0sQ0FBQ0gsR0FBRyxDQUFDQyxJQUFJLEVBQUVKLHNCQUFhLENBQUNPLGFBQWEsQ0FBQ0osR0FBRyxDQUFDSyxLQUFLLENBQUMsQ0FBQztJQUM1RSxNQUFNQyxPQUFPLEdBQUdULHNCQUFhLENBQUNVLGVBQWUsQ0FBQ04sSUFBSSxFQUFFRCxHQUFHLENBQUNRLE1BQU0sQ0FBQ0MsWUFBWSxDQUFDO0lBRTVFLE9BQU9DLGFBQUksQ0FDUkMsSUFBSSxDQUNIWCxHQUFHLENBQUNRLE1BQU0sRUFDVlIsR0FBRyxDQUFDWSxJQUFJLEVBQ1IsV0FBVyxFQUNYWCxJQUFJLENBQUNZLEtBQUssRUFDVlAsT0FBTyxFQUNQTixHQUFHLENBQUNjLElBQUksQ0FBQ0MsU0FBUyxFQUNsQmYsR0FBRyxDQUFDYyxJQUFJLENBQUNFLE9BQU8sQ0FDakIsQ0FDQUMsSUFBSSxDQUFDQyxRQUFRLElBQUk7TUFDaEJBLFFBQVEsQ0FBQ0MsT0FBTyxDQUFDQyxPQUFPLENBQUNDLElBQUksSUFBSTtRQUMvQkEsSUFBSSxDQUFDaEIsS0FBSyxHQUFHaUIsSUFBSSxDQUFDQyxLQUFLLENBQUNGLElBQUksQ0FBQ2hCLEtBQUssQ0FBQztNQUNyQyxDQUFDLENBQUM7TUFFRixPQUFPO1FBQUVhLFFBQVEsRUFBRUE7TUFBUyxDQUFDO0lBQy9CLENBQUMsQ0FBQztFQUNOO0VBRUFNLFNBQVMsQ0FBQ3hCLEdBQUcsRUFBRTtJQUNiLE9BQU8sS0FBSyxDQUFDd0IsU0FBUyxDQUFDeEIsR0FBRyxDQUFDLENBQUNpQixJQUFJLENBQUNRLElBQUksSUFBSTtNQUN2Q0EsSUFBSSxDQUFDUCxRQUFRLENBQUNiLEtBQUssR0FBR2lCLElBQUksQ0FBQ0MsS0FBSyxDQUFDRSxJQUFJLENBQUNQLFFBQVEsQ0FBQ2IsS0FBSyxDQUFDO01BRXJELE9BQU9vQixJQUFJO0lBQ2IsQ0FBQyxDQUFDO0VBQ0o7RUFFQUMsV0FBVyxHQUFHO0lBQ1osSUFBSSxDQUFDQyxLQUFLLENBQUMsS0FBSyxFQUFFLGlCQUFpQixFQUFFQyxVQUFVLENBQUNDLDZCQUE2QixFQUFFN0IsR0FBRyxJQUFJO01BQ3BGLE9BQU8sSUFBSSxDQUFDRCxVQUFVLENBQUNDLEdBQUcsQ0FBQztJQUM3QixDQUFDLENBQUM7SUFDRixJQUFJLENBQUMyQixLQUFLLENBQ1IsS0FBSyxFQUNMLDJCQUEyQixFQUMzQkMsVUFBVSxDQUFDQyw2QkFBNkIsRUFDeEM3QixHQUFHLElBQUk7TUFDTCxPQUFPLElBQUksQ0FBQ3dCLFNBQVMsQ0FBQ3hCLEdBQUcsQ0FBQztJQUM1QixDQUFDLENBQ0Y7SUFDRCxJQUFJLENBQUMyQixLQUFLLENBQUMsTUFBTSxFQUFFLGlCQUFpQixFQUFFQyxVQUFVLENBQUNDLDZCQUE2QixFQUFFN0IsR0FBRyxJQUFJO01BQ3JGLE9BQU8sSUFBSSxDQUFDOEIsWUFBWSxDQUFDOUIsR0FBRyxDQUFDO0lBQy9CLENBQUMsQ0FBQztJQUNGLElBQUksQ0FBQzJCLEtBQUssQ0FDUixLQUFLLEVBQ0wsMkJBQTJCLEVBQzNCQyxVQUFVLENBQUNDLDZCQUE2QixFQUN4QzdCLEdBQUcsSUFBSTtNQUNMLE9BQU8sSUFBSSxDQUFDK0IsWUFBWSxDQUFDL0IsR0FBRyxDQUFDO0lBQy9CLENBQUMsQ0FDRjtJQUNELElBQUksQ0FBQzJCLEtBQUssQ0FDUixRQUFRLEVBQ1IsMkJBQTJCLEVBQzNCQyxVQUFVLENBQUNDLDZCQUE2QixFQUN4QzdCLEdBQUcsSUFBSTtNQUNMLE9BQU8sSUFBSSxDQUFDZ0MsWUFBWSxDQUFDaEMsR0FBRyxDQUFDO0lBQy9CLENBQUMsQ0FDRjtFQUNIO0FBQ0Y7QUFBQztBQUFBLGVBRWNKLGVBQWU7QUFBQSJ9
|
|
@@ -4,117 +4,90 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = exports.ClassesRouter = void 0;
|
|
7
|
-
|
|
8
7
|
var _PromiseRouter = _interopRequireDefault(require("../PromiseRouter"));
|
|
9
|
-
|
|
10
8
|
var _rest = _interopRequireDefault(require("../rest"));
|
|
11
|
-
|
|
12
9
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
13
|
-
|
|
14
10
|
var _node = _interopRequireDefault(require("parse/node"));
|
|
15
|
-
|
|
16
11
|
var _middlewares = require("../middlewares");
|
|
17
|
-
|
|
18
12
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
-
|
|
20
13
|
const ALLOWED_GET_QUERY_KEYS = ['keys', 'include', 'excludeKeys', 'readPreference', 'includeReadPreference', 'subqueryReadPreference'];
|
|
21
|
-
|
|
22
14
|
class ClassesRouter extends _PromiseRouter.default {
|
|
23
15
|
className(req) {
|
|
24
16
|
return req.params.className;
|
|
25
17
|
}
|
|
26
|
-
|
|
27
18
|
handleFind(req) {
|
|
28
19
|
const body = Object.assign(req.body, ClassesRouter.JSONFromQuery(req.query));
|
|
29
20
|
const options = ClassesRouter.optionsFromBody(body, req.config.defaultLimit);
|
|
30
|
-
|
|
31
21
|
if (req.config.maxLimit && body.limit > req.config.maxLimit) {
|
|
32
22
|
// Silently replace the limit on the query with the max configured
|
|
33
23
|
options.limit = Number(req.config.maxLimit);
|
|
34
24
|
}
|
|
35
|
-
|
|
36
25
|
if (body.redirectClassNameForKey) {
|
|
37
26
|
options.redirectClassNameForKey = String(body.redirectClassNameForKey);
|
|
38
27
|
}
|
|
39
|
-
|
|
40
28
|
if (typeof body.where === 'string') {
|
|
41
29
|
body.where = JSON.parse(body.where);
|
|
42
30
|
}
|
|
43
|
-
|
|
44
31
|
return _rest.default.find(req.config, req.auth, this.className(req), body.where, options, req.info.clientSDK, req.info.context).then(response => {
|
|
45
32
|
return {
|
|
46
33
|
response: response
|
|
47
34
|
};
|
|
48
35
|
});
|
|
49
|
-
}
|
|
50
|
-
|
|
36
|
+
}
|
|
51
37
|
|
|
38
|
+
// Returns a promise for a {response} object.
|
|
52
39
|
handleGet(req) {
|
|
53
40
|
const body = Object.assign(req.body, ClassesRouter.JSONFromQuery(req.query));
|
|
54
41
|
const options = {};
|
|
55
|
-
|
|
56
42
|
for (const key of Object.keys(body)) {
|
|
57
43
|
if (ALLOWED_GET_QUERY_KEYS.indexOf(key) === -1) {
|
|
58
44
|
throw new _node.default.Error(_node.default.Error.INVALID_QUERY, 'Improper encode of parameter');
|
|
59
45
|
}
|
|
60
46
|
}
|
|
61
|
-
|
|
62
47
|
if (body.keys != null) {
|
|
63
48
|
options.keys = String(body.keys);
|
|
64
49
|
}
|
|
65
|
-
|
|
66
50
|
if (body.include != null) {
|
|
67
51
|
options.include = String(body.include);
|
|
68
52
|
}
|
|
69
|
-
|
|
70
53
|
if (body.excludeKeys != null) {
|
|
71
54
|
options.excludeKeys = String(body.excludeKeys);
|
|
72
55
|
}
|
|
73
|
-
|
|
74
56
|
if (typeof body.readPreference === 'string') {
|
|
75
57
|
options.readPreference = body.readPreference;
|
|
76
58
|
}
|
|
77
|
-
|
|
78
59
|
if (typeof body.includeReadPreference === 'string') {
|
|
79
60
|
options.includeReadPreference = body.includeReadPreference;
|
|
80
61
|
}
|
|
81
|
-
|
|
82
62
|
if (typeof body.subqueryReadPreference === 'string') {
|
|
83
63
|
options.subqueryReadPreference = body.subqueryReadPreference;
|
|
84
64
|
}
|
|
85
|
-
|
|
86
65
|
return _rest.default.get(req.config, req.auth, this.className(req), req.params.objectId, options, req.info.clientSDK, req.info.context).then(response => {
|
|
87
66
|
if (!response.results || response.results.length == 0) {
|
|
88
67
|
throw new _node.default.Error(_node.default.Error.OBJECT_NOT_FOUND, 'Object not found.');
|
|
89
68
|
}
|
|
90
|
-
|
|
91
69
|
if (this.className(req) === '_User') {
|
|
92
70
|
delete response.results[0].sessionToken;
|
|
93
71
|
const user = response.results[0];
|
|
94
|
-
|
|
95
72
|
if (req.auth.user && user.objectId == req.auth.user.id) {
|
|
96
73
|
// Force the session token
|
|
97
74
|
response.results[0].sessionToken = req.info.sessionToken;
|
|
98
75
|
}
|
|
99
76
|
}
|
|
100
|
-
|
|
101
77
|
return {
|
|
102
78
|
response: response.results[0]
|
|
103
79
|
};
|
|
104
80
|
});
|
|
105
81
|
}
|
|
106
|
-
|
|
107
82
|
handleCreate(req) {
|
|
108
83
|
return _rest.default.create(req.config, req.auth, this.className(req), req.body, req.info.clientSDK, req.info.context);
|
|
109
84
|
}
|
|
110
|
-
|
|
111
85
|
handleUpdate(req) {
|
|
112
86
|
const where = {
|
|
113
87
|
objectId: req.params.objectId
|
|
114
88
|
};
|
|
115
89
|
return _rest.default.update(req.config, req.auth, this.className(req), where, req.body, req.info.clientSDK, req.info.context);
|
|
116
90
|
}
|
|
117
|
-
|
|
118
91
|
handleDelete(req) {
|
|
119
92
|
return _rest.default.del(req.config, req.auth, this.className(req), req.params.objectId, req.info.context).then(() => {
|
|
120
93
|
return {
|
|
@@ -122,10 +95,8 @@ class ClassesRouter extends _PromiseRouter.default {
|
|
|
122
95
|
};
|
|
123
96
|
});
|
|
124
97
|
}
|
|
125
|
-
|
|
126
98
|
static JSONFromQuery(query) {
|
|
127
99
|
const json = {};
|
|
128
|
-
|
|
129
100
|
for (const [key, value] of _lodash.default.entries(query)) {
|
|
130
101
|
try {
|
|
131
102
|
json[key] = JSON.parse(value);
|
|
@@ -133,78 +104,59 @@ class ClassesRouter extends _PromiseRouter.default {
|
|
|
133
104
|
json[key] = value;
|
|
134
105
|
}
|
|
135
106
|
}
|
|
136
|
-
|
|
137
107
|
return json;
|
|
138
108
|
}
|
|
139
|
-
|
|
140
109
|
static optionsFromBody(body, defaultLimit) {
|
|
141
110
|
const allowConstraints = ['skip', 'limit', 'order', 'count', 'keys', 'excludeKeys', 'include', 'includeAll', 'redirectClassNameForKey', 'where', 'readPreference', 'includeReadPreference', 'subqueryReadPreference', 'hint', 'explain'];
|
|
142
|
-
|
|
143
111
|
for (const key of Object.keys(body)) {
|
|
144
112
|
if (allowConstraints.indexOf(key) === -1) {
|
|
145
113
|
throw new _node.default.Error(_node.default.Error.INVALID_QUERY, `Invalid parameter for query: ${key}`);
|
|
146
114
|
}
|
|
147
115
|
}
|
|
148
|
-
|
|
149
116
|
const options = {};
|
|
150
|
-
|
|
151
117
|
if (body.skip) {
|
|
152
118
|
options.skip = Number(body.skip);
|
|
153
119
|
}
|
|
154
|
-
|
|
155
120
|
if (body.limit || body.limit === 0) {
|
|
156
121
|
options.limit = Number(body.limit);
|
|
157
122
|
} else {
|
|
158
123
|
options.limit = Number(defaultLimit);
|
|
159
124
|
}
|
|
160
|
-
|
|
161
125
|
if (body.order) {
|
|
162
126
|
options.order = String(body.order);
|
|
163
127
|
}
|
|
164
|
-
|
|
165
128
|
if (body.count) {
|
|
166
129
|
options.count = true;
|
|
167
130
|
}
|
|
168
|
-
|
|
169
131
|
if (body.keys != null) {
|
|
170
132
|
options.keys = String(body.keys);
|
|
171
133
|
}
|
|
172
|
-
|
|
173
134
|
if (body.excludeKeys != null) {
|
|
174
135
|
options.excludeKeys = String(body.excludeKeys);
|
|
175
136
|
}
|
|
176
|
-
|
|
177
137
|
if (body.include != null) {
|
|
178
138
|
options.include = String(body.include);
|
|
179
139
|
}
|
|
180
|
-
|
|
181
140
|
if (body.includeAll) {
|
|
182
141
|
options.includeAll = true;
|
|
183
142
|
}
|
|
184
|
-
|
|
185
143
|
if (typeof body.readPreference === 'string') {
|
|
186
144
|
options.readPreference = body.readPreference;
|
|
187
145
|
}
|
|
188
|
-
|
|
189
146
|
if (typeof body.includeReadPreference === 'string') {
|
|
190
147
|
options.includeReadPreference = body.includeReadPreference;
|
|
191
148
|
}
|
|
192
|
-
|
|
193
149
|
if (typeof body.subqueryReadPreference === 'string') {
|
|
194
150
|
options.subqueryReadPreference = body.subqueryReadPreference;
|
|
195
151
|
}
|
|
196
|
-
|
|
197
152
|
if (body.hint && (typeof body.hint === 'string' || typeof body.hint === 'object')) {
|
|
198
153
|
options.hint = body.hint;
|
|
199
154
|
}
|
|
200
|
-
|
|
201
155
|
if (body.explain) {
|
|
202
156
|
options.explain = body.explain;
|
|
203
157
|
}
|
|
204
|
-
|
|
205
158
|
return options;
|
|
206
159
|
}
|
|
207
|
-
|
|
208
160
|
mountRoutes() {
|
|
209
161
|
this.route('GET', '/classes/:className', req => {
|
|
210
162
|
return this.handleFind(req);
|
|
@@ -222,10 +174,8 @@ class ClassesRouter extends _PromiseRouter.default {
|
|
|
222
174
|
return this.handleDelete(req);
|
|
223
175
|
});
|
|
224
176
|
}
|
|
225
|
-
|
|
226
177
|
}
|
|
227
|
-
|
|
228
178
|
exports.ClassesRouter = ClassesRouter;
|
|
229
179
|
var _default = ClassesRouter;
|
|
230
180
|
exports.default = _default;
|
|
231
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9Sb3V0ZXJzL0NsYXNzZXNSb3V0ZXIuanMiXSwibmFtZXMiOlsiQUxMT1dFRF9HRVRfUVVFUllfS0VZUyIsIkNsYXNzZXNSb3V0ZXIiLCJQcm9taXNlUm91dGVyIiwiY2xhc3NOYW1lIiwicmVxIiwicGFyYW1zIiwiaGFuZGxlRmluZCIsImJvZHkiLCJPYmplY3QiLCJhc3NpZ24iLCJKU09ORnJvbVF1ZXJ5IiwicXVlcnkiLCJvcHRpb25zIiwib3B0aW9uc0Zyb21Cb2R5IiwiY29uZmlnIiwiZGVmYXVsdExpbWl0IiwibWF4TGltaXQiLCJsaW1pdCIsIk51bWJlciIsInJlZGlyZWN0Q2xhc3NOYW1lRm9yS2V5IiwiU3RyaW5nIiwid2hlcmUiLCJKU09OIiwicGFyc2UiLCJyZXN0IiwiZmluZCIsImF1dGgiLCJpbmZvIiwiY2xpZW50U0RLIiwiY29udGV4dCIsInRoZW4iLCJyZXNwb25zZSIsImhhbmRsZUdldCIsImtleSIsImtleXMiLCJpbmRleE9mIiwiUGFyc2UiLCJFcnJvciIsIklOVkFMSURfUVVFUlkiLCJpbmNsdWRlIiwiZXhjbHVkZUtleXMiLCJyZWFkUHJlZmVyZW5jZSIsImluY2x1ZGVSZWFkUHJlZmVyZW5jZSIsInN1YnF1ZXJ5UmVhZFByZWZlcmVuY2UiLCJnZXQiLCJvYmplY3RJZCIsInJlc3VsdHMiLCJsZW5ndGgiLCJPQkpFQ1RfTk9UX0ZPVU5EIiwic2Vzc2lvblRva2VuIiwidXNlciIsImlkIiwiaGFuZGxlQ3JlYXRlIiwiY3JlYXRlIiwiaGFuZGxlVXBkYXRlIiwidXBkYXRlIiwiaGFuZGxlRGVsZXRlIiwiZGVsIiwianNvbiIsInZhbHVlIiwiXyIsImVudHJpZXMiLCJlIiwiYWxsb3dDb25zdHJhaW50cyIsInNraXAiLCJvcmRlciIsImNvdW50IiwiaW5jbHVkZUFsbCIsImhpbnQiLCJleHBsYWluIiwibW91bnRSb3V0ZXMiLCJyb3V0ZSIsInByb21pc2VFbnN1cmVJZGVtcG90ZW5jeSJdLCJtYXBwaW5ncyI6Ijs7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bkUsR0FBRyxJQUFJO0FBQzNELGFBQU8sS0FBS29ELFlBQUwsQ0FBa0JwRCxHQUFsQixDQUFQO0FBQ0QsS0FGRDtBQUdEOztBQTdOOEM7OztlQWdPbENILGEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUHJvbWlzZVJvdXRlciBmcm9tICcuLi9Qcm9taXNlUm91dGVyJztcbmltcG9ydCByZXN0IGZyb20gJy4uL3Jlc3QnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBQYXJzZSBmcm9tICdwYXJzZS9ub2RlJztcbmltcG9ydCB7IHByb21pc2VFbnN1cmVJZGVtcG90ZW5jeSB9IGZyb20gJy4uL21pZGRsZXdhcmVzJztcblxuY29uc3QgQUxMT1dFRF9HRVRfUVVFUllfS0VZUyA9IFtcbiAgJ2tleXMnLFxuICAnaW5jbHVkZScsXG4gICdleGNsdWRlS2V5cycsXG4gICdyZWFkUHJlZmVyZW5jZScsXG4gICdpbmNsdWRlUmVhZFByZWZlcmVuY2UnLFxuICAnc3VicXVlcnlSZWFkUHJlZmVyZW5jZScsXG5dO1xuXG5leHBvcnQgY2xhc3MgQ2xhc3Nlc1JvdXRlciBleHRlbmRzIFByb21pc2VSb3V0ZXIge1xuICBjbGFzc05hbWUocmVxKSB7XG4gICAgcmV0dXJuIHJlcS5wYXJhbXMuY2xhc3NOYW1lO1xuICB9XG5cbiAgaGFuZGxlRmluZChyZXEpIHtcbiAgICBjb25zdCBib2R5ID0gT2JqZWN0LmFzc2lnbihyZXEuYm9keSwgQ2xhc3Nlc1JvdXRlci5KU09ORnJvbVF1ZXJ5KHJlcS5xdWVyeSkpO1xuICAgIGNvbnN0IG9wdGlvbnMgPSBDbGFzc2VzUm91dGVyLm9wdGlvbnNGcm9tQm9keShib2R5LCByZXEuY29uZmlnLmRlZmF1bHRMaW1pdCk7XG4gICAgaWYgKHJlcS5jb25maWcubWF4TGltaXQgJiYgYm9keS5saW1pdCA+IHJlcS5jb25maWcubWF4TGltaXQpIHtcbiAgICAgIC8vIFNpbGVudGx5IHJlcGxhY2UgdGhlIGxpbWl0IG9uIHRoZSBxdWVyeSB3aXRoIHRoZSBtYXggY29uZmlndXJlZFxuICAgICAgb3B0aW9ucy5saW1pdCA9IE51bWJlcihyZXEuY29uZmlnLm1heExpbWl0KTtcbiAgICB9XG4gICAgaWYgKGJvZHkucmVkaXJlY3RDbGFzc05hbWVGb3JLZXkpIHtcbiAgICAgIG9wdGlvbnMucmVkaXJlY3RDbGFzc05hbWVGb3JLZXkgPSBTdHJpbmcoYm9keS5yZWRpcmVjdENsYXNzTmFtZUZvcktleSk7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgYm9keS53aGVyZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGJvZHkud2hlcmUgPSBKU09OLnBhcnNlKGJvZHkud2hlcmUpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdFxuICAgICAgLmZpbmQoXG4gICAgICAgIHJlcS5jb25maWcsXG4gICAgICAgIHJlcS5hdXRoLFxuICAgICAgICB0aGlzLmNsYXNzTmFtZShyZXEpLFxuICAgICAgICBib2R5LndoZXJlLFxuICAgICAgICBvcHRpb25zLFxuICAgICAgICByZXEuaW5mby5jbGllbnRTREssXG4gICAgICAgIHJlcS5pbmZvLmNvbnRleHRcbiAgICAgIClcbiAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgcmV0dXJuIHsgcmVzcG9uc2U6IHJlc3BvbnNlIH07XG4gICAgICB9KTtcbiAgfVxuXG4gIC8vIFJldHVybnMgYSBwcm9taXNlIGZvciBhIHtyZXNwb25zZX0gb2JqZWN0LlxuICBoYW5kbGVHZXQocmVxKSB7XG4gICAgY29uc3QgYm9keSA9IE9iamVjdC5hc3NpZ24ocmVxLmJvZHksIENsYXNzZXNSb3V0ZXIuSlNPTkZyb21RdWVyeShyZXEucXVlcnkpKTtcbiAgICBjb25zdCBvcHRpb25zID0ge307XG5cbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhib2R5KSkge1xuICAgICAgaWYgKEFMTE9XRURfR0VUX1FVRVJZX0tFWVMuaW5kZXhPZihrZXkpID09PSAtMSkge1xuICAgICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuSU5WQUxJRF9RVUVSWSwgJ0ltcHJvcGVyIGVuY29kZSBvZiBwYXJhbWV0ZXInKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoYm9keS5rZXlzICE9IG51bGwpIHtcbiAgICAgIG9wdGlvbnMua2V5cyA9IFN0cmluZyhib2R5LmtleXMpO1xuICAgIH1cbiAgICBpZiAoYm9keS5pbmNsdWRlICE9IG51bGwpIHtcbiAgICAgIG9wdGlvbnMuaW5jbHVkZSA9IFN0cmluZyhib2R5LmluY2x1ZGUpO1xuICAgIH1cbiAgICBpZiAoYm9keS5leGNsdWRlS2V5cyAhPSBudWxsKSB7XG4gICAgICBvcHRpb25zLmV4Y2x1ZGVLZXlzID0gU3RyaW5nKGJvZHkuZXhjbHVkZUtleXMpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGJvZHkucmVhZFByZWZlcmVuY2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICBvcHRpb25zLnJlYWRQcmVmZXJlbmNlID0gYm9keS5yZWFkUHJlZmVyZW5jZTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBib2R5LmluY2x1ZGVSZWFkUHJlZmVyZW5jZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIG9wdGlvbnMuaW5jbHVkZVJlYWRQcmVmZXJlbmNlID0gYm9keS5pbmNsdWRlUmVhZFByZWZlcmVuY2U7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgYm9keS5zdWJxdWVyeVJlYWRQcmVmZXJlbmNlID09PSAnc3RyaW5nJykge1xuICAgICAgb3B0aW9ucy5zdWJxdWVyeVJlYWRQcmVmZXJlbmNlID0gYm9keS5zdWJxdWVyeVJlYWRQcmVmZXJlbmNlO1xuICAgIH1cblxuICAgIHJldHVybiByZXN0XG4gICAgICAuZ2V0KFxuICAgICAgICByZXEuY29uZmlnLFxuICAgICAgICByZXEuYXV0aCxcbiAgICAgICAgdGhpcy5jbGFzc05hbWUocmVxKSxcbiAgICAgICAgcmVxLnBhcmFtcy5vYmplY3RJZCxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgcmVxLmluZm8uY2xpZW50U0RLLFxuICAgICAgICByZXEuaW5mby5jb250ZXh0XG4gICAgICApXG4gICAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgIGlmICghcmVzcG9uc2UucmVzdWx0cyB8fCByZXNwb25zZS5yZXN1bHRzLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLk9CSkVDVF9OT1RfRk9VTkQsICdPYmplY3Qgbm90IGZvdW5kLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuY2xhc3NOYW1lKHJlcSkgPT09ICdfVXNlcicpIHtcbiAgICAgICAgICBkZWxldGUgcmVzcG9uc2UucmVzdWx0c1swXS5zZXNzaW9uVG9rZW47XG5cbiAgICAgICAgICBjb25zdCB1c2VyID0gcmVzcG9uc2UucmVzdWx0c1swXTtcblxuICAgICAgICAgIGlmIChyZXEuYXV0aC51c2VyICYmIHVzZXIub2JqZWN0SWQgPT0gcmVxLmF1dGgudXNlci5pZCkge1xuICAgICAgICAgICAgLy8gRm9yY2UgdGhlIHNlc3Npb24gdG9rZW5cbiAgICAgICAgICAgIHJlc3BvbnNlLnJlc3VsdHNbMF0uc2Vzc2lvblRva2VuID0gcmVxLmluZm8uc2Vzc2lvblRva2VuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyByZXNwb25zZTogcmVzcG9uc2UucmVzdWx0c1swXSB9O1xuICAgICAgfSk7XG4gIH1cblxuICBoYW5kbGVDcmVhdGUocmVxKSB7XG4gICAgcmV0dXJuIHJlc3QuY3JlYXRlKFxuICAgICAgcmVxLmNvbmZpZyxcbiAgICAgIHJlcS5hdXRoLFxuICAgICAgdGhpcy5jbGFzc05hbWUocmVxKSxcbiAgICAgIHJlcS5ib2R5LFxuICAgICAgcmVxLmluZm8uY2xpZW50U0RLLFxuICAgICAgcmVxLmluZm8uY29udGV4dFxuICAgICk7XG4gIH1cblxuICBoYW5kbGVVcGRhdGUocmVxKSB7XG4gICAgY29uc3Qgd2hlcmUgPSB7IG9iamVjdElkOiByZXEucGFyYW1zLm9iamVjdElkIH07XG4gICAgcmV0dXJuIHJlc3QudXBkYXRlKFxuICAgICAgcmVxLmNvbmZpZyxcbiAgICAgIHJlcS5hdXRoLFxuICAgICAgdGhpcy5jbGFzc05hbWUocmVxKSxcbiAgICAgIHdoZXJlLFxuICAgICAgcmVxLmJvZHksXG4gICAgICByZXEuaW5mby5jbGllbnRTREssXG4gICAgICByZXEuaW5mby5jb250ZXh0XG4gICAgKTtcbiAgfVxuXG4gIGhhbmRsZURlbGV0ZShyZXEpIHtcbiAgICByZXR1cm4gcmVzdFxuICAgICAgLmRlbChyZXEuY29uZmlnLCByZXEuYXV0aCwgdGhpcy5jbGFzc05hbWUocmVxKSwgcmVxLnBhcmFtcy5vYmplY3RJZCwgcmVxLmluZm8uY29udGV4dClcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHsgcmVzcG9uc2U6IHt9IH07XG4gICAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBKU09ORnJvbVF1ZXJ5KHF1ZXJ5KSB7XG4gICAgY29uc3QganNvbiA9IHt9O1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIF8uZW50cmllcyhxdWVyeSkpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGpzb25ba2V5XSA9IEpTT04ucGFyc2UodmFsdWUpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBqc29uW2tleV0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgb3B0aW9uc0Zyb21Cb2R5KGJvZHksIGRlZmF1bHRMaW1pdCkge1xuICAgIGNvbnN0IGFsbG93Q29uc3RyYWludHMgPSBbXG4gICAgICAnc2tpcCcsXG4gICAgICAnbGltaXQnLFxuICAgICAgJ29yZGVyJyxcbiAgICAgICdjb3VudCcsXG4gICAgICAna2V5cycsXG4gICAgICAnZXhjbHVkZUtleXMnLFxuICAgICAgJ2luY2x1ZGUnLFxuICAgICAgJ2luY2x1ZGVBbGwnLFxuICAgICAgJ3JlZGlyZWN0Q2xhc3NOYW1lRm9yS2V5JyxcbiAgICAgICd3aGVyZScsXG4gICAgICAncmVhZFByZWZlcmVuY2UnLFxuICAgICAgJ2luY2x1ZGVSZWFkUHJlZmVyZW5jZScsXG4gICAgICAnc3VicXVlcnlSZWFkUHJlZmVyZW5jZScsXG4gICAgICAnaGludCcsXG4gICAgICAnZXhwbGFpbicsXG4gICAgXTtcblxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGJvZHkpKSB7XG4gICAgICBpZiAoYWxsb3dDb25zdHJhaW50cy5pbmRleE9mKGtleSkgPT09IC0xKSB7XG4gICAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5JTlZBTElEX1FVRVJZLCBgSW52YWxpZCBwYXJhbWV0ZXIgZm9yIHF1ZXJ5OiAke2tleX1gKTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3Qgb3B0aW9ucyA9IHt9O1xuICAgIGlmIChib2R5LnNraXApIHtcbiAgICAgIG9wdGlvbnMuc2tpcCA9IE51bWJlcihib2R5LnNraXApO1xuICAgIH1cbiAgICBpZiAoYm9keS5saW1pdCB8fCBib2R5LmxpbWl0ID09PSAwKSB7XG4gICAgICBvcHRpb25zLmxpbWl0ID0gTnVtYmVyKGJvZHkubGltaXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBvcHRpb25zLmxpbWl0ID0gTnVtYmVyKGRlZmF1bHRMaW1pdCk7XG4gICAgfVxuICAgIGlmIChib2R5Lm9yZGVyKSB7XG4gICAgICBvcHRpb25zLm9yZGVyID0gU3RyaW5nKGJvZHkub3JkZXIpO1xuICAgIH1cbiAgICBpZiAoYm9keS5jb3VudCkge1xuICAgICAgb3B0aW9ucy5jb3VudCA9IHRydWU7XG4gICAgfVxuICAgIGlmIChib2R5LmtleXMgIT0gbnVsbCkge1xuICAgICAgb3B0aW9ucy5rZXlzID0gU3RyaW5nKGJvZHkua2V5cyk7XG4gICAgfVxuICAgIGlmIChib2R5LmV4Y2x1ZGVLZXlzICE9IG51bGwpIHtcbiAgICAgIG9wdGlvbnMuZXhjbHVkZUtleXMgPSBTdHJpbmcoYm9keS5leGNsdWRlS2V5cyk7XG4gICAgfVxuICAgIGlmIChib2R5LmluY2x1ZGUgIT0gbnVsbCkge1xuICAgICAgb3B0aW9ucy5pbmNsdWRlID0gU3RyaW5nKGJvZHkuaW5jbHVkZSk7XG4gICAgfVxuICAgIGlmIChib2R5LmluY2x1ZGVBbGwpIHtcbiAgICAgIG9wdGlvbnMuaW5jbHVkZUFsbCA9IHRydWU7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgYm9keS5yZWFkUHJlZmVyZW5jZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIG9wdGlvbnMucmVhZFByZWZlcmVuY2UgPSBib2R5LnJlYWRQcmVmZXJlbmNlO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGJvZHkuaW5jbHVkZVJlYWRQcmVmZXJlbmNlID09PSAnc3RyaW5nJykge1xuICAgICAgb3B0aW9ucy5pbmNsdWRlUmVhZFByZWZlcmVuY2UgPSBib2R5LmluY2x1ZGVSZWFkUHJlZmVyZW5jZTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBib2R5LnN1YnF1ZXJ5UmVhZFByZWZlcmVuY2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICBvcHRpb25zLnN1YnF1ZXJ5UmVhZFByZWZlcmVuY2UgPSBib2R5LnN1YnF1ZXJ5UmVhZFByZWZlcmVuY2U7XG4gICAgfVxuICAgIGlmIChib2R5LmhpbnQgJiYgKHR5cGVvZiBib2R5LmhpbnQgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBib2R5LmhpbnQgPT09ICdvYmplY3QnKSkge1xuICAgICAgb3B0aW9ucy5oaW50ID0gYm9keS5oaW50O1xuICAgIH1cbiAgICBpZiAoYm9keS5leHBsYWluKSB7XG4gICAgICBvcHRpb25zLmV4cGxhaW4gPSBib2R5LmV4cGxhaW47XG4gICAgfVxuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG5cbiAgbW91bnRSb3V0ZXMoKSB7XG4gICAgdGhpcy5yb3V0ZSgnR0VUJywgJy9jbGFzc2VzLzpjbGFzc05hbWUnLCByZXEgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlRmluZChyZXEpO1xuICAgIH0pO1xuICAgIHRoaXMucm91dGUoJ0dFVCcsICcvY2xhc3Nlcy86Y2xhc3NOYW1lLzpvYmplY3RJZCcsIHJlcSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVHZXQocmVxKTtcbiAgICB9KTtcbiAgICB0aGlzLnJvdXRlKCdQT1NUJywgJy9jbGFzc2VzLzpjbGFzc05hbWUnLCBwcm9taXNlRW5zdXJlSWRlbXBvdGVuY3ksIHJlcSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVDcmVhdGUocmVxKTtcbiAgICB9KTtcbiAgICB0aGlzLnJvdXRlKCdQVVQnLCAnL2NsYXNzZXMvOmNsYXNzTmFtZS86b2JqZWN0SWQnLCBwcm9taXNlRW5zdXJlSWRlbXBvdGVuY3ksIHJlcSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVVcGRhdGUocmVxKTtcbiAgICB9KTtcbiAgICB0aGlzLnJvdXRlKCdERUxFVEUnLCAnL2NsYXNzZXMvOmNsYXNzTmFtZS86b2JqZWN0SWQnLCByZXEgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlRGVsZXRlKHJlcSk7XG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQ2xhc3Nlc1JvdXRlcjtcbiJdfQ==
|
|
181
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBTExPV0VEX0dFVF9RVUVSWV9LRVlTIiwiQ2xhc3Nlc1JvdXRlciIsIlByb21pc2VSb3V0ZXIiLCJjbGFzc05hbWUiLCJyZXEiLCJwYXJhbXMiLCJoYW5kbGVGaW5kIiwiYm9keSIsIk9iamVjdCIsImFzc2lnbiIsIkpTT05Gcm9tUXVlcnkiLCJxdWVyeSIsIm9wdGlvbnMiLCJvcHRpb25zRnJvbUJvZHkiLCJjb25maWciLCJkZWZhdWx0TGltaXQiLCJtYXhMaW1pdCIsImxpbWl0IiwiTnVtYmVyIiwicmVkaXJlY3RDbGFzc05hbWVGb3JLZXkiLCJTdHJpbmciLCJ3aGVyZSIsIkpTT04iLCJwYXJzZSIsInJlc3QiLCJmaW5kIiwiYXV0aCIsImluZm8iLCJjbGllbnRTREsiLCJjb250ZXh0IiwidGhlbiIsInJlc3BvbnNlIiwiaGFuZGxlR2V0Iiwia2V5Iiwia2V5cyIsImluZGV4T2YiLCJQYXJzZSIsIkVycm9yIiwiSU5WQUxJRF9RVUVSWSIsImluY2x1ZGUiLCJleGNsdWRlS2V5cyIsInJlYWRQcmVmZXJlbmNlIiwiaW5jbHVkZVJlYWRQcmVmZXJlbmNlIiwic3VicXVlcnlSZWFkUHJlZmVyZW5jZSIsImdldCIsIm9iamVjdElkIiwicmVzdWx0cyIsImxlbmd0aCIsIk9CSkVDVF9OT1RfRk9VTkQiLCJzZXNzaW9uVG9rZW4iLCJ1c2VyIiwiaWQiLCJoYW5kbGVDcmVhdGUiLCJjcmVhdGUiLCJoYW5kbGVVcGRhdGUiLCJ1cGRhdGUiLCJoYW5kbGVEZWxldGUiLCJkZWwiLCJqc29uIiwidmFsdWUiLCJfIiwiZW50cmllcyIsImUiLCJhbGxvd0NvbnN0cmFpbnRzIiwic2tpcCIsIm9yZGVyIiwiY291bnQiLCJpbmNsdWRlQWxsIiwiaGludCIsImV4cGxhaW4iLCJtb3VudFJvdXRlcyIsInJvdXRlIiwicHJvbWlzZUVuc3VyZUlkZW1wb3RlbmN5Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL1JvdXRlcnMvQ2xhc3Nlc1JvdXRlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUHJvbWlzZVJvdXRlciBmcm9tICcuLi9Qcm9taXNlUm91dGVyJztcbmltcG9ydCByZXN0IGZyb20gJy4uL3Jlc3QnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBQYXJzZSBmcm9tICdwYXJzZS9ub2RlJztcbmltcG9ydCB7IHByb21pc2VFbnN1cmVJZGVtcG90ZW5jeSB9IGZyb20gJy4uL21pZGRsZXdhcmVzJztcblxuY29uc3QgQUxMT1dFRF9HRVRfUVVFUllfS0VZUyA9IFtcbiAgJ2tleXMnLFxuICAnaW5jbHVkZScsXG4gICdleGNsdWRlS2V5cycsXG4gICdyZWFkUHJlZmVyZW5jZScsXG4gICdpbmNsdWRlUmVhZFByZWZlcmVuY2UnLFxuICAnc3VicXVlcnlSZWFkUHJlZmVyZW5jZScsXG5dO1xuXG5leHBvcnQgY2xhc3MgQ2xhc3Nlc1JvdXRlciBleHRlbmRzIFByb21pc2VSb3V0ZXIge1xuICBjbGFzc05hbWUocmVxKSB7XG4gICAgcmV0dXJuIHJlcS5wYXJhbXMuY2xhc3NOYW1lO1xuICB9XG5cbiAgaGFuZGxlRmluZChyZXEpIHtcbiAgICBjb25zdCBib2R5ID0gT2JqZWN0LmFzc2lnbihyZXEuYm9keSwgQ2xhc3Nlc1JvdXRlci5KU09ORnJvbVF1ZXJ5KHJlcS5xdWVyeSkpO1xuICAgIGNvbnN0IG9wdGlvbnMgPSBDbGFzc2VzUm91dGVyLm9wdGlvbnNGcm9tQm9keShib2R5LCByZXEuY29uZmlnLmRlZmF1bHRMaW1pdCk7XG4gICAgaWYgKHJlcS5jb25maWcubWF4TGltaXQgJiYgYm9keS5saW1pdCA+IHJlcS5jb25maWcubWF4TGltaXQpIHtcbiAgICAgIC8vIFNpbGVudGx5IHJlcGxhY2UgdGhlIGxpbWl0IG9uIHRoZSBxdWVyeSB3aXRoIHRoZSBtYXggY29uZmlndXJlZFxuICAgICAgb3B0aW9ucy5saW1pdCA9IE51bWJlcihyZXEuY29uZmlnLm1heExpbWl0KTtcbiAgICB9XG4gICAgaWYgKGJvZHkucmVkaXJlY3RDbGFzc05hbWVGb3JLZXkpIHtcbiAgICAgIG9wdGlvbnMucmVkaXJlY3RDbGFzc05hbWVGb3JLZXkgPSBTdHJpbmcoYm9keS5yZWRpcmVjdENsYXNzTmFtZUZvcktleSk7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgYm9keS53aGVyZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGJvZHkud2hlcmUgPSBKU09OLnBhcnNlKGJvZHkud2hlcmUpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdFxuICAgICAgLmZpbmQoXG4gICAgICAgIHJlcS5jb25maWcsXG4gICAgICAgIHJlcS5hdXRoLFxuICAgICAgICB0aGlzLmNsYXNzTmFtZShyZXEpLFxuICAgICAgICBib2R5LndoZXJlLFxuICAgICAgICBvcHRpb25zLFxuICAgICAgICByZXEuaW5mby5jbGllbnRTREssXG4gICAgICAgIHJlcS5pbmZvLmNvbnRleHRcbiAgICAgIClcbiAgICAgIC50aGVuKHJlc3BvbnNlID0+IHtcbiAgICAgICAgcmV0dXJuIHsgcmVzcG9uc2U6IHJlc3BvbnNlIH07XG4gICAgICB9KTtcbiAgfVxuXG4gIC8vIFJldHVybnMgYSBwcm9taXNlIGZvciBhIHtyZXNwb25zZX0gb2JqZWN0LlxuICBoYW5kbGVHZXQocmVxKSB7XG4gICAgY29uc3QgYm9keSA9IE9iamVjdC5hc3NpZ24ocmVxLmJvZHksIENsYXNzZXNSb3V0ZXIuSlNPTkZyb21RdWVyeShyZXEucXVlcnkpKTtcbiAgICBjb25zdCBvcHRpb25zID0ge307XG5cbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhib2R5KSkge1xuICAgICAgaWYgKEFMTE9XRURfR0VUX1FVRVJZX0tFWVMuaW5kZXhPZihrZXkpID09PSAtMSkge1xuICAgICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuSU5WQUxJRF9RVUVSWSwgJ0ltcHJvcGVyIGVuY29kZSBvZiBwYXJhbWV0ZXInKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoYm9keS5rZXlzICE9IG51bGwpIHtcbiAgICAgIG9wdGlvbnMua2V5cyA9IFN0cmluZyhib2R5LmtleXMpO1xuICAgIH1cbiAgICBpZiAoYm9keS5pbmNsdWRlICE9IG51bGwpIHtcbiAgICAgIG9wdGlvbnMuaW5jbHVkZSA9IFN0cmluZyhib2R5LmluY2x1ZGUpO1xuICAgIH1cbiAgICBpZiAoYm9keS5leGNsdWRlS2V5cyAhPSBudWxsKSB7XG4gICAgICBvcHRpb25zLmV4Y2x1ZGVLZXlzID0gU3RyaW5nKGJvZHkuZXhjbHVkZUtleXMpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGJvZHkucmVhZFByZWZlcmVuY2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICBvcHRpb25zLnJlYWRQcmVmZXJlbmNlID0gYm9keS5yZWFkUHJlZmVyZW5jZTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBib2R5LmluY2x1ZGVSZWFkUHJlZmVyZW5jZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIG9wdGlvbnMuaW5jbHVkZVJlYWRQcmVmZXJlbmNlID0gYm9keS5pbmNsdWRlUmVhZFByZWZlcmVuY2U7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgYm9keS5zdWJxdWVyeVJlYWRQcmVmZXJlbmNlID09PSAnc3RyaW5nJykge1xuICAgICAgb3B0aW9ucy5zdWJxdWVyeVJlYWRQcmVmZXJlbmNlID0gYm9keS5zdWJxdWVyeVJlYWRQcmVmZXJlbmNlO1xuICAgIH1cblxuICAgIHJldHVybiByZXN0XG4gICAgICAuZ2V0KFxuICAgICAgICByZXEuY29uZmlnLFxuICAgICAgICByZXEuYXV0aCxcbiAgICAgICAgdGhpcy5jbGFzc05hbWUocmVxKSxcbiAgICAgICAgcmVxLnBhcmFtcy5vYmplY3RJZCxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgcmVxLmluZm8uY2xpZW50U0RLLFxuICAgICAgICByZXEuaW5mby5jb250ZXh0XG4gICAgICApXG4gICAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgIGlmICghcmVzcG9uc2UucmVzdWx0cyB8fCByZXNwb25zZS5yZXN1bHRzLmxlbmd0aCA9PSAwKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLk9CSkVDVF9OT1RfRk9VTkQsICdPYmplY3Qgbm90IGZvdW5kLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuY2xhc3NOYW1lKHJlcSkgPT09ICdfVXNlcicpIHtcbiAgICAgICAgICBkZWxldGUgcmVzcG9uc2UucmVzdWx0c1swXS5zZXNzaW9uVG9rZW47XG5cbiAgICAgICAgICBjb25zdCB1c2VyID0gcmVzcG9uc2UucmVzdWx0c1swXTtcblxuICAgICAgICAgIGlmIChyZXEuYXV0aC51c2VyICYmIHVzZXIub2JqZWN0SWQgPT0gcmVxLmF1dGgudXNlci5pZCkge1xuICAgICAgICAgICAgLy8gRm9yY2UgdGhlIHNlc3Npb24gdG9rZW5cbiAgICAgICAgICAgIHJlc3BvbnNlLnJlc3VsdHNbMF0uc2Vzc2lvblRva2VuID0gcmVxLmluZm8uc2Vzc2lvblRva2VuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyByZXNwb25zZTogcmVzcG9uc2UucmVzdWx0c1swXSB9O1xuICAgICAgfSk7XG4gIH1cblxuICBoYW5kbGVDcmVhdGUocmVxKSB7XG4gICAgcmV0dXJuIHJlc3QuY3JlYXRlKFxuICAgICAgcmVxLmNvbmZpZyxcbiAgICAgIHJlcS5hdXRoLFxuICAgICAgdGhpcy5jbGFzc05hbWUocmVxKSxcbiAgICAgIHJlcS5ib2R5LFxuICAgICAgcmVxLmluZm8uY2xpZW50U0RLLFxuICAgICAgcmVxLmluZm8uY29udGV4dFxuICAgICk7XG4gIH1cblxuICBoYW5kbGVVcGRhdGUocmVxKSB7XG4gICAgY29uc3Qgd2hlcmUgPSB7IG9iamVjdElkOiByZXEucGFyYW1zLm9iamVjdElkIH07XG4gICAgcmV0dXJuIHJlc3QudXBkYXRlKFxuICAgICAgcmVxLmNvbmZpZyxcbiAgICAgIHJlcS5hdXRoLFxuICAgICAgdGhpcy5jbGFzc05hbWUocmVxKSxcbiAgICAgIHdoZXJlLFxuICAgICAgcmVxLmJvZHksXG4gICAgICByZXEuaW5mby5jbGllbnRTREssXG4gICAgICByZXEuaW5mby5jb250ZXh0XG4gICAgKTtcbiAgfVxuXG4gIGhhbmRsZURlbGV0ZShyZXEpIHtcbiAgICByZXR1cm4gcmVzdFxuICAgICAgLmRlbChyZXEuY29uZmlnLCByZXEuYXV0aCwgdGhpcy5jbGFzc05hbWUocmVxKSwgcmVxLnBhcmFtcy5vYmplY3RJZCwgcmVxLmluZm8uY29udGV4dClcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHsgcmVzcG9uc2U6IHt9IH07XG4gICAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBKU09ORnJvbVF1ZXJ5KHF1ZXJ5KSB7XG4gICAgY29uc3QganNvbiA9IHt9O1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIF8uZW50cmllcyhxdWVyeSkpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGpzb25ba2V5XSA9IEpTT04ucGFyc2UodmFsdWUpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBqc29uW2tleV0gPSB2YWx1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGpzb247XG4gIH1cblxuICBzdGF0aWMgb3B0aW9uc0Zyb21Cb2R5KGJvZHksIGRlZmF1bHRMaW1pdCkge1xuICAgIGNvbnN0IGFsbG93Q29uc3RyYWludHMgPSBbXG4gICAgICAnc2tpcCcsXG4gICAgICAnbGltaXQnLFxuICAgICAgJ29yZGVyJyxcbiAgICAgICdjb3VudCcsXG4gICAgICAna2V5cycsXG4gICAgICAnZXhjbHVkZUtleXMnLFxuICAgICAgJ2luY2x1ZGUnLFxuICAgICAgJ2luY2x1ZGVBbGwnLFxuICAgICAgJ3JlZGlyZWN0Q2xhc3NOYW1lRm9yS2V5JyxcbiAgICAgICd3aGVyZScsXG4gICAgICAncmVhZFByZWZlcmVuY2UnLFxuICAgICAgJ2luY2x1ZGVSZWFkUHJlZmVyZW5jZScsXG4gICAgICAnc3VicXVlcnlSZWFkUHJlZmVyZW5jZScsXG4gICAgICAnaGludCcsXG4gICAgICAnZXhwbGFpbicsXG4gICAgXTtcblxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGJvZHkpKSB7XG4gICAgICBpZiAoYWxsb3dDb25zdHJhaW50cy5pbmRleE9mKGtleSkgPT09IC0xKSB7XG4gICAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5JTlZBTElEX1FVRVJZLCBgSW52YWxpZCBwYXJhbWV0ZXIgZm9yIHF1ZXJ5OiAke2tleX1gKTtcbiAgICAgIH1cbiAgICB9XG4gICAgY29uc3Qgb3B0aW9ucyA9IHt9O1xuICAgIGlmIChib2R5LnNraXApIHtcbiAgICAgIG9wdGlvbnMuc2tpcCA9IE51bWJlcihib2R5LnNraXApO1xuICAgIH1cbiAgICBpZiAoYm9keS5saW1pdCB8fCBib2R5LmxpbWl0ID09PSAwKSB7XG4gICAgICBvcHRpb25zLmxpbWl0ID0gTnVtYmVyKGJvZHkubGltaXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBvcHRpb25zLmxpbWl0ID0gTnVtYmVyKGRlZmF1bHRMaW1pdCk7XG4gICAgfVxuICAgIGlmIChib2R5Lm9yZGVyKSB7XG4gICAgICBvcHRpb25zLm9yZGVyID0gU3RyaW5nKGJvZHkub3JkZXIpO1xuICAgIH1cbiAgICBpZiAoYm9keS5jb3VudCkge1xuICAgICAgb3B0aW9ucy5jb3VudCA9IHRydWU7XG4gICAgfVxuICAgIGlmIChib2R5LmtleXMgIT0gbnVsbCkge1xuICAgICAgb3B0aW9ucy5rZXlzID0gU3RyaW5nKGJvZHkua2V5cyk7XG4gICAgfVxuICAgIGlmIChib2R5LmV4Y2x1ZGVLZXlzICE9IG51bGwpIHtcbiAgICAgIG9wdGlvbnMuZXhjbHVkZUtleXMgPSBTdHJpbmcoYm9keS5leGNsdWRlS2V5cyk7XG4gICAgfVxuICAgIGlmIChib2R5LmluY2x1ZGUgIT0gbnVsbCkge1xuICAgICAgb3B0aW9ucy5pbmNsdWRlID0gU3RyaW5nKGJvZHkuaW5jbHVkZSk7XG4gICAgfVxuICAgIGlmIChib2R5LmluY2x1ZGVBbGwpIHtcbiAgICAgIG9wdGlvbnMuaW5jbHVkZUFsbCA9IHRydWU7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgYm9keS5yZWFkUHJlZmVyZW5jZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIG9wdGlvbnMucmVhZFByZWZlcmVuY2UgPSBib2R5LnJlYWRQcmVmZXJlbmNlO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGJvZHkuaW5jbHVkZVJlYWRQcmVmZXJlbmNlID09PSAnc3RyaW5nJykge1xuICAgICAgb3B0aW9ucy5pbmNsdWRlUmVhZFByZWZlcmVuY2UgPSBib2R5LmluY2x1ZGVSZWFkUHJlZmVyZW5jZTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBib2R5LnN1YnF1ZXJ5UmVhZFByZWZlcmVuY2UgPT09ICdzdHJpbmcnKSB7XG4gICAgICBvcHRpb25zLnN1YnF1ZXJ5UmVhZFByZWZlcmVuY2UgPSBib2R5LnN1YnF1ZXJ5UmVhZFByZWZlcmVuY2U7XG4gICAgfVxuICAgIGlmIChib2R5LmhpbnQgJiYgKHR5cGVvZiBib2R5LmhpbnQgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBib2R5LmhpbnQgPT09ICdvYmplY3QnKSkge1xuICAgICAgb3B0aW9ucy5oaW50ID0gYm9keS5oaW50O1xuICAgIH1cbiAgICBpZiAoYm9keS5leHBsYWluKSB7XG4gICAgICBvcHRpb25zLmV4cGxhaW4gPSBib2R5LmV4cGxhaW47XG4gICAgfVxuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG5cbiAgbW91bnRSb3V0ZXMoKSB7XG4gICAgdGhpcy5yb3V0ZSgnR0VUJywgJy9jbGFzc2VzLzpjbGFzc05hbWUnLCByZXEgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlRmluZChyZXEpO1xuICAgIH0pO1xuICAgIHRoaXMucm91dGUoJ0dFVCcsICcvY2xhc3Nlcy86Y2xhc3NOYW1lLzpvYmplY3RJZCcsIHJlcSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVHZXQocmVxKTtcbiAgICB9KTtcbiAgICB0aGlzLnJvdXRlKCdQT1NUJywgJy9jbGFzc2VzLzpjbGFzc05hbWUnLCBwcm9taXNlRW5zdXJlSWRlbXBvdGVuY3ksIHJlcSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVDcmVhdGUocmVxKTtcbiAgICB9KTtcbiAgICB0aGlzLnJvdXRlKCdQVVQnLCAnL2NsYXNzZXMvOmNsYXNzTmFtZS86b2JqZWN0SWQnLCBwcm9taXNlRW5zdXJlSWRlbXBvdGVuY3ksIHJlcSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5oYW5kbGVVcGRhdGUocmVxKTtcbiAgICB9KTtcbiAgICB0aGlzLnJvdXRlKCdERUxFVEUnLCAnL2NsYXNzZXMvOmNsYXNzTmFtZS86b2JqZWN0SWQnLCByZXEgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuaGFuZGxlRGVsZXRlKHJlcSk7XG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgQ2xhc3Nlc1JvdXRlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUEwRDtBQUUxRCxNQUFNQSxzQkFBc0IsR0FBRyxDQUM3QixNQUFNLEVBQ04sU0FBUyxFQUNULGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsdUJBQXVCLEVBQ3ZCLHdCQUF3QixDQUN6QjtBQUVNLE1BQU1DLGFBQWEsU0FBU0Msc0JBQWEsQ0FBQztFQUMvQ0MsU0FBUyxDQUFDQyxHQUFHLEVBQUU7SUFDYixPQUFPQSxHQUFHLENBQUNDLE1BQU0sQ0FBQ0YsU0FBUztFQUM3QjtFQUVBRyxVQUFVLENBQUNGLEdBQUcsRUFBRTtJQUNkLE1BQU1HLElBQUksR0FBR0MsTUFBTSxDQUFDQyxNQUFNLENBQUNMLEdBQUcsQ0FBQ0csSUFBSSxFQUFFTixhQUFhLENBQUNTLGFBQWEsQ0FBQ04sR0FBRyxDQUFDTyxLQUFLLENBQUMsQ0FBQztJQUM1RSxNQUFNQyxPQUFPLEdBQUdYLGFBQWEsQ0FBQ1ksZUFBZSxDQUFDTixJQUFJLEVBQUVILEdBQUcsQ0FBQ1UsTUFB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
|