parse-server 4.10.2 → 5.0.0-alpha.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/README.md +450 -153
- package/lib/AccountLockout.js +23 -2
- package/lib/Adapters/AdapterLoader.js +1 -1
- package/lib/Adapters/Analytics/AnalyticsAdapter.js +1 -1
- package/lib/Adapters/Auth/AuthAdapter.js +1 -1
- package/lib/Adapters/Auth/OAuth1Client.js +1 -1
- package/lib/Adapters/Auth/facebook.js +110 -10
- package/lib/Adapters/Auth/gcenter.js +1 -1
- package/lib/Adapters/Auth/gpgames.js +1 -1
- package/lib/Adapters/Auth/instagram.js +4 -2
- package/lib/Adapters/Auth/keycloak.js +1 -1
- package/lib/Adapters/Auth/ldap.js +3 -1
- package/lib/Adapters/Auth/oauth2.js +1 -1
- package/lib/Adapters/Auth/phantauth.js +1 -1
- package/lib/Adapters/Cache/CacheAdapter.js +1 -1
- package/lib/Adapters/Cache/RedisCacheAdapter.js +143 -0
- package/lib/Adapters/Cache/SchemaCache.js +31 -0
- package/lib/Adapters/Email/MailAdapter.js +1 -1
- package/lib/Adapters/Files/FilesAdapter.js +1 -1
- package/lib/Adapters/Files/GridFSBucketAdapter.js +1 -1
- package/lib/Adapters/Files/GridStoreAdapter.js +1 -1
- package/lib/Adapters/Logger/LoggerAdapter.js +1 -1
- package/lib/Adapters/Logger/WinstonLogger.js +4 -4
- package/lib/Adapters/PubSub/EventEmitterPubSub.js +5 -1
- package/lib/Adapters/PubSub/PubSubAdapter.js +1 -1
- package/lib/Adapters/Push/PushAdapter.js +1 -1
- package/lib/Adapters/Storage/Mongo/MongoCollection.js +1 -1
- package/lib/Adapters/Storage/Mongo/MongoSchemaCollection.js +1 -1
- package/lib/Adapters/Storage/Mongo/MongoStorageAdapter.js +51 -11
- package/lib/Adapters/Storage/Mongo/MongoTransform.js +9 -6
- package/lib/Adapters/Storage/Postgres/PostgresClient.js +11 -1
- package/lib/Adapters/Storage/Postgres/PostgresStorageAdapter.js +91 -57
- package/lib/Adapters/WebSocketServer/WSAdapter.js +1 -1
- package/lib/Adapters/WebSocketServer/WSSAdapter.js +1 -1
- package/lib/Auth.js +2 -39
- package/lib/Config.js +149 -8
- package/lib/Controllers/AdaptableController.js +1 -9
- package/lib/Controllers/CacheController.js +1 -1
- package/lib/Controllers/DatabaseController.js +148 -44
- package/lib/Controllers/FilesController.js +1 -1
- package/lib/Controllers/HooksController.js +2 -2
- package/lib/Controllers/LiveQueryController.js +16 -3
- package/lib/Controllers/LoggerController.js +1 -1
- package/lib/Controllers/ParseGraphQLController.js +2 -2
- package/lib/Controllers/PushController.js +1 -1
- package/lib/Controllers/SchemaController.js +101 -88
- package/lib/Controllers/UserController.js +16 -5
- package/lib/Controllers/index.js +10 -11
- package/lib/Deprecator/Deprecations.js +28 -0
- package/lib/Deprecator/Deprecator.js +135 -0
- package/lib/GraphQL/ParseGraphQLSchema.js +71 -39
- package/lib/GraphQL/ParseGraphQLServer.js +3 -3
- package/lib/GraphQL/loaders/defaultGraphQLMutations.js +2 -2
- package/lib/GraphQL/loaders/defaultGraphQLQueries.js +2 -2
- package/lib/GraphQL/loaders/defaultGraphQLTypes.js +4 -7
- package/lib/GraphQL/loaders/defaultRelaySchema.js +3 -3
- package/lib/GraphQL/loaders/filesMutations.js +2 -2
- package/lib/GraphQL/loaders/functionsMutations.js +9 -5
- package/lib/GraphQL/loaders/parseClassMutations.js +21 -9
- package/lib/GraphQL/loaders/parseClassQueries.js +9 -6
- package/lib/GraphQL/loaders/parseClassTypes.js +5 -5
- package/lib/GraphQL/loaders/schemaDirectives.js +1 -1
- package/lib/GraphQL/loaders/schemaMutations.js +8 -6
- package/lib/GraphQL/loaders/schemaQueries.js +6 -4
- package/lib/GraphQL/loaders/usersMutations.js +65 -7
- package/lib/GraphQL/transformers/constraintType.js +2 -2
- package/lib/GraphQL/transformers/inputType.js +2 -2
- package/lib/GraphQL/transformers/mutation.js +45 -10
- package/lib/GraphQL/transformers/outputType.js +2 -2
- package/lib/GraphQL/transformers/query.js +2 -2
- package/lib/GraphQL/transformers/schemaFields.js +1 -1
- package/lib/KeyPromiseQueue.js +59 -0
- package/lib/LiveQuery/Client.js +1 -1
- package/lib/LiveQuery/Id.js +1 -1
- package/lib/LiveQuery/ParseLiveQueryServer.js +158 -38
- package/lib/LiveQuery/ParseWebSocketServer.js +2 -2
- package/lib/LiveQuery/QueryTools.js +50 -1
- package/lib/LiveQuery/equalObjects.js +1 -1
- package/lib/Options/Definitions.js +220 -33
- package/lib/Options/docs.js +79 -21
- package/lib/Options/index.js +3 -1
- package/lib/Page.js +53 -0
- package/lib/ParseServer.js +37 -16
- package/lib/ParseServerRESTController.js +55 -45
- package/lib/PromiseRouter.js +7 -20
- package/lib/Push/PushQueue.js +1 -1
- package/lib/Push/PushWorker.js +2 -2
- package/lib/Push/utils.js +1 -1
- package/lib/RestQuery.js +45 -9
- package/lib/RestWrite.js +60 -10
- package/lib/Routers/AggregateRouter.js +23 -18
- package/lib/Routers/AudiencesRouter.js +2 -2
- package/lib/Routers/ClassesRouter.js +11 -11
- package/lib/Routers/CloudCodeRouter.js +1 -1
- package/lib/Routers/FeaturesRouter.js +2 -2
- package/lib/Routers/FilesRouter.js +34 -7
- package/lib/Routers/FunctionsRouter.js +2 -2
- package/lib/Routers/GlobalConfigRouter.js +2 -2
- package/lib/Routers/GraphQLRouter.js +3 -3
- package/lib/Routers/HooksRouter.js +2 -2
- package/lib/Routers/LogsRouter.js +2 -2
- package/lib/Routers/PagesRouter.js +722 -0
- package/lib/Routers/PurgeRouter.js +2 -2
- package/lib/Routers/PushRouter.js +3 -3
- package/lib/Routers/SchemasRouter.js +2 -2
- package/lib/Routers/SecurityRouter.js +47 -0
- package/lib/Routers/SessionsRouter.js +4 -2
- package/lib/Routers/UsersRouter.js +88 -17
- package/lib/Security/Check.js +118 -0
- package/lib/Security/CheckGroup.js +54 -0
- package/lib/Security/CheckGroups/CheckGroupDatabase.js +57 -0
- package/lib/Security/CheckGroups/CheckGroupServerConfig.js +82 -0
- package/lib/Security/CheckGroups/CheckGroups.js +24 -0
- package/lib/Security/CheckRunner.js +236 -0
- package/lib/StatusHandler.js +27 -36
- package/lib/TestUtils.js +1 -1
- package/lib/Utils.js +226 -0
- package/lib/batch.js +55 -44
- package/lib/cli/utils/commander.js +8 -3
- package/lib/cloud-code/HTTPResponse.js +1 -1
- package/lib/cloud-code/Parse.Cloud.js +155 -19
- package/lib/cloud-code/httpRequest.js +1 -1
- package/lib/index.js +6 -12
- package/lib/middlewares.js +39 -4
- package/lib/rest.js +4 -4
- package/lib/triggers.js +134 -121
- package/lib/vendor/mongodbUrl.js +8 -10
- package/package.json +54 -29
- package/CHANGELOG.md +0 -1769
- package/lib/Adapters/Cache/RedisCacheAdapter/KeyPromiseQueue.js +0 -59
- package/lib/Adapters/Cache/RedisCacheAdapter/index.js +0 -130
- package/lib/Controllers/SchemaCache.js +0 -75
package/lib/batch.js
CHANGED
|
@@ -75,61 +75,72 @@ function handleBatch(router, req) {
|
|
|
75
75
|
}
|
|
76
76
|
|
|
77
77
|
const makeRoutablePath = makeBatchRoutingPathFunction(req.originalUrl, req.config.serverURL, req.config.publicServerURL);
|
|
78
|
-
let initialPromise = Promise.resolve();
|
|
79
78
|
|
|
80
|
-
|
|
81
|
-
initialPromise =
|
|
82
|
-
}
|
|
79
|
+
const batch = transactionRetries => {
|
|
80
|
+
let initialPromise = Promise.resolve();
|
|
83
81
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
};
|
|
98
|
-
}, error => {
|
|
99
|
-
return {
|
|
100
|
-
error: {
|
|
101
|
-
code: error.code,
|
|
102
|
-
error: error.message
|
|
103
|
-
}
|
|
82
|
+
if (req.body.transaction === true) {
|
|
83
|
+
initialPromise = req.config.database.createTransactionalSession();
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
return initialPromise.then(() => {
|
|
87
|
+
const promises = req.body.requests.map(restRequest => {
|
|
88
|
+
const routablePath = makeRoutablePath(restRequest.path); // Construct a request that we can send to a handler
|
|
89
|
+
|
|
90
|
+
const request = {
|
|
91
|
+
body: restRequest.body,
|
|
92
|
+
config: req.config,
|
|
93
|
+
auth: req.auth,
|
|
94
|
+
info: req.info
|
|
104
95
|
};
|
|
96
|
+
return router.tryRouteRequest(restRequest.method, routablePath, request).then(response => {
|
|
97
|
+
return {
|
|
98
|
+
success: response.response
|
|
99
|
+
};
|
|
100
|
+
}, error => {
|
|
101
|
+
return {
|
|
102
|
+
error: {
|
|
103
|
+
code: error.code,
|
|
104
|
+
error: error.message
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
});
|
|
105
108
|
});
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
109
|
+
return Promise.all(promises).then(results => {
|
|
110
|
+
if (req.body.transaction === true) {
|
|
111
|
+
if (results.find(result => typeof result.error === 'object')) {
|
|
112
|
+
return req.config.database.abortTransactionalSession().then(() => {
|
|
113
|
+
return Promise.reject({
|
|
114
|
+
response: results
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
} else {
|
|
118
|
+
return req.config.database.commitTransactionalSession().then(() => {
|
|
119
|
+
return {
|
|
120
|
+
response: results
|
|
121
|
+
};
|
|
113
122
|
});
|
|
114
|
-
}
|
|
123
|
+
}
|
|
115
124
|
} else {
|
|
116
|
-
return
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
};
|
|
120
|
-
});
|
|
125
|
+
return {
|
|
126
|
+
response: results
|
|
127
|
+
};
|
|
121
128
|
}
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
}
|
|
126
|
-
|
|
129
|
+
}).catch(error => {
|
|
130
|
+
if (error && error.response && error.response.find(errorItem => typeof errorItem.error === 'object' && errorItem.error.code === 251) && transactionRetries > 0) {
|
|
131
|
+
return batch(transactionRetries - 1);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
throw error;
|
|
135
|
+
});
|
|
127
136
|
});
|
|
128
|
-
}
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
return batch(5);
|
|
129
140
|
}
|
|
130
141
|
|
|
131
142
|
module.exports = {
|
|
132
143
|
mountOnto,
|
|
133
144
|
makeBatchRoutingPathFunction
|
|
134
145
|
};
|
|
135
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9iYXRjaC5qcyJdLCJuYW1lcyI6WyJQYXJzZSIsInJlcXVpcmUiLCJ1cmwiLCJwYXRoIiwiYmF0Y2hQYXRoIiwibW91bnRPbnRvIiwicm91dGVyIiwicm91dGUiLCJyZXEiLCJoYW5kbGVCYXRjaCIsInBhcnNlVVJMIiwiVVJMIiwicGFyc2UiLCJ1bmRlZmluZWQiLCJtYWtlQmF0Y2hSb3V0aW5nUGF0aEZ1bmN0aW9uIiwib3JpZ2luYWxVcmwiLCJzZXJ2ZXJVUkwiLCJwdWJsaWNTZXJ2ZXJVUkwiLCJhcGlQcmVmaXhMZW5ndGgiLCJsZW5ndGgiLCJhcGlQcmVmaXgiLCJzbGljZSIsIm1ha2VSb3V0YWJsZVBhdGgiLCJyZXF1ZXN0UGF0aCIsIkVycm9yIiwiSU5WQUxJRF9KU09OIiwicG9zaXgiLCJqb2luIiwibG9jYWxQYXRoIiwicHVibGljUGF0aCIsInN0YXJ0c1dpdGhMb2NhbCIsInN0YXJ0c1dpdGgiLCJzdGFydHNXaXRoUHVibGljIiwicGF0aExlbmd0aFRvVXNlIiwiTWF0aCIsIm1heCIsIm5ld1BhdGgiLCJBcnJheSIsImlzQXJyYXkiLCJib2R5IiwicmVxdWVzdHMiLCJlbmRzV2l0aCIsImNvbmZpZyIsImluaXRpYWxQcm9taXNlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0cmFuc2FjdGlvbiIsImRhdGFiYXNlIiwiY3JlYXRlVHJhbnNhY3Rpb25hbFNlc3Npb24iLCJ0aGVuIiwicHJvbWlzZXMiLCJtYXAiLCJyZXN0UmVxdWVzdCIsInJvdXRhYmxlUGF0aCIsInJlcXVlc3QiLCJhdXRoIiwiaW5mbyIsInRyeVJvdXRlUmVxdWVzdCIsIm1ldGhvZCIsInJlc3BvbnNlIiwic3VjY2VzcyIsImVycm9yIiwiY29kZSIsIm1lc3NhZ2UiLCJhbGwiLCJyZXN1bHRzIiwiZmluZCIsInJlc3VsdCIsImFib3J0VHJhbnNhY3Rpb25hbFNlc3Npb24iLCJyZWplY3QiLCJjb21taXRUcmFuc2FjdGlvbmFsU2Vzc2lvbiIsIm1vZHVsZSIsImV4cG9ydHMiXSwibWFwcGluZ3MiOiI7O0FBQUEsTUFBTUEsS0FBSyxHQUFHQyxPQUFPLENBQUMsWUFBRCxDQUFQLENBQXNCRCxLQUFwQzs7QUFDQSxNQUFNRSxHQUFHLEdBQUdELE9BQU8sQ0FBQyxLQUFELENBQW5COztBQUNBLE1BQU1FLElBQUksR0FBR0YsT0FBTyxDQUFDLE1BQUQsQ0FBcEIsQyxDQUNBOzs7QUFDQSxNQUFNRyxTQUFTLEdBQUcsUUFBbEIsQyxDQUVBOztBQUNBLFNBQVNDLFNBQVQsQ0FBbUJDLE1BQW5CLEVBQTJCO0FBQ3pCQSxFQUFBQSxNQUFNLENBQUNDLEtBQVAsQ0FBYSxNQUFiLEVBQXFCSCxTQUFyQixFQUFnQ0ksR0FBRyxJQUFJO0FBQ3JDLFdBQU9DLFdBQVcsQ0FBQ0gsTUFBRCxFQUFTRSxHQUFULENBQWxCO0FBQ0QsR0FGRDtBQUdEOztBQUVELFNBQVNFLFFBQVQsQ0FBa0JDLEdBQWxCLEVBQXVCO0FBQ3JCLE1BQUksT0FBT0EsR0FBUCxLQUFlLFFBQW5CLEVBQTZCO0FBQzNCLFdBQU9ULEdBQUcsQ0FBQ1UsS0FBSixDQUFVRCxHQUFWLENBQVA7QUFDRDs7QUFDRCxTQUFPRSxTQUFQO0FBQ0Q7O0FBRUQsU0FBU0MsNEJBQVQsQ0FBc0NDLFdBQXRDLEVBQW1EQyxTQUFuRCxFQUE4REMsZUFBOUQsRUFBK0U7QUFDN0VELEVBQUFBLFNBQVMsR0FBR0EsU0FBUyxHQUFHTixRQUFRLENBQUNNLFNBQUQsQ0FBWCxHQUF5QkgsU0FBOUM7QUFDQUksRUFBQUEsZUFBZSxHQUFHQSxlQUFlLEdBQUdQLFFBQVEsQ0FBQ08sZUFBRCxDQUFYLEdBQStCSixTQUFoRTtBQUVBLFFBQU1LLGVBQWUsR0FBR0gsV0FBVyxDQUFDSSxNQUFaLEdBQXFCZixTQUFTLENBQUNlLE1BQXZEO0FBQ0EsTUFBSUMsU0FBUyxHQUFHTCxXQUFXLENBQUNNLEtBQVosQ0FBa0IsQ0FBbEIsRUFBcUJILGVBQXJCLENBQWhCOztBQUVBLFFBQU1JLGdCQUFnQixHQUFHLFVBQVVDLFdBQVYsRUFBdUI7QUFDOUM7QUFDQSxRQUFJQSxXQUFXLENBQUNGLEtBQVosQ0FBa0IsQ0FBbEIsRUFBcUJELFNBQVMsQ0FBQ0QsTUFBL0IsS0FBMENDLFNBQTlDLEVBQXlEO0FBQ3ZELFlBQU0sSUFBSXBCLEtBQUssQ0FBQ3dCLEtBQVYsQ0FBZ0J4QixLQUFLLENBQUN3QixLQUFOLENBQVlDLFlBQTVCLEVBQTBDLDZCQUE2QkYsV0FBdkUsQ0FBTjtBQUNEOztBQUNELFdBQU9wQixJQUFJLENBQUN1QixLQUFMLENBQVdDLElBQVgsQ0FBZ0IsR0FBaEIsRUFBcUJKLFdBQVcsQ0FBQ0YsS0FBWixDQUFrQkQsU0FBUyxDQUFDRCxNQUE1QixDQUFyQixDQUFQO0FBQ0QsR0FORDs7QUFRQSxNQUFJSCxTQUFTLElBQUlDLGVBQWIsSUFBZ0NELFNBQVMsQ0FBQ2IsSUFBVixJQUFrQmMsZUFBZSxDQUFDZCxJQUF0RSxFQUE0RTtBQUMxRSxVQUFNeUIsU0FBUyxHQUFHWixTQUFTLENBQUNiLElBQTVCO0FBQ0EsVUFBTTBCLFVBQVUsR0FBR1osZUFBZSxDQUFDZCxJQUFuQyxDQUYwRSxDQUkxRTs7QUFDQWlCLElBQUFBLFNBQVMsR0FBR1EsU0FBWjtBQUNBLFdBQU8sVUFBVUwsV0FBVixFQUF1QjtBQUM1QjtBQUNBO0FBQ0EsWUFBTU8sZUFBZSxHQUFHUCxXQUFXLENBQUNRLFVBQVosQ0FBdUJILFNBQXZCLENBQXhCO0FBQ0EsWUFBTUksZ0JBQWdCLEdBQUdULFdBQVcsQ0FBQ1EsVUFBWixDQUF1QkYsVUFBdkIsQ0FBekI7QUFDQSxZQUFNSSxlQUFlLEdBQ25CSCxlQUFlLElBQUlFLGdCQUFuQixHQUNJRSxJQUFJLENBQUNDLEdBQUwsQ0FBU1AsU0FBUyxDQUFDVCxNQUFuQixFQUEyQlUsVUFBVSxDQUFDVixNQUF0QyxDQURKLEdBRUlXLGVBQWUsR0FDYkYsU0FBUyxDQUFDVCxNQURHLEdBRWJVLFVBQVUsQ0FBQ1YsTUFMbkI7QUFPQSxZQUFNaUIsT0FBTyxHQUFHakMsSUFBSSxDQUFDdUIsS0FBTCxDQUFXQyxJQUFYLENBQWdCLEdBQWhCLEVBQXFCQyxTQUFyQixFQUFnQyxHQUFoQyxFQUFxQ0wsV0FBVyxDQUFDRixLQUFaLENBQWtCWSxlQUFsQixDQUFyQyxDQUFoQixDQVo0QixDQWM1Qjs7QUFDQSxhQUFPWCxnQkFBZ0IsQ0FBQ2MsT0FBRCxDQUF2QjtBQUNELEtBaEJEO0FBaUJEOztBQUVELFNBQU9kLGdCQUFQO0FBQ0QsQyxDQUVEO0FBQ0E7OztBQUNBLFNBQVNiLFdBQVQsQ0FBcUJILE1BQXJCLEVBQTZCRSxHQUE3QixFQUFrQztBQUNoQyxNQUFJLENBQUM2QixLQUFLLENBQUNDLE9BQU4sQ0FBYzlCLEdBQUcsQ0FBQytCLElBQUosQ0FBU0MsUUFBdkIsQ0FBTCxFQUF1QztBQUNyQyxVQUFNLElBQUl4QyxLQUFLLENBQUN3QixLQUFWLENBQWdCeEIsS0FBSyxDQUFDd0IsS0FBTixDQUFZQyxZQUE1QixFQUEwQywyQkFBMUMsQ0FBTjtBQUNELEdBSCtCLENBS2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUNBLE1BQUksQ0FBQ2pCLEdBQUcsQ0FBQ08sV0FBSixDQUFnQjBCLFFBQWhCLENBQXlCckMsU0FBekIsQ0FBTCxFQUEwQztBQUN4QyxVQUFNLDJEQUFOO0FBQ0Q7O0FBRUQsUUFBTWtCLGdCQUFnQixHQUFHUiw0QkFBNEIsQ0FDbkROLEdBQUcsQ0FBQ08sV0FEK0MsRUFFbkRQLEdBQUcsQ0FBQ2tDLE1BQUosQ0FBVzFCLFNBRndDLEVBR25EUixHQUFHLENBQUNrQyxNQUFKLENBQVd6QixlQUh3QyxDQUFyRDtBQU1BLE1BQUkwQixjQUFjLEdBQUdDLE9BQU8sQ0FBQ0MsT0FBUixFQUFyQjs7QUFDQSxNQUFJckMsR0FBRyxDQUFDK0IsSUFBSixDQUFTTyxXQUFULEtBQXlCLElBQTdCLEVBQW1DO0FBQ2pDSCxJQUFBQSxjQUFjLEdBQUduQyxHQUFHLENBQUNrQyxNQUFKLENBQVdLLFFBQVgsQ0FBb0JDLDBCQUFwQixFQUFqQjtBQUNEOztBQUVELFNBQU9MLGNBQWMsQ0FBQ00sSUFBZixDQUFvQixNQUFNO0FBQy9CLFVBQU1DLFFBQVEsR0FBRzFDLEdBQUcsQ0FBQytCLElBQUosQ0FBU0MsUUFBVCxDQUFrQlcsR0FBbEIsQ0FBc0JDLFdBQVcsSUFBSTtBQUNwRCxZQUFNQyxZQUFZLEdBQUcvQixnQkFBZ0IsQ0FBQzhCLFdBQVcsQ0FBQ2pELElBQWIsQ0FBckMsQ0FEb0QsQ0FHcEQ7O0FBQ0EsWUFBTW1ELE9BQU8sR0FBRztBQUNkZixRQUFBQSxJQUFJLEVBQUVhLFdBQVcsQ0FBQ2IsSUFESjtBQUVkRyxRQUFBQSxNQUFNLEVBQUVsQyxHQUFHLENBQUNrQyxNQUZFO0FBR2RhLFFBQUFBLElBQUksRUFBRS9DLEdBQUcsQ0FBQytDLElBSEk7QUFJZEMsUUFBQUEsSUFBSSxFQUFFaEQsR0FBRyxDQUFDZ0Q7QUFKSSxPQUFoQjtBQU9BLGFBQU9sRCxNQUFNLENBQUNtRCxlQUFQLENBQXVCTCxXQUFXLENBQUNNLE1BQW5DLEVBQTJDTCxZQUEzQyxFQUF5REMsT0FBekQsRUFBa0VMLElBQWxFLENBQ0xVLFFBQVEsSUFBSTtBQUNWLGVBQU87QUFBRUMsVUFBQUEsT0FBTyxFQUFFRCxRQUFRLENBQUNBO0FBQXBCLFNBQVA7QUFDRCxPQUhJLEVBSUxFLEtBQUssSUFBSTtBQUNQLGVBQU87QUFBRUEsVUFBQUEsS0FBSyxFQUFFO0FBQUVDLFlBQUFBLElBQUksRUFBRUQsS0FBSyxDQUFDQyxJQUFkO0FBQW9CRCxZQUFBQSxLQUFLLEVBQUVBLEtBQUssQ0FBQ0U7QUFBakM7QUFBVCxTQUFQO0FBQ0QsT0FOSSxDQUFQO0FBUUQsS0FuQmdCLENBQWpCO0FBcUJBLFdBQU9uQixPQUFPLENBQUNvQixHQUFSLENBQVlkLFFBQVosRUFBc0JELElBQXRCLENBQTJCZ0IsT0FBTyxJQUFJO0FBQzNDLFVBQUl6RCxHQUFHLENBQUMrQixJQUFKLENBQVNPLFdBQVQsS0FBeUIsSUFBN0IsRUFBbUM7QUFDakMsWUFBSW1CLE9BQU8sQ0FBQ0MsSUFBUixDQUFhQyxNQUFNLElBQUksT0FBT0EsTUFBTSxDQUFDTixLQUFkLEtBQXdCLFFBQS9DLENBQUosRUFBOEQ7QUFDNUQsaUJBQU9yRCxHQUFHLENBQUNrQyxNQUFKLENBQVdLLFFBQVgsQ0FBb0JxQix5QkFBcEIsR0FBZ0RuQixJQUFoRCxDQUFxRCxNQUFNO0FBQ2hFLG1CQUFPTCxPQUFPLENBQUN5QixNQUFSLENBQWU7QUFBRVYsY0FBQUEsUUFBUSxFQUFFTTtBQUFaLGFBQWYsQ0FBUDtBQUNELFdBRk0sQ0FBUDtBQUdELFNBSkQsTUFJTztBQUNMLGlCQUFPekQsR0FBRyxDQUFDa0MsTUFBSixDQUFXSyxRQUFYLENBQW9CdUIsMEJBQXBCLEdBQWlEckIsSUFBakQsQ0FBc0QsTUFBTTtBQUNqRSxtQkFBTztBQUFFVSxjQUFBQSxRQUFRLEVBQUVNO0FBQVosYUFBUDtBQUNELFdBRk0sQ0FBUDtBQUdEO0FBQ0YsT0FWRCxNQVVPO0FBQ0wsZUFBTztBQUFFTixVQUFBQSxRQUFRLEVBQUVNO0FBQVosU0FBUDtBQUNEO0FBQ0YsS0FkTSxDQUFQO0FBZUQsR0FyQ00sQ0FBUDtBQXNDRDs7QUFFRE0sTUFBTSxDQUFDQyxPQUFQLEdBQWlCO0FBQ2ZuRSxFQUFBQSxTQURlO0FBRWZTLEVBQUFBO0FBRmUsQ0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBQYXJzZSA9IHJlcXVpcmUoJ3BhcnNlL25vZGUnKS5QYXJzZTtcbmNvbnN0IHVybCA9IHJlcXVpcmUoJ3VybCcpO1xuY29uc3QgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKTtcbi8vIFRoZXNlIG1ldGhvZHMgaGFuZGxlIGJhdGNoIHJlcXVlc3RzLlxuY29uc3QgYmF0Y2hQYXRoID0gJy9iYXRjaCc7XG5cbi8vIE1vdW50cyBhIGJhdGNoLWhhbmRsZXIgb250byBhIFByb21pc2VSb3V0ZXIuXG5mdW5jdGlvbiBtb3VudE9udG8ocm91dGVyKSB7XG4gIHJvdXRlci5yb3V0ZSgnUE9TVCcsIGJhdGNoUGF0aCwgcmVxID0+IHtcbiAgICByZXR1cm4gaGFuZGxlQmF0Y2gocm91dGVyLCByZXEpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gcGFyc2VVUkwoVVJMKSB7XG4gIGlmICh0eXBlb2YgVVJMID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB1cmwucGFyc2UoVVJMKTtcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBtYWtlQmF0Y2hSb3V0aW5nUGF0aEZ1bmN0aW9uKG9yaWdpbmFsVXJsLCBzZXJ2ZXJVUkwsIHB1YmxpY1NlcnZlclVSTCkge1xuICBzZXJ2ZXJVUkwgPSBzZXJ2ZXJVUkwgPyBwYXJzZVVSTChzZXJ2ZXJVUkwpIDogdW5kZWZpbmVkO1xuICBwdWJsaWNTZXJ2ZXJVUkwgPSBwdWJsaWNTZXJ2ZXJVUkwgPyBwYXJzZVVSTChwdWJsaWNTZXJ2ZXJVUkwpIDogdW5kZWZpbmVkO1xuXG4gIGNvbnN0IGFwaVByZWZpeExlbmd0aCA9IG9yaWdpbmFsVXJsLmxlbmd0aCAtIGJhdGNoUGF0aC5sZW5ndGg7XG4gIGxldCBhcGlQcmVmaXggPSBvcmlnaW5hbFVybC5zbGljZSgwLCBhcGlQcmVmaXhMZW5ndGgpO1xuXG4gIGNvbnN0IG1ha2VSb3V0YWJsZVBhdGggPSBmdW5jdGlvbiAocmVxdWVzdFBhdGgpIHtcbiAgICAvLyBUaGUgcm91dGFibGVQYXRoIGlzIHRoZSBwYXRoIG1pbnVzIHRoZSBhcGkgcHJlZml4XG4gICAgaWYgKHJlcXVlc3RQYXRoLnNsaWNlKDAsIGFwaVByZWZpeC5sZW5ndGgpICE9IGFwaVByZWZpeCkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLklOVkFMSURfSlNPTiwgJ2Nhbm5vdCByb3V0ZSBiYXRjaCBwYXRoICcgKyByZXF1ZXN0UGF0aCk7XG4gICAgfVxuICAgIHJldHVybiBwYXRoLnBvc2l4LmpvaW4oJy8nLCByZXF1ZXN0UGF0aC5zbGljZShhcGlQcmVmaXgubGVuZ3RoKSk7XG4gIH07XG5cbiAgaWYgKHNlcnZlclVSTCAmJiBwdWJsaWNTZXJ2ZXJVUkwgJiYgc2VydmVyVVJMLnBhdGggIT0gcHVibGljU2VydmVyVVJMLnBhdGgpIHtcbiAgICBjb25zdCBsb2NhbFBhdGggPSBzZXJ2ZXJVUkwucGF0aDtcbiAgICBjb25zdCBwdWJsaWNQYXRoID0gcHVibGljU2VydmVyVVJMLnBhdGg7XG5cbiAgICAvLyBPdmVycmlkZSB0aGUgYXBpIHByZWZpeFxuICAgIGFwaVByZWZpeCA9IGxvY2FsUGF0aDtcbiAgICByZXR1cm4gZnVuY3Rpb24gKHJlcXVlc3RQYXRoKSB7XG4gICAgICAvLyBGaWd1cmUgb3V0IHdoaWNoIHNlcnZlciB1cmwgd2FzIHVzZWQgYnkgZmlndXJpbmcgb3V0IHdoaWNoXG4gICAgICAvLyBwYXRoIG1vcmUgY2xvc2VseSBtYXRjaGVzIHJlcXVlc3RQYXRoXG4gICAgICBjb25zdCBzdGFydHNXaXRoTG9jYWwgPSByZXF1ZXN0UGF0aC5zdGFydHNXaXRoKGxvY2FsUGF0aCk7XG4gICAgICBjb25zdCBzdGFydHNXaXRoUHVibGljID0gcmVxdWVzdFBhdGguc3RhcnRzV2l0aChwdWJsaWNQYXRoKTtcbiAgICAgIGNvbnN0IHBhdGhMZW5ndGhUb1VzZSA9XG4gICAgICAgIHN0YXJ0c1dpdGhMb2NhbCAmJiBzdGFydHNXaXRoUHVibGljXG4gICAgICAgICAgPyBNYXRoLm1heChsb2NhbFBhdGgubGVuZ3RoLCBwdWJsaWNQYXRoLmxlbmd0aClcbiAgICAgICAgICA6IHN0YXJ0c1dpdGhMb2NhbFxuICAgICAgICAgICAgPyBsb2NhbFBhdGgubGVuZ3RoXG4gICAgICAgICAgICA6IHB1YmxpY1BhdGgubGVuZ3RoO1xuXG4gICAgICBjb25zdCBuZXdQYXRoID0gcGF0aC5wb3NpeC5qb2luKCcvJywgbG9jYWxQYXRoLCAnLycsIHJlcXVlc3RQYXRoLnNsaWNlKHBhdGhMZW5ndGhUb1VzZSkpO1xuXG4gICAgICAvLyBVc2UgdGhlIG1ldGhvZCBmb3IgbG9jYWwgcm91dGluZ1xuICAgICAgcmV0dXJuIG1ha2VSb3V0YWJsZVBhdGgobmV3UGF0aCk7XG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBtYWtlUm91dGFibGVQYXRoO1xufVxuXG4vLyBSZXR1cm5zIGEgcHJvbWlzZSBmb3IgYSB7cmVzcG9uc2V9IG9iamVjdC5cbi8vIFRPRE86IHBhc3MgYWxvbmcgYXV0aCBjb3JyZWN0bHlcbmZ1bmN0aW9uIGhhbmRsZUJhdGNoKHJvdXRlciwgcmVxKSB7XG4gIGlmICghQXJyYXkuaXNBcnJheShyZXEuYm9keS5yZXF1ZXN0cykpIHtcbiAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuSU5WQUxJRF9KU09OLCAncmVxdWVzdHMgbXVzdCBiZSBhbiBhcnJheScpO1xuICB9XG5cbiAgLy8gVGhlIGJhdGNoIHBhdGhzIGFyZSBhbGwgZnJvbSB0aGUgcm9vdCBvZiBvdXIgZG9tYWluLlxuICAvLyBUaGF0IG1lYW5zIHRoZXkgaW5jbHVkZSB0aGUgQVBJIHByZWZpeCwgdGhhdCB0aGUgQVBJIGlzIG1vdW50ZWRcbiAgLy8gdG8uIEhvd2V2ZXIsIG91ciBwcm9taXNlIHJvdXRlciBkb2VzIG5vdCByb3V0ZSB0aGUgYXBpIHByZWZpeC4gU29cbiAgLy8gd2UgbmVlZCB0byBmaWd1cmUgb3V0IHRoZSBBUEkgcHJlZml4LCBzbyB0aGF0IHdlIGNhbiBzdHJpcCBpdFxuICAvLyBmcm9tIGFsbCB0aGUgc3VicmVxdWVzdHMuXG4gIGlmICghcmVxLm9yaWdpbmFsVXJsLmVuZHNXaXRoKGJhdGNoUGF0aCkpIHtcbiAgICB0aHJvdyAnaW50ZXJuYWwgcm91dGluZyBwcm9ibGVtIC0gZXhwZWN0ZWQgdXJsIHRvIGVuZCB3aXRoIGJhdGNoJztcbiAgfVxuXG4gIGNvbnN0IG1ha2VSb3V0YWJsZVBhdGggPSBtYWtlQmF0Y2hSb3V0aW5nUGF0aEZ1bmN0aW9uKFxuICAgIHJlcS5vcmlnaW5hbFVybCxcbiAgICByZXEuY29uZmlnLnNlcnZlclVSTCxcbiAgICByZXEuY29uZmlnLnB1YmxpY1NlcnZlclVSTFxuICApO1xuXG4gIGxldCBpbml0aWFsUHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSgpO1xuICBpZiAocmVxLmJvZHkudHJhbnNhY3Rpb24gPT09IHRydWUpIHtcbiAgICBpbml0aWFsUHJvbWlzZSA9IHJlcS5jb25maWcuZGF0YWJhc2UuY3JlYXRlVHJhbnNhY3Rpb25hbFNlc3Npb24oKTtcbiAgfVxuXG4gIHJldHVybiBpbml0aWFsUHJvbWlzZS50aGVuKCgpID0+IHtcbiAgICBjb25zdCBwcm9taXNlcyA9IHJlcS5ib2R5LnJlcXVlc3RzLm1hcChyZXN0UmVxdWVzdCA9PiB7XG4gICAgICBjb25zdCByb3V0YWJsZVBhdGggPSBtYWtlUm91dGFibGVQYXRoKHJlc3RSZXF1ZXN0LnBhdGgpO1xuXG4gICAgICAvLyBDb25zdHJ1Y3QgYSByZXF1ZXN0IHRoYXQgd2UgY2FuIHNlbmQgdG8gYSBoYW5kbGVyXG4gICAgICBjb25zdCByZXF1ZXN0ID0ge1xuICAgICAgICBib2R5OiByZXN0UmVxdWVzdC5ib2R5LFxuICAgICAgICBjb25maWc6IHJlcS5jb25maWcsXG4gICAgICAgIGF1dGg6IHJlcS5hdXRoLFxuICAgICAgICBpbmZvOiByZXEuaW5mbyxcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiByb3V0ZXIudHJ5Um91dGVSZXF1ZXN0KHJlc3RSZXF1ZXN0Lm1ldGhvZCwgcm91dGFibGVQYXRoLCByZXF1ZXN0KS50aGVuKFxuICAgICAgICByZXNwb25zZSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHsgc3VjY2VzczogcmVzcG9uc2UucmVzcG9uc2UgfTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3IgPT4ge1xuICAgICAgICAgIHJldHVybiB7IGVycm9yOiB7IGNvZGU6IGVycm9yLmNvZGUsIGVycm9yOiBlcnJvci5tZXNzYWdlIH0gfTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIHJldHVybiBQcm9taXNlLmFsbChwcm9taXNlcykudGhlbihyZXN1bHRzID0+IHtcbiAgICAgIGlmIChyZXEuYm9keS50cmFuc2FjdGlvbiA9PT0gdHJ1ZSkge1xuICAgICAgICBpZiAocmVzdWx0cy5maW5kKHJlc3VsdCA9PiB0eXBlb2YgcmVzdWx0LmVycm9yID09PSAnb2JqZWN0JykpIHtcbiAgICAgICAgICByZXR1cm4gcmVxLmNvbmZpZy5kYXRhYmFzZS5hYm9ydFRyYW5zYWN0aW9uYWxTZXNzaW9uKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoeyByZXNwb25zZTogcmVzdWx0cyB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gcmVxLmNvbmZpZy5kYXRhYmFzZS5jb21taXRUcmFuc2FjdGlvbmFsU2Vzc2lvbigpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHsgcmVzcG9uc2U6IHJlc3VsdHMgfTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHsgcmVzcG9uc2U6IHJlc3VsdHMgfTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBtb3VudE9udG8sXG4gIG1ha2VCYXRjaFJvdXRpbmdQYXRoRnVuY3Rpb24sXG59O1xuIl19
|
|
146
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9iYXRjaC5qcyJdLCJuYW1lcyI6WyJQYXJzZSIsInJlcXVpcmUiLCJ1cmwiLCJwYXRoIiwiYmF0Y2hQYXRoIiwibW91bnRPbnRvIiwicm91dGVyIiwicm91dGUiLCJyZXEiLCJoYW5kbGVCYXRjaCIsInBhcnNlVVJMIiwiVVJMIiwicGFyc2UiLCJ1bmRlZmluZWQiLCJtYWtlQmF0Y2hSb3V0aW5nUGF0aEZ1bmN0aW9uIiwib3JpZ2luYWxVcmwiLCJzZXJ2ZXJVUkwiLCJwdWJsaWNTZXJ2ZXJVUkwiLCJhcGlQcmVmaXhMZW5ndGgiLCJsZW5ndGgiLCJhcGlQcmVmaXgiLCJzbGljZSIsIm1ha2VSb3V0YWJsZVBhdGgiLCJyZXF1ZXN0UGF0aCIsIkVycm9yIiwiSU5WQUxJRF9KU09OIiwicG9zaXgiLCJqb2luIiwibG9jYWxQYXRoIiwicHVibGljUGF0aCIsInN0YXJ0c1dpdGhMb2NhbCIsInN0YXJ0c1dpdGgiLCJzdGFydHNXaXRoUHVibGljIiwicGF0aExlbmd0aFRvVXNlIiwiTWF0aCIsIm1heCIsIm5ld1BhdGgiLCJBcnJheSIsImlzQXJyYXkiLCJib2R5IiwicmVxdWVzdHMiLCJlbmRzV2l0aCIsImNvbmZpZyIsImJhdGNoIiwidHJhbnNhY3Rpb25SZXRyaWVzIiwiaW5pdGlhbFByb21pc2UiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRyYW5zYWN0aW9uIiwiZGF0YWJhc2UiLCJjcmVhdGVUcmFuc2FjdGlvbmFsU2Vzc2lvbiIsInRoZW4iLCJwcm9taXNlcyIsIm1hcCIsInJlc3RSZXF1ZXN0Iiwicm91dGFibGVQYXRoIiwicmVxdWVzdCIsImF1dGgiLCJpbmZvIiwidHJ5Um91dGVSZXF1ZXN0IiwibWV0aG9kIiwicmVzcG9uc2UiLCJzdWNjZXNzIiwiZXJyb3IiLCJjb2RlIiwibWVzc2FnZSIsImFsbCIsInJlc3VsdHMiLCJmaW5kIiwicmVzdWx0IiwiYWJvcnRUcmFuc2FjdGlvbmFsU2Vzc2lvbiIsInJlamVjdCIsImNvbW1pdFRyYW5zYWN0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ZnZFLEVBQUFBLFNBRGU7QUFFZlMsRUFBQUE7QUFGZSxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImNvbnN0IFBhcnNlID0gcmVxdWlyZSgncGFyc2Uvbm9kZScpLlBhcnNlO1xuY29uc3QgdXJsID0gcmVxdWlyZSgndXJsJyk7XG5jb25zdCBwYXRoID0gcmVxdWlyZSgncGF0aCcpO1xuLy8gVGhlc2UgbWV0aG9kcyBoYW5kbGUgYmF0Y2ggcmVxdWVzdHMuXG5jb25zdCBiYXRjaFBhdGggPSAnL2JhdGNoJztcblxuLy8gTW91bnRzIGEgYmF0Y2gtaGFuZGxlciBvbnRvIGEgUHJvbWlzZVJvdXRlci5cbmZ1bmN0aW9uIG1vdW50T250byhyb3V0ZXIpIHtcbiAgcm91dGVyLnJvdXRlKCdQT1NUJywgYmF0Y2hQYXRoLCByZXEgPT4ge1xuICAgIHJldHVybiBoYW5kbGVCYXRjaChyb3V0ZXIsIHJlcSk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBwYXJzZVVSTChVUkwpIHtcbiAgaWYgKHR5cGVvZiBVUkwgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHVybC5wYXJzZShVUkwpO1xuICB9XG4gIHJldHVybiB1bmRlZmluZWQ7XG59XG5cbmZ1bmN0aW9uIG1ha2VCYXRjaFJvdXRpbmdQYXRoRnVuY3Rpb24ob3JpZ2luYWxVcmwsIHNlcnZlclVSTCwgcHVibGljU2VydmVyVVJMKSB7XG4gIHNlcnZlclVSTCA9IHNlcnZlclVSTCA/IHBhcnNlVVJMKHNlcnZlclVSTCkgOiB1bmRlZmluZWQ7XG4gIHB1YmxpY1NlcnZlclVSTCA9IHB1YmxpY1NlcnZlclVSTCA/IHBhcnNlVVJMKHB1YmxpY1NlcnZlclVSTCkgOiB1bmRlZmluZWQ7XG5cbiAgY29uc3QgYXBpUHJlZml4TGVuZ3RoID0gb3JpZ2luYWxVcmwubGVuZ3RoIC0gYmF0Y2hQYXRoLmxlbmd0aDtcbiAgbGV0IGFwaVByZWZpeCA9IG9yaWdpbmFsVXJsLnNsaWNlKDAsIGFwaVByZWZpeExlbmd0aCk7XG5cbiAgY29uc3QgbWFrZVJvdXRhYmxlUGF0aCA9IGZ1bmN0aW9uIChyZXF1ZXN0UGF0aCkge1xuICAgIC8vIFRoZSByb3V0YWJsZVBhdGggaXMgdGhlIHBhdGggbWludXMgdGhlIGFwaSBwcmVmaXhcbiAgICBpZiAocmVxdWVzdFBhdGguc2xpY2UoMCwgYXBpUHJlZml4Lmxlbmd0aCkgIT0gYXBpUHJlZml4KSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuSU5WQUxJRF9KU09OLCAnY2Fubm90IHJvdXRlIGJhdGNoIHBhdGggJyArIHJlcXVlc3RQYXRoKTtcbiAgICB9XG4gICAgcmV0dXJuIHBhdGgucG9zaXguam9pbignLycsIHJlcXVlc3RQYXRoLnNsaWNlKGFwaVByZWZpeC5sZW5ndGgpKTtcbiAgfTtcblxuICBpZiAoc2VydmVyVVJMICYmIHB1YmxpY1NlcnZlclVSTCAmJiBzZXJ2ZXJVUkwucGF0aCAhPSBwdWJsaWNTZXJ2ZXJVUkwucGF0aCkge1xuICAgIGNvbnN0IGxvY2FsUGF0aCA9IHNlcnZlclVSTC5wYXRoO1xuICAgIGNvbnN0IHB1YmxpY1BhdGggPSBwdWJsaWNTZXJ2ZXJVUkwucGF0aDtcblxuICAgIC8vIE92ZXJyaWRlIHRoZSBhcGkgcHJlZml4XG4gICAgYXBpUHJlZml4ID0gbG9jYWxQYXRoO1xuICAgIHJldHVybiBmdW5jdGlvbiAocmVxdWVzdFBhdGgpIHtcbiAgICAgIC8vIEZpZ3VyZSBvdXQgd2hpY2ggc2VydmVyIHVybCB3YXMgdXNlZCBieSBmaWd1cmluZyBvdXQgd2hpY2hcbiAgICAgIC8vIHBhdGggbW9yZSBjbG9zZWx5IG1hdGNoZXMgcmVxdWVzdFBhdGhcbiAgICAgIGNvbnN0IHN0YXJ0c1dpdGhMb2NhbCA9IHJlcXVlc3RQYXRoLnN0YXJ0c1dpdGgobG9jYWxQYXRoKTtcbiAgICAgIGNvbnN0IHN0YXJ0c1dpdGhQdWJsaWMgPSByZXF1ZXN0UGF0aC5zdGFydHNXaXRoKHB1YmxpY1BhdGgpO1xuICAgICAgY29uc3QgcGF0aExlbmd0aFRvVXNlID1cbiAgICAgICAgc3RhcnRzV2l0aExvY2FsICYmIHN0YXJ0c1dpdGhQdWJsaWNcbiAgICAgICAgICA/IE1hdGgubWF4KGxvY2FsUGF0aC5sZW5ndGgsIHB1YmxpY1BhdGgubGVuZ3RoKVxuICAgICAgICAgIDogc3RhcnRzV2l0aExvY2FsXG4gICAgICAgICAgICA/IGxvY2FsUGF0aC5sZW5ndGhcbiAgICAgICAgICAgIDogcHVibGljUGF0aC5sZW5ndGg7XG5cbiAgICAgIGNvbnN0IG5ld1BhdGggPSBwYXRoLnBvc2l4LmpvaW4oJy8nLCBsb2NhbFBhdGgsICcvJywgcmVxdWVzdFBhdGguc2xpY2UocGF0aExlbmd0aFRvVXNlKSk7XG5cbiAgICAgIC8vIFVzZSB0aGUgbWV0aG9kIGZvciBsb2NhbCByb3V0aW5nXG4gICAgICByZXR1cm4gbWFrZVJvdXRhYmxlUGF0aChuZXdQYXRoKTtcbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIG1ha2VSb3V0YWJsZVBhdGg7XG59XG5cbi8vIFJldHVybnMgYSBwcm9taXNlIGZvciBhIHtyZXNwb25zZX0gb2JqZWN0LlxuLy8gVE9ETzogcGFzcyBhbG9uZyBhdXRoIGNvcnJlY3RseVxuZnVuY3Rpb24gaGFuZGxlQmF0Y2gocm91dGVyLCByZXEpIHtcbiAgaWYgKCFBcnJheS5pc0FycmF5KHJlcS5ib2R5LnJlcXVlc3RzKSkge1xuICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5JTlZBTElEX0pTT04sICdyZXF1ZXN0cyBtdXN0IGJlIGFuIGFycmF5Jyk7XG4gIH1cblxuICAvLyBUaGUgYmF0Y2ggcGF0aHMgYXJlIGFsbCBmcm9tIHRoZSByb290IG9mIG91ciBkb21haW4uXG4gIC8vIFRoYXQgbWVhbnMgdGhleSBpbmNsdWRlIHRoZSBBUEkgcHJlZml4LCB0aGF0IHRoZSBBUEkgaXMgbW91bnRlZFxuICAvLyB0by4gSG93ZXZlciwgb3VyIHByb21pc2Ugcm91dGVyIGRvZXMgbm90IHJvdXRlIHRoZSBhcGkgcHJlZml4LiBTb1xuICAvLyB3ZSBuZWVkIHRvIGZpZ3VyZSBvdXQgdGhlIEFQSSBwcmVmaXgsIHNvIHRoYXQgd2UgY2FuIHN0cmlwIGl0XG4gIC8vIGZyb20gYWxsIHRoZSBzdWJyZXF1ZXN0cy5cbiAgaWYgKCFyZXEub3JpZ2luYWxVcmwuZW5kc1dpdGgoYmF0Y2hQYXRoKSkge1xuICAgIHRocm93ICdpbnRlcm5hbCByb3V0aW5nIHByb2JsZW0gLSBleHBlY3RlZCB1cmwgdG8gZW5kIHdpdGggYmF0Y2gnO1xuICB9XG5cbiAgY29uc3QgbWFrZVJvdXRhYmxlUGF0aCA9IG1ha2VCYXRjaFJvdXRpbmdQYXRoRnVuY3Rpb24oXG4gICAgcmVxLm9yaWdpbmFsVXJsLFxuICAgIHJlcS5jb25maWcuc2VydmVyVVJMLFxuICAgIHJlcS5jb25maWcucHVibGljU2VydmVyVVJMXG4gICk7XG5cbiAgY29uc3QgYmF0Y2ggPSB0cmFuc2FjdGlvblJldHJpZXMgPT4ge1xuICAgIGxldCBpbml0aWFsUHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSgpO1xuICAgIGlmIChyZXEuYm9keS50cmFuc2FjdGlvbiA9PT0gdHJ1ZSkge1xuICAgICAgaW5pdGlhbFByb21pc2UgPSByZXEuY29uZmlnLmRhdGFiYXNlLmNyZWF0ZVRyYW5zYWN0aW9uYWxTZXNzaW9uKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGluaXRpYWxQcm9taXNlLnRoZW4oKCkgPT4ge1xuICAgICAgY29uc3QgcHJvbWlzZXMgPSByZXEuYm9keS5yZXF1ZXN0cy5tYXAocmVzdFJlcXVlc3QgPT4ge1xuICAgICAgICBjb25zdCByb3V0YWJsZVBhdGggPSBtYWtlUm91dGFibGVQYXRoKHJlc3RSZXF1ZXN0LnBhdGgpO1xuXG4gICAgICAgIC8vIENvbnN0cnVjdCBhIHJlcXVlc3QgdGhhdCB3ZSBjYW4gc2VuZCB0byBhIGhhbmRsZXJcbiAgICAgICAgY29uc3QgcmVxdWVzdCA9IHtcbiAgICAgICAgICBib2R5OiByZXN0UmVxdWVzdC5ib2R5LFxuICAgICAgICAgIGNvbmZpZzogcmVxLmNvbmZpZyxcbiAgICAgICAgICBhdXRoOiByZXEuYXV0aCxcbiAgICAgICAgICBpbmZvOiByZXEuaW5mbyxcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gcm91dGVyLnRyeVJvdXRlUmVxdWVzdChyZXN0UmVxdWVzdC5tZXRob2QsIHJvdXRhYmxlUGF0aCwgcmVxdWVzdCkudGhlbihcbiAgICAgICAgICByZXNwb25zZSA9PiB7XG4gICAgICAgICAgICByZXR1cm4geyBzdWNjZXNzOiByZXNwb25zZS5yZXNwb25zZSB9O1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3IgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHsgZXJyb3I6IHsgY29kZTogZXJyb3IuY29kZSwgZXJyb3I6IGVycm9yLm1lc3NhZ2UgfSB9O1xuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gUHJvbWlzZS5hbGwocHJvbWlzZXMpXG4gICAgICAgIC50aGVuKHJlc3VsdHMgPT4ge1xuICAgICAgICAgIGlmIChyZXEuYm9keS50cmFuc2FjdGlvbiA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgaWYgKHJlc3VsdHMuZmluZChyZXN1bHQgPT4gdHlwZW9mIHJlc3VsdC5lcnJvciA9PT0gJ29iamVjdCcpKSB7XG4gICAgICAgICAgICAgIHJldHVybiByZXEuY29uZmlnLmRhdGFiYXNlLmFib3J0VHJhbnNhY3Rpb25hbFNlc3Npb24oKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoeyByZXNwb25zZTogcmVzdWx0cyB9KTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICByZXR1cm4gcmVxLmNvbmZpZy5kYXRhYmFzZS5jb21taXRUcmFuc2FjdGlvbmFsU2Vzc2lvbigpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IHJlc3BvbnNlOiByZXN1bHRzIH07XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4geyByZXNwb25zZTogcmVzdWx0cyB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBlcnJvciAmJlxuICAgICAgICAgICAgZXJyb3IucmVzcG9uc2UgJiZcbiAgICAgICAgICAgIGVycm9yLnJlc3BvbnNlLmZpbmQoXG4gICAgICAgICAgICAgIGVycm9ySXRlbSA9PiB0eXBlb2YgZXJyb3JJdGVtLmVycm9yID09PSAnb2JqZWN0JyAmJiBlcnJvckl0ZW0uZXJyb3IuY29kZSA9PT0gMjUxXG4gICAgICAgICAgICApICYmXG4gICAgICAgICAgICB0cmFuc2FjdGlvblJldHJpZXMgPiAwXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gYmF0Y2godHJhbnNhY3Rpb25SZXRyaWVzIC0gMSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfTtcbiAgcmV0dXJuIGJhdGNoKDUpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgbW91bnRPbnRvLFxuICBtYWtlQmF0Y2hSb3V0aW5nUGF0aEZ1bmN0aW9uLFxufTtcbiJdfQ==
|
|
@@ -9,6 +9,8 @@ var _commander = require("commander");
|
|
|
9
9
|
|
|
10
10
|
var _path = _interopRequireDefault(require("path"));
|
|
11
11
|
|
|
12
|
+
var _Deprecator = _interopRequireDefault(require("../../Deprecator/Deprecator"));
|
|
13
|
+
|
|
12
14
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
15
|
|
|
14
16
|
/* eslint-disable no-console */
|
|
@@ -47,7 +49,7 @@ _commander.Command.prototype.loadDefinitions = function (definitions) {
|
|
|
47
49
|
return object;
|
|
48
50
|
}, {});
|
|
49
51
|
_defaults = Object.keys(definitions).reduce((defs, opt) => {
|
|
50
|
-
if (_definitions[opt].default) {
|
|
52
|
+
if (_definitions[opt].default !== undefined) {
|
|
51
53
|
defs[opt] = _definitions[opt].default;
|
|
52
54
|
}
|
|
53
55
|
|
|
@@ -140,7 +142,10 @@ _commander.Command.prototype.parse = function (args, env) {
|
|
|
140
142
|
|
|
141
143
|
this.setValuesIfNeeded(envOptions); // Load from file to override
|
|
142
144
|
|
|
143
|
-
this.setValuesIfNeeded(fromFile); //
|
|
145
|
+
this.setValuesIfNeeded(fromFile); // Scan for deprecated Parse Server options
|
|
146
|
+
|
|
147
|
+
_Deprecator.default.scanParseServerOptions(this); // Last set the defaults
|
|
148
|
+
|
|
144
149
|
|
|
145
150
|
this.setValuesIfNeeded(_defaults);
|
|
146
151
|
};
|
|
@@ -160,4 +165,4 @@ var _default = new _commander.Command();
|
|
|
160
165
|
|
|
161
166
|
|
|
162
167
|
exports.default = _default;
|
|
163
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGkvdXRpbHMvY29tbWFuZGVyLmpzIl0sIm5hbWVzIjpbIl9kZWZpbml0aW9ucyIsIl9yZXZlcnNlRGVmaW5pdGlvbnMiLCJfZGVmYXVsdHMiLCJDb21tYW5kIiwicHJvdG90eXBlIiwibG9hZERlZmluaXRpb25zIiwiZGVmaW5pdGlvbnMiLCJPYmplY3QiLCJrZXlzIiwicmVkdWNlIiwicHJvZ3JhbSIsIm9wdCIsImFkZGl0aW9uYWxPcHRpb25zIiwicmVxdWlyZWQiLCJvcHRpb24iLCJoZWxwIiwiYWN0aW9uIiwib2JqZWN0Iiwia2V5IiwidmFsdWUiLCJlbnYiLCJkZWZzIiwiZGVmYXVsdCIsIm9uIiwiY29uc29sZSIsImxvZyIsImZvckVhY2giLCJwYXJzZUVudmlyb25tZW50Iiwib3B0aW9ucyIsIm9yaWdpbmFsS2V5IiwicGFyc2VDb25maWdGaWxlIiwiYXJncyIsImxlbmd0aCIsImpzb25QYXRoIiwicGF0aCIsInJlc29sdmUiLCJqc29uQ29uZmlnIiwicmVxdWlyZSIsImFwcHMiLCJzZXRWYWx1ZXNJZk5lZWRlZCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIl9wYXJzZSIsInBhcnNlIiwiZW52T3B0aW9ucyIsImZyb21GaWxlIiwiZ2V0T3B0aW9ucyJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBOztBQUNBOzs7O0FBRkE7QUFHQSxJQUFJQSxZQUFKOztBQUNBLElBQUlDLG1CQUFKOztBQUNBLElBQUlDLFNBQUo7O0FBRUFDLG1CQUFRQyxTQUFSLENBQWtCQyxlQUFsQixHQUFvQyxVQUFVQyxXQUFWLEVBQXVCO0FBQ3pETixFQUFBQSxZQUFZLEdBQUdNLFdBQWY7QUFFQUMsRUFBQUEsTUFBTSxDQUFDQyxJQUFQLENBQVlGLFdBQVosRUFBeUJHLE1BQXpCLENBQWdDLENBQUNDLE9BQUQsRUFBVUMsR0FBVixLQUFrQjtBQUNoRCxRQUFJLE9BQU9MLFdBQVcsQ0FBQ0ssR0FBRCxDQUFsQixJQUEyQixRQUEvQixFQUF5QztB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QUFSLENBQWtCMEMsVUFBbEIsR0FBK0IsWUFBWTtBQUN6QyxTQUFPdkMsTUFBTSxDQUFDQyxJQUFQLENBQVlSLFlBQVosRUFBMEJTLE1BQTFCLENBQWlDLENBQUNtQixPQUFELEVBQVVWLEdBQVYsS0FBa0I7QUFDeEQsUUFBSSxPQUFPLEtBQUtBLEdBQUwsQ0FBUCxLQUFxQixXQUF6QixFQUFzQztBQUNwQ1UsTUFBQUEsT0FBTyxDQUFDVixHQUFELENBQVAsR0FBZSxLQUFLQSxHQUFMLENBQWY7QUFDRDs7QUFDRCxXQUFPVSxPQUFQO0FBQ0QsR0FMTSxFQUtKLEVBTEksQ0FBUDtBQU1ELENBUEQ7O2VBU2UsSUFBSXpCLGtCQUFKLEU7QUFDZiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdjb21tYW5kZXInO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5sZXQgX2RlZmluaXRpb25zO1xubGV0IF9yZXZlcnNlRGVmaW5pdGlvbnM7XG5sZXQgX2RlZmF1bHRzO1xuXG5Db21tYW5kLnByb3RvdHlwZS5sb2FkRGVmaW5pdGlvbnMgPSBmdW5jdGlvbiAoZGVmaW5pdGlvbnMpIHtcbiAgX2RlZmluaXRpb25zID0gZGVmaW5pdGlvbnM7XG5cbiAgT2JqZWN0LmtleXMoZGVmaW5pdGlvbnMpLnJlZHVjZSgocHJvZ3JhbSwgb3B0KSA9PiB7XG4gICAgaWYgKHR5cGVvZiBkZWZpbml0aW9uc1tvcHRdID09ICdvYmplY3QnKSB7XG4gICAgICBjb25zdCBhZGRpdGlvbmFsT3B0aW9ucyA9IGRlZmluaXRpb25zW29wdF07XG4gICAgICBpZiAoYWRkaXRpb25hbE9wdGlvbnMucmVxdWlyZWQgPT09IHRydWUpIHtcbiAgICAgICAgcmV0dXJuIHByb2dyYW0ub3B0aW9uKFxuICAgICAgICAgIGAtLSR7b3B0fSA8JHtvcHR9PmAsXG4gICAgICAgICAgYWRkaXRpb25hbE9wdGlvbnMuaGVscCxcbiAgICAgICAgICBhZGRpdGlvbmFsT3B0aW9ucy5hY3Rpb25cbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBwcm9ncmFtLm9wdGlvbihcbiAgICAgICAgICBgLS0ke29wdH0gWyR7b3B0fV1gLFxuICAgICAgICAgIGFkZGl0aW9uYWxPcHRpb25zLmhlbHAsXG4gICAgICAgICAgYWRkaXRpb25hbE9wdGlvbnMuYWN0aW9uXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwcm9ncmFtLm9wdGlvbihgLS0ke29wdH0gWyR7b3B0fV1gKTtcbiAgfSwgdGhpcyk7XG5cbiAgX3JldmVyc2VEZWZpbml0aW9ucyA9IE9iamVjdC5rZXlzKGRlZmluaXRpb25zKS5yZWR1Y2UoKG9iamVjdCwga2V5KSA9PiB7XG4gICAgbGV0IHZhbHVlID0gZGVmaW5pdGlvbnNba2V5XTtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09ICdvYmplY3QnKSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlLmVudjtcbiAgICB9XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBvYmplY3RbdmFsdWVdID0ga2V5O1xuICAgIH1cbiAgICByZXR1cm4gb2JqZWN0O1xuICB9LCB7fSk7XG5cbiAgX2RlZmF1bHRzID0gT2JqZWN0LmtleXMoZGVmaW5pdGlvbnMpLnJlZHVjZSgoZGVmcywgb3B0KSA9PiB7XG4gICAgaWYgKF9kZWZpbml0aW9uc1tvcHRdLmRlZmF1bHQpIHtcbiAgICAgIGRlZnNbb3B0XSA9IF9kZWZpbml0aW9uc1tvcHRdLmRlZmF1bHQ7XG4gICAgfVxuICAgIHJldHVybiBkZWZzO1xuICB9LCB7fSk7XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgdGhpcy5vbignLS1oZWxwJywgZnVuY3Rpb24gKCkge1xuICAgIGNvbnNvbGUubG9nKCcgIENvbmZpZ3VyZSBGcm9tIEVudmlyb25tZW50OicpO1xuICAgIGNvbnNvbGUubG9nKCcnKTtcbiAgICBPYmplY3Qua2V5cyhfcmV2ZXJzZURlZmluaXRpb25zKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICBjb25zb2xlLmxvZyhgICAgICQgJHtrZXl9PScke19yZXZlcnNlRGVmaW5pdGlvbnNba2V5XX0nYCk7XG4gICAgfSk7XG4gICAgY29uc29sZS5sb2coJycpO1xuICB9KTtcbn07XG5cbmZ1bmN0aW9uIHBhcnNlRW52aXJvbm1lbnQoZW52ID0ge30pIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKF9yZXZlcnNlRGVmaW5pdGlvbnMpLnJlZHVjZSgob3B0aW9ucywga2V5KSA9PiB7XG4gICAgaWYgKGVudltrZXldKSB7XG4gICAgICBjb25zdCBvcmlnaW5hbEtleSA9IF9yZXZlcnNlRGVmaW5pdGlvbnNba2V5XTtcbiAgICAgIGxldCBhY3Rpb24gPSBvcHRpb24gPT4gb3B0aW9uO1xuICAgICAgaWYgKHR5cGVvZiBfZGVmaW5pdGlvbnNbb3JpZ2luYWxLZXldID09PSAnb2JqZWN0Jykge1xuICAgICAgICBhY3Rpb24gPSBfZGVmaW5pdGlvbnNbb3JpZ2luYWxLZXldLmFjdGlvbiB8fCBhY3Rpb247XG4gICAgICB9XG4gICAgICBvcHRpb25zW19yZXZlcnNlRGVmaW5pdGlvbnNba2V5XV0gPSBhY3Rpb24oZW52W2tleV0pO1xuICAgIH1cbiAgICByZXR1cm4gb3B0aW9ucztcbiAgfSwge30pO1xufVxuXG5mdW5jdGlvbiBwYXJzZUNvbmZpZ0ZpbGUocHJvZ3JhbSkge1xuICBsZXQgb3B0aW9ucyA9IHt9O1xuICBpZiAocHJvZ3JhbS5hcmdzLmxlbmd0aCA+IDApIHtcbiAgICBsZXQganNvblBhdGggPSBwcm9ncmFtLmFyZ3NbMF07XG4gICAganNvblBhdGggPSBwYXRoLnJlc29sdmUoanNvblBhdGgpO1xuICAgIGNvbnN0IGpzb25Db25maWcgPSByZXF1aXJlKGpzb25QYXRoKTtcbiAgICBpZiAoanNvbkNvbmZpZy5hcHBzKSB7XG4gICAgICBpZiAoanNvbkNvbmZpZy5hcHBzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgdGhyb3cgJ011bHRpcGxlIGFwcHMgYXJlIG5vdCBzdXBwb3J0ZWQnO1xuICAgICAgfVxuICAgICAgb3B0aW9ucyA9IGpzb25Db25maWcuYXBwc1swXTtcbiAgICB9IGVsc2Uge1xuICAgICAgb3B0aW9ucyA9IGpzb25Db25maWc7XG4gICAgfVxuICAgIE9iamVjdC5rZXlzKG9wdGlvbnMpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIGNvbnN0IHZhbHVlID0gb3B0aW9uc1trZXldO1xuICAgICAgaWYgKCFfZGVmaW5pdGlvbnNba2V5XSkge1xuICAgICAgICB0aHJvdyBgZXJyb3I6IHVua25vd24gb3B0aW9uICR7a2V5fWA7XG4gICAgICB9XG4gICAgICBjb25zdCBhY3Rpb24gPSBfZGVmaW5pdGlvbnNba2V5XS5hY3Rpb247XG4gICAgICBpZiAoYWN0aW9uKSB7XG4gICAgICAgIG9wdGlvbnNba2V5XSA9IGFjdGlvbih2YWx1ZSk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgY29uc29sZS5sb2coYENvbmZpZ3VyYXRpb24gbG9hZGVkIGZyb20gJHtqc29uUGF0aH1gKTtcbiAgfVxuICByZXR1cm4gb3B0aW9ucztcbn1cblxuQ29tbWFuZC5wcm90b3R5cGUuc2V0VmFsdWVzSWZOZWVkZWQgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICBPYmplY3Qua2V5cyhvcHRpb25zKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgaWYgKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcywga2V5KSkge1xuICAgICAgdGhpc1trZXldID0gb3B0aW9uc1trZXldO1xuICAgIH1cbiAgfSk7XG59O1xuXG5Db21tYW5kLnByb3RvdHlwZS5fcGFyc2UgPSBDb21tYW5kLnByb3RvdHlwZS5wYXJzZTtcblxuQ29tbWFuZC5wcm90b3R5cGUucGFyc2UgPSBmdW5jdGlvbiAoYXJncywgZW52KSB7XG4gIHRoaXMuX3BhcnNlKGFyZ3MpO1xuICAvLyBQYXJzZSB0aGUgZW52aXJvbm1lbnQgZmlyc3RcbiAgY29uc3QgZW52T3B0aW9ucyA9IHBhcnNlRW52aXJvbm1lbnQoZW52KTtcbiAgY29uc3QgZnJvbUZpbGUgPSBwYXJzZUNvbmZpZ0ZpbGUodGhpcyk7XG4gIC8vIExvYWQgdGhlIGVudiBpZiBub3QgcGFzc2VkIGZyb20gY29tbWFuZCBsaW5lXG4gIHRoaXMuc2V0VmFsdWVzSWZOZWVkZWQoZW52T3B0aW9ucyk7XG4gIC8vIExvYWQgZnJvbSBmaWxlIHRvIG92ZXJyaWRlXG4gIHRoaXMuc2V0VmFsdWVzSWZOZWVkZWQoZnJvbUZpbGUpO1xuICAvLyBMYXN0IHNldCB0aGUgZGVmYXVsdHNcbiAgdGhpcy5zZXRWYWx1ZXNJZk5lZWRlZChfZGVmYXVsdHMpO1xufTtcblxuQ29tbWFuZC5wcm90b3R5cGUuZ2V0T3B0aW9ucyA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKF9kZWZpbml0aW9ucykucmVkdWNlKChvcHRpb25zLCBrZXkpID0+IHtcbiAgICBpZiAodHlwZW9mIHRoaXNba2V5XSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIG9wdGlvbnNba2V5XSA9IHRoaXNba2V5XTtcbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnM7XG4gIH0sIHt9KTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IG5ldyBDb21tYW5kKCk7XG4vKiBlc2xpbnQtZW5hYmxlIG5vLWNvbnNvbGUgKi9cbiJdfQ==
|
|
168
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGkvdXRpbHMvY29tbWFuZGVyLmpzIl0sIm5hbWVzIjpbIl9kZWZpbml0aW9ucyIsIl9yZXZlcnNlRGVmaW5pdGlvbnMiLCJfZGVmYXVsdHMiLCJDb21tYW5kIiwicHJvdG90eXBlIiwibG9hZERlZmluaXRpb25zIiwiZGVmaW5pdGlvbnMiLCJPYmplY3QiLCJrZXlzIiwicmVkdWNlIiwicHJvZ3JhbSIsIm9wdCIsImFkZGl0aW9uYWxPcHRpb25zIiwicmVxdWlyZWQiLCJvcHRpb24iLCJoZWxwIiwiYWN0aW9uIiwib2JqZWN0Iiwia2V5IiwidmFsdWUiLCJlbnYiLCJkZWZzIiwiZGVmYXVsdCIsInVuZGVmaW5lZCIsIm9uIiwiY29uc29sZSIsImxvZyIsImZvckVhY2giLCJwYXJzZUVudmlyb25tZW50Iiwib3B0aW9ucyIsIm9yaWdpbmFsS2V5IiwicGFyc2VDb25maWdGaWxlIiwiYXJncyIsImxlbmd0aCIsImpzb25QYXRoIiwicGF0aCIsInJlc29sdmUiLCJqc29uQ29uZmlnIiwicmVxdWlyZSIsImFwcHMiLCJzZXRWYWx1ZXNJZk5lZWRlZCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIl9wYXJzZSIsInBhcnNlIiwiZW52T3B0aW9ucyIsImZyb21GaWxlIiwiRGVwcmVjYXRvciIsInNjYW5QYXJzZVNlcnZlck9wdGlvbnMiLCJnZXRPcHRpb25zIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFIQTtBQUtBLElBQUlBLFlBQUo7O0FBQ0EsSUFBSUMsbUJBQUo7O0FBQ0EsSUFBSUMsU0FBSjs7QUFFQUMsbUJBQVFDLFNBQVIsQ0FBa0JDLGVBQWxCLEdBQW9DLFVBQVVDLFdBQVYsRUFBdUI7QUFDekROLEVBQUFBLFlBQVksR0FBR00sV0FBZjtBQUVBQyxFQUFBQSxNQUFNLENBQUNDLElBQVAsQ0FBWUYsV0FBWixFQUF5QkcsTUFBekIsQ0FBZ0MsQ0FBQ0MsT0FBRCxFQUFVQyxHQUFWLEtBQWtCO0FBQ2hELFFBQUksT0FBT0wsV0FBVyxDQUFDSyxHQUFELENBQWxCLElBQTJCLFFBQS9CLEVBQXlDO0FBQ3ZDLFlBQU1DLGlCQUFpQixHQUFHTixXQUFXLENBQUNLLEdBQUQsQ0FBckM7O0FBQ0EsVUFBSUMsaUJBQWlCLENBQUNDLFFBQWxCLEtBQStCLElBQW5DLEVBQXlDO0FBQ3ZDLGVBQU9ILE9BQU8sQ0FBQ0ksTUFBUixDQUNKLEtBQUlILEdBQUksS0FBSUEsR0FBSSxHQURaLEVBRUxDLGlCQUFpQixDQUFDRyxJQUZiLEVBR0xILGlCQUFpQixDQUFDSSxNQUhiLENBQVA7QUFLRCxPQU5ELE1BTU87QUFDTCxlQUFPTixPQUFPLENBQUNJLE1BQVIsQ0FDSixLQUFJSCxHQUFJLEtBQUlBLEdBQUksR0FEWixFQUVMQyxpQkFBaUIsQ0FBQ0csSUFGYixFQUdMSCxpQkFBaUIsQ0FBQ0ksTUFIYixDQUFQO0FBS0Q7QUFDRjs7QUFDRCxXQUFPTixPQUFPLENBQUNJLE1BQVIsQ0FBZ0IsS0FBSUgsR0FBSSxLQUFJQSxHQUFJLEdBQWhDLENBQVA7QUFDRCxHQWxCRCxFQWtCRyxJQWxCSDtBQW9CQVYsRUFBQUEsbUJBQW1CLEdBQUdNLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZRixXQUFaLEVBQXlCRyxNQUF6QixDQUFnQyxDQUFDUSxNQUFELEVBQVNDLEdBQVQsS0FBaUI7QUFDckUsUUFBSUMsS0FBSyxHQUFHYixXQUFXLENBQUNZLEdBQUQsQ0FBdkI7O0FBQ0EsUUFBSSxPQUFPQyxLQUFQLElBQWdCLFFBQXBCLEVBQThCO0FBQzVCQSxNQUFBQSxLQUFLLEdBQUdBLEtBQUssQ0FBQ0MsR0FBZDtBQUNEOztBQUNELFFBQUlELEtBQUosRUFBVztBQUNURixNQUFBQSxNQUFNLENBQUNFLEtBQUQsQ0FBTixHQUFnQkQsR0FBaEI7QUFDRDs7QUFDRCxXQUFPRCxNQUFQO0FBQ0QsR0FUcUIsRUFTbkIsRUFUbUIsQ0FBdEI7QUFXQWYsRUFBQUEsU0FBUyxHQUFHSyxNQUFNLENBQUNDLElBQVAsQ0FBWUYsV0FBWixFQUF5QkcsTUFBekIsQ0FBZ0MsQ0FBQ1ksSUFBRCxFQUFPVixHQUFQLEtBQWU7QUFDekQsUUFBSVgsWUFBWSxDQUFDVyxHQUFELENBQVosQ0FBa0JXLE9BQWxCLEtBQThCQyxTQUFsQyxFQUE2QztBQUMzQ0YsTUFBQUEsSUFBSSxDQUFDVixHQUFELENBQUosR0FBWVgsWUFBWSxDQUFDVyxHQUFELENBQVosQ0FBa0JXLE9BQTlCO0FBQ0Q7O0FBQ0QsV0FBT0QsSUFBUDtBQUNELEdBTFcsRUFLVCxFQUxTLENBQVo7QUFPQTs7QUFDQSxPQUFLRyxFQUFMLENBQVEsUUFBUixFQUFrQixZQUFZO0FBQzVCQyxJQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWSwrQkFBWjtBQUNBRCxJQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWSxFQUFaO0FBQ0FuQixJQUFBQSxNQUFNLENBQUNDLElBQVAsQ0FBWVAsbUJBQVosRUFBaUMwQixPQUFqQyxDQUF5Q1QsR0FBRyxJQUFJO0FBQzlDTyxNQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBYSxTQUFRUixHQUFJLEtBQUlqQixtQkFBbUIsQ0FBQ2lCLEdBQUQsQ0FBTSxHQUF0RDtBQUNELEtBRkQ7QUFHQU8sSUFBQUEsT0FBTyxDQUFDQyxHQUFSLENBQVksRUFBWjtBQUNELEdBUEQ7QUFRRCxDQWxERDs7QUFvREEsU0FBU0UsZ0JBQVQsQ0FBMEJSLEdBQUcsR0FBRyxFQUFoQyxFQUFvQztBQUNsQyxTQUFPYixNQUFNLENBQUNDLElBQVAsQ0FBWVAsbUJBQVosRUFBaUNRLE1BQWpDLENBQXdDLENBQUNvQixPQUFELEVBQVVYLEdBQVYsS0FBa0I7QUFDL0QsUUFBSUUsR0FBRyxDQUFDRixHQUFELENBQVAsRUFBYztBQUNaLFlBQU1ZLFdBQVcsR0FBRzdCLG1CQUFtQixDQUFDaUIsR0FBRCxDQUF2Qzs7QUFDQSxVQUFJRixNQUFNLEdBQUdGLE1BQU0sSUFBSUEsTUFBdkI7O0FBQ0EsVUFBSSxPQUFPZCxZQUFZLENBQUM4QixXQUFELENBQW5CLEtBQXFDLFFBQXpDLEVBQW1EO0FBQ2pEZCxRQUFBQSxNQUFNLEdBQUdoQixZQUFZLENBQUM4QixXQUFELENBQVosQ0FBMEJkLE1BQTFCLElBQW9DQSxNQUE3QztBQUNEOztBQUNEYSxNQUFBQSxPQUFPLENBQUM1QixtQkFBbUIsQ0FBQ2lCLEdBQUQsQ0FBcEIsQ0FBUCxHQUFvQ0YsTUFBTSxDQUFDSSxHQUFHLENBQUNGLEdBQUQsQ0FBSixDQUExQztBQUNEOztBQUNELFdBQU9XLE9BQVA7QUFDRCxHQVZNLEVBVUosRUFWSSxDQUFQO0FBV0Q7O0FBRUQsU0FBU0UsZUFBVCxDQUF5QnJCLE9BQXpCLEVBQWtDO0FBQ2hDLE1BQUltQixPQUFPLEdBQUcsRUFBZDs7QUFDQSxNQUFJbkIsT0FBTyxDQUFDc0IsSUFBUixDQUFhQyxNQUFiLEdBQXNCLENBQTFCLEVBQTZCO0FBQzNCLFFBQUlDLFFBQVEsR0FBR3hCLE9BQU8sQ0FBQ3NCLElBQVIsQ0FBYSxDQUFiLENBQWY7QUFDQUUsSUFBQUEsUUFBUSxHQUFHQyxjQUFLQyxPQUFMLENBQWFGLFFBQWIsQ0FBWDs7QUFDQSxVQUFNRyxVQUFVLEdBQUdDLE9BQU8sQ0FBQ0osUUFBRCxDQUExQjs7QUFDQSxRQUFJRyxVQUFVLENBQUNFLElBQWYsRUFBcUI7QUFDbkIsVUFBSUYsVUFBVSxDQUFDRSxJQUFYLENBQWdCTixNQUFoQixHQUF5QixDQUE3QixFQUFnQztBQUM5QixjQUFNLGlDQUFOO0FBQ0Q7O0FBQ0RKLE1BQUFBLE9BQU8sR0FBR1EsVUFBVSxDQUFDRSxJQUFYLENBQWdCLENBQWhCLENBQVY7QUFDRCxLQUxELE1BS087QUFDTFYsTUFBQUEsT0FBTyxHQUFHUSxVQUFWO0FBQ0Q7O0FBQ0Q5QixJQUFBQSxNQUFNLENBQUNDLElBQVAsQ0FBWXFCLE9BQVosRUFBcUJGLE9BQXJCLENBQTZCVCxHQUFHLElBQUk7QUFDbEMsWUFBTUMsS0FBSyxHQUFHVSxPQUFPLENBQUNYLEdBQUQsQ0FBckI7O0FBQ0EsVUFBSSxDQUFDbEIsWUFBWSxDQUFDa0IsR0FBRCxDQUFqQixFQUF3QjtBQUN0QixjQUFPLHlCQUF3QkEsR0FBSSxFQUFuQztBQUNEOztBQUNELFlBQU1GLE1BQU0sR0FBR2hCLFlBQVksQ0FBQ2tCLEdBQUQsQ0FBWixDQUFrQkYsTUFBakM7O0FBQ0EsVUFBSUEsTUFBSixFQUFZO0FBQ1ZhLFFBQUFBLE9BQU8sQ0FBQ1gsR0FBRCxDQUFQLEdBQWVGLE1BQU0sQ0FBQ0csS0FBRCxDQUFyQjtBQUNEO0FBQ0YsS0FURDtBQVVBTSxJQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBYSw2QkFBNEJRLFFBQVMsRUFBbEQ7QUFDRDs7QUFDRCxTQUFPTCxPQUFQO0FBQ0Q7O0FBRUQxQixtQkFBUUMsU0FBUixDQUFrQm9DLGlCQUFsQixHQUFzQyxVQUFVWCxPQUFWLEVBQW1CO0FBQ3ZEdEIsRUFBQUEsTUFBTSxDQUFDQyxJQUFQLENBQVlxQixPQUFaLEVBQXFCRixPQUFyQixDQUE2QlQsR0FBRyxJQUFJO0FBQ2xDLFFBQUksQ0FBQ1gsTUFBTSxDQUFDSCxTQUFQLENBQWlCcUMsY0FBakIsQ0FBZ0NDLElBQWhDLENBQXFDLElBQXJDLEVBQTJDeEIsR0FBM0MsQ0FBTCxFQUFzRDtBQUNwRCxXQUFLQSxHQUFMLElBQVlXLE9BQU8sQ0FBQ1gsR0FBRCxDQUFuQjtBQUNEO0FBQ0YsR0FKRDtBQUtELENBTkQ7O0FBUUFmLG1CQUFRQyxTQUFSLENBQWtCdUMsTUFBbEIsR0FBMkJ4QyxtQkFBUUMsU0FBUixDQUFrQndDLEtBQTdDOztBQUVBekMsbUJBQVFDLFNBQVIsQ0FBa0J3QyxLQUFsQixHQUEwQixVQUFVWixJQUFWLEVBQWdCWixHQUFoQixFQUFxQjtBQUM3QyxPQUFLdUIsTUFBTCxDQUFZWCxJQUFaLEVBRDZDLENBRTdDOzs7QUFDQSxRQUFNYSxVQUFVLEdBQUdqQixnQkFBZ0IsQ0FBQ1IsR0FBRCxDQUFuQztBQUNBLFFBQU0wQixRQUFRLEdBQUdmLGVBQWUsQ0FBQyxJQUFELENBQWhDLENBSjZDLENBSzdDOztBQUNBLE9BQUtTLGlCQUFMLENBQXVCSyxVQUF2QixFQU42QyxDQU83Qzs7QUFDQSxPQUFLTCxpQkFBTCxDQUF1Qk0sUUFBdkIsRUFSNkMsQ0FTN0M7O0FBQ0FDLHNCQUFXQyxzQkFBWCxDQUFrQyxJQUFsQyxFQVY2QyxDQVc3Qzs7O0FBQ0EsT0FBS1IsaUJBQUwsQ0FBdUJ0QyxTQUF2QjtBQUNELENBYkQ7O0FBZUFDLG1CQUFRQyxTQUFSLENBQWtCNkMsVUFBbEIsR0FBK0IsWUFBWTtBQUN6QyxTQUFPMUMsTUFBTSxDQUFDQyxJQUFQLENBQVlSLFlBQVosRUFBMEJTLE1BQTFCLENBQWlDLENBQUNvQixPQUFELEVBQVVYLEdBQVYsS0FBa0I7QUFDeEQsUUFBSSxPQUFPLEtBQUtBLEdBQUwsQ0FBUCxLQUFxQixXQUF6QixFQUFzQztBQUNwQ1csTUFBQUEsT0FBTyxDQUFDWCxHQUFELENBQVAsR0FBZSxLQUFLQSxHQUFMLENBQWY7QUFDRDs7QUFDRCxXQUFPVyxPQUFQO0FBQ0QsR0FMTSxFQUtKLEVBTEksQ0FBUDtBQU1ELENBUEQ7O2VBU2UsSUFBSTFCLGtCQUFKLEU7QUFDZiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdjb21tYW5kZXInO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgRGVwcmVjYXRvciBmcm9tICcuLi8uLi9EZXByZWNhdG9yL0RlcHJlY2F0b3InO1xuXG5sZXQgX2RlZmluaXRpb25zO1xubGV0IF9yZXZlcnNlRGVmaW5pdGlvbnM7XG5sZXQgX2RlZmF1bHRzO1xuXG5Db21tYW5kLnByb3RvdHlwZS5sb2FkRGVmaW5pdGlvbnMgPSBmdW5jdGlvbiAoZGVmaW5pdGlvbnMpIHtcbiAgX2RlZmluaXRpb25zID0gZGVmaW5pdGlvbnM7XG5cbiAgT2JqZWN0LmtleXMoZGVmaW5pdGlvbnMpLnJlZHVjZSgocHJvZ3JhbSwgb3B0KSA9PiB7XG4gICAgaWYgKHR5cGVvZiBkZWZpbml0aW9uc1tvcHRdID09ICdvYmplY3QnKSB7XG4gICAgICBjb25zdCBhZGRpdGlvbmFsT3B0aW9ucyA9IGRlZmluaXRpb25zW29wdF07XG4gICAgICBpZiAoYWRkaXRpb25hbE9wdGlvbnMucmVxdWlyZWQgPT09IHRydWUpIHtcbiAgICAgICAgcmV0dXJuIHByb2dyYW0ub3B0aW9uKFxuICAgICAgICAgIGAtLSR7b3B0fSA8JHtvcHR9PmAsXG4gICAgICAgICAgYWRkaXRpb25hbE9wdGlvbnMuaGVscCxcbiAgICAgICAgICBhZGRpdGlvbmFsT3B0aW9ucy5hY3Rpb25cbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBwcm9ncmFtLm9wdGlvbihcbiAgICAgICAgICBgLS0ke29wdH0gWyR7b3B0fV1gLFxuICAgICAgICAgIGFkZGl0aW9uYWxPcHRpb25zLmhlbHAsXG4gICAgICAgICAgYWRkaXRpb25hbE9wdGlvbnMuYWN0aW9uXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwcm9ncmFtLm9wdGlvbihgLS0ke29wdH0gWyR7b3B0fV1gKTtcbiAgfSwgdGhpcyk7XG5cbiAgX3JldmVyc2VEZWZpbml0aW9ucyA9IE9iamVjdC5rZXlzKGRlZmluaXRpb25zKS5yZWR1Y2UoKG9iamVjdCwga2V5KSA9PiB7XG4gICAgbGV0IHZhbHVlID0gZGVmaW5pdGlvbnNba2V5XTtcbiAgICBpZiAodHlwZW9mIHZhbHVlID09ICdvYmplY3QnKSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlLmVudjtcbiAgICB9XG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICBvYmplY3RbdmFsdWVdID0ga2V5O1xuICAgIH1cbiAgICByZXR1cm4gb2JqZWN0O1xuICB9LCB7fSk7XG5cbiAgX2RlZmF1bHRzID0gT2JqZWN0LmtleXMoZGVmaW5pdGlvbnMpLnJlZHVjZSgoZGVmcywgb3B0KSA9PiB7XG4gICAgaWYgKF9kZWZpbml0aW9uc1tvcHRdLmRlZmF1bHQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgZGVmc1tvcHRdID0gX2RlZmluaXRpb25zW29wdF0uZGVmYXVsdDtcbiAgICB9XG4gICAgcmV0dXJuIGRlZnM7XG4gIH0sIHt9KTtcblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICB0aGlzLm9uKCctLWhlbHAnLCBmdW5jdGlvbiAoKSB7XG4gICAgY29uc29sZS5sb2coJyAgQ29uZmlndXJlIEZyb20gRW52aXJvbm1lbnQ6Jyk7XG4gICAgY29uc29sZS5sb2coJycpO1xuICAgIE9iamVjdC5rZXlzKF9yZXZlcnNlRGVmaW5pdGlvbnMpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKGAgICAgJCAke2tleX09JyR7X3JldmVyc2VEZWZpbml0aW9uc1trZXldfSdgKTtcbiAgICB9KTtcbiAgICBjb25zb2xlLmxvZygnJyk7XG4gIH0pO1xufTtcblxuZnVuY3Rpb24gcGFyc2VFbnZpcm9ubWVudChlbnYgPSB7fSkge1xuICByZXR1cm4gT2JqZWN0LmtleXMoX3JldmVyc2VEZWZpbml0aW9ucykucmVkdWNlKChvcHRpb25zLCBrZXkpID0+IHtcbiAgICBpZiAoZW52W2tleV0pIHtcbiAgICAgIGNvbnN0IG9yaWdpbmFsS2V5ID0gX3JldmVyc2VEZWZpbml0aW9uc1trZXldO1xuICAgICAgbGV0IGFjdGlvbiA9IG9wdGlvbiA9PiBvcHRpb247XG4gICAgICBpZiAodHlwZW9mIF9kZWZpbml0aW9uc1tvcmlnaW5hbEtleV0gPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGFjdGlvbiA9IF9kZWZpbml0aW9uc1tvcmlnaW5hbEtleV0uYWN0aW9uIHx8IGFjdGlvbjtcbiAgICAgIH1cbiAgICAgIG9wdGlvbnNbX3JldmVyc2VEZWZpbml0aW9uc1trZXldXSA9IGFjdGlvbihlbnZba2V5XSk7XG4gICAgfVxuICAgIHJldHVybiBvcHRpb25zO1xuICB9LCB7fSk7XG59XG5cbmZ1bmN0aW9uIHBhcnNlQ29uZmlnRmlsZShwcm9ncmFtKSB7XG4gIGxldCBvcHRpb25zID0ge307XG4gIGlmIChwcm9ncmFtLmFyZ3MubGVuZ3RoID4gMCkge1xuICAgIGxldCBqc29uUGF0aCA9IHByb2dyYW0uYXJnc1swXTtcbiAgICBqc29uUGF0aCA9IHBhdGgucmVzb2x2ZShqc29uUGF0aCk7XG4gICAgY29uc3QganNvbkNvbmZpZyA9IHJlcXVpcmUoanNvblBhdGgpO1xuICAgIGlmIChqc29uQ29uZmlnLmFwcHMpIHtcbiAgICAgIGlmIChqc29uQ29uZmlnLmFwcHMubGVuZ3RoID4gMSkge1xuICAgICAgICB0aHJvdyAnTXVsdGlwbGUgYXBwcyBhcmUgbm90IHN1cHBvcnRlZCc7XG4gICAgICB9XG4gICAgICBvcHRpb25zID0ganNvbkNvbmZpZy5hcHBzWzBdO1xuICAgIH0gZWxzZSB7XG4gICAgICBvcHRpb25zID0ganNvbkNvbmZpZztcbiAgICB9XG4gICAgT2JqZWN0LmtleXMob3B0aW9ucykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSBvcHRpb25zW2tleV07XG4gICAgICBpZiAoIV9kZWZpbml0aW9uc1trZXldKSB7XG4gICAgICAgIHRocm93IGBlcnJvcjogdW5rbm93biBvcHRpb24gJHtrZXl9YDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGFjdGlvbiA9IF9kZWZpbml0aW9uc1trZXldLmFjdGlvbjtcbiAgICAgIGlmIChhY3Rpb24pIHtcbiAgICAgICAgb3B0aW9uc1trZXldID0gYWN0aW9uKHZhbHVlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zb2xlLmxvZyhgQ29uZmlndXJhdGlvbiBsb2FkZWQgZnJvbSAke2pzb25QYXRofWApO1xuICB9XG4gIHJldHVybiBvcHRpb25zO1xufVxuXG5Db21tYW5kLnByb3RvdHlwZS5zZXRWYWx1ZXNJZk5lZWRlZCA9IGZ1bmN0aW9uIChvcHRpb25zKSB7XG4gIE9iamVjdC5rZXlzKG9wdGlvbnMpLmZvckVhY2goa2V5ID0+IHtcbiAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0aGlzLCBrZXkpKSB7XG4gICAgICB0aGlzW2tleV0gPSBvcHRpb25zW2tleV07XG4gICAgfVxuICB9KTtcbn07XG5cbkNvbW1hbmQucHJvdG90eXBlLl9wYXJzZSA9IENvbW1hbmQucHJvdG90eXBlLnBhcnNlO1xuXG5Db21tYW5kLnByb3RvdHlwZS5wYXJzZSA9IGZ1bmN0aW9uIChhcmdzLCBlbnYpIHtcbiAgdGhpcy5fcGFyc2UoYXJncyk7XG4gIC8vIFBhcnNlIHRoZSBlbnZpcm9ubWVudCBmaXJzdFxuICBjb25zdCBlbnZPcHRpb25zID0gcGFyc2VFbnZpcm9ubWVudChlbnYpO1xuICBjb25zdCBmcm9tRmlsZSA9IHBhcnNlQ29uZmlnRmlsZSh0aGlzKTtcbiAgLy8gTG9hZCB0aGUgZW52IGlmIG5vdCBwYXNzZWQgZnJvbSBjb21tYW5kIGxpbmVcbiAgdGhpcy5zZXRWYWx1ZXNJZk5lZWRlZChlbnZPcHRpb25zKTtcbiAgLy8gTG9hZCBmcm9tIGZpbGUgdG8gb3ZlcnJpZGVcbiAgdGhpcy5zZXRWYWx1ZXNJZk5lZWRlZChmcm9tRmlsZSk7XG4gIC8vIFNjYW4gZm9yIGRlcHJlY2F0ZWQgUGFyc2UgU2VydmVyIG9wdGlvbnNcbiAgRGVwcmVjYXRvci5zY2FuUGFyc2VTZXJ2ZXJPcHRpb25zKHRoaXMpO1xuICAvLyBMYXN0IHNldCB0aGUgZGVmYXVsdHNcbiAgdGhpcy5zZXRWYWx1ZXNJZk5lZWRlZChfZGVmYXVsdHMpO1xufTtcblxuQ29tbWFuZC5wcm90b3R5cGUuZ2V0T3B0aW9ucyA9IGZ1bmN0aW9uICgpIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKF9kZWZpbml0aW9ucykucmVkdWNlKChvcHRpb25zLCBrZXkpID0+IHtcbiAgICBpZiAodHlwZW9mIHRoaXNba2V5XSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIG9wdGlvbnNba2V5XSA9IHRoaXNba2V5XTtcbiAgICB9XG4gICAgcmV0dXJuIG9wdGlvbnM7XG4gIH0sIHt9KTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IG5ldyBDb21tYW5kKCk7XG4vKiBlc2xpbnQtZW5hYmxlIG5vLWNvbnNvbGUgKi9cbiJdfQ==
|
|
@@ -70,4 +70,4 @@ class HTTPResponse {
|
|
|
70
70
|
}
|
|
71
71
|
|
|
72
72
|
exports.default = HTTPResponse;
|
|
73
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbG91ZC1jb2RlL0hUVFBSZXNwb25zZS5qcyJdLCJuYW1lcyI6WyJIVFRQUmVzcG9uc2UiLCJjb25zdHJ1Y3RvciIsInJlc3BvbnNlIiwiYm9keSIsIl90ZXh0IiwiX2RhdGEiLCJzdGF0dXMiLCJzdGF0dXNDb2RlIiwiaGVhZGVycyIsImNvb2tpZXMiLCJCdWZmZXIiLCJpc0J1ZmZlciIsImJ1ZmZlciIsImdldFRleHQiLCJ0b1N0cmluZyIsIkpTT04iLCJzdHJpbmdpZnkiLCJnZXREYXRhIiwicGFyc2UiLCJlIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXQiLCJlbnVtZXJhYmxlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ2UsTUFBTUEsWUFBTixDQUFtQjtBQUNoQ0MsRUFBQUEsV0FBVyxDQUFDQyxRQUFELEVBQVdDLElBQVgsRUFBaUI7QUFDMUIsUUFBSUMsS0FBSixFQUFXQyxLQUFYOztBQUNBLFNBQUtDLE1BQUwsR0FBY0osUUFBUSxDQUFDSyxVQUF2QjtBQUNBLFNBQUtDLE9BQUwsR0FBZU4sUUFBUSxDQUFDTSxPQUFULElBQW9CLEVBQW5DO0FBQ0EsU0FBS0MsT0FBTCxHQUFlLEtBQUtELE9BQUwsQ0FBYSxZQUFiLENBQWY7O0FBRUEsUUFBSSxPQUFPTCxJQUFQLElBQWUsUUFBbkIsRUFBNkI7QUFDM0JDLE1BQUFBLEtBQUssR0FBR0QsSUFBUjtBQUNELEtBRkQsTUFFTyxJQUFJTyxNQUFNLENBQUNDLFFBQVAsQ0FBZ0JSLElBQWhCLENBQUosRUFBMkI7QUFDaEMsV0FBS1MsTUFBTCxHQUFjVCxJQUFkO0FBQ0QsS0FGTSxNQUVBLElBQUksT0FBT0EsSUFBUCxJQUFlLFFBQW5CLEVBQTZCO0FBQ2xDRSxNQUFBQSxLQUFLLEdBQUdGLElBQVI7QUFDRDs7QUFFRCxVQUFNVSxPQUFPLEdBQUcsTUFBTTtBQUNwQixVQUFJLENBQUNULEtBQUQsSUFBVSxLQUFLUSxNQUFuQixFQUEyQjtBQUN6QlIsUUFBQUEsS0FBSyxHQUFHLEtBQUtRLE1BQUwsQ0FBWUUsUUFBWixDQUFxQixPQUFyQixDQUFSO0FBQ0QsT0FGRCxNQUVPLElBQUksQ0FBQ1YsS0FBRCxJQUFVQyxLQUFkLEVBQXFCO0FBQzFCRCxRQUFBQSxLQUFLLEdBQUdXLElBQUksQ0FBQ0MsU0FBTCxDQUFlWCxLQUFmLENBQVI7QUFDRDs7QUFDRCxhQUFPRCxLQUFQO0FBQ0QsS0FQRDs7QUFTQSxVQUFNYSxPQUFPLEdBQUcsTUFBTTtBQUNwQixVQUFJLENBQUNaLEtBQUwsRUFBWTtBQUNWLFlBQUk7QUFDRkEsVUFBQUEsS0FBSyxHQUFHVSxJQUFJLENBQUNHLEtBQUwsQ0FBV0wsT0FBTyxFQUFsQixDQUFSO0FBQ0QsU0FGRCxDQUVFLE9BQU9NLENBQVAsRUFBVTtBQUNWO0FBQ0Q7QUFDRjs7QUFDRCxhQUFPZCxLQUFQO0FBQ0QsS0FURDs7QUFXQWUsSUFBQUEsTUFBTSxDQUFDQyxjQUFQLENBQXNCLElBQXRCLEVBQTRCLE1BQTVCLEVBQW9DO0FBQ2xDQyxNQUFBQSxHQUFHLEVBQUUsTUFBTTtBQUNULGVBQU9uQixJQUFQO0FBQ0Q7QUFIaUMsS0FBcEM7QUFNQWlCLElBQUFBLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQixJQUF0QixFQUE0QixNQUE1QixFQUFvQztBQUNsQ0UsTUFBQUEsVUFBVSxFQUFFLElBRHNCO0FBRWxDRCxNQUFBQSxHQUFHLEVBQUVUO0FBRjZCLEtBQXBDO0FBS0FPLElBQUFBLE1BQU0sQ0FBQ0MsY0FBUCxDQUFzQixJQUF0QixFQUE0QixNQUE1QixFQUFvQztBQUNsQ0UsTUFBQUEsVUFBVSxFQUFFLElBRHNCO0FBRWxDRCxNQUFBQSxHQUFHLEVBQUVMO0FBRjZCLEtBQXBDO0FBSUQ7O0FBbEQrQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQHR5cGVkZWYgUGFyc2UuQ2xvdWQuSFRUUFJlc3BvbnNlXG4gKiBAcHJvcGVydHkge0J1ZmZlcn0gYnVmZmVyIFRoZSByYXcgYnl0ZSByZXByZXNlbnRhdGlvbiBvZiB0aGUgcmVzcG9uc2UgYm9keS4gVXNlIHRoaXMgdG8gcmVjZWl2ZSBiaW5hcnkgZGF0YS4gU2VlIEJ1ZmZlciBmb3IgbW9yZSBkZXRhaWxzLlxuICogQHByb3BlcnR5IHtPYmplY3R9IGNvb2tpZXMgVGhlIGNvb2tpZXMgc2VudCBieSB0aGUgc2VydmVyLiBUaGUga2V5cyBpbiB0aGlzIG9iamVjdCBhcmUgdGhlIG5hbWVzIG9mIHRoZSBjb29raWVzLiBUaGUgdmFsdWVzIGFyZSBQYXJzZS5DbG91ZC5Db29raWUgb2JqZWN0cy5cbiAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBkYXRhIFRoZSBwYXJzZWQgcmVzcG9uc2UgYm9keSBhcyBhIEphdmFTY3JpcHQgb2JqZWN0LiBUaGlzIGlzIG9ubHkgYXZhaWxhYmxlIHdoZW4gdGhlIHJlc3BvbnNlIENvbnRlbnQtVHlwZSBpcyBhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQgb3IgYXBwbGljYXRpb24vanNvbi5cbiAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBoZWFkZXJzIFRoZSBoZWFkZXJzIHNlbnQgYnkgdGhlIHNlcnZlci4gVGhlIGtleXMgaW4gdGhpcyBvYmplY3QgYXJlIHRoZSBuYW1lcyBvZiB0aGUgaGVhZGVycy4gV2UgZG8gbm90IHN1cHBvcnQgbXVsdGlwbGUgcmVzcG9uc2UgaGVhZGVycyB3aXRoIHRoZSBzYW1lIG5hbWUuIEluIHRoZSBjb21tb24gY2FzZSBvZiBTZXQtQ29va2llIGhlYWRlcnMsIHBsZWFzZSB1c2UgdGhlIGNvb2tpZXMgZmllbGQgaW5zdGVhZC5cbiAqIEBwcm9wZXJ0eSB7TnVtYmVyfSBzdGF0dXMgVGhlIHN0YXR1cyBjb2RlLlxuICogQHByb3BlcnR5IHtTdHJpbmd9IHRleHQgVGhlIHJhdyB0ZXh0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSByZXNwb25zZSBib2R5LlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBIVFRQUmVzcG9uc2Uge1xuICBjb25zdHJ1Y3RvcihyZXNwb25zZSwgYm9keSkge1xuICAgIGxldCBfdGV4dCwgX2RhdGE7XG4gICAgdGhpcy5zdGF0dXMgPSByZXNwb25zZS5zdGF0dXNDb2RlO1xuICAgIHRoaXMuaGVhZGVycyA9IHJlc3BvbnNlLmhlYWRlcnMgfHwge307XG4gICAgdGhpcy5jb29raWVzID0gdGhpcy5oZWFkZXJzWydzZXQtY29va2llJ107XG5cbiAgICBpZiAodHlwZW9mIGJvZHkgPT0gJ3N0cmluZycpIHtcbiAgICAgIF90ZXh0ID0gYm9keTtcbiAgICB9IGVsc2UgaWYgKEJ1ZmZlci5pc0J1ZmZlcihib2R5KSkge1xuICAgICAgdGhpcy5idWZmZXIgPSBib2R5O1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIGJvZHkgPT0gJ29iamVjdCcpIHtcbiAgICAgIF9kYXRhID0gYm9keTtcbiAgICB9XG5cbiAgICBjb25zdCBnZXRUZXh0ID0gKCkgPT4ge1xuICAgICAgaWYgKCFfdGV4dCAmJiB0aGlzLmJ1ZmZlcikge1xuICAgICAgICBfdGV4dCA9IHRoaXMuYnVmZmVyLnRvU3RyaW5nKCd1dGYtOCcpO1xuICAgICAgfSBlbHNlIGlmICghX3RleHQgJiYgX2RhdGEpIHtcbiAgICAgICAgX3RleHQgPSBKU09OLnN0cmluZ2lmeShfZGF0YSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gX3RleHQ7XG4gICAgfTtcblxuICAgIGNvbnN0IGdldERhdGEgPSAoKSA9PiB7XG4gICAgICBpZiAoIV9kYXRhKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgX2RhdGEgPSBKU09OLnBhcnNlKGdldFRleHQoKSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAvKiAqL1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gX2RhdGE7XG4gICAgfTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCAnYm9keScsIHtcbiAgICAgIGdldDogKCkgPT4ge1xuICAgICAgICByZXR1cm4gYm9keTtcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgJ3RleHQnLCB7XG4gICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgZ2V0OiBnZXRUZXh0LFxuICAgIH0pO1xuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsICdkYXRhJywge1xuICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgIGdldDogZ2V0RGF0YSxcbiAgICB9KTtcbiAgfVxufVxuIl19
|