parse-server 6.0.0 → 6.1.0-alpha.10
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/lib/Adapters/Analytics/AnalyticsAdapter.js +2 -4
- package/lib/Adapters/Auth/AuthAdapter.js +19 -1
- package/lib/Adapters/Auth/apple.js +3 -11
- package/lib/Adapters/Auth/facebook.js +3 -11
- package/lib/Adapters/Auth/google.js +3 -11
- package/lib/Adapters/Auth/index.js +46 -4
- package/lib/Adapters/Auth/utils.js +17 -0
- package/lib/Adapters/Cache/CacheAdapter.js +3 -5
- package/lib/Adapters/Email/MailAdapter.js +3 -5
- package/lib/Adapters/Files/FilesAdapter.js +3 -5
- package/lib/Adapters/Logger/LoggerAdapter.js +3 -5
- package/lib/Adapters/PubSub/PubSubAdapter.js +3 -5
- package/lib/Adapters/Push/PushAdapter.js +3 -5
- package/lib/Adapters/Storage/Mongo/MongoStorageAdapter.js +7 -4
- package/lib/Adapters/Storage/Mongo/MongoTransform.js +11 -4
- package/lib/Adapters/Storage/Postgres/PostgresConfigParser.js +2 -2
- package/lib/Adapters/Storage/Postgres/PostgresStorageAdapter.js +7 -3
- package/lib/Adapters/Storage/StorageAdapter.js +1 -1
- package/lib/Adapters/WebSocketServer/WSSAdapter.js +3 -5
- package/lib/Config.js +57 -19
- package/lib/Controllers/SchemaController.js +30 -4
- package/lib/LiveQuery/Client.js +5 -5
- package/lib/LiveQuery/ParseLiveQueryServer.js +12 -6
- package/lib/LiveQuery/RequestSchema.js +33 -1
- package/lib/Options/Definitions.js +28 -2
- package/lib/Options/docs.js +7 -2
- package/lib/Options/index.js +1 -1
- package/lib/ParseServer.js +2 -1
- package/lib/RestQuery.js +12 -1
- package/lib/RestWrite.js +11 -7
- package/lib/Routers/FunctionsRouter.js +3 -3
- package/lib/Routers/UsersRouter.js +17 -14
- package/lib/Security/Check.js +2 -2
- package/lib/Security/CheckGroup.js +3 -6
- package/lib/Security/CheckGroups/CheckGroupDatabase.js +3 -6
- package/lib/Security/CheckGroups/CheckGroupServerConfig.js +2 -5
- package/lib/Security/CheckGroups/CheckGroups.js +1 -1
- package/lib/Security/CheckRunner.js +2 -5
- package/lib/TestUtils.js +11 -4
- package/lib/cloud-code/Parse.Cloud.js +8 -6
- package/lib/index.js +8 -1
- package/lib/middlewares.js +42 -6
- package/package.json +7 -6
|
@@ -5,11 +5,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.default = exports.AnalyticsAdapter = void 0;
|
|
7
7
|
/*eslint no-unused-vars: "off"*/
|
|
8
|
-
/**
|
|
9
|
-
* @module Adapters
|
|
10
|
-
*/
|
|
11
8
|
/**
|
|
12
9
|
* @interface AnalyticsAdapter
|
|
10
|
+
* @module Adapters
|
|
13
11
|
*/
|
|
14
12
|
class AnalyticsAdapter {
|
|
15
13
|
/**
|
|
@@ -32,4 +30,4 @@ class AnalyticsAdapter {
|
|
|
32
30
|
exports.AnalyticsAdapter = AnalyticsAdapter;
|
|
33
31
|
var _default = AnalyticsAdapter;
|
|
34
32
|
exports.default = _default;
|
|
35
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBbmFseXRpY3NBZGFwdGVyIiwiYXBwT3BlbmVkIiwicGFyYW1ldGVycyIsInJlcSIsIlByb21pc2UiLCJyZXNvbHZlIiwidHJhY2tFdmVudCIsImV2ZW50TmFtZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9BbmFseXRpY3MvQW5hbHl0aWNzQWRhcHRlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKmVzbGludCBuby11bnVzZWQtdmFyczogXCJvZmZcIiovXG4vKipcbiAqIEBpbnRlcmZhY2UgQW5hbHl0aWNzQWRhcHRlclxuICogQG1vZHVsZSBBZGFwdGVyc1xuICovXG5leHBvcnQgY2xhc3MgQW5hbHl0aWNzQWRhcHRlciB7XG4gIC8qKlxuICBAcGFyYW0ge2FueX0gcGFyYW1ldGVyczogdGhlIGFuYWx5dGljcyByZXF1ZXN0IGJvZHksIGFuYWx5dGljcyBpbmZvIHdpbGwgYmUgaW4gdGhlIGRpbWVuc2lvbnMgcHJvcGVydHlcbiAgQHBhcmFtIHtSZXF1ZXN0fSByZXE6IHRoZSBvcmlnaW5hbCBodHRwIHJlcXVlc3RcbiAgICovXG4gIGFwcE9wZW5lZChwYXJhbWV0ZXJzLCByZXEpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt9KTtcbiAgfVxuXG4gIC8qKlxuICBAcGFyYW0ge1N0cmluZ30gZXZlbnROYW1lOiB0aGUgbmFtZSBvZiB0aGUgY3VzdG9tIGV2ZW50TmFtZVxuICBAcGFyYW0ge2FueX0gcGFyYW1ldGVyczogdGhlIGFuYWx5dGljcyByZXF1ZXN0IGJvZHksIGFuYWx5dGljcyBpbmZvIHdpbGwgYmUgaW4gdGhlIGRpbWVuc2lvbnMgcHJvcGVydHlcbiAgQHBhcmFtIHtSZXF1ZXN0fSByZXE6IHRoZSBvcmlnaW5hbCBodHRwIHJlcXVlc3RcbiAgICovXG4gIHRyYWNrRXZlbnQoZXZlbnROYW1lLCBwYXJhbWV0ZXJzLCByZXEpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt9KTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBBbmFseXRpY3NBZGFwdGVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sTUFBTUEsZ0JBQWdCLENBQUM7RUFDNUI7QUFDRjtBQUNBO0FBQ0E7RUFDRUMsU0FBUyxDQUFDQyxVQUFVLEVBQUVDLEdBQUcsRUFBRTtJQUN6QixPQUFPQyxPQUFPLENBQUNDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztFQUM1Qjs7RUFFQTtBQUNGO0FBQ0E7QUFDQTtBQUNBO0VBQ0VDLFVBQVUsQ0FBQ0MsU0FBUyxFQUFFTCxVQUFVLEVBQUVDLEdBQUcsRUFBRTtJQUNyQyxPQUFPQyxPQUFPLENBQUNDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztFQUM1QjtBQUNGO0FBQUM7QUFBQSxlQUVjTCxnQkFBZ0I7QUFBQSJ9
|
|
@@ -99,8 +99,26 @@ class AuthAdapter {
|
|
|
99
99
|
challenge(challengeData, authData, options, request) {
|
|
100
100
|
return Promise.resolve({});
|
|
101
101
|
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Triggered when auth data is fetched
|
|
105
|
+
* @param {Object} authData authData
|
|
106
|
+
* @param {Object} options additional adapter options
|
|
107
|
+
* @returns {Promise<Object>} Any overrides required to authData
|
|
108
|
+
*/
|
|
109
|
+
afterFind(authData, options) {
|
|
110
|
+
return Promise.resolve({});
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Triggered when the adapter is first attached to Parse Server
|
|
115
|
+
* @param {Object} options Adapter Options
|
|
116
|
+
*/
|
|
117
|
+
validateOptions(options) {
|
|
118
|
+
/* */
|
|
119
|
+
}
|
|
102
120
|
}
|
|
103
121
|
exports.AuthAdapter = AuthAdapter;
|
|
104
122
|
var _default = AuthAdapter;
|
|
105
123
|
exports.default = _default;
|
|
106
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
124
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBdXRoQWRhcHRlciIsImNvbnN0cnVjdG9yIiwicG9saWN5IiwidmFsaWRhdGVBcHBJZCIsImFwcElkcyIsImF1dGhEYXRhIiwib3B0aW9ucyIsInJlcXVlc3QiLCJQcm9taXNlIiwicmVzb2x2ZSIsInZhbGlkYXRlQXV0aERhdGEiLCJ2YWxpZGF0ZVNldFVwIiwicmVxIiwidmFsaWRhdGVMb2dpbiIsInZhbGlkYXRlVXBkYXRlIiwiY2hhbGxlbmdlIiwiY2hhbGxlbmdlRGF0YSIsImFmdGVyRmluZCIsInZhbGlkYXRlT3B0aW9ucyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9BdXRoL0F1dGhBZGFwdGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qZXNsaW50IG5vLXVudXNlZC12YXJzOiBcIm9mZlwiKi9cblxuLyoqXG4gKiBAaW50ZXJmYWNlIFBhcnNlQXV0aFJlc3BvbnNlXG4gKiBAcHJvcGVydHkge0Jvb2xlYW59IFtkb05vdFNhdmVdIElmIHRydWUsIFBhcnNlIFNlcnZlciB3aWxsIG5vdCBzYXZlIHByb3ZpZGVkIGF1dGhEYXRhLlxuICogQHByb3BlcnR5IHtPYmplY3R9IFtyZXNwb25zZV0gSWYgc2V0LCBQYXJzZSBTZXJ2ZXIgd2lsbCBzZW5kIHRoZSBwcm92aWRlZCByZXNwb25zZSB0byB0aGUgY2xpZW50IHVuZGVyIGF1dGhEYXRhUmVzcG9uc2VcbiAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBbc2F2ZV0gSWYgc2V0LCBQYXJzZSBTZXJ2ZXIgd2lsbCBzYXZlIHRoZSBvYmplY3QgcHJvdmlkZWQgaW50byB0aGlzIGtleSwgaW5zdGVhZCBvZiBjbGllbnQgcHJvdmlkZWQgYXV0aERhdGFcbiAqL1xuXG4vKipcbiAqIEF1dGhQb2xpY3lcbiAqIGRlZmF1bHQ6IGNhbiBiZSBjb21iaW5lZCB3aXRoIE9ORSBhZGRpdGlvbmFsIGF1dGggcHJvdmlkZXIgaWYgYWRkaXRpb25hbCBjb25maWd1cmVkIG9uIHVzZXJcbiAqIGFkZGl0aW9uYWw6IGNvdWxkIGJlIG9ubHkgdXNlZCB3aXRoIGEgZGVmYXVsdCBwb2xpY3kgYXV0aCBwcm92aWRlclxuICogc29sbzogV2lsbCBpZ25vcmUgQUxMIGFkZGl0aW9uYWwgcHJvdmlkZXJzIGlmIGFkZGl0aW9uYWwgY29uZmlndXJlZCBvbiB1c2VyXG4gKiBAdHlwZWRlZiB7XCJkZWZhdWx0XCIgfCBcImFkZGl0aW9uYWxcIiB8IFwic29sb1wifSBBdXRoUG9saWN5XG4gKi9cblxuZXhwb3J0IGNsYXNzIEF1dGhBZGFwdGVyIHtcbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLyoqXG4gICAgICogVXNhZ2UgcG9saWN5XG4gICAgICogQHR5cGUge0F1dGhQb2xpY3l9XG4gICAgICovXG4gICAgdGhpcy5wb2xpY3kgPSAnZGVmYXVsdCc7XG4gIH1cbiAgLyoqXG4gICAqIEBwYXJhbSBhcHBJZHMgVGhlIHNwZWNpZmllZCBhcHAgSURzIGluIHRoZSBjb25maWd1cmF0aW9uXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBhdXRoRGF0YSBUaGUgY2xpZW50IHByb3ZpZGVkIGF1dGhEYXRhXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIGFkZGl0aW9uYWwgYWRhcHRlciBvcHRpb25zXG4gICAqIEBwYXJhbSB7UGFyc2UuQ2xvdWQuVHJpZ2dlclJlcXVlc3R9IHJlcXVlc3RcbiAgICogQHJldHVybnMgeyhQcm9taXNlPHVuZGVmaW5lZHx2b2lkPnx2b2lkfHVuZGVmaW5lZCl9IHJlc29sdmVzIG9yIHJldHVybnMgaWYgdGhlIGFwcGxpY2F0aW9uSWQgaXMgdmFsaWRcbiAgICovXG4gIHZhbGlkYXRlQXBwSWQoYXBwSWRzLCBhdXRoRGF0YSwgb3B0aW9ucywgcmVxdWVzdCkge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xuICB9XG5cbiAgLyoqXG4gICAqIExlZ2FjeSB1c2FnZSwgaWYgcHJvdmlkZWQgaXQgd2lsbCBiZSB0cmlnZ2VyZWQgd2hlbiBhdXRoRGF0YSByZWxhdGVkIHRvIHRoaXMgcHJvdmlkZXIgaXMgdG91Y2hlZCAoc2lnbnVwL3VwZGF0ZS9sb2dpbilcbiAgICogb3RoZXJ3aXNlIHlvdSBzaG91bGQgaW1wbGVtZW50IHZhbGlkYXRlU2V0dXAsIHZhbGlkYXRlTG9naW4gYW5kIHZhbGlkYXRlVXBkYXRlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBhdXRoRGF0YSBUaGUgY2xpZW50IHByb3ZpZGVkIGF1dGhEYXRhXG4gICAqIEBwYXJhbSB7UGFyc2UuQ2xvdWQuVHJpZ2dlclJlcXVlc3R9IHJlcXVlc3RcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgYWRkaXRpb25hbCBhZGFwdGVyIG9wdGlvbnNcbiAgICogQHJldHVybnMge1Byb21pc2U8UGFyc2VBdXRoUmVzcG9uc2V8dm9pZHx1bmRlZmluZWQ+fVxuICAgKi9cbiAgdmFsaWRhdGVBdXRoRGF0YShhdXRoRGF0YSwgcmVxdWVzdCwgb3B0aW9ucykge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyaWdnZXJlZCB3aGVuIHVzZXIgcHJvdmlkZSBmb3IgdGhlIGZpcnN0IHRpbWUgdGhpcyBhdXRoIHByb3ZpZGVyXG4gICAqIGNvdWxkIGJlIGEgcmVnaXN0ZXIgb3IgdGhlIHVzZXIgYWRkaW5nIGEgbmV3IGF1dGggc2VydmljZVxuICAgKiBAcGFyYW0ge09iamVjdH0gYXV0aERhdGEgVGhlIGNsaWVudCBwcm92aWRlZCBhdXRoRGF0YVxuICAgKiBAcGFyYW0ge1BhcnNlLkNsb3VkLlRyaWdnZXJSZXF1ZXN0fSByZXF1ZXN0XG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIGFkZGl0aW9uYWwgYWRhcHRlciBvcHRpb25zXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFBhcnNlQXV0aFJlc3BvbnNlfHZvaWR8dW5kZWZpbmVkPn1cbiAgICovXG4gIHZhbGlkYXRlU2V0VXAoYXV0aERhdGEsIHJlcSwgb3B0aW9ucykge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe30pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRyaWdnZXJlZCB3aGVuIHVzZXIgcHJvdmlkZSBhdXRoRGF0YSByZWxhdGVkIHRvIHRoaXMgcHJvdmlkZXJcbiAgICogVGhlIHVzZXIgaXMgbm90IGxvZ2dlZCBpbiBhbmQgaGFzIGFscmVhZHkgc2V0IHRoaXMgcHJvdmlkZXIgYmVmb3JlXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBhdXRoRGF0YSBUaGUgY2xpZW50IHByb3ZpZGVkIGF1dGhEYXRhXG4gICAqIEBwYXJhbSB7UGFyc2UuQ2xvdWQuVHJpZ2dlclJlcXVlc3R9IHJlcXVlc3RcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgYWRkaXRpb25hbCBhZGFwdGVyIG9wdGlvbnNcbiAgICogQHJldHVybnMge1Byb21pc2U8UGFyc2VBdXRoUmVzcG9uc2V8dm9pZHx1bmRlZmluZWQ+fVxuICAgKi9cbiAgdmFsaWRhdGVMb2dpbihhdXRoRGF0YSwgcmVxLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlcmVkIHdoZW4gdXNlciBwcm92aWRlIGF1dGhEYXRhIHJlbGF0ZWQgdG8gdGhpcyBwcm92aWRlclxuICAgKiB0aGUgdXNlciBpcyBsb2dnZWQgaW4gYW5kIGhhcyBhbHJlYWR5IHNldCB0aGlzIHByb3ZpZGVyIGJlZm9yZVxuICAgKiBAcGFyYW0ge09iamVjdH0gYXV0aERhdGEgVGhlIGNsaWVudCBwcm92aWRlZCBhdXRoRGF0YVxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyBhZGRpdGlvbmFsIGFkYXB0ZXIgb3B0aW9uc1xuICAgKiBAcGFyYW0ge1BhcnNlLkNsb3VkLlRyaWdnZXJSZXF1ZXN0fSByZXF1ZXN0XG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFBhcnNlQXV0aFJlc3BvbnNlfHZvaWR8dW5kZWZpbmVkPn1cbiAgICovXG4gIHZhbGlkYXRlVXBkYXRlKGF1dGhEYXRhLCByZXEsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VyZWQgaW4gcHJlIGF1dGhlbnRpY2F0aW9uIHByb2Nlc3MgaWYgbmVlZGVkIChsaWtlIHdlYmF1dGhuLCBTTVMgT1RQKVxuICAgKiBAcGFyYW0ge09iamVjdH0gY2hhbGxlbmdlRGF0YSBEYXRhIHByb3ZpZGVkIGJ5IHRoZSBjbGllbnRcbiAgICogQHBhcmFtIHsoT2JqZWN0fHVuZGVmaW5lZCl9IGF1dGhEYXRhIEF1dGggZGF0YSBwcm92aWRlZCBieSB0aGUgY2xpZW50LCBjYW4gYmUgdXNlZCBmb3IgdmFsaWRhdGlvblxuICAgKiBAcGFyYW0ge09iamVjdH0gb3B0aW9ucyBhZGRpdGlvbmFsIGFkYXB0ZXIgb3B0aW9uc1xuICAgKiBAcGFyYW0ge1BhcnNlLkNsb3VkLlRyaWdnZXJSZXF1ZXN0fSByZXF1ZXN0XG4gICAqIEByZXR1cm5zIHtQcm9taXNlPE9iamVjdD59IEEgcHJvbWlzZSB0aGF0IHJlc29sdmVzLCByZXNvbHZlZCB2YWx1ZSB3aWxsIGJlIGFkZGVkIHRvIGNoYWxsZW5nZSByZXNwb25zZSB1bmRlciBjaGFsbGVuZ2Uga2V5XG4gICAqL1xuICBjaGFsbGVuZ2UoY2hhbGxlbmdlRGF0YSwgYXV0aERhdGEsIG9wdGlvbnMsIHJlcXVlc3QpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHt9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VyZWQgd2hlbiBhdXRoIGRhdGEgaXMgZmV0Y2hlZFxuICAgKiBAcGFyYW0ge09iamVjdH0gYXV0aERhdGEgYXV0aERhdGFcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMgYWRkaXRpb25hbCBhZGFwdGVyIG9wdGlvbnNcbiAgICogQHJldHVybnMge1Byb21pc2U8T2JqZWN0Pn0gQW55IG92ZXJyaWRlcyByZXF1aXJlZCB0byBhdXRoRGF0YVxuICAgKi9cbiAgYWZ0ZXJGaW5kKGF1dGhEYXRhLCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7fSk7XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlcmVkIHdoZW4gdGhlIGFkYXB0ZXIgaXMgZmlyc3QgYXR0YWNoZWQgdG8gUGFyc2UgU2VydmVyXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIEFkYXB0ZXIgT3B0aW9uc1xuICAgKi9cbiAgdmFsaWRhdGVPcHRpb25zKG9wdGlvbnMpIHtcbiAgICAvKiAqL1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEF1dGhBZGFwdGVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRU8sTUFBTUEsV0FBVyxDQUFDO0VBQ3ZCQyxXQUFXLEdBQUc7SUFDWjtBQUNKO0FBQ0E7QUFDQTtJQUNJLElBQUksQ0FBQ0MsTUFBTSxHQUFHLFNBQVM7RUFDekI7RUFDQTtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNFQyxhQUFhLENBQUNDLE1BQU0sRUFBRUMsUUFBUSxFQUFFQyxPQUFPLEVBQUVDLE9BQU8sRUFBRTtJQUNoRCxPQUFPQyxPQUFPLENBQUNDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztFQUM1Qjs7RUFFQTtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0VDLGdCQUFnQixDQUFDTCxRQUFRLEVBQUVFLE9BQU8sRUFBRUQsT0FBTyxFQUFFO0lBQzNDLE9BQU9FLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0VBQzVCOztFQUVBO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDRUUsYUFBYSxDQUFDTixRQUFRLEVBQUVPLEdBQUcsRUFBRU4sT0FBTyxFQUFFO0lBQ3BDLE9BQU9FLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0VBQzVCOztFQUVBO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDRUksYUFBYSxDQUFDUixRQUFRLEVBQUVPLEdBQUcsRUFBRU4sT0FBTyxFQUFFO0lBQ3BDLE9BQU9FLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0VBQzVCOztFQUVBO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDRUssY0FBYyxDQUFDVCxRQUFRLEVBQUVPLEdBQUcsRUFBRU4sT0FBTyxFQUFFO0lBQ3JDLE9BQU9FLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0VBQzVCOztFQUVBO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDRU0sU0FBUyxDQUFDQyxhQUFhLEVBQUVYLFFBQVEsRUFBRUMsT0FBTyxFQUFFQyxPQUFPLEVBQUU7SUFDbkQsT0FBT0MsT0FBTyxDQUFDQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7RUFDNUI7O0VBRUE7QUFDRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ0VRLFNBQVMsQ0FBQ1osUUFBUSxFQUFFQyxPQUFPLEVBQUU7SUFDM0IsT0FBT0UsT0FBTyxDQUFDQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7RUFDNUI7O0VBRUE7QUFDRjtBQUNBO0FBQ0E7RUFDRVMsZUFBZSxDQUFDWixPQUFPLEVBQUU7SUFDdkI7RUFBQTtBQUVKO0FBQUM7QUFBQSxlQUVjTixXQUFXO0FBQUEifQ==
|
|
@@ -7,6 +7,7 @@ const Parse = require('parse/node').Parse;
|
|
|
7
7
|
const jwksClient = require('jwks-rsa');
|
|
8
8
|
const util = require('util');
|
|
9
9
|
const jwt = require('jsonwebtoken');
|
|
10
|
+
const authUtils = require('./utils');
|
|
10
11
|
const TOKEN_ISSUER = 'https://appleid.apple.com';
|
|
11
12
|
const getAppleKeyByKeyId = async (keyId, cacheMaxEntries, cacheMaxAge) => {
|
|
12
13
|
const client = jwksClient({
|
|
@@ -24,15 +25,6 @@ const getAppleKeyByKeyId = async (keyId, cacheMaxEntries, cacheMaxAge) => {
|
|
|
24
25
|
}
|
|
25
26
|
return key;
|
|
26
27
|
};
|
|
27
|
-
const getHeaderFromToken = token => {
|
|
28
|
-
const decodedToken = jwt.decode(token, {
|
|
29
|
-
complete: true
|
|
30
|
-
});
|
|
31
|
-
if (!decodedToken) {
|
|
32
|
-
throw new Parse.Error(Parse.Error.OBJECT_NOT_FOUND, `provided token does not decode as JWT`);
|
|
33
|
-
}
|
|
34
|
-
return decodedToken.header;
|
|
35
|
-
};
|
|
36
28
|
const verifyIdToken = async ({
|
|
37
29
|
token,
|
|
38
30
|
id
|
|
@@ -47,7 +39,7 @@ const verifyIdToken = async ({
|
|
|
47
39
|
const {
|
|
48
40
|
kid: keyId,
|
|
49
41
|
alg: algorithm
|
|
50
|
-
} = getHeaderFromToken(token);
|
|
42
|
+
} = authUtils.getHeaderFromToken(token);
|
|
51
43
|
const ONE_HOUR_IN_MS = 3600000;
|
|
52
44
|
let jwtClaims;
|
|
53
45
|
cacheMaxAge = cacheMaxAge || ONE_HOUR_IN_MS;
|
|
@@ -86,4 +78,4 @@ module.exports = {
|
|
|
86
78
|
validateAppId,
|
|
87
79
|
validateAuthData
|
|
88
80
|
};
|
|
89
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQYXJzZSIsInJlcXVpcmUiLCJqd2tzQ2xpZW50IiwidXRpbCIsImp3dCIsImF1dGhVdGlscyIsIlRPS0VOX0lTU1VFUiIsImdldEFwcGxlS2V5QnlLZXlJZCIsImtleUlkIiwiY2FjaGVNYXhFbnRyaWVzIiwiY2FjaGVNYXhBZ2UiLCJjbGllbnQiLCJqd2tzVXJpIiwiY2FjaGUiLCJhc3luY0dldFNpZ25pbmdLZXlGdW5jdGlvbiIsInByb21pc2lmeSIsImdldFNpZ25pbmdLZXkiLCJrZXkiLCJlcnJvciIsIkVycm9yIiwiT0JKRUNUX05PVF9GT1VORCIsInZlcmlmeUlkVG9rZW4iLCJ0b2tlbiIsImlkIiwiY2xpZW50SWQiLCJraWQiLCJhbGciLCJhbGdvcml0aG0iLCJnZXRIZWFkZXJGcm9tVG9rZW4iLCJPTkVfSE9VUl9JTl9NUyIsImp3dENsYWltcyIsImFwcGxlS2V5Iiwic2lnbmluZ0tleSIsInB1YmxpY0tleSIsInJzYVB1YmxpY0tleSIsInZlcmlmeSIsImFsZ29yaXRobXMiLCJhdWRpZW5jZSIsImV4Y2VwdGlvbiIsIm1lc3NhZ2UiLCJpc3MiLCJzdWIiLCJ2YWxpZGF0ZUF1dGhEYXRhIiwiYXV0aERhdGEiLCJvcHRpb25zIiwidmFsaWRhdGVBcHBJZCIsIlByb21pc2UiLCJyZXNvbHZlIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9BdXRoL2FwcGxlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEFwcGxlIFNpZ25JbiBBdXRoXG4vLyBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi9zaWduaW53aXRoYXBwbGVyZXN0YXBpXG5cbmNvbnN0IFBhcnNlID0gcmVxdWlyZSgncGFyc2Uvbm9kZScpLlBhcnNlO1xuY29uc3Qgandrc0NsaWVudCA9IHJlcXVpcmUoJ2p3a3MtcnNhJyk7XG5jb25zdCB1dGlsID0gcmVxdWlyZSgndXRpbCcpO1xuY29uc3Qgand0ID0gcmVxdWlyZSgnanNvbndlYnRva2VuJyk7XG5jb25zdCBhdXRoVXRpbHMgPSByZXF1aXJlKCcuL3V0aWxzJyk7XG5cbmNvbnN0IFRPS0VOX0lTU1VFUiA9ICdodHRwczovL2FwcGxlaWQuYXBwbGUuY29tJztcblxuY29uc3QgZ2V0QXBwbGVLZXlCeUtleUlkID0gYXN5bmMgKGtleUlkLCBjYWNoZU1heEVudHJpZXMsIGNhY2hlTWF4QWdlKSA9PiB7XG4gIGNvbnN0IGNsaWVudCA9IGp3a3NDbGllbnQoe1xuICAgIGp3a3NVcmk6IGAke1RPS0VOX0lTU1VFUn0vYXV0aC9rZXlzYCxcbiAgICBjYWNoZTogdHJ1ZSxcbiAgICBjYWNoZU1heEVudHJpZXMsXG4gICAgY2FjaGVNYXhBZ2UsXG4gIH0pO1xuXG4gIGNvbnN0IGFzeW5jR2V0U2lnbmluZ0tleUZ1bmN0aW9uID0gdXRpbC5wcm9taXNpZnkoY2xpZW50LmdldFNpZ25pbmdLZXkpO1xuXG4gIGxldCBrZXk7XG4gIHRyeSB7XG4gICAga2V5ID0gYXdhaXQgYXN5bmNHZXRTaWduaW5nS2V5RnVuY3Rpb24oa2V5SWQpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihcbiAgICAgIFBhcnNlLkVycm9yLk9CSkVDVF9OT1RfRk9VTkQsXG4gICAgICBgVW5hYmxlIHRvIGZpbmQgbWF0Y2hpbmcga2V5IGZvciBLZXkgSUQ6ICR7a2V5SWR9YFxuICAgICk7XG4gIH1cbiAgcmV0dXJuIGtleTtcbn07XG5cbmNvbnN0IHZlcmlmeUlkVG9rZW4gPSBhc3luYyAoeyB0b2tlbiwgaWQgfSwgeyBjbGllbnRJZCwgY2FjaGVNYXhFbnRyaWVzLCBjYWNoZU1heEFnZSB9KSA9PiB7XG4gIGlmICghdG9rZW4pIHtcbiAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuT0JKRUNUX05PVF9GT1VORCwgYGlkIHRva2VuIGlzIGludmFsaWQgZm9yIHRoaXMgdXNlci5gKTtcbiAgfVxuXG4gIGNvbnN0IHsga2lkOiBrZXlJZCwgYWxnOiBhbGdvcml0aG0gfSA9IGF1dGhVdGlscy5nZXRIZWFkZXJGcm9tVG9rZW4odG9rZW4pO1xuICBjb25zdCBPTkVfSE9VUl9JTl9NUyA9IDM2MDAwMDA7XG4gIGxldCBqd3RDbGFpbXM7XG5cbiAgY2FjaGVNYXhBZ2UgPSBjYWNoZU1heEFnZSB8fCBPTkVfSE9VUl9JTl9NUztcbiAgY2FjaGVNYXhFbnRyaWVzID0gY2FjaGVNYXhFbnRyaWVzIHx8IDU7XG5cbiAgY29uc3QgYXBwbGVLZXkgPSBhd2FpdCBnZXRBcHBsZUtleUJ5S2V5SWQoa2V5SWQsIGNhY2hlTWF4RW50cmllcywgY2FjaGVNYXhBZ2UpO1xuICBjb25zdCBzaWduaW5nS2V5ID0gYXBwbGVLZXkucHVibGljS2V5IHx8IGFwcGxlS2V5LnJzYVB1YmxpY0tleTtcblxuICB0cnkge1xuICAgIGp3dENsYWltcyA9IGp3dC52ZXJpZnkodG9rZW4sIHNpZ25pbmdLZXksIHtcbiAgICAgIGFsZ29yaXRobXM6IGFsZ29yaXRobSxcbiAgICAgIC8vIHRoZSBhdWRpZW5jZSBjYW4gYmUgY2hlY2tlZCBhZ2FpbnN0IGEgc3RyaW5nLCBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBvciBhIGxpc3Qgb2Ygc3RyaW5ncyBhbmQvb3IgcmVndWxhciBleHByZXNzaW9ucy5cbiAgICAgIGF1ZGllbmNlOiBjbGllbnRJZCxcbiAgICB9KTtcbiAgfSBjYXRjaCAoZXhjZXB0aW9uKSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGV4Y2VwdGlvbi5tZXNzYWdlO1xuXG4gICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLk9CSkVDVF9OT1RfRk9VTkQsIGAke21lc3NhZ2V9YCk7XG4gIH1cblxuICBpZiAoand0Q2xhaW1zLmlzcyAhPT0gVE9LRU5fSVNTVUVSKSB7XG4gICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFxuICAgICAgUGFyc2UuRXJyb3IuT0JKRUNUX05PVF9GT1VORCxcbiAgICAgIGBpZCB0b2tlbiBub3QgaXNzdWVkIGJ5IGNvcnJlY3QgT3BlbklEIHByb3ZpZGVyIC0gZXhwZWN0ZWQ6ICR7VE9LRU5fSVNTVUVSfSB8IGZyb206ICR7and0Q2xhaW1zLmlzc31gXG4gICAgKTtcbiAgfVxuXG4gIGlmIChqd3RDbGFpbXMuc3ViICE9PSBpZCkge1xuICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5PQkpFQ1RfTk9UX0ZPVU5ELCBgYXV0aCBkYXRhIGlzIGludmFsaWQgZm9yIHRoaXMgdXNlci5gKTtcbiAgfVxuICByZXR1cm4gand0Q2xhaW1zO1xufTtcblxuLy8gUmV0dXJucyBhIHByb21pc2UgdGhhdCBmdWxmaWxscyBpZiB0aGlzIGlkIHRva2VuIGlzIHZhbGlkXG5mdW5jdGlvbiB2YWxpZGF0ZUF1dGhEYXRhKGF1dGhEYXRhLCBvcHRpb25zID0ge30pIHtcbiAgcmV0dXJuIHZlcmlmeUlkVG9rZW4oYXV0aERhdGEsIG9wdGlvbnMpO1xufVxuXG4vLyBSZXR1cm5zIGEgcHJvbWlzZSB0aGF0IGZ1bGZpbGxzIGlmIHRoaXMgYXBwIGlkIGlzIHZhbGlkLlxuZnVuY3Rpb24gdmFsaWRhdGVBcHBJZCgpIHtcbiAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgdmFsaWRhdGVBcHBJZCxcbiAgdmFsaWRhdGVBdXRoRGF0YSxcbn07XG4iXSwibWFwcGluZ3MiOiI7O0FBQUE7QUFDQTs7QUFFQSxNQUFNQSxLQUFLLEdBQUdDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQ0QsS0FBSztBQUN6QyxNQUFNRSxVQUFVLEdBQUdELE9BQU8sQ0FBQyxVQUFVLENBQUM7QUFDdEMsTUFBTUUsSUFBSSxHQUFHRixPQUFPLENBQUMsTUFBTSxDQUFDO0FBQzVCLE1BQU1HLEdBQUcsR0FBR0gsT0FBTyxDQUFDLGNBQWMsQ0FBQztBQUNuQyxNQUFNSSxTQUFTLEdBQUdKLE9BQU8sQ0FBQyxTQUFTLENBQUM7QUFFcEMsTUFBTUssWUFBWSxHQUFHLDJCQUEyQjtBQUVoRCxNQUFNQyxrQkFBa0IsR0FBRyxP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
|
|
@@ -7,6 +7,7 @@ const jwksClient = require('jwks-rsa');
|
|
|
7
7
|
const util = require('util');
|
|
8
8
|
const jwt = require('jsonwebtoken');
|
|
9
9
|
const httpsRequest = require('./httpsRequest');
|
|
10
|
+
const authUtils = require('./utils');
|
|
10
11
|
const TOKEN_ISSUER = 'https://facebook.com';
|
|
11
12
|
function getAppSecretPath(authData, options = {}) {
|
|
12
13
|
const appSecret = options.appSecret;
|
|
@@ -56,15 +57,6 @@ const getFacebookKeyByKeyId = async (keyId, cacheMaxEntries, cacheMaxAge) => {
|
|
|
56
57
|
}
|
|
57
58
|
return key;
|
|
58
59
|
};
|
|
59
|
-
const getHeaderFromToken = token => {
|
|
60
|
-
const decodedToken = jwt.decode(token, {
|
|
61
|
-
complete: true
|
|
62
|
-
});
|
|
63
|
-
if (!decodedToken) {
|
|
64
|
-
throw new Parse.Error(Parse.Error.OBJECT_NOT_FOUND, 'provided token does not decode as JWT');
|
|
65
|
-
}
|
|
66
|
-
return decodedToken.header;
|
|
67
|
-
};
|
|
68
60
|
const verifyIdToken = async ({
|
|
69
61
|
token,
|
|
70
62
|
id
|
|
@@ -79,7 +71,7 @@ const verifyIdToken = async ({
|
|
|
79
71
|
const {
|
|
80
72
|
kid: keyId,
|
|
81
73
|
alg: algorithm
|
|
82
|
-
} = getHeaderFromToken(token);
|
|
74
|
+
} = authUtils.getHeaderFromToken(token);
|
|
83
75
|
const ONE_HOUR_IN_MS = 3600000;
|
|
84
76
|
let jwtClaims;
|
|
85
77
|
cacheMaxAge = cacheMaxAge || ONE_HOUR_IN_MS;
|
|
@@ -131,4 +123,4 @@ module.exports = {
|
|
|
131
123
|
validateAppId: validateAppId,
|
|
132
124
|
validateAuthData: validateAuthData
|
|
133
125
|
};
|
|
134
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQYXJzZSIsInJlcXVpcmUiLCJjcnlwdG8iLCJqd2tzQ2xpZW50IiwidXRpbCIsImp3dCIsImh0dHBzUmVxdWVzdCIsIlRPS0VOX0lTU1VFUiIsImdldEFwcFNlY3JldFBhdGgiLCJhdXRoRGF0YSIsIm9wdGlvbnMiLCJhcHBTZWNyZXQiLCJhcHBzZWNyZXRfcHJvb2YiLCJjcmVhdGVIbWFjIiwidXBkYXRlIiwiYWNjZXNzX3Rva2VuIiwiZGlnZXN0IiwidmFsaWRhdGVHcmFwaFRva2VuIiwiZ3JhcGhSZXF1ZXN0IiwidGhlbiIsImRhdGEiLCJpZCIsInByb2Nlc3MiLCJlbnYiLCJURVNUSU5HIiwiRXJyb3IiLCJPQkpFQ1RfTk9UX0ZPVU5EIiwidmFsaWRhdGVHcmFwaEFwcElkIiwiYXBwSWRzIiwiQXJyYXkiLCJpc0FycmF5IiwibGVuZ3RoIiwiaW5jbHVkZXMiLCJnZXRGYWNlYm9va0tleUJ5S2V5SWQiLCJrZXlJZCIsImNhY2hlTWF4RW50cmllcyIsImNhY2hlTWF4QWdlIiwiY2xpZW50Iiwiandrc1VyaSIsImNhY2hlIiwiYXN5bmNHZXRTaWduaW5nS2V5RnVuY3Rpb24iLCJwcm9taXNpZnkiLCJnZXRTaWduaW5nS2V5Iiwia2V5IiwiZXJyb3IiLCJnZXRIZWFkZXJGcm9tVG9rZW4iLCJ0b2tlbiIsImRlY29kZWRUb2tlbiIsImRlY29kZSIsImNvbXBsZXRlIiwiaGVhZGVyIiwidmVyaWZ5SWRUb2tlbiIsImNsaWVudElkIiwia2lkIiwiYWxnIiwiYWxnb3JpdGhtIiwiT05FX0hPVVJfSU5fTVMiLCJqd3RDbGFpbXMiLCJmYWNlYm9va0tleSIsInNpZ25pbmdLZXkiLCJwdWJsaWNLZXkiLCJyc2FQdWJsaWNLZXkiLCJ2ZXJpZnkiLCJhbGdvcml0aG1zIiwiYXVkaWVuY2UiLCJleGNlcHRpb24iLCJtZXNzYWdlIiwiaXNzIiwic3ViIiwidmFsaWRhdGVBdXRoRGF0YSIsInZhbGlkYXRlQXBwSWQiLCJQcm9taXNlIiwicmVzb2x2ZSIsInBhdGgiLCJnZXQiLCJtb2R1bGUiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL0FkYXB0ZXJzL0F1dGgvZmFjZWJvb2suanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gSGVscGVyIGZ1bmN0aW9ucyBmb3IgYWNjZXNzaW5nIHRoZSBGYWNlYm9vayBHcmFwaCBBUEkuXG5jb25zdCBQYXJzZSA9IHJlcXVpcmUoJ3BhcnNlL25vZGUnKS5QYXJzZTtcbmNvbnN0IGNyeXB0byA9IHJlcXVpcmUoJ2NyeXB0bycpO1xuY29uc3Qgandrc0NsaWVudCA9IHJlcXVpcmUoJ2p3a3MtcnNhJyk7XG5jb25zdCB1dGlsID0gcmVxdWlyZSgndXRpbCcpO1xuY29uc3Qgand0ID0gcmVxdWlyZSgnanNvbndlYnRva2VuJyk7XG5jb25zdCBodHRwc1JlcXVlc3QgPSByZXF1aXJlKCcuL2h0dHBzUmVxdWVzdCcpO1xuXG5jb25zdCBUT0tFTl9JU1NVRVIgPSAnaHR0cHM6Ly9mYWNlYm9vay5jb20nO1xuXG5mdW5jdGlvbiBnZXRBcHBTZWNyZXRQYXRoKGF1dGhEYXRhLCBvcHRpb25zID0ge30pIHtcbiAgY29uc3QgYXBwU2VjcmV0ID0gb3B0aW9ucy5hcHBTZWNyZXQ7XG4gIGlmICghYXBwU2VjcmV0KSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG4gIGNvbnN0IGFwcHNlY3JldF9wcm9vZiA9IGNyeXB0b1xuICAgIC5jcmVhdGVIbWFjKCdzaGEyNTYnLCBhcHBTZWNyZXQpXG4gICAgLnVwZGF0ZShhdXRoRGF0YS5hY2Nlc3NfdG9rZW4pXG4gICAgLmRpZ2VzdCgnaGV4Jyk7XG5cbiAgcmV0dXJuIGAmYXBwc2VjcmV0X3Byb29mPSR7YXBwc2VjcmV0X3Byb29mfWA7XG59XG5cbmZ1bmN0aW9uIHZhbGlkYXRlR3JhcGhUb2tlbihhdXRoRGF0YSwgb3B0aW9ucykge1xuICByZXR1cm4gZ3JhcGhSZXF1ZXN0KFxuICAgICdtZT9maWVsZHM9aWQmYWNjZXNzX3Rva2VuPScgKyBhdXRoRGF0YS5hY2Nlc3NfdG9rZW4gKyBnZXRBcHBTZWNyZXRQYXRoKGF1dGhEYXRhLCBvcHRpb25zKVxuICApLnRoZW4oZGF0YSA9PiB7XG4gICAgaWYgKChkYXRhICYmIGRhdGEuaWQgPT0gYXV0aERhdGEuaWQpIHx8IChwcm9jZXNzLmVudi5URVNUSU5HICYmIGF1dGhEYXRhLmlkID09PSAndGVzdCcpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5PQkpFQ1RfTk9UX0ZPVU5ELCAnRmFjZWJvb2sgYXV0aCBpcyBpbnZhbGlkIGZvciB0aGlzIHVzZXIuJyk7XG4gIH0pO1xufVxuXG5hc3luYyBmdW5jdGlvbiB2YWxpZGF0ZUdyYXBoQXBwSWQoYXBwSWRzLCBhdXRoRGF0YSwgb3B0aW9ucykge1xuICB2YXIgYWNjZXNzX3Rva2VuID0gYXV0aERhdGEuYWNjZXNzX3Rva2VuO1xuICBpZiAocHJvY2Vzcy5lbnYuVEVTVElORyAmJiBhY2Nlc3NfdG9rZW4gPT09ICd0ZXN0Jykge1xuICAgIHJldHVybjtcbiAgfVxuICBpZiAoIUFycmF5LmlzQXJyYXkoYXBwSWRzKSkge1xuICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5PQkpFQ1RfTk9UX0ZPVU5ELCAnYXBwSWRzIG11c3QgYmUgYW4gYXJyYXkuJyk7XG4gIH1cbiAgaWYgKCFhcHBJZHMubGVuZ3RoKSB7XG4gICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLk9CSkVDVF9OT1RfRk9VTkQsICdGYWNlYm9vayBhdXRoIGlzIG5vdCBjb25maWd1cmVkLicpO1xuICB9XG4gIGNvbnN0IGRhdGEgPSBhd2FpdCBncmFwaFJlcXVlc3QoXG4gICAgYGFwcD9hY2Nlc3NfdG9rZW49JHthY2Nlc3NfdG9rZW59JHtnZXRBcHBTZWNyZXRQYXRoKGF1dGhEYXRhLCBvcHRpb25zKX1gXG4gICk7XG4gIGlmICghZGF0YSB8fCAhYXBwSWRzLmluY2x1ZGVzKGRhdGEuaWQpKSB7XG4gICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLk9CSkVDVF9OT1RfRk9VTkQsICdGYWNlYm9vayBhdXRoIGlzIGludmFsaWQgZm9yIHRoaXMgdXNlci4nKTtcbiAgfVxufVxuXG5jb25zdCBnZXRGYWNlYm9va0tleUJ5S2V5SWQgPSBhc3luYyAoa2V5SWQsIGNhY2hlTWF4RW50cmllcywgY2FjaGVNYXhBZ2UpID0+IHtcbiAgY29uc3QgY2xpZW50ID0gandrc0NsaWVudCh7XG4gICAgandrc1VyaTogYCR7VE9LRU5fSVNTVUVSfS8ud2VsbC1rbm93bi9vYXV0aC9vcGVuaWQvandrcy9gLFxuICAgIGNhY2hlOiB0cnVlLFxuICAgIGNhY2hlTWF4RW50cmllcyxcbiAgICBjYWNoZU1heEFnZSxcbiAgfSk7XG5cbiAgY29uc3QgYXN5bmNHZXRTaWduaW5nS2V5RnVuY3Rpb24gPSB1dGlsLnByb21pc2lmeShjbGllbnQuZ2V0U2lnbmluZ0tleSk7XG5cbiAgbGV0IGtleTtcbiAgdHJ5IHtcbiAgICBrZXkgPSBhd2FpdCBhc3luY0dldFNpZ25pbmdLZXlGdW5jdGlvbihrZXlJZCk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFxuICAgICAgUGFyc2UuRXJyb3IuT0JKRUNUX05PVF9GT1VORCxcbiAgICAgIGBVbmFibGUgdG8gZmluZCBtYXRjaGluZyBrZXkgZm9yIEtleSBJRDogJHtrZXlJZH1gXG4gICAgKTtcbiAgfVxuICByZXR1cm4ga2V5O1xufTtcblxuY29uc3QgZ2V0SGVhZGVyRnJvbVRva2VuID0gdG9rZW4gPT4ge1xuICBjb25zdCBkZWNvZGVkVG9rZW4gPSBqd3QuZGVjb2RlKHRva2VuLCB7IGNvbXBsZXRlOiB0cnVlIH0pO1xuICBpZiAoIWRlY29kZWRUb2tlbikge1xuICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5PQkpFQ1RfTk9UX0ZPVU5ELCAncHJvdmlkZWQgdG9rZW4gZG9lcyBub3QgZGVjb2RlIGFzIEpXVCcpO1xuICB9XG5cbiAgcmV0dXJuIGRlY29kZWRUb2tlbi5oZWFkZXI7XG59O1xuXG5jb25zdCB2ZXJpZnlJZFRva2VuID0gYXN5bmMgKHsgdG9rZW4sIGlkIH0sIHsgY2xpZW50SWQsIGNhY2hlTWF4RW50cmllcywgY2FjaGVNYXhBZ2UgfSkgPT4ge1xuICBpZiAoIXRva2VuKSB7XG4gICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLk9CSkVDVF9OT1RfRk9VTkQsICdpZCB0b2tlbiBpcyBpbnZhbGlkIGZvciB0aGlzIHVzZXIuJyk7XG4gIH1cblxuICBjb25zdCB7IGtpZDoga2V5SWQsIGFsZzogYWxnb3JpdGhtIH0gPSBnZXRIZWFkZXJGcm9tVG9rZW4odG9rZW4pO1xuICBjb25zdCBPTkVfSE9VUl9JTl9NUyA9IDM2MDAwMDA7XG4gIGxldCBqd3RDbGFpbXM7XG5cbiAgY2FjaGVNYXhBZ2UgPSBjYWNoZU1heEFnZSB8fCBPTkVfSE9VUl9JTl9NUztcbiAgY2FjaGVNYXhFbnRyaWVzID0gY2FjaGVNYXhFbnRyaWVzIHx8IDU7XG5cbiAgY29uc3QgZmFjZWJvb2tLZXkgPSBhd2FpdCBnZXRGYWNlYm9va0tleUJ5S2V5SWQoa2V5SWQsIGNhY2hlTWF4RW50cmllcywgY2FjaGVNYXhBZ2UpO1xuICBjb25zdCBzaWduaW5nS2V5ID0gZmFjZWJvb2tLZXkucHVibGljS2V5IHx8IGZhY2Vib29rS2V5LnJzYVB1YmxpY0tleTtcblxuICB0cnkge1xuICAgIGp3dENsYWltcyA9IGp3dC52ZXJpZnkodG9rZW4sIHNpZ25pbmdLZXksIHtcbiAgICAgIGFsZ29yaXRobXM6IGFsZ29yaXRobSxcbiAgICAgIC8vIHRoZSBhdWRpZW5jZSBjYW4gYmUgY2hlY2tlZCBhZ2FpbnN0IGEgc3RyaW5nLCBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBvciBhIGxpc3Qgb2Ygc3RyaW5ncyBhbmQvb3IgcmVndWxhciBleHByZXNzaW9ucy5cbiAgICAgIGF1ZGllbmNlOiBjbGllbnRJZCxcbiAgICB9KTtcbiAgfSBjYXRjaCAoZXhjZXB0aW9uKSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGV4Y2VwdGlvbi5tZXNzYWdlO1xuXG4gICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLk9CSkVDVF9OT1RfRk9VTkQsIGAke21lc3NhZ2V9YCk7XG4gIH1cblxuICBpZiAoand0Q2xhaW1zLmlzcyAhPT0gVE9LRU5fSVNTVUVSKSB7XG4gICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFxuICAgICAgUGFyc2UuRXJyb3IuT0JKRUNUX05PVF9GT1VORCxcbiAgICAgIGBpZCB0b2tlbiBub3QgaXNzdWVkIGJ5IGNvcnJlY3QgT3BlbklEIHByb3ZpZGVyIC0gZXhwZWN0ZWQ6ICR7VE9LRU5fSVNTVUVSfSB8IGZyb206ICR7and0Q2xhaW1zLmlzc31gXG4gICAgKTtcbiAgfVxuXG4gIGlmIChqd3RDbGFpbXMuc3ViICE9PSBpZCkge1xuICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5PQkpFQ1RfTk9UX0ZPVU5ELCAnYXV0aCBkYXRhIGlzIGludmFsaWQgZm9yIHRoaXMgdXNlci4nKTtcbiAgfVxuICByZXR1cm4gand0Q2xhaW1zO1xufTtcblxuLy8gUmV0dXJucyBhIHByb21pc2UgdGhhdCBmdWxmaWxscyBpZmYgdGhpcyB1c2VyIGlkIGlzIHZhbGlkLlxuZnVuY3Rpb24gdmFsaWRhdGVBdXRoRGF0YShhdXRoRGF0YSwgb3B0aW9ucykge1xuICBpZiAoYXV0aERhdGEudG9rZW4pIHtcbiAgICByZXR1cm4gdmVyaWZ5SWRUb2tlbihhdXRoRGF0YSwgb3B0aW9ucyk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHZhbGlkYXRlR3JhcGhUb2tlbihhdXRoRGF0YSwgb3B0aW9ucyk7XG4gIH1cbn1cblxuLy8gUmV0dXJucyBhIHByb21pc2UgdGhhdCBmdWxmaWxscyBpZmYgdGhpcyBhcHAgaWQgaXMgdmFsaWQuXG5mdW5jdGlvbiB2YWxpZGF0ZUFwcElkKGFwcElkcywgYXV0aERhdGEsIG9wdGlvbnMpIHtcbiAgaWYgKGF1dGhEYXRhLnRva2VuKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB2YWxpZGF0ZUdyYXBoQXBwSWQoYXBwSWRzLCBhdXRoRGF0YSwgb3B0aW9ucyk7XG4gIH1cbn1cblxuLy8gQSBwcm9taXNleSB3cmFwcGVyIGZvciBGQiBncmFwaCByZXF1ZXN0cy5cbmZ1bmN0aW9uIGdyYXBoUmVxdWVzdChwYXRoKSB7XG4gIHJldHVybiBodHRwc1JlcXVlc3QuZ2V0KCdodHRwczovL2dyYXBoLmZhY2Vib29rLmNvbS8nICsgcGF0aCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICB2YWxpZGF0ZUFwcElkOiB2YWxpZGF0ZUFwcElkLFxuICB2YWxpZGF0ZUF1dGhEYXRhOiB2YWxpZGF0ZUF1dGhEYXRhLFxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQTtBQUNBLE1BQU1BLEtBQUssR0FBR0MsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDRCxLQUFLO0FBQ3pDLE1BQU1FLE1BQU0sR0FBR0QsT0FBTyxDQUFDLFFBQVEsQ0FBQztBQUNoQyxNQUFNRSxVQUFVLEdBQUdGLE9BQU8sQ0FBQyxVQUFVLENBQUM7QUFDdEMsTUFBTUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBTSxDQUFDO0FBQzVCLE1BQU1JLEdBQUcsR0FBR0osT0FBTyxDQUFDLGNBQWMsQ0FBQztBQUNuQyxNQUFNSyxZQUFZLEdBQUdMLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQztBQUU5QyxNQUFNTSxZQUFZLEdBQUcsc0JBQXNCO0FBRTNDLFNBQVNDLGdCQUFnQixDQUFDQyxRQUFRLEVBQUVDLE9BQU8sR0FBRyxDQUFDLENBQUMsRUFBRTtFQUNoRCxNQUFNQyxTQUFTLEdBQUdELE9BQU8sQ0FBQ0MsU0FBUztFQUNuQyxJQUFJLENBQUNBLFNBQVMsRUFBRTtJQUNkLE9BQU8sRUFBRTtFQUNYO0VBQ0EsTUFBTUMsZUFBZSxHQUFHVixNQUFNLENBQzNCVyxVQUFVLENBQUMsUUFBUSxFQUFFRixTQUFTLENBQUMsQ0FDL0JH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
|
|
126
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQYXJzZSIsInJlcXVpcmUiLCJjcnlwdG8iLCJqd2tzQ2xpZW50IiwidXRpbCIsImp3dCIsImh0dHBzUmVxdWVzdCIsImF1dGhVdGlscyIsIlRPS0VOX0lTU1VFUiIsImdldEFwcFNlY3JldFBhdGgiLCJhdXRoRGF0YSIsIm9wdGlvbnMiLCJhcHBTZWNyZXQiLCJhcHBzZWNyZXRfcHJvb2YiLCJjcmVhdGVIbWFjIiwidXBkYXRlIiwiYWNjZXNzX3Rva2VuIiwiZGlnZXN0IiwidmFsaWRhdGVHcmFwaFRva2VuIiwiZ3JhcGhSZXF1ZXN0IiwidGhlbiIsImRhdGEiLCJpZCIsInByb2Nlc3MiLCJlbnYiLCJURVNUSU5HIiwiRXJyb3IiLCJPQkpFQ1RfTk9UX0ZPVU5EIiwidmFsaWRhdGVHcmFwaEFwcElkIiwiYXBwSWRzIiwiQXJyYXkiLCJpc0FycmF5IiwibGVuZ3RoIiwiaW5jbHVkZXMiLCJnZXRGYWNlYm9va0tleUJ5S2V5SWQiLCJrZXlJZCIsImNhY2hlTWF4RW50cmllcyIsImNhY2hlTWF4QWdlIiwiY2xpZW50Iiwiandrc1VyaSIsImNhY2hlIiwiYXN5bmNHZXRTaWduaW5nS2V5RnVuY3Rpb24iLCJwcm9taXNpZnkiLCJnZXRTaWduaW5nS2V5Iiwia2V5IiwiZXJyb3IiLCJ2ZXJpZnlJZFRva2VuIiwidG9rZW4iLCJjbGllbnRJZCIsImtpZCIsImFsZyIsImFsZ29yaXRobSIsImdldEhlYWRlckZyb21Ub2tlbiIsIk9ORV9IT1VSX0lOX01TIiwiand0Q2xhaW1zIiwiZmFjZWJvb2tLZXkiLCJzaWduaW5nS2V5IiwicHVibGljS2V5IiwicnNhUHVibGljS2V5IiwidmVyaWZ5IiwiYWxnb3JpdGhtcyIsImF1ZGllbmNlIiwiZXhjZXB0aW9uIiwibWVzc2FnZSIsImlzcyIsInN1YiIsInZhbGlkYXRlQXV0aERhdGEiLCJ2YWxpZGF0ZUFwcElkIiwiUHJvbWlzZSIsInJlc29sdmUiLCJwYXRoIiwiZ2V0IiwibW9kdWxlIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9BdXRoL2ZhY2Vib29rLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEhlbHBlciBmdW5jdGlvbnMgZm9yIGFjY2Vzc2luZyB0aGUgRmFjZWJvb2sgR3JhcGggQVBJLlxuY29uc3QgUGFyc2UgPSByZXF1aXJlKCdwYXJzZS9ub2RlJykuUGFyc2U7XG5jb25zdCBjcnlwdG8gPSByZXF1aXJlKCdjcnlwdG8nKTtcbmNvbnN0IGp3a3NDbGllbnQgPSByZXF1aXJlKCdqd2tzLXJzYScpO1xuY29uc3QgdXRpbCA9IHJlcXVpcmUoJ3V0aWwnKTtcbmNvbnN0IGp3dCA9IHJlcXVpcmUoJ2pzb253ZWJ0b2tlbicpO1xuY29uc3QgaHR0cHNSZXF1ZXN0ID0gcmVxdWlyZSgnLi9odHRwc1JlcXVlc3QnKTtcbmNvbnN0IGF1dGhVdGlscyA9IHJlcXVpcmUoJy4vdXRpbHMnKTtcblxuY29uc3QgVE9LRU5fSVNTVUVSID0gJ2h0dHBzOi8vZmFjZWJvb2suY29tJztcblxuZnVuY3Rpb24gZ2V0QXBwU2VjcmV0UGF0aChhdXRoRGF0YSwgb3B0aW9ucyA9IHt9KSB7XG4gIGNvbnN0IGFwcFNlY3JldCA9IG9wdGlvbnMuYXBwU2VjcmV0O1xuICBpZiAoIWFwcFNlY3JldCkge1xuICAgIHJldHVybiAnJztcbiAgfVxuICBjb25zdCBhcHBzZWNyZXRfcHJvb2YgPSBjcnlwdG9cbiAgICAuY3JlYXRlSG1hYygnc2hhMjU2JywgYXBwU2VjcmV0KVxuICAgIC51cGRhdGUoYXV0aERhdGEuYWNjZXNzX3Rva2VuKVxuICAgIC5kaWdlc3QoJ2hleCcpO1xuXG4gIHJldHVybiBgJmFwcHNlY3JldF9wcm9vZj0ke2FwcHNlY3JldF9wcm9vZn1gO1xufVxuXG5mdW5jdGlvbiB2YWxpZGF0ZUdyYXBoVG9rZW4oYXV0aERhdGEsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIGdyYXBoUmVxdWVzdChcbiAgICAnbWU/ZmllbGRzPWlkJmFjY2Vzc190b2tlbj0nICsgYXV0aERhdGEuYWNjZXNzX3Rva2VuICsgZ2V0QXBwU2VjcmV0UGF0aChhdXRoRGF0YSwgb3B0aW9ucylcbiAgKS50aGVuKGRhdGEgPT4ge1xuICAgIGlmICgoZGF0YSAmJiBkYXRhLmlkID09IGF1dGhEYXRhLmlkKSB8fCAocHJvY2Vzcy5lbnYuVEVTVElORyAmJiBhdXRoRGF0YS5pZCA9PT0gJ3Rlc3QnKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuT0JKRUNUX05PVF9GT1VORCwgJ0ZhY2Vib29rIGF1dGggaXMgaW52YWxpZCBmb3IgdGhpcyB1c2VyLicpO1xuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdmFsaWRhdGVHcmFwaEFwcElkKGFwcElkcywgYXV0aERhdGEsIG9wdGlvbnMpIHtcbiAgdmFyIGFjY2Vzc190b2tlbiA9IGF1dGhEYXRhLmFjY2Vzc190b2tlbjtcbiAgaWYgKHByb2Nlc3MuZW52LlRFU1RJTkcgJiYgYWNjZXNzX3Rva2VuID09PSAndGVzdCcpIHtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKCFBcnJheS5pc0FycmF5KGFwcElkcykpIHtcbiAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuT0JKRUNUX05PVF9GT1VORCwgJ2FwcElkcyBtdXN0IGJlIGFuIGFycmF5LicpO1xuICB9XG4gIGlmICghYXBwSWRzLmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5PQkpFQ1RfTk9UX0ZPVU5ELCAnRmFjZWJvb2sgYXV0aCBpcyBub3QgY29uZmlndXJlZC4nKTtcbiAgfVxuICBjb25zdCBkYXRhID0gYXdhaXQgZ3JhcGhSZXF1ZXN0KFxuICAgIGBhcHA/YWNjZXNzX3Rva2VuPSR7YWNjZXNzX3Rva2VufSR7Z2V0QXBwU2VjcmV0UGF0aChhdXRoRGF0YSwgb3B0aW9ucyl9YFxuICApO1xuICBpZiAoIWRhdGEgfHwgIWFwcElkcy5pbmNsdWRlcyhkYXRhLmlkKSkge1xuICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5PQkpFQ1RfTk9UX0ZPVU5ELCAnRmFjZWJvb2sgYXV0aCBpcyBpbnZhbGlkIGZvciB0aGlzIHVzZXIuJyk7XG4gIH1cbn1cblxuY29uc3QgZ2V0RmFjZWJvb2tLZXlCeUtleUlkID0gYXN5bmMgKGtleUlkLCBjYWNoZU1heEVudHJpZXMsIGNhY2hlTWF4QWdlKSA9PiB7XG4gIGNvbnN0IGNsaWVudCA9IGp3a3NDbGllbnQoe1xuICAgIGp3a3NVcmk6IGAke1RPS0VOX0lTU1VFUn0vLndlbGwta25vd24vb2F1dGgvb3BlbmlkL2p3a3MvYCxcbiAgICBjYWNoZTogdHJ1ZSxcbiAgICBjYWNoZU1heEVudHJpZXMsXG4gICAgY2FjaGVNYXhBZ2UsXG4gIH0pO1xuXG4gIGNvbnN0IGFzeW5jR2V0U2lnbmluZ0tleUZ1bmN0aW9uID0gdXRpbC5wcm9taXNpZnkoY2xpZW50LmdldFNpZ25pbmdLZXkpO1xuXG4gIGxldCBrZXk7XG4gIHRyeSB7XG4gICAga2V5ID0gYXdhaXQgYXN5bmNHZXRTaWduaW5nS2V5RnVuY3Rpb24oa2V5SWQpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihcbiAgICAgIFBhcnNlLkVycm9yLk9CSkVDVF9OT1RfRk9VTkQsXG4gICAgICBgVW5hYmxlIHRvIGZpbmQgbWF0Y2hpbmcga2V5IGZvciBLZXkgSUQ6ICR7a2V5SWR9YFxuICAgICk7XG4gIH1cbiAgcmV0dXJuIGtleTtcbn07XG5cbmNvbnN0IHZlcmlmeUlkVG9rZW4gPSBhc3luYyAoeyB0b2tlbiwgaWQgfSwgeyBjbGllbnRJZCwgY2FjaGVNYXhFbnRyaWVzLCBjYWNoZU1heEFnZSB9KSA9PiB7XG4gIGlmICghdG9rZW4pIHtcbiAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuT0JKRUNUX05PVF9GT1VORCwgJ2lkIHRva2VuIGlzIGludmFsaWQgZm9yIHRoaXMgdXNlci4nKTtcbiAgfVxuXG4gIGNvbnN0IHsga2lkOiBrZXlJZCwgYWxnOiBhbGdvcml0aG0gfSA9IGF1dGhVdGlscy5nZXRIZWFkZXJGcm9tVG9rZW4odG9rZW4pO1xuICBjb25zdCBPTkVfSE9VUl9JTl9NUyA9IDM2MDAwMDA7XG4gIGxldCBqd3RDbGFpbXM7XG5cbiAgY2FjaGVNYXhBZ2UgPSBjYWNoZU1heEFnZSB8fCBPTkVfSE9VUl9JTl9NUztcbiAgY2FjaGVNYXhFbnRyaWVzID0gY2FjaGVNYXhFbnRyaWVzIHx8IDU7XG5cbiAgY29uc3QgZmFjZWJvb2tLZXkgPSBhd2FpdCBnZXRGYWNlYm9va0tleUJ5S2V5SWQoa2V5SWQsIGNhY2hlTWF4RW50cmllcywgY2FjaGVNYXhBZ2UpO1xuICBjb25zdCBzaWduaW5nS2V5ID0gZmFjZWJvb2tLZXkucHVibGljS2V5IHx8IGZhY2Vib29rS2V5LnJzYVB1YmxpY0tleTtcblxuICB0cnkge1xuICAgIGp3dENsYWltcyA9IGp3dC52ZXJpZnkodG9rZW4sIHNpZ25pbmdLZXksIHtcbiAgICAgIGFsZ29yaXRobXM6IGFsZ29yaXRobSxcbiAgICAgIC8vIHRoZSBhdWRpZW5jZSBjYW4gYmUgY2hlY2tlZCBhZ2FpbnN0IGEgc3RyaW5nLCBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBvciBhIGxpc3Qgb2Ygc3RyaW5ncyBhbmQvb3IgcmVndWxhciBleHByZXNzaW9ucy5cbiAgICAgIGF1ZGllbmNlOiBjbGllbnRJZCxcbiAgICB9KTtcbiAgfSBjYXRjaCAoZXhjZXB0aW9uKSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGV4Y2VwdGlvbi5tZXNzYWdlO1xuXG4gICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLk9CSkVDVF9OT1RfRk9VTkQsIGAke21lc3NhZ2V9YCk7XG4gIH1cblxuICBpZiAoand0Q2xhaW1zLmlzcyAhPT0gVE9LRU5fSVNTVUVSKSB7XG4gICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFxuICAgICAgUGFyc2UuRXJyb3IuT0JKRUNUX05PVF9GT1VORCxcbiAgICAgIGBpZCB0b2tlbiBub3QgaXNzdWVkIGJ5IGNvcnJlY3QgT3BlbklEIHByb3ZpZGVyIC0gZXhwZWN0ZWQ6ICR7VE9LRU5fSVNTVUVSfSB8IGZyb206ICR7and0Q2xhaW1zLmlzc31gXG4gICAgKTtcbiAgfVxuXG4gIGlmIChqd3RDbGFpbXMuc3ViICE9PSBpZCkge1xuICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5PQkpFQ1RfTk9UX0ZPVU5ELCAnYXV0aCBkYXRhIGlzIGludmFsaWQgZm9yIHRoaXMgdXNlci4nKTtcbiAgfVxuICByZXR1cm4gand0Q2xhaW1zO1xufTtcblxuLy8gUmV0dXJucyBhIHByb21pc2UgdGhhdCBmdWxmaWxscyBpZmYgdGhpcyB1c2VyIGlkIGlzIHZhbGlkLlxuZnVuY3Rpb24gdmFsaWRhdGVBdXRoRGF0YShhdXRoRGF0YSwgb3B0aW9ucykge1xuICBpZiAoYXV0aERhdGEudG9rZW4pIHtcbiAgICByZXR1cm4gdmVyaWZ5SWRUb2tlbihhdXRoRGF0YSwgb3B0aW9ucyk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHZhbGlkYXRlR3JhcGhUb2tlbihhdXRoRGF0YSwgb3B0aW9ucyk7XG4gIH1cbn1cblxuLy8gUmV0dXJucyBhIHByb21pc2UgdGhhdCBmdWxmaWxscyBpZmYgdGhpcyBhcHAgaWQgaXMgdmFsaWQuXG5mdW5jdGlvbiB2YWxpZGF0ZUFwcElkKGFwcElkcywgYXV0aERhdGEsIG9wdGlvbnMpIHtcbiAgaWYgKGF1dGhEYXRhLnRva2VuKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB2YWxpZGF0ZUdyYXBoQXBwSWQoYXBwSWRzLCBhdXRoRGF0YSwgb3B0aW9ucyk7XG4gIH1cbn1cblxuLy8gQSBwcm9taXNleSB3cmFwcGVyIGZvciBGQiBncmFwaCByZXF1ZXN0cy5cbmZ1bmN0aW9uIGdyYXBoUmVxdWVzdChwYXRoKSB7XG4gIHJldHVybiBodHRwc1JlcXVlc3QuZ2V0KCdodHRwczovL2dyYXBoLmZhY2Vib29rLmNvbS8nICsgcGF0aCk7XG59XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICB2YWxpZGF0ZUFwcElkOiB2YWxpZGF0ZUFwcElkLFxuICB2YWxpZGF0ZUF1dGhEYXRhOiB2YWxpZGF0ZUF1dGhEYXRhLFxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQTtBQUNBLE1BQU1BLEtBQUssR0FBR0MsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDRCxLQUFLO0FBQ3pDLE1BQU1FLE1BQU0sR0FBR0QsT0FBTyxDQUFDLFFBQVEsQ0FBQztBQUNoQyxNQUFNRSxVQUFVLEdBQUdGLE9BQU8sQ0FBQyxVQUFVLENBQUM7QUFDdEMsTUFBTUcsSUFBSSxHQUFHSCxPQUFPLENBQUMsTUFBTSxDQUFDO0FBQzVCLE1BQU1JLEdBQUcsR0FBR0osT0FBTyxDQUFDLGNBQWMsQ0FBQztBQUNuQyxNQUFNSyxZQUFZLEdBQUdMLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQztBQUM5QyxNQUFNTSxTQUFTLEdBQUdOLE9BQU8sQ0FBQyxTQUFTLENBQUM7QUFFcEMsTUFBTU8sWUFBWSxHQUFHLHNCQUFzQjtBQUUzQyxTQUFTQyxnQkFBZ0IsQ0FBQ0MsUUFBUSxFQUFFQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLEVBQUU7RUFDaEQsTUFBTUMsU0FBUyxHQUFHRCxPQUFPLENBQUNDLFNBQVM7RUFDbkMsSUFBSSxDQUFDQSxTQUFTLEVBQUU7SUFDZCxPQUFPLEVBQUU7RUFDWDtFQUNBLE1BQU1DLGVBQWUsR0FBR1gsTUFBTSxDQUMzQlksVUFBVSxDQUFDLFFBQVEsRUFBRUYsU0FBUyxDQUFDLENBQy9CRyxNQUFNLENBQUNMLFFBQVEsQ0FBQ00sWUFBWSxDQUFDLENBQzdCQyxNQUFNLENBQUMsS0FBSyxDQUFDO0VBRWhCLE9BQVEsb0JBQW1CSixlQUFnQixFQUFDO0FBQzlDO0FBRUEsU0FBU0ssa0JBQWtCLENBQUNSLFFBQVEsRUFBRUMsT0FBTyxFQUFFO0VBQzdDLE9BQU9RLFlBQVksQ0FDakIsNEJBQTRCLEdBQUdULFFBQVEsQ0FBQ00sWUFBWSxHQUFHUCxnQkFBZ0IsQ0FBQ0MsUUFBUSxFQUFFQyxPQUFPLENBQUMsQ0FDM0YsQ0FBQ1MsSUFBSSxDQUFDQyxJQUFJLElBQUk7SUFDYixJQUFLQSxJQUFJLElBQUlBLElBQUksQ0FBQ0MsRUFBRSxJQUFJWixRQUFRLENBQUNZLEVBQUUsSUFBTUMsT0FBTyxDQUFDQyxHQUFHLENBQUNDLE9BQU8sSUFBSWYsUUFBUSxDQUFDWSxFQUFFLEtBQUssTUFBTyxFQUFFO01BQ3ZGO0lBQ0Y7SUFDQSxNQUFNLElBQUl0QixLQUFLLENBQUMwQixLQUFLLENBQUMxQixLQUFLLENBQUMwQixLQUFLLENBQUNDLGdCQUFnQixFQUFFLHlDQUF5QyxDQUFDO0VBQ2hHLENBQUMsQ0FBQztBQUNKO0FBRUEsZUFBZUMsa0JBQWtCLENBQUNDLE1BQU0sRUFBRW5CLFFBQVEsRUFBRUMsT0FBTyxFQUFFO0VBQzNELElBQUlLLFlBQVksR0FBR04sUUFBUSxDQUFDTSxZQUFZO0VBQ3hDLElBQUlPLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDQyxPQUFPLElBQUlULFlBQVksS0FBSyxNQUFNLEVBQUU7SUFDbEQ7RUFDRjtFQUNBLElBQUksQ0FBQ2MsS0FBSyxDQUFDQyxPQUFPLENBQUNGLE1BQU0sQ0FBQyxFQUFFO0lBQzFCLE1BQU0sSUFBSTdCLEtBQUssQ0FBQzBCLEtBQUssQ0FBQzFCLEtBQUssQ0FBQzBCLEtBQUssQ0FBQ0MsZ0JBQWdCLEVBQUUsMEJBQTBCLENBQUM7RUFDakY7RUFDQSxJQUFJLENBQUNFLE1BQU0sQ0FBQ0csTUFBTSxFQUFFO0lBQ2xCLE1BQU0sSUFBSWhDLEtBQUssQ0FBQzBCLEtBQUssQ0FBQzFCLEtBQUssQ0FBQzBCLEtBQUssQ0FBQ0MsZ0JBQWdCLEVBQUUsa0NBQWtDLENBQUM7RUFDekY7RUFDQSxNQUFNTixJQUFJLEdBQUcsTUFBTUYsWUFBWSxDQUM1QixvQkFBbUJILFlBQWEsR0FBRVAsZ0JBQWdCLENBQUNDLFFBQVEsRUFBRUMsT0FBTyxDQUFFLEVBQUMsQ0FDekU7RUFDRCxJQUFJLENBQUNVLElBQUksSUFBSSxDQUFDUSxNQUFNLENBQUNJLFFBQVEsQ0FBQ1osSUFBSSxDQUFDQyxFQUFFLENBQUMsRUFBRTtJQUN0QyxNQUFNLElBQUl0QixLQUFLLENBQUMwQixLQUFLLENBQUMxQixLQUFLLENBQUMwQixLQUFLLENBQUNDLGdCQUFnQixFQUFFLHlDQUF5QyxDQUFDO0VBQ2hHO0FBQ0Y7QUFFQSxNQUFNTyxxQkFBcUIsR0FBRyxPQUFPQyxLQUFLLEVBQUVDLGVBQWUsRUFBRUMsV0FBVyxLQUFLO0VBQzNFLE1BQU1DLE1BQU0sR0FBR25DLFVBQVUsQ0FBQztJQUN4Qm9DLE9BQU8sRUFBRyxHQUFFL0IsWUFBYSxpQ0FBZ0M7SUFDekRnQyxLQUFLLEVBQUUsSUFBSTtJQUNYSixlQUFlO0lBQ2ZDO0VBQ0YsQ0FBQyxDQUFDO0VBRUYsTUFBTUksMEJBQTBCLEdBQUdyQyxJQUFJLENBQUNzQyxTQUFTLENBQUNKLE1BQU0sQ0FBQ0ssYUFBYSxDQUFDO0VBRXZFLElBQUlDLEdBQUc7RUFDUCxJQUFJO0lBQ0ZBLEdBQUcsR0FBRyxNQUFNSCwwQkFBMEIsQ0FBQ04sS0FBSyxDQUFDO0VBQy9DLENBQUMsQ0FBQyxPQUFPVSxLQUFLLEVBQUU7SUFDZCxNQUFNLElBQUk3QyxLQUFLLENBQUMwQixLQUFLLENBQ25CMUIsS0FBSyxDQUFDMEIsS0FBSyxDQUFDQyxnQkFBZ0IsRUFDM0IsMkNBQTBDUSxLQUFNLEVBQUMsQ0FDbkQ7RUFDSDtFQUNBLE9BQU9TLEdBQUc7QUFDWixDQUFDO0FBRUQsTUFBTUUsYUFBYSxHQUFHLE9BQU87RUFBRUMsS0FBSztFQUFFekI7QUFBRyxDQUFDLEVBQUU7RUFBRTBCLFFBQVE7RUFBRVosZUFBZTtFQUFFQztBQUFZLENBQUMsS0FBSztFQUN6RixJQUFJLENBQUNVLEtBQUssRUFBRTtJQUNWLE1BQU0sSUFBSS9DLEtBQUssQ0FBQzBCLEtBQUssQ0FBQzFCLEtBQUssQ0FBQzBCLEtBQUssQ0FBQ0MsZ0JBQWdCLEVBQUUsb0NBQW9DLENBQUM7RUFDM0Y7RUFFQSxNQUFNO0lBQUVzQixHQUFHLEVBQUVkLEtBQUs7SUFBRWUsR0FBRyxFQUFFQztFQUFVLENBQUMsR0FBRzVDLFNBQVMsQ0FBQzZDLGtCQUFrQixDQUFDTCxLQUFLLENBQUM7RUFDMUUsTUFBTU0sY0FBYyxHQUFHLE9BQU87RUFDOUIsSUFBSUMsU0FBUztFQUViakIsV0FBVyxHQUFHQSxXQUFXLElBQUlnQixjQUFjO0VBQzNDakIsZUFBZSxHQUFHQSxlQUFlLElBQUksQ0FBQztFQUV0QyxNQUFNbUIsV0FBVyxHQUFHLE1BQU1yQixxQkFBcUIsQ0FBQ0MsS0FBSyxFQUFFQyxlQUFlLEVBQUVDLFdBQVcsQ0FBQztFQUNwRixNQUFNbUIsVUFBVSxHQUFHRCxXQUFXLENBQUNFLFNBQVMsSUFBSUYsV0FBVyxDQUFDRyxZQUFZO0VBRXBFLElBQUk7SUFDRkosU0FBUyxHQUFHakQsR0FBRyxDQUFDc0QsTUFBTSxDQUFDWixLQUFLLEVBQUVTLFVBQVUsRUFBRTtNQUN4Q0ksVUFBVSxFQUFFVCxTQUFTO01BQ3JCO01BQ0FVLFFBQVEsRUFBRWI7SUFDWixDQUFDLENBQUM7RUFDSixDQUFDLENBQUMsT0FBT2MsU0FBUyxFQUFFO0lBQ2xCLE1BQU1DLE9BQU8sR0FBR0QsU0FBUyxDQUFDQyxPQUFPO0lBRWpDLE1BQU0sSUFBSS9ELEtBQUssQ0FBQzBCLEtBQUssQ0FBQzFCLEtBQUssQ0FBQzBCLEtBQUssQ0FBQ0MsZ0JBQWdCLEVBQUcsR0FBRW9DLE9BQVEsRUFBQyxDQUFDO0VBQ25FO0VBRUEsSUFBSVQsU0FBUyxDQUFDVSxHQUFHLEtBQUt4RCxZQUFZLEVBQUU7SUFDbEMsTUFBTSxJQUFJUixLQUFLLENBQUMwQixLQUFLLENBQ25CMUIsS0FBSyxDQUFDMEIsS0FBSyxDQUFDQyxnQkFBZ0IsRUFDM0IsOERBQTZEbkIsWUFBYSxZQUFXOEMsU0FBUyxDQUFDVSxHQUFJLEVBQUMsQ0FDdEc7RUFDSDtFQUVBLElBQUlWLFNBQVMsQ0FBQ1csR0FBRyxLQUFLM0MsRUFBRSxFQUFFO0lBQ3hCLE1BQU0sSUFBSXRCLEtBQUssQ0FBQzBCLEtBQUssQ0FBQzFCLEtBQUssQ0FBQzBCLEtBQUssQ0FBQ0MsZ0JBQWdCLEVBQUUscUNBQXFDLENBQUM7RUFDNUY7RUFDQSxPQUFPMkIsU0FBUztBQUNsQixDQUFDOztBQUVEO0FBQ0EsU0FBU1ksZ0JBQWdCLENBQUN4RCxRQUFRLEVBQUVDLE9BQU8sRUFBRTtFQUMzQyxJQUFJRCxRQUFRLENBQUNxQyxLQUFLLEVBQUU7SUFDbEIsT0FBT0QsYUFBYSxDQUFDcEMsUUFBUSxFQUFFQyxPQUFPLENBQUM7RUFDekMsQ0FBQyxNQUFNO0lBQ0wsT0FBT08sa0JBQWtCLENBQUNSLFFBQVEsRUFBRUMsT0FBTyxDQUFDO0VBQzlDO0FBQ0Y7O0FBRUE7QUFDQSxTQUFTd0QsYUFBYSxDQUFDdEMsTUFBTSxFQUFFbkIsUUFBUSxFQUFFQyxPQUFPLEVBQUU7RUFDaEQsSUFBSUQsUUFBUSxDQUFDcUMsS0FBSyxFQUFFO0lBQ2xCLE9BQU9xQixPQUFPLENBQUNDLE9BQU8sRUFBRTtFQUMxQixDQUFDLE1BQU07SUFDTCxPQUFPekMsa0JBQWtCLENBQUNDLE1BQU0sRUFBRW5CLFFBQVEsRUFBRUMsT0FBTyxDQUFDO0VBQ3REO0FBQ0Y7O0FBRUE7QUFDQSxTQUFTUSxZQUFZLENBQUNtRCxJQUFJLEVBQUU7RUFDMUIsT0FBT2hFLFlBQVksQ0FBQ2lFLEdBQUcsQ0FBQyw2QkFBNkIsR0FBR0QsSUFBSSxDQUFDO0FBQy9EO0FBRUFFLE1BQU0sQ0FBQ0MsT0FBTyxHQUFHO0VBQ2ZOLGFBQWEsRUFBRUEsYUFBYTtFQUM1QkQsZ0JBQWdCLEVBQUVBO0FBQ3BCLENBQUMifQ==
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
var Parse = require('parse/node').Parse;
|
|
5
5
|
const https = require('https');
|
|
6
6
|
const jwt = require('jsonwebtoken');
|
|
7
|
+
const authUtils = require('./utils');
|
|
7
8
|
const TOKEN_ISSUER = 'accounts.google.com';
|
|
8
9
|
const HTTPS_TOKEN_ISSUER = 'https://accounts.google.com';
|
|
9
10
|
let cache = {};
|
|
@@ -43,15 +44,6 @@ function getGoogleKeyByKeyId(keyId) {
|
|
|
43
44
|
}).on('error', reject);
|
|
44
45
|
});
|
|
45
46
|
}
|
|
46
|
-
function getHeaderFromToken(token) {
|
|
47
|
-
const decodedToken = jwt.decode(token, {
|
|
48
|
-
complete: true
|
|
49
|
-
});
|
|
50
|
-
if (!decodedToken) {
|
|
51
|
-
throw new Parse.Error(Parse.Error.OBJECT_NOT_FOUND, `provided token does not decode as JWT`);
|
|
52
|
-
}
|
|
53
|
-
return decodedToken.header;
|
|
54
|
-
}
|
|
55
47
|
async function verifyIdToken({
|
|
56
48
|
id_token: token,
|
|
57
49
|
id
|
|
@@ -64,7 +56,7 @@ async function verifyIdToken({
|
|
|
64
56
|
const {
|
|
65
57
|
kid: keyId,
|
|
66
58
|
alg: algorithm
|
|
67
|
-
} = getHeaderFromToken(token);
|
|
59
|
+
} = authUtils.getHeaderFromToken(token);
|
|
68
60
|
let jwtClaims;
|
|
69
61
|
const googleKey = await getGoogleKeyByKeyId(keyId);
|
|
70
62
|
try {
|
|
@@ -141,4 +133,4 @@ function encodeLengthHex(n) {
|
|
|
141
133
|
const lengthOfLengthByte = 128 + nHex.length / 2;
|
|
142
134
|
return toHex(lengthOfLengthByte) + nHex;
|
|
143
135
|
}
|
|
144
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQYXJzZSIsInJlcXVpcmUiLCJodHRwcyIsImp3dCIsIlRPS0VOX0lTU1VFUiIsIkhUVFBTX1RPS0VOX0lTU1VFUiIsImNhY2hlIiwiZ2V0R29vZ2xlS2V5QnlLZXlJZCIsImtleUlkIiwiZXhwaXJlc0F0IiwiRGF0ZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiZ2V0IiwicmVzIiwiZGF0YSIsIm9uIiwiY2h1bmsiLCJ0b1N0cmluZyIsImtleXMiLCJKU09OIiwicGFyc2UiLCJwZW1zIiwicmVkdWNlIiwibiIsIm1vZHVsdXMiLCJlIiwiZXhwb3NhbnQiLCJraWQiLCJPYmplY3QiLCJhc3NpZ24iLCJyc2FQdWJsaWNLZXlUb1BFTSIsImhlYWRlcnMiLCJleHBpcmUiLCJtYXRjaCIsImdldFRpbWUiLCJOdW1iZXIiLCJnZXRIZWFkZXJGcm9tVG9rZW4iLCJ0b2tlbiIsImRlY29kZWRUb2tlbiIsImRlY29kZSIsImNvbXBsZXRlIiwiRXJyb3IiLCJPQkpFQ1RfTk9UX0ZPVU5EIiwiaGVhZGVyIiwidmVyaWZ5SWRUb2tlbiIsImlkX3Rva2VuIiwiaWQiLCJjbGllbnRJZCIsImFsZyIsImFsZ29yaXRobSIsImp3dENsYWltcyIsImdvb2dsZUtleSIsInZlcmlmeSIsImFsZ29yaXRobXMiLCJhdWRpZW5jZSIsImV4Y2VwdGlvbiIsIm1lc3NhZ2UiLCJpc3MiLCJzdWIiLCJhdWQiLCJ2YWxpZGF0ZUF1dGhEYXRhIiwiYXV0aERhdGEiLCJvcHRpb25zIiwidmFsaWRhdGVBcHBJZCIsIm1vZHVsZSIsImV4cG9ydHMiLCJtb2R1bHVzQjY0IiwiZXhwb25lbnRCNjQiLCJCdWZmZXIiLCJleHBvbmVudCIsIm1vZHVsdXNIZXgiLCJwcmVwYWRTaWduZWQiLCJleHBvbmVudEhleCIsIm1vZGxlbiIsImxlbmd0aCIsImV4cGxlbiIsImVuY29kZWRNb2RsZW4iLCJlbmNvZGVMZW5ndGhIZXgiLCJlbmNvZGVkRXhwbGVuIiwiZW5jb2RlZFB1YmtleSIsImRlciIsInBlbSIsImpvaW4iLCJoZXhTdHIiLCJtc2IiLCJ0b0hleCIsIm51bWJlciIsIm5zdHIiLCJuSGV4IiwibGVuZ3RoT2ZMZW5ndGhCeXRlIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL0FkYXB0ZXJzL0F1dGgvZ29vZ2xlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0JztcblxuLy8gSGVscGVyIGZ1bmN0aW9ucyBmb3IgYWNjZXNzaW5nIHRoZSBnb29nbGUgQVBJLlxudmFyIFBhcnNlID0gcmVxdWlyZSgncGFyc2Uvbm9kZScpLlBhcnNlO1xuXG5jb25zdCBodHRwcyA9IHJlcXVpcmUoJ2h0dHBzJyk7XG5jb25zdCBqd3QgPSByZXF1aXJlKCdqc29ud2VidG9rZW4nKTtcblxuY29uc3QgVE9LRU5fSVNTVUVSID0gJ2FjY291bnRzLmdvb2dsZS5jb20nO1xuY29uc3QgSFRUUFNfVE9LRU5fSVNTVUVSID0gJ2h0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbSc7XG5cbmxldCBjYWNoZSA9IHt9O1xuXG4vLyBSZXRyaWV2ZSBHb29nbGUgU2lnbmluIEtleXMgKHdpdGggY2FjaGUgY29udHJvbClcbmZ1bmN0aW9uIGdldEdvb2dsZUtleUJ5S2V5SWQoa2V5SWQpIHtcbiAgaWYgKGNhY2hlW2tleUlkXSAmJiBjYWNoZS5leHBpcmVzQXQgPiBuZXcgRGF0ZSgpKSB7XG4gICAgcmV0dXJuIGNhY2hlW2tleUlkXTtcbiAgfVxuXG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgaHR0cHNcbiAgICAgIC5nZXQoYGh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL29hdXRoMi92My9jZXJ0c2AsIHJlcyA9PiB7XG4gICAgICAgIGxldCBkYXRhID0gJyc7XG4gICAgICAgIHJlcy5vbignZGF0YScsIGNodW5rID0+IHtcbiAgICAgICAgICBkYXRhICs9IGNodW5rLnRvU3RyaW5nKCd1dGY4Jyk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXMub24oJ2VuZCcsICgpID0+IHtcbiAgICAgICAgICBjb25zdCB7IGtleXMgfSA9IEpTT04ucGFyc2UoZGF0YSk7XG4gICAgICAgICAgY29uc3QgcGVtcyA9IGtleXMucmVkdWNlKFxuICAgICAgICAgICAgKHBlbXMsIHsgbjogbW9kdWx1cywgZTogZXhwb3NhbnQsIGtpZCB9KSA9PlxuICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKHBlbXMsIHtcbiAgICAgICAgICAgICAgICBba2lkXTogcnNhUHVibGljS2V5VG9QRU0obW9kdWx1cywgZXhwb3NhbnQpLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHt9XG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmIChyZXMuaGVhZGVyc1snY2FjaGUtY29udHJvbCddKSB7XG4gICAgICAgICAgICB2YXIgZXhwaXJlID0gcmVzLmhlYWRlcnNbJ2NhY2hlLWNvbnRyb2wnXS5tYXRjaCgvbWF4LWFnZT0oWzAtOV0rKS8pO1xuXG4gICAgICAgICAgICBpZiAoZXhwaXJlKSB7XG4gICAgICAgICAgICAgIGNhY2hlID0gT2JqZWN0LmFzc2lnbih7fSwgcGVtcywge1xuICAgICAgICAgICAgICAgIGV4cGlyZXNBdDogbmV3IERhdGUobmV3IERhdGUoKS5nZXRUaW1lKCkgKyBOdW1iZXIoZXhwaXJlWzFdKSAqIDEwMDApLFxuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXNvbHZlKHBlbXNba2V5SWRdKTtcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICAgLm9uKCdlcnJvcicsIHJlamVjdCk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBnZXRIZWFkZXJGcm9tVG9rZW4odG9rZW4pIHtcbiAgY29uc3QgZGVjb2RlZFRva2VuID0gand0LmRlY29kZSh0b2tlbiwgeyBjb21wbGV0ZTogdHJ1ZSB9KTtcblxuICBpZiAoIWRlY29kZWRUb2tlbikge1xuICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihQYXJzZS5FcnJvci5PQkpFQ1RfTk9UX0ZPVU5ELCBgcHJvdmlkZWQgdG9rZW4gZG9lcyBub3QgZGVjb2RlIGFzIEpXVGApO1xuICB9XG5cbiAgcmV0dXJuIGRlY29kZWRUb2tlbi5oZWFkZXI7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHZlcmlmeUlkVG9rZW4oeyBpZF90b2tlbjogdG9rZW4sIGlkIH0sIHsgY2xpZW50SWQgfSkge1xuICBpZiAoIXRva2VuKSB7XG4gICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLk9CSkVDVF9OT1RfRk9VTkQsIGBpZCB0b2tlbiBpcyBpbnZhbGlkIGZvciB0aGlzIHVzZXIuYCk7XG4gIH1cblxuICBjb25zdCB7IGtpZDoga2V5SWQsIGFsZzogYWxnb3JpdGhtIH0gPSBnZXRIZWFkZXJGcm9tVG9rZW4odG9rZW4pO1xuICBsZXQgand0Q2xhaW1zO1xuICBjb25zdCBnb29nbGVLZXkgPSBhd2FpdCBnZXRHb29nbGVLZXlCeUtleUlkKGtleUlkKTtcblxuICB0cnkge1xuICAgIGp3dENsYWltcyA9IGp3dC52ZXJpZnkodG9rZW4sIGdvb2dsZUtleSwge1xuICAgICAgYWxnb3JpdGhtczogYWxnb3JpdGhtLFxuICAgICAgYXVkaWVuY2U6IGNsaWVudElkLFxuICAgIH0pO1xuICB9IGNhdGNoIChleGNlcHRpb24pIHtcbiAgICBjb25zdCBtZXNzYWdlID0gZXhjZXB0aW9uLm1lc3NhZ2U7XG4gICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLk9CSkVDVF9OT1RfRk9VTkQsIGAke21lc3NhZ2V9YCk7XG4gIH1cblxuICBpZiAoand0Q2xhaW1zLmlzcyAhPT0gVE9LRU5fSVNTVUVSICYmIGp3dENsYWltcy5pc3MgIT09IEhUVFBTX1RPS0VOX0lTU1VFUikge1xuICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihcbiAgICAgIFBhcnNlLkVycm9yLk9CSkVDVF9OT1RfRk9VTkQsXG4gICAgICBgaWQgdG9rZW4gbm90IGlzc3VlZCBieSBjb3JyZWN0IHByb3ZpZGVyIC0gZXhwZWN0ZWQ6ICR7VE9LRU5fSVNTVUVSfSBvciAke0hUVFBTX1RPS0VOX0lTU1VFUn0gfCBmcm9tOiAke2p3dENsYWltcy5pc3N9YFxuICAgICk7XG4gIH1cblxuICBpZiAoand0Q2xhaW1zLnN1YiAhPT0gaWQpIHtcbiAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuT0JKRUNUX05PVF9GT1VORCwgYGF1dGggZGF0YSBpcyBpbnZhbGlkIGZvciB0aGlzIHVzZXIuYCk7XG4gIH1cblxuICBpZiAoY2xpZW50SWQgJiYgand0Q2xhaW1zLmF1ZCAhPT0gY2xpZW50SWQpIHtcbiAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoXG4gICAgICBQYXJzZS5FcnJvci5PQkpFQ1RfTk9UX0ZPVU5ELFxuICAgICAgYGlkIHRva2VuIG5vdCBhdXRob3JpemVkIGZvciB0aGlzIGNsaWVudElkLmBcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGp3dENsYWltcztcbn1cblxuLy8gUmV0dXJucyBhIHByb21pc2UgdGhhdCBmdWxmaWxscyBpZiB0aGlzIHVzZXIgaWQgaXMgdmFsaWQuXG5mdW5jdGlvbiB2YWxpZGF0ZUF1dGhEYXRhKGF1dGhEYXRhLCBvcHRpb25zID0ge30pIHtcbiAgcmV0dXJuIHZlcmlmeUlkVG9rZW4oYXV0aERhdGEsIG9wdGlvbnMpO1xufVxuXG4vLyBSZXR1cm5zIGEgcHJvbWlzZSB0aGF0IGZ1bGZpbGxzIGlmIHRoaXMgYXBwIGlkIGlzIHZhbGlkLlxuZnVuY3Rpb24gdmFsaWRhdGVBcHBJZCgpIHtcbiAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgdmFsaWRhdGVBcHBJZDogdmFsaWRhdGVBcHBJZCxcbiAgdmFsaWRhdGVBdXRoRGF0YTogdmFsaWRhdGVBdXRoRGF0YSxcbn07XG5cbi8vIEhlbHBlcnMgZnVuY3Rpb25zIHRvIGNvbnZlcnQgdGhlIFJTQSBjZXJ0cyB0byBQRU0gKGZyb20gandrcy1yc2EpXG5mdW5jdGlvbiByc2FQdWJsaWNLZXlUb1BFTShtb2R1bHVzQjY0LCBleHBvbmVudEI2NCkge1xuICBjb25zdCBtb2R1bHVzID0gbmV3IEJ1ZmZlcihtb2R1bHVzQjY0LCAnYmFzZTY0Jyk7XG4gIGNvbnN0IGV4cG9uZW50ID0gbmV3IEJ1ZmZlcihleHBvbmVudEI2NCwgJ2Jhc2U2NCcpO1xuICBjb25zdCBtb2R1bHVzSGV4ID0gcHJlcGFkU2lnbmVkKG1vZHVsdXMudG9TdHJpbmcoJ2hleCcpKTtcbiAgY29uc3QgZXhwb25lbnRIZXggPSBwcmVwYWRTaWduZWQoZXhwb25lbnQudG9TdHJpbmcoJ2hleCcpKTtcbiAgY29uc3QgbW9kbGVuID0gbW9kdWx1c0hleC5sZW5ndGggLyAyO1xuICBjb25zdCBleHBsZW4gPSBleHBvbmVudEhleC5sZW5ndGggLyAyO1xuXG4gIGNvbnN0IGVuY29kZWRNb2RsZW4gPSBlbmNvZGVMZW5ndGhIZXgobW9kbGVuKTtcbiAgY29uc3QgZW5jb2RlZEV4cGxlbiA9IGVuY29kZUxlbmd0aEhleChleHBsZW4pO1xuICBjb25zdCBlbmNvZGVkUHVia2V5ID1cbiAgICAnMzAnICtcbiAgICBlbmNvZGVMZW5ndGhIZXgobW9kbGVuICsgZXhwbGVuICsgZW5jb2RlZE1vZGxlbi5sZW5ndGggLyAyICsgZW5jb2RlZEV4cGxlbi5sZW5ndGggLyAyICsgMikgK1xuICAgICcwMicgK1xuICAgIGVuY29kZWRNb2RsZW4gK1xuICAgIG1vZHVsdXNIZXggK1xuICAgICcwMicgK1xuICAgIGVuY29kZWRFeHBsZW4gK1xuICAgIGV4cG9uZW50SGV4O1xuXG4gIGNvbnN0IGRlciA9IG5ldyBCdWZmZXIoZW5jb2RlZFB1YmtleSwgJ2hleCcpLnRvU3RyaW5nKCdiYXNlNjQnKTtcblxuICBsZXQgcGVtID0gJy0tLS0tQkVHSU4gUlNBIFBVQkxJQyBLRVktLS0tLVxcbic7XG4gIHBlbSArPSBgJHtkZXIubWF0Y2goLy57MSw2NH0vZykuam9pbignXFxuJyl9YDtcbiAgcGVtICs9ICdcXG4tLS0tLUVORCBSU0EgUFVCTElDIEtFWS0tLS0tXFxuJztcbiAgcmV0dXJuIHBlbTtcbn1cblxuZnVuY3Rpb24gcHJlcGFkU2lnbmVkKGhleFN0cikge1xuICBjb25zdCBtc2IgPSBoZXhTdHJbMF07XG4gIGlmIChtc2IgPCAnMCcgfHwgbXNiID4gJzcnKSB7XG4gICAgcmV0dXJuIGAwMCR7aGV4U3RyfWA7XG4gIH1cbiAgcmV0dXJuIGhleFN0cjtcbn1cblxuZnVuY3Rpb24gdG9IZXgobnVtYmVyKSB7XG4gIGNvbnN0IG5zdHIgPSBudW1iZXIudG9TdHJpbmcoMTYpO1xuICBpZiAobnN0ci5sZW5ndGggJSAyKSB7XG4gICAgcmV0dXJuIGAwJHtuc3RyfWA7XG4gIH1cbiAgcmV0dXJuIG5zdHI7XG59XG5cbmZ1bmN0aW9uIGVuY29kZUxlbmd0aEhleChuKSB7XG4gIGlmIChuIDw9IDEyNykge1xuICAgIHJldHVybiB0b0hleChuKTtcbiAgfVxuICBjb25zdCBuSGV4ID0gdG9IZXgobik7XG4gIGNvbnN0IGxlbmd0aE9mTGVuZ3RoQnl0ZSA9IDEyOCArIG5IZXgubGVuZ3RoIC8gMjtcbiAgcmV0dXJuIHRvSGV4KGxlbmd0aE9mTGVuZ3RoQnl0ZSkgKyBuSGV4O1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxZQUFZOztBQUVaO0FBQ0EsSUFBSUEsS0FBSyxHQUFHQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUNELEtBQUs7QUFFdkMsTUFBTUUsS0FBSyxHQUFHRCxPQUFPLENBQUMsT0FBTyxDQUFDO0FBQzlCLE1BQU1FLEdBQUcsR0FBR0YsT0FBTyxDQUFDLGNBQWMsQ0FBQztBQUVuQyxNQUFNRyxZQUFZLEdBQUcscUJBQXFCO0FBQzFDLE1BQU1DLGtCQUFrQixHQUFHLDZCQUE2QjtBQUV4RCxJQUFJQyxLQUFLLEdBQUcsQ0FBQyxDQUFDOztBQUVkO0FBQ0EsU0FBU0MsbUJBQW1CLENBQUNDLEtBQUssRUFBRTtFQUNsQyxJQUFJRixLQUFLLENBQUNFLEtBQUssQ0FBQyxJQUFJRixLQUFLLENBQUNHLFNBQVMsR0FBRyxJQUFJQyxJ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
|
|
136
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQYXJzZSIsInJlcXVpcmUiLCJodHRwcyIsImp3dCIsImF1dGhVdGlscyIsIlRPS0VOX0lTU1VFUiIsIkhUVFBTX1RPS0VOX0lTU1VFUiIsImNhY2hlIiwiZ2V0R29vZ2xlS2V5QnlLZXlJZCIsImtleUlkIiwiZXhwaXJlc0F0IiwiRGF0ZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiZ2V0IiwicmVzIiwiZGF0YSIsIm9uIiwiY2h1bmsiLCJ0b1N0cmluZyIsImtleXMiLCJKU09OIiwicGFyc2UiLCJwZW1zIiwicmVkdWNlIiwibiIsIm1vZHVsdXMiLCJlIiwiZXhwb3NhbnQiLCJraWQiLCJPYmplY3QiLCJhc3NpZ24iLCJyc2FQdWJsaWNLZXlUb1BFTSIsImhlYWRlcnMiLCJleHBpcmUiLCJtYXRjaCIsImdldFRpbWUiLCJOdW1iZXIiLCJ2ZXJpZnlJZFRva2VuIiwiaWRfdG9rZW4iLCJ0b2tlbiIsImlkIiwiY2xpZW50SWQiLCJFcnJvciIsIk9CSkVDVF9OT1RfRk9VTkQiLCJhbGciLCJhbGdvcml0aG0iLCJnZXRIZWFkZXJGcm9tVG9rZW4iLCJqd3RDbGFpbXMiLCJnb29nbGVLZXkiLCJ2ZXJpZnkiLCJhbGdvcml0aG1zIiwiYXVkaWVuY2UiLCJleGNlcHRpb24iLCJtZXNzYWdlIiwiaXNzIiwic3ViIiwiYXVkIiwidmFsaWRhdGVBdXRoRGF0YSIsImF1dGhEYXRhIiwib3B0aW9ucyIsInZhbGlkYXRlQXBwSWQiLCJtb2R1bGUiLCJleHBvcnRzIiwibW9kdWx1c0I2NCIsImV4cG9uZW50QjY0IiwiQnVmZmVyIiwiZXhwb25lbnQiLCJtb2R1bHVzSGV4IiwicHJlcGFkU2lnbmVkIiwiZXhwb25lbnRIZXgiLCJtb2RsZW4iLCJsZW5ndGgiLCJleHBsZW4iLCJlbmNvZGVkTW9kbGVuIiwiZW5jb2RlTGVuZ3RoSGV4IiwiZW5jb2RlZEV4cGxlbiIsImVuY29kZWRQdWJrZXkiLCJkZXIiLCJwZW0iLCJqb2luIiwiaGV4U3RyIiwibXNiIiwidG9IZXgiLCJudW1iZXIiLCJuc3RyIiwibkhleCIsImxlbmd0aE9mTGVuZ3RoQnl0ZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9BdXRoL2dvb2dsZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbi8vIEhlbHBlciBmdW5jdGlvbnMgZm9yIGFjY2Vzc2luZyB0aGUgZ29vZ2xlIEFQSS5cbnZhciBQYXJzZSA9IHJlcXVpcmUoJ3BhcnNlL25vZGUnKS5QYXJzZTtcblxuY29uc3QgaHR0cHMgPSByZXF1aXJlKCdodHRwcycpO1xuY29uc3Qgand0ID0gcmVxdWlyZSgnanNvbndlYnRva2VuJyk7XG5jb25zdCBhdXRoVXRpbHMgPSByZXF1aXJlKCcuL3V0aWxzJyk7XG5cbmNvbnN0IFRPS0VOX0lTU1VFUiA9ICdhY2NvdW50cy5nb29nbGUuY29tJztcbmNvbnN0IEhUVFBTX1RPS0VOX0lTU1VFUiA9ICdodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20nO1xuXG5sZXQgY2FjaGUgPSB7fTtcblxuLy8gUmV0cmlldmUgR29vZ2xlIFNpZ25pbiBLZXlzICh3aXRoIGNhY2hlIGNvbnRyb2wpXG5mdW5jdGlvbiBnZXRHb29nbGVLZXlCeUtleUlkKGtleUlkKSB7XG4gIGlmIChjYWNoZVtrZXlJZF0gJiYgY2FjaGUuZXhwaXJlc0F0ID4gbmV3IERhdGUoKSkge1xuICAgIHJldHVybiBjYWNoZVtrZXlJZF07XG4gIH1cblxuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGh0dHBzXG4gICAgICAuZ2V0KGBodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9vYXV0aDIvdjMvY2VydHNgLCByZXMgPT4ge1xuICAgICAgICBsZXQgZGF0YSA9ICcnO1xuICAgICAgICByZXMub24oJ2RhdGEnLCBjaHVuayA9PiB7XG4gICAgICAgICAgZGF0YSArPSBjaHVuay50b1N0cmluZygndXRmOCcpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmVzLm9uKCdlbmQnLCAoKSA9PiB7XG4gICAgICAgICAgY29uc3QgeyBrZXlzIH0gPSBKU09OLnBhcnNlKGRhdGEpO1xuICAgICAgICAgIGNvbnN0IHBlbXMgPSBrZXlzLnJlZHVjZShcbiAgICAgICAgICAgIChwZW1zLCB7IG46IG1vZHVsdXMsIGU6IGV4cG9zYW50LCBraWQgfSkgPT5cbiAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihwZW1zLCB7XG4gICAgICAgICAgICAgICAgW2tpZF06IHJzYVB1YmxpY0tleVRvUEVNKG1vZHVsdXMsIGV4cG9zYW50KSxcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB7fVxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAocmVzLmhlYWRlcnNbJ2NhY2hlLWNvbnRyb2wnXSkge1xuICAgICAgICAgICAgdmFyIGV4cGlyZSA9IHJlcy5oZWFkZXJzWydjYWNoZS1jb250cm9sJ10ubWF0Y2goL21heC1hZ2U9KFswLTldKykvKTtcblxuICAgICAgICAgICAgaWYgKGV4cGlyZSkge1xuICAgICAgICAgICAgICBjYWNoZSA9IE9iamVjdC5hc3NpZ24oe30sIHBlbXMsIHtcbiAgICAgICAgICAgICAgICBleHBpcmVzQXQ6IG5ldyBEYXRlKG5ldyBEYXRlKCkuZ2V0VGltZSgpICsgTnVtYmVyKGV4cGlyZVsxXSkgKiAxMDAwKSxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmVzb2x2ZShwZW1zW2tleUlkXSk7XG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICAgIC5vbignZXJyb3InLCByZWplY3QpO1xuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdmVyaWZ5SWRUb2tlbih7IGlkX3Rva2VuOiB0b2tlbiwgaWQgfSwgeyBjbGllbnRJZCB9KSB7XG4gIGlmICghdG9rZW4pIHtcbiAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuT0JKRUNUX05PVF9GT1VORCwgYGlkIHRva2VuIGlzIGludmFsaWQgZm9yIHRoaXMgdXNlci5gKTtcbiAgfVxuXG4gIGNvbnN0IHsga2lkOiBrZXlJZCwgYWxnOiBhbGdvcml0aG0gfSA9IGF1dGhVdGlscy5nZXRIZWFkZXJGcm9tVG9rZW4odG9rZW4pO1xuICBsZXQgand0Q2xhaW1zO1xuICBjb25zdCBnb29nbGVLZXkgPSBhd2FpdCBnZXRHb29nbGVLZXlCeUtleUlkKGtleUlkKTtcblxuICB0cnkge1xuICAgIGp3dENsYWltcyA9IGp3dC52ZXJpZnkodG9rZW4sIGdvb2dsZUtleSwge1xuICAgICAgYWxnb3JpdGhtczogYWxnb3JpdGhtLFxuICAgICAgYXVkaWVuY2U6IGNsaWVudElkLFxuICAgIH0pO1xuICB9IGNhdGNoIChleGNlcHRpb24pIHtcbiAgICBjb25zdCBtZXNzYWdlID0gZXhjZXB0aW9uLm1lc3NhZ2U7XG4gICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLk9CSkVDVF9OT1RfRk9VTkQsIGAke21lc3NhZ2V9YCk7XG4gIH1cblxuICBpZiAoand0Q2xhaW1zLmlzcyAhPT0gVE9LRU5fSVNTVUVSICYmIGp3dENsYWltcy5pc3MgIT09IEhUVFBTX1RPS0VOX0lTU1VFUikge1xuICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihcbiAgICAgIFBhcnNlLkVycm9yLk9CSkVDVF9OT1RfRk9VTkQsXG4gICAgICBgaWQgdG9rZW4gbm90IGlzc3VlZCBieSBjb3JyZWN0IHByb3ZpZGVyIC0gZXhwZWN0ZWQ6ICR7VE9LRU5fSVNTVUVSfSBvciAke0hUVFBTX1RPS0VOX0lTU1VFUn0gfCBmcm9tOiAke2p3dENsYWltcy5pc3N9YFxuICAgICk7XG4gIH1cblxuICBpZiAoand0Q2xhaW1zLnN1YiAhPT0gaWQpIHtcbiAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoUGFyc2UuRXJyb3IuT0JKRUNUX05PVF9GT1VORCwgYGF1dGggZGF0YSBpcyBpbnZhbGlkIGZvciB0aGlzIHVzZXIuYCk7XG4gIH1cblxuICBpZiAoY2xpZW50SWQgJiYgand0Q2xhaW1zLmF1ZCAhPT0gY2xpZW50SWQpIHtcbiAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoXG4gICAgICBQYXJzZS5FcnJvci5PQkpFQ1RfTk9UX0ZPVU5ELFxuICAgICAgYGlkIHRva2VuIG5vdCBhdXRob3JpemVkIGZvciB0aGlzIGNsaWVudElkLmBcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIGp3dENsYWltcztcbn1cblxuLy8gUmV0dXJucyBhIHByb21pc2UgdGhhdCBmdWxmaWxscyBpZiB0aGlzIHVzZXIgaWQgaXMgdmFsaWQuXG5mdW5jdGlvbiB2YWxpZGF0ZUF1dGhEYXRhKGF1dGhEYXRhLCBvcHRpb25zID0ge30pIHtcbiAgcmV0dXJuIHZlcmlmeUlkVG9rZW4oYXV0aERhdGEsIG9wdGlvbnMpO1xufVxuXG4vLyBSZXR1cm5zIGEgcHJvbWlzZSB0aGF0IGZ1bGZpbGxzIGlmIHRoaXMgYXBwIGlkIGlzIHZhbGlkLlxuZnVuY3Rpb24gdmFsaWRhdGVBcHBJZCgpIHtcbiAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgdmFsaWRhdGVBcHBJZDogdmFsaWRhdGVBcHBJZCxcbiAgdmFsaWRhdGVBdXRoRGF0YTogdmFsaWRhdGVBdXRoRGF0YSxcbn07XG5cbi8vIEhlbHBlcnMgZnVuY3Rpb25zIHRvIGNvbnZlcnQgdGhlIFJTQSBjZXJ0cyB0byBQRU0gKGZyb20gandrcy1yc2EpXG5mdW5jdGlvbiByc2FQdWJsaWNLZXlUb1BFTShtb2R1bHVzQjY0LCBleHBvbmVudEI2NCkge1xuICBjb25zdCBtb2R1bHVzID0gbmV3IEJ1ZmZlcihtb2R1bHVzQjY0LCAnYmFzZTY0Jyk7XG4gIGNvbnN0IGV4cG9uZW50ID0gbmV3IEJ1ZmZlcihleHBvbmVudEI2NCwgJ2Jhc2U2NCcpO1xuICBjb25zdCBtb2R1bHVzSGV4ID0gcHJlcGFkU2lnbmVkKG1vZHVsdXMudG9TdHJpbmcoJ2hleCcpKTtcbiAgY29uc3QgZXhwb25lbnRIZXggPSBwcmVwYWRTaWduZWQoZXhwb25lbnQudG9TdHJpbmcoJ2hleCcpKTtcbiAgY29uc3QgbW9kbGVuID0gbW9kdWx1c0hleC5sZW5ndGggLyAyO1xuICBjb25zdCBleHBsZW4gPSBleHBvbmVudEhleC5sZW5ndGggLyAyO1xuXG4gIGNvbnN0IGVuY29kZWRNb2RsZW4gPSBlbmNvZGVMZW5ndGhIZXgobW9kbGVuKTtcbiAgY29uc3QgZW5jb2RlZEV4cGxlbiA9IGVuY29kZUxlbmd0aEhleChleHBsZW4pO1xuICBjb25zdCBlbmNvZGVkUHVia2V5ID1cbiAgICAnMzAnICtcbiAgICBlbmNvZGVMZW5ndGhIZXgobW9kbGVuICsgZXhwbGVuICsgZW5jb2RlZE1vZGxlbi5sZW5ndGggLyAyICsgZW5jb2RlZEV4cGxlbi5sZW5ndGggLyAyICsgMikgK1xuICAgICcwMicgK1xuICAgIGVuY29kZWRNb2RsZW4gK1xuICAgIG1vZHVsdXNIZXggK1xuICAgICcwMicgK1xuICAgIGVuY29kZWRFeHBsZW4gK1xuICAgIGV4cG9uZW50SGV4O1xuXG4gIGNvbnN0IGRlciA9IG5ldyBCdWZmZXIoZW5jb2RlZFB1YmtleSwgJ2hleCcpLnRvU3RyaW5nKCdiYXNlNjQnKTtcblxuICBsZXQgcGVtID0gJy0tLS0tQkVHSU4gUlNBIFBVQkxJQyBLRVktLS0tLVxcbic7XG4gIHBlbSArPSBgJHtkZXIubWF0Y2goLy57MSw2NH0vZykuam9pbignXFxuJyl9YDtcbiAgcGVtICs9ICdcXG4tLS0tLUVORCBSU0EgUFVCTElDIEtFWS0tLS0tXFxuJztcbiAgcmV0dXJuIHBlbTtcbn1cblxuZnVuY3Rpb24gcHJlcGFkU2lnbmVkKGhleFN0cikge1xuICBjb25zdCBtc2IgPSBoZXhTdHJbMF07XG4gIGlmIChtc2IgPCAnMCcgfHwgbXNiID4gJzcnKSB7XG4gICAgcmV0dXJuIGAwMCR7aGV4U3RyfWA7XG4gIH1cbiAgcmV0dXJuIGhleFN0cjtcbn1cblxuZnVuY3Rpb24gdG9IZXgobnVtYmVyKSB7XG4gIGNvbnN0IG5zdHIgPSBudW1iZXIudG9TdHJpbmcoMTYpO1xuICBpZiAobnN0ci5sZW5ndGggJSAyKSB7XG4gICAgcmV0dXJuIGAwJHtuc3RyfWA7XG4gIH1cbiAgcmV0dXJuIG5zdHI7XG59XG5cbmZ1bmN0aW9uIGVuY29kZUxlbmd0aEhleChuKSB7XG4gIGlmIChuIDw9IDEyNykge1xuICAgIHJldHVybiB0b0hleChuKTtcbiAgfVxuICBjb25zdCBuSGV4ID0gdG9IZXgobik7XG4gIGNvbnN0IGxlbmd0aE9mTGVuZ3RoQnl0ZSA9IDEyOCArIG5IZXgubGVuZ3RoIC8gMjtcbiAgcmV0dXJuIHRvSGV4KGxlbmd0aE9mTGVuZ3RoQnl0ZSkgKyBuSGV4O1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQSxZQUFZOztBQUVaO0FBQ0EsSUFBSUEsS0FBSyxHQUFHQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUNELEtBQUs7QUFFdkMsTUFBTUUsS0FBSyxHQUFHRCxPQUFPLENBQUMsT0FBTyxDQUFDO0FBQzlCLE1BQU1FLEdBQUcsR0FBR0YsT0FBTyxDQUFDLGNBQWMsQ0FBQztBQUNuQyxNQUFNRyxTQUFTLEdBQUdILE9BQU8sQ0FBQyxTQUFTLENBQUM7QUFFcEMsTUFBTUksWUFBWSxHQUFHLHFCQUFxQjtBQUMxQyxNQUFNQyxrQkFBa0IsR0FBRyw2QkFBNkI7QUFFeEQsSUFBSUMsS0FBSyxHQUFHLENBQUMsQ0FBQzs7QUFFZDtBQUNBLFNBQVNDLG1CQUFtQixDQUFDQyxLQUFLLEVBQUU7RUFDbEMsSUFBSUYsS0FBSyxDQUFDRSxLQUFLLENBQUMsSUFBSUYsS0FBSyxDQUFDRyxTQUFTLEdBQUcsSUFBSUMsSUFBSSxFQUFFLEVBQUU7SUFDaEQsT0FBT0osS0FBSyxDQUFDRSxLQUFLLENBQUM7RUFDckI7RUFFQSxPQUFPLElBQUlHLE9BQU8sQ0FBQyxDQUFDQyxPQUFPLEVBQUVDLE1BQU0sS0FBSztJQUN0Q1osS0FBSyxDQUNGYSxHQUFHLENBQUUsNENBQTJDLEVBQUVDLEdBQUcsSUFBSTtNQUN4RCxJQUFJQyxJQUFJLEdBQUcsRUFBRTtNQUNiRCxHQUFHLENBQUNFLEVBQUUsQ0FB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
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var _AdapterLoader = _interopRequireDefault(require("../AdapterLoader"));
|
|
4
4
|
var _node = _interopRequireDefault(require("parse/node"));
|
|
5
|
+
var _AuthAdapter = _interopRequireDefault(require("./AuthAdapter"));
|
|
5
6
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
6
7
|
const apple = require('./apple');
|
|
7
8
|
const gcenter = require('./gcenter');
|
|
@@ -133,20 +134,31 @@ function loadAuthAdapter(provider, authOptions) {
|
|
|
133
134
|
if (!defaultAdapter && !providerOptions) {
|
|
134
135
|
return;
|
|
135
136
|
}
|
|
136
|
-
const adapter = Object.assign({}, defaultAdapter);
|
|
137
|
+
const adapter = defaultAdapter instanceof _AuthAdapter.default ? defaultAdapter : Object.assign({}, defaultAdapter);
|
|
138
|
+
const keys = ['validateAuthData', 'validateAppId', 'validateSetUp', 'validateLogin', 'validateUpdate', 'challenge', 'validateOptions', 'policy', 'afterFind'];
|
|
139
|
+
const defaultAuthAdapter = new _AuthAdapter.default();
|
|
140
|
+
keys.forEach(key => {
|
|
141
|
+
const existing = adapter === null || adapter === void 0 ? void 0 : adapter[key];
|
|
142
|
+
if (existing && typeof existing === 'function' && existing.toString() === defaultAuthAdapter[key].toString()) {
|
|
143
|
+
adapter[key] = null;
|
|
144
|
+
}
|
|
145
|
+
});
|
|
137
146
|
const appIds = providerOptions ? providerOptions.appIds : undefined;
|
|
138
147
|
|
|
139
148
|
// Try the configuration methods
|
|
140
149
|
if (providerOptions) {
|
|
141
150
|
const optionalAdapter = (0, _AdapterLoader.default)(providerOptions, undefined, providerOptions);
|
|
142
151
|
if (optionalAdapter) {
|
|
143
|
-
|
|
152
|
+
keys.forEach(key => {
|
|
144
153
|
if (optionalAdapter[key]) {
|
|
145
154
|
adapter[key] = optionalAdapter[key];
|
|
146
155
|
}
|
|
147
156
|
});
|
|
148
157
|
}
|
|
149
158
|
}
|
|
159
|
+
if (adapter.validateOptions) {
|
|
160
|
+
adapter.validateOptions(providerOptions);
|
|
161
|
+
}
|
|
150
162
|
return {
|
|
151
163
|
adapter,
|
|
152
164
|
appIds,
|
|
@@ -177,10 +189,40 @@ module.exports = function (authOptions = {}, enableAnonymousUsers = true) {
|
|
|
177
189
|
adapter
|
|
178
190
|
};
|
|
179
191
|
};
|
|
192
|
+
const runAfterFind = async (req, authData) => {
|
|
193
|
+
if (!authData) {
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
const adapters = Object.keys(authData);
|
|
197
|
+
await Promise.all(adapters.map(async provider => {
|
|
198
|
+
const authAdapter = getValidatorForProvider(provider);
|
|
199
|
+
if (!authAdapter) {
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
const {
|
|
203
|
+
adapter: {
|
|
204
|
+
afterFind
|
|
205
|
+
},
|
|
206
|
+
providerOptions
|
|
207
|
+
} = authAdapter;
|
|
208
|
+
if (afterFind && typeof afterFind === 'function') {
|
|
209
|
+
const requestObject = {
|
|
210
|
+
ip: req.config.ip,
|
|
211
|
+
user: req.auth.user,
|
|
212
|
+
master: req.auth.isMaster
|
|
213
|
+
};
|
|
214
|
+
const result = afterFind(requestObject, authData[provider], providerOptions);
|
|
215
|
+
if (result) {
|
|
216
|
+
authData[provider] = result;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}));
|
|
220
|
+
};
|
|
180
221
|
return Object.freeze({
|
|
181
222
|
getValidatorForProvider,
|
|
182
|
-
setEnableAnonymousUsers
|
|
223
|
+
setEnableAnonymousUsers,
|
|
224
|
+
runAfterFind
|
|
183
225
|
});
|
|
184
226
|
};
|
|
185
227
|
module.exports.loadAuthAdapter = loadAuthAdapter;
|
|
186
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhcHBsZSIsInJlcXVpcmUiLCJnY2VudGVyIiwiZ3BnYW1lcyIsImZhY2Vib29rIiwiaW5zdGFncmFtIiwibGlua2VkaW4iLCJtZWV0dXAiLCJnb29nbGUiLCJnaXRodWIiLCJ0d2l0dGVyIiwic3BvdGlmeSIsImRpZ2l0cyIsImphbnJhaW5lbmdhZ2UiLCJqYW5yYWluY2FwdHVyZSIsImxpbmUiLCJ2a29udGFrdGUiLCJxcSIsIndlY2hhdCIsIndlaWJvIiwib2F1dGgyIiwicGhhbnRhdXRoIiwibWljcm9zb2Z0Iiwia2V5Y2xvYWsiLCJsZGFwIiwiYW5vbnltb3VzIiwidmFsaWRhdGVBdXRoRGF0YSIsIlByb21pc2UiLCJyZXNvbHZlIiwidmFsaWRhdGVBcHBJZCIsInByb3ZpZGVycyIsImF1dGhBZGFwdGVyUG9saWNpZXMiLCJkZWZhdWx0Iiwic29sbyIsImFkZGl0aW9uYWwiLCJhdXRoRGF0YVZhbGlkYXRvciIsInByb3ZpZGVyIiwiYWRhcHRlciIsImFwcElkcyIsIm9wdGlvbnMiLCJhdXRoRGF0YSIsInJlcSIsInVzZXIiLCJyZXF1ZXN0T2JqZWN0IiwicG9saWN5IiwiUGFyc2UiLCJFcnJvciIsIk9USEVSX0NBVVNFIiwidmFsaWRhdGVTZXRVcCIsInZhbGlkYXRlTG9naW4iLCJ2YWxpZGF0ZVVwZGF0ZSIsImlzTG9nZ2VkSW4iLCJhdXRoIiwiaWQiLCJpc01hc3RlciIsImhhc0F1dGhEYXRhQ29uZmlndXJlZCIsImdldCIsIm1ldGhvZCIsInZhbGlkYXRvciIsImxvYWRBdXRoQWRhcHRlciIsImF1dGhPcHRpb25zIiwiZGVmYXVsdEFkYXB0ZXIiLCJwcm92aWRlck9wdGlvbnMiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJhc3NpZ24iLCJ1bmRlZmluZWQiLCJvcHRpb25hbEFkYXB0ZXIiLCJsb2FkQWRhcHRlciIsImZvckVhY2giLCJrZXkiLCJtb2R1bGUiLCJleHBvcnRzIiwiZW5hYmxlQW5vbnltb3VzVXNlcnMiLCJfZW5hYmxlQW5vbnltb3VzVXNlcnMiLCJzZXRFbmFibGVBbm9ueW1vdXNVc2VycyIsImVuYWJsZSIsImdldFZhbGlkYXRvckZvclByb3ZpZGVyIiwiYXV0aEFkYXB0ZXIiLCJmcmVlemUiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvQWRhcHRlcnMvQXV0aC9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbG9hZEFkYXB0ZXIgZnJvbSAnLi4vQWRhcHRlckxvYWRlcic7XG5pbXBvcnQgUGFyc2UgZnJvbSAncGFyc2Uvbm9kZSc7XG5cbmNvbnN0IGFwcGxlID0gcmVxdWlyZSgnLi9hcHBsZScpO1xuY29uc3QgZ2NlbnRlciA9IHJlcXVpcmUoJy4vZ2NlbnRlcicpO1xuY29uc3QgZ3BnYW1lcyA9IHJlcXVpcmUoJy4vZ3BnYW1lcycpO1xuY29uc3QgZmFjZWJvb2sgPSByZXF1aXJlKCcuL2ZhY2Vib29rJyk7XG5jb25zdCBpbnN0YWdyYW0gPSByZXF1aXJlKCcuL2luc3RhZ3JhbScpO1xuY29uc3QgbGlua2VkaW4gPSByZXF1aXJlKCcuL2xpbmtlZGluJyk7XG5jb25zdCBtZWV0dXAgPSByZXF1aXJlKCcuL21lZXR1cCcpO1xuY29uc3QgZ29vZ2xlID0gcmVxdWlyZSgnLi9nb29nbGUnKTtcbmNvbnN0IGdpdGh1YiA9IHJlcXVpcmUoJy4vZ2l0aHViJyk7XG5jb25zdCB0d2l0dGVyID0gcmVxdWlyZSgnLi90d2l0dGVyJyk7XG5jb25zdCBzcG90aWZ5ID0gcmVxdWlyZSgnLi9zcG90aWZ5Jyk7XG5jb25zdCBkaWdpdHMgPSByZXF1aXJlKCcuL3R3aXR0ZXInKTsgLy8gZGlnaXRzIHRva2VucyBhcmUgdmFsaWRhdGVkIGJ5IHR3aXR0ZXJcbmNvbnN0IGphbnJhaW5lbmdhZ2UgPSByZXF1aXJlKCcuL2phbnJhaW5lbmdhZ2UnKTtcbmNvbnN0IGphbnJhaW5jYXB0dXJlID0gcmVxdWlyZSgnLi9qYW5yYWluY2FwdHVyZScpO1xuY29uc3QgbGluZSA9IHJlcXVpcmUoJy4vbGluZScpO1xuY29uc3QgdmtvbnRha3RlID0gcmVxdWlyZSgnLi92a29udGFrdGUnKTtcbmNvbnN0IHFxID0gcmVxdWlyZSgnLi9xcScpO1xuY29uc3Qgd2VjaGF0ID0gcmVxdWlyZSgnLi93ZWNoYXQnKTtcbmNvbnN0IHdlaWJvID0gcmVxdWlyZSgnLi93ZWlibycpO1xuY29uc3Qgb2F1dGgyID0gcmVxdWlyZSgnLi9vYXV0aDInKTtcbmNvbnN0IHBoYW50YXV0aCA9IHJlcXVpcmUoJy4vcGhhbnRhdXRoJyk7XG5jb25zdCBtaWNyb3NvZnQgPSByZXF1aXJlKCcuL21pY3Jvc29mdCcpO1xuY29uc3Qga2V5Y2xvYWsgPSByZXF1aXJlKCcuL2tleWNsb2FrJyk7XG5jb25zdCBsZGFwID0gcmVxdWlyZSgnLi9sZGFwJyk7XG5cbmNvbnN0IGFub255bW91cyA9IHtcbiAgdmFsaWRhdGVBdXRoRGF0YTogKCkgPT4ge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgfSxcbiAgdmFsaWRhdGVBcHBJZDogKCkgPT4ge1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgfSxcbn07XG5cbmNvbnN0IHByb3ZpZGVycyA9IHtcbiAgYXBwbGUsXG4gIGdjZW50ZXIsXG4gIGdwZ2FtZXMsXG4gIGZhY2Vib29rLFxuICBpbnN0YWdyYW0sXG4gIGxpbmtlZGluLFxuICBtZWV0dXAsXG4gIGdvb2dsZSxcbiAgZ2l0aHViLFxuICB0d2l0dGVyLFxuICBzcG90aWZ5LFxuICBhbm9ueW1vdXMsXG4gIGRpZ2l0cyxcbiAgamFucmFpbmVuZ2FnZSxcbiAgamFucmFpbmNhcHR1cmUsXG4gIGxpbmUsXG4gIHZrb250YWt0ZSxcbiAgcXEsXG4gIHdlY2hhdCxcbiAgd2VpYm8sXG4gIHBoYW50YXV0aCxcbiAgbWljcm9zb2Z0LFxuICBrZXljbG9hayxcbiAgbGRhcCxcbn07XG5cbi8vIEluZGV4ZWQgYXV0aCBwb2xpY2llc1xuY29uc3QgYXV0aEFkYXB0ZXJQb2xpY2llcyA9IHtcbiAgZGVmYXVsdDogdHJ1ZSxcbiAgc29sbzogdHJ1ZSxcbiAgYWRkaXRpb25hbDogdHJ1ZSxcbn07XG5cbmZ1bmN0aW9uIGF1dGhEYXRhVmFsaWRhdG9yKHByb3ZpZGVyLCBhZGFwdGVyLCBhcHBJZHMsIG9wdGlvbnMpIHtcbiAgcmV0dXJuIGFzeW5jIGZ1bmN0aW9uIChhdXRoRGF0YSwgcmVxLCB1c2VyLCByZXF1ZXN0T2JqZWN0KSB7XG4gICAgaWYgKGFwcElkcyAmJiB0eXBlb2YgYWRhcHRlci52YWxpZGF0ZUFwcElkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBhd2FpdCBQcm9taXNlLnJlc29sdmUoYWRhcHRlci52YWxpZGF0ZUFwcElkKGFwcElkcywgYXV0aERhdGEsIG9wdGlvbnMsIHJlcXVlc3RPYmplY3QpKTtcbiAgICB9XG4gICAgaWYgKGFkYXB0ZXIucG9saWN5ICYmICFhdXRoQWRhcHRlclBvbGljaWVzW2FkYXB0ZXIucG9saWN5XSkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFxuICAgICAgICBQYXJzZS5FcnJvci5PVEhFUl9DQVVTRSxcbiAgICAgICAgJ0F1dGhBZGFwdGVyIHBvbGljeSBpcyBub3QgY29uZmlndXJlZCBjb3JyZWN0bHkuIFRoZSB2YWx1ZSBtdXN0IGJlIGVpdGhlciBcInNvbG9cIiwgXCJhZGRpdGlvbmFsXCIsIFwiZGVmYXVsdFwiIG9yIHVuZGVmaW5lZCAod2lsbCBiZSBoYW5kbGVkIGFzIFwiZGVmYXVsdFwiKSdcbiAgICAgICk7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgYWRhcHRlci52YWxpZGF0ZUF1dGhEYXRhID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gYWRhcHRlci52YWxpZGF0ZUF1dGhEYXRhKGF1dGhEYXRhLCBvcHRpb25zLCByZXF1ZXN0T2JqZWN0KTtcbiAgICB9XG4gICAgaWYgKFxuICAgICAgdHlwZW9mIGFkYXB0ZXIudmFsaWRhdGVTZXRVcCAhPT0gJ2Z1bmN0aW9uJyB8fFxuICAgICAgdHlwZW9mIGFkYXB0ZXIudmFsaWRhdGVMb2dpbiAhPT0gJ2Z1bmN0aW9uJyB8fFxuICAgICAgdHlwZW9mIGFkYXB0ZXIudmFsaWRhdGVVcGRhdGUgIT09ICdmdW5jdGlvbidcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBQYXJzZS5FcnJvcihcbiAgICAgICAgUGFyc2UuRXJyb3IuT1RIRVJfQ0FVU0UsXG4gICAgICAgICdBZGFwdGVyIGlzIG5vdCBjb25maWd1cmVkLiBJbXBsZW1lbnQgZWl0aGVyIHZhbGlkYXRlQXV0aERhdGEgb3IgYWxsIG9mIHRoZSBmb2xsb3dpbmc6IHZhbGlkYXRlU2V0VXAsIHZhbGlkYXRlTG9naW4gYW5kIHZhbGlkYXRlVXBkYXRlJ1xuICAgICAgKTtcbiAgICB9XG4gICAgLy8gV2hlbiBtYXN0ZXJLZXkgaXMgZGV0ZWN0ZWQsIHdlIHNob3VsZCB0cmlnZ2VyIGEgbG9nZ2VkIGluIHVzZXJcbiAgICBjb25zdCBpc0xvZ2dlZEluID1cbiAgICAgIChyZXEuYXV0aC51c2VyICYmIHVzZXIgJiYgcmVxLmF1dGgudXNlci5pZCA9PT0gdXNlci5pZCkgfHwgKHVzZXIgJiYgcmVxLmF1dGguaXNNYXN0ZXIpO1xuICAgIGxldCBoYXNBdXRoRGF0YUNvbmZpZ3VyZWQgPSBmYWxzZTtcblxuICAgIGlmICh1c2VyICYmIHVzZXIuZ2V0KCdhdXRoRGF0YScpICYmIHVzZXIuZ2V0KCdhdXRoRGF0YScpW3Byb3ZpZGVyXSkge1xuICAgICAgaGFzQXV0aERhdGFDb25maWd1cmVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoaXNMb2dnZWRJbikge1xuICAgICAgLy8gVXNlciBpcyB1cGRhdGluZyB0aGVpciBhdXRoRGF0YVxuICAgICAgaWYgKGhhc0F1dGhEYXRhQ29uZmlndXJlZCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIG1ldGhvZDogJ3ZhbGlkYXRlVXBkYXRlJyxcbiAgICAgICAgICB2YWxpZGF0b3I6ICgpID0+IGFkYXB0ZXIudmFsaWRhdGVVcGRhdGUoYXV0aERhdGEsIG9wdGlvbnMsIHJlcXVlc3RPYmplY3QpLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgLy8gU2V0IHVwIGlmIHRoZSB1c2VyIGRvZXMgbm90IGhhdmUgdGhlIHByb3ZpZGVyIGNvbmZpZ3VyZWRcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1ldGhvZDogJ3ZhbGlkYXRlU2V0VXAnLFxuICAgICAgICB2YWxpZGF0b3I6ICgpID0+IGFkYXB0ZXIudmFsaWRhdGVTZXRVcChhdXRoRGF0YSwgb3B0aW9ucywgcmVxdWVzdE9iamVjdCksXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIE5vdCBsb2dnZWQgaW4gYW5kIGF1dGhEYXRhIGlzIGNvbmZpZ3VyZWQgb24gdGhlIHVzZXJcbiAgICBpZiAoaGFzQXV0aERhdGFDb25maWd1cmVkKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBtZXRob2Q6ICd2YWxpZGF0ZUxvZ2luJyxcbiAgICAgICAgdmFsaWRhdG9yOiAoKSA9PiBhZGFwdGVyLnZhbGlkYXRlTG9naW4oYXV0aERhdGEsIG9wdGlvbnMsIHJlcXVlc3RPYmplY3QpLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBVc2VyIG5vdCBsb2dnZWQgaW4gYW5kIHRoZSBwcm92aWRlciBpcyBub3Qgc2V0IHVwLCBmb3IgZXhhbXBsZSB3aGVuIGEgbmV3IHVzZXJcbiAgICAvLyBzaWducyB1cCBvciBhbiBleGlzdGluZyB1c2VyIHVzZXMgYSBuZXcgYXV0aCBwcm92aWRlclxuICAgIHJldHVybiB7XG4gICAgICBtZXRob2Q6ICd2YWxpZGF0ZVNldFVwJyxcbiAgICAgIHZhbGlkYXRvcjogKCkgPT4gYWRhcHRlci52YWxpZGF0ZVNldFVwKGF1dGhEYXRhLCBvcHRpb25zLCByZXF1ZXN0T2JqZWN0KSxcbiAgICB9O1xuICB9O1xufVxuXG5mdW5jdGlvbiBsb2FkQXV0aEFkYXB0ZXIocHJvdmlkZXIsIGF1dGhPcHRpb25zKSB7XG4gIC8vIHByb3ZpZGVycyBhcmUgYXV0aCBwcm92aWRlcnMgaW1wbGVtZW50ZWQgYnkgZGVmYXVsdFxuICBsZXQgZGVmYXVsdEFkYXB0ZXIgPSBwcm92aWRlcnNbcHJvdmlkZXJdO1xuICAvLyBhdXRoT3B0aW9ucyBjYW4gY29udGFpbiBjb21wbGV0ZSBjdXN0b20gYXV0aCBhZGFwdGVycyBvclxuICAvLyBhIGRlZmF1bHQgYXV0aCBhZGFwdGVyIGxpa2UgRmFjZWJvb2tcbiAgY29uc3QgcHJvdmlkZXJPcHRpb25zID0gYXV0aE9wdGlvbnNbcHJvdmlkZXJdO1xuICBpZiAoXG4gICAgcHJvdmlkZXJPcHRpb25zICYmXG4gICAgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHByb3ZpZGVyT3B0aW9ucywgJ29hdXRoMicpICYmXG4gICAgcHJvdmlkZXJPcHRpb25zWydvYXV0aDInXSA9PT0gdHJ1ZVxuICApIHtcbiAgICBkZWZhdWx0QWRhcHRlciA9IG9hdXRoMjtcbiAgfVxuXG4gIC8vIERlZmF1bHQgcHJvdmlkZXIgbm90IGZvdW5kIGFuZCBhIGN1c3RvbSBhdXRoIHByb3ZpZGVyIHdhcyBub3QgcHJvdmlkZWRcbiAgaWYgKCFkZWZhdWx0QWRhcHRlciAmJiAhcHJvdmlkZXJPcHRpb25zKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgYWRhcHRlciA9IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRBZGFwdGVyKTtcbiAgY29uc3QgYXBwSWRzID0gcHJvdmlkZXJPcHRpb25zID8gcHJvdmlkZXJPcHRpb25zLmFwcElkcyA6IHVuZGVmaW5lZDtcblxuICAvLyBUcnkgdGhlIGNvbmZpZ3VyYXRpb24gbWV0aG9kc1xuICBpZiAocHJvdmlkZXJPcHRpb25zKSB7XG4gICAgY29uc3Qgb3B0aW9uYWxBZGFwdGVyID0gbG9hZEFkYXB0ZXIocHJvdmlkZXJPcHRpb25zLCB1bmRlZmluZWQsIHByb3ZpZGVyT3B0aW9ucyk7XG4gICAgaWYgKG9wdGlvbmFsQWRhcHRlcikge1xuICAgICAgW1xuICAgICAgICAndmFsaWRhdGVBdXRoRGF0YScsXG4gICAgICAgICd2YWxpZGF0ZUFwcElkJyxcbiAgICAgICAgJ3ZhbGlkYXRlU2V0VXAnLFxuICAgICAgICAndmFsaWRhdGVMb2dpbicsXG4gICAgICAgICd2YWxpZGF0ZVVwZGF0ZScsXG4gICAgICAgICdjaGFsbGVuZ2UnLFxuICAgICAgICAncG9saWN5JyxcbiAgICAgIF0uZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICBpZiAob3B0aW9uYWxBZGFwdGVyW2tleV0pIHtcbiAgICAgICAgICBhZGFwdGVyW2tleV0gPSBvcHRpb25hbEFkYXB0ZXJba2V5XTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHsgYWRhcHRlciwgYXBwSWRzLCBwcm92aWRlck9wdGlvbnMgfTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBmdW5jdGlvbiAoYXV0aE9wdGlvbnMgPSB7fSwgZW5hYmxlQW5vbnltb3VzVXNlcnMgPSB0cnVlKSB7XG4gIGxldCBfZW5hYmxlQW5vbnltb3VzVXNlcnMgPSBlbmFibGVBbm9ueW1vdXNVc2VycztcbiAgY29uc3Qgc2V0RW5hYmxlQW5vbnltb3VzVXNlcnMgPSBmdW5jdGlvbiAoZW5hYmxlKSB7XG4gICAgX2VuYWJsZUFub255bW91c1VzZXJzID0gZW5hYmxlO1xuICB9O1xuICAvLyBUbyBoYW5kbGUgdGhlIHRlc3QgY2FzZXMgb24gY29uZmlndXJhdGlvblxuICBjb25zdCBnZXRWYWxpZGF0b3JGb3JQcm92aWRlciA9IGZ1bmN0aW9uIChwcm92aWRlcikge1xuICAgIGlmIChwcm92aWRlciA9PT0gJ2Fub255bW91cycgJiYgIV9lbmFibGVBbm9ueW1vdXNVc2Vycykge1xuICAgICAgcmV0dXJuIHsgdmFsaWRhdG9yOiB1bmRlZmluZWQgfTtcbiAgICB9XG4gICAgY29uc3QgYXV0aEFkYXB0ZXIgPSBsb2FkQXV0aEFkYXB0ZXIocHJvdmlkZXIsIGF1dGhPcHRpb25zKTtcbiAgICBpZiAoIWF1dGhBZGFwdGVyKSByZXR1cm47XG4gICAgY29uc3QgeyBhZGFwdGVyLCBhcHBJZHMsIHByb3ZpZGVyT3B0aW9ucyB9ID0gYXV0aEFkYXB0ZXI7XG4gICAgcmV0dXJuIHsgdmFsaWRhdG9yOiBhdXRoRGF0YVZhbGlkYXRvcihwcm92aWRlciwgYWRhcHRlciwgYXBwSWRzLCBwcm92aWRlck9wdGlvbnMpLCBhZGFwdGVyIH07XG4gIH07XG5cbiAgcmV0dXJuIE9iamVjdC5mcmVlemUoe1xuICAgIGdldFZhbGlkYXRvckZvclByb3ZpZGVyLFxuICAgIHNldEVuYWJsZUFub255bW91c1VzZXJzLFxuICB9KTtcbn07XG5cbm1vZHVsZS5leHBvcnRzLmxvYWRBdXRoQWRhcHRlciA9IGxvYWRBdXRoQWRhcHRlcjtcbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQTtBQUNBO0FBQStCO0FBRS9CLE1BQU1BLEtBQUssR0FBR0MsT0FBTyxDQUFDLFNBQVMsQ0FBQztBQUNoQyxNQUFNQyxPQUFPLEdBQUdELE9BQU8sQ0FBQyxXQUFXLENBQUM7QUFDcEMsTUFBTUUsT0FBTyxHQUFHRixPQUFPLENBQUMsV0FBVyxDQUFDO0FBQ3BDLE1BQU1HLFFBQVEsR0FBR0gsT0FBTyxDQUFDLFlBQVksQ0FBQztBQUN0QyxNQUFNSSxTQUFTLEdBQUdKLE9BQU8sQ0FBQyxhQUFhLENBQUM7QUFDeEMsTUFBTUssUUFBUSxHQUFHTCxPQUFPLENBQUMsWUFBWSxDQUFDO0FBQ3RDLE1BQU1NLE1BQU0sR0FBR04sT0FBTyxDQUFDLFVBQVUsQ0FBQztBQUNsQyxNQUFNTyxNQUFNLEdBQUdQLE9BQU8sQ0FBQyxVQUFVLENBQUM7QUFDbEMsTUFBTVEsTUFBTSxHQUFHUixPQUFPLENBQUMsVUFBVSxDQUFDO0FBQ2xDLE1BQU1TLE9BQU8sR0FBR1QsT0FBTyxDQUFDLFdBQVcsQ0FBQztBQUNwQyxNQUFNVSxPQUFPLEdBQUdWLE9BQU8sQ0FBQyxXQUFXLENBQUM7QUFDcEMsTUFBTVcsTUFBTSxHQUFHWCxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztBQUNyQyxNQUFNWSxhQUFhLEdBQUdaLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztBQUNoRCxNQUFNYSxjQUFjLEdBQUdiLE9BQU8s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
|
|
228
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJhcHBsZSIsInJlcXVpcmUiLCJnY2VudGVyIiwiZ3BnYW1lcyIsImZhY2Vib29rIiwiaW5zdGFncmFtIiwibGlua2VkaW4iLCJtZWV0dXAiLCJnb29nbGUiLCJnaXRodWIiLCJ0d2l0dGVyIiwic3BvdGlmeSIsImRpZ2l0cyIsImphbnJhaW5lbmdhZ2UiLCJqYW5yYWluY2FwdHVyZSIsImxpbmUiLCJ2a29udGFrdGUiLCJxcSIsIndlY2hhdCIsIndlaWJvIiwib2F1dGgyIiwicGhhbnRhdXRoIiwibWljcm9zb2Z0Iiwia2V5Y2xvYWsiLCJsZGFwIiwiYW5vbnltb3VzIiwidmFsaWRhdGVBdXRoRGF0YSIsIlByb21pc2UiLCJyZXNvbHZlIiwidmFsaWRhdGVBcHBJZCIsInByb3ZpZGVycyIsImF1dGhBZGFwdGVyUG9saWNpZXMiLCJkZWZhdWx0Iiwic29sbyIsImFkZGl0aW9uYWwiLCJhdXRoRGF0YVZhbGlkYXRvciIsInByb3ZpZGVyIiwiYWRhcHRlciIsImFwcElkcyIsIm9wdGlvbnMiLCJhdXRoRGF0YSIsInJlcSIsInVzZXIiLCJyZXF1ZXN0T2JqZWN0IiwicG9saWN5IiwiUGFyc2UiLCJFcnJvciIsIk9USEVSX0NBVVNFIiwidmFsaWRhdGVTZXRVcCIsInZhbGlkYXRlTG9naW4iLCJ2YWxpZGF0ZVVwZGF0ZSIsImlzTG9nZ2VkSW4iLCJhdXRoIiwiaWQiLCJpc01hc3RlciIsImhhc0F1dGhEYXRhQ29uZmlndXJlZCIsImdldCIsIm1ldGhvZCIsInZhbGlkYXRvciIsImxvYWRBdXRoQWRhcHRlciIsImF1dGhPcHRpb25zIiwiZGVmYXVsdEFkYXB0ZXIiLCJwcm92aWRlck9wdGlvbnMiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJBdXRoQWRhcHRlciIsImFzc2lnbiIsImtleXMiLCJkZWZhdWx0QXV0aEFkYXB0ZXIiLCJmb3JFYWNoIiwia2V5IiwiZXhpc3RpbmciLCJ0b1N0cmluZyIsInVuZGVmaW5lZCIsIm9wdGlvbmFsQWRhcHRlciIsImxvYWRBZGFwdGVyIiwidmFsaWRhdGVPcHRpb25zIiwibW9kdWxlIiwiZXhwb3J0cyIsImVuYWJsZUFub255bW91c1VzZXJzIiwiX2VuYWJsZUFub255bW91c1VzZXJzIiwic2V0RW5hYmxlQW5vbnltb3VzVXNlcnMiLCJlbmFibGUiLCJnZXRWYWxpZGF0b3JGb3JQcm92aWRlciIsImF1dGhBZGFwdGVyIiwicnVuQWZ0ZXJGaW5kIiwiYWRhcHRlcnMiLCJhbGwiLCJtYXAiLCJhZnRlckZpbmQiLCJpcCIsImNvbmZpZyIsIm1hc3RlciIsInJlc3VsdCIsImZyZWV6ZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9BdXRoL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBsb2FkQWRhcHRlciBmcm9tICcuLi9BZGFwdGVyTG9hZGVyJztcbmltcG9ydCBQYXJzZSBmcm9tICdwYXJzZS9ub2RlJztcbmltcG9ydCBBdXRoQWRhcHRlciBmcm9tICcuL0F1dGhBZGFwdGVyJztcblxuY29uc3QgYXBwbGUgPSByZXF1aXJlKCcuL2FwcGxlJyk7XG5jb25zdCBnY2VudGVyID0gcmVxdWlyZSgnLi9nY2VudGVyJyk7XG5jb25zdCBncGdhbWVzID0gcmVxdWlyZSgnLi9ncGdhbWVzJyk7XG5jb25zdCBmYWNlYm9vayA9IHJlcXVpcmUoJy4vZmFjZWJvb2snKTtcbmNvbnN0IGluc3RhZ3JhbSA9IHJlcXVpcmUoJy4vaW5zdGFncmFtJyk7XG5jb25zdCBsaW5rZWRpbiA9IHJlcXVpcmUoJy4vbGlua2VkaW4nKTtcbmNvbnN0IG1lZXR1cCA9IHJlcXVpcmUoJy4vbWVldHVwJyk7XG5jb25zdCBnb29nbGUgPSByZXF1aXJlKCcuL2dvb2dsZScpO1xuY29uc3QgZ2l0aHViID0gcmVxdWlyZSgnLi9naXRodWInKTtcbmNvbnN0IHR3aXR0ZXIgPSByZXF1aXJlKCcuL3R3aXR0ZXInKTtcbmNvbnN0IHNwb3RpZnkgPSByZXF1aXJlKCcuL3Nwb3RpZnknKTtcbmNvbnN0IGRpZ2l0cyA9IHJlcXVpcmUoJy4vdHdpdHRlcicpOyAvLyBkaWdpdHMgdG9rZW5zIGFyZSB2YWxpZGF0ZWQgYnkgdHdpdHRlclxuY29uc3QgamFucmFpbmVuZ2FnZSA9IHJlcXVpcmUoJy4vamFucmFpbmVuZ2FnZScpO1xuY29uc3QgamFucmFpbmNhcHR1cmUgPSByZXF1aXJlKCcuL2phbnJhaW5jYXB0dXJlJyk7XG5jb25zdCBsaW5lID0gcmVxdWlyZSgnLi9saW5lJyk7XG5jb25zdCB2a29udGFrdGUgPSByZXF1aXJlKCcuL3Zrb250YWt0ZScpO1xuY29uc3QgcXEgPSByZXF1aXJlKCcuL3FxJyk7XG5jb25zdCB3ZWNoYXQgPSByZXF1aXJlKCcuL3dlY2hhdCcpO1xuY29uc3Qgd2VpYm8gPSByZXF1aXJlKCcuL3dlaWJvJyk7XG5jb25zdCBvYXV0aDIgPSByZXF1aXJlKCcuL29hdXRoMicpO1xuY29uc3QgcGhhbnRhdXRoID0gcmVxdWlyZSgnLi9waGFudGF1dGgnKTtcbmNvbnN0IG1pY3Jvc29mdCA9IHJlcXVpcmUoJy4vbWljcm9zb2Z0Jyk7XG5jb25zdCBrZXljbG9hayA9IHJlcXVpcmUoJy4va2V5Y2xvYWsnKTtcbmNvbnN0IGxkYXAgPSByZXF1aXJlKCcuL2xkYXAnKTtcblxuY29uc3QgYW5vbnltb3VzID0ge1xuICB2YWxpZGF0ZUF1dGhEYXRhOiAoKSA9PiB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICB9LFxuICB2YWxpZGF0ZUFwcElkOiAoKSA9PiB7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICB9LFxufTtcblxuY29uc3QgcHJvdmlkZXJzID0ge1xuICBhcHBsZSxcbiAgZ2NlbnRlcixcbiAgZ3BnYW1lcyxcbiAgZmFjZWJvb2ssXG4gIGluc3RhZ3JhbSxcbiAgbGlua2VkaW4sXG4gIG1lZXR1cCxcbiAgZ29vZ2xlLFxuICBnaXRodWIsXG4gIHR3aXR0ZXIsXG4gIHNwb3RpZnksXG4gIGFub255bW91cyxcbiAgZGlnaXRzLFxuICBqYW5yYWluZW5nYWdlLFxuICBqYW5yYWluY2FwdHVyZSxcbiAgbGluZSxcbiAgdmtvbnRha3RlLFxuICBxcSxcbiAgd2VjaGF0LFxuICB3ZWlibyxcbiAgcGhhbnRhdXRoLFxuICBtaWNyb3NvZnQsXG4gIGtleWNsb2FrLFxuICBsZGFwLFxufTtcblxuLy8gSW5kZXhlZCBhdXRoIHBvbGljaWVzXG5jb25zdCBhdXRoQWRhcHRlclBvbGljaWVzID0ge1xuICBkZWZhdWx0OiB0cnVlLFxuICBzb2xvOiB0cnVlLFxuICBhZGRpdGlvbmFsOiB0cnVlLFxufTtcblxuZnVuY3Rpb24gYXV0aERhdGFWYWxpZGF0b3IocHJvdmlkZXIsIGFkYXB0ZXIsIGFwcElkcywgb3B0aW9ucykge1xuICByZXR1cm4gYXN5bmMgZnVuY3Rpb24gKGF1dGhEYXRhLCByZXEsIHVzZXIsIHJlcXVlc3RPYmplY3QpIHtcbiAgICBpZiAoYXBwSWRzICYmIHR5cGVvZiBhZGFwdGVyLnZhbGlkYXRlQXBwSWQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGF3YWl0IFByb21pc2UucmVzb2x2ZShhZGFwdGVyLnZhbGlkYXRlQXBwSWQoYXBwSWRzLCBhdXRoRGF0YSwgb3B0aW9ucywgcmVxdWVzdE9iamVjdCkpO1xuICAgIH1cbiAgICBpZiAoYWRhcHRlci5wb2xpY3kgJiYgIWF1dGhBZGFwdGVyUG9saWNpZXNbYWRhcHRlci5wb2xpY3ldKSB7XG4gICAgICB0aHJvdyBuZXcgUGFyc2UuRXJyb3IoXG4gICAgICAgIFBhcnNlLkVycm9yLk9USEVSX0NBVVNFLFxuICAgICAgICAnQXV0aEFkYXB0ZXIgcG9saWN5IGlzIG5vdCBjb25maWd1cmVkIGNvcnJlY3RseS4gVGhlIHZhbHVlIG11c3QgYmUgZWl0aGVyIFwic29sb1wiLCBcImFkZGl0aW9uYWxcIiwgXCJkZWZhdWx0XCIgb3IgdW5kZWZpbmVkICh3aWxsIGJlIGhhbmRsZWQgYXMgXCJkZWZhdWx0XCIpJ1xuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBhZGFwdGVyLnZhbGlkYXRlQXV0aERhdGEgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBhZGFwdGVyLnZhbGlkYXRlQXV0aERhdGEoYXV0aERhdGEsIG9wdGlvbnMsIHJlcXVlc3RPYmplY3QpO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICB0eXBlb2YgYWRhcHRlci52YWxpZGF0ZVNldFVwICE9PSAnZnVuY3Rpb24nIHx8XG4gICAgICB0eXBlb2YgYWRhcHRlci52YWxpZGF0ZUxvZ2luICE9PSAnZnVuY3Rpb24nIHx8XG4gICAgICB0eXBlb2YgYWRhcHRlci52YWxpZGF0ZVVwZGF0ZSAhPT0gJ2Z1bmN0aW9uJ1xuICAgICkge1xuICAgICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFxuICAgICAgICBQYXJzZS5FcnJvci5PVEhFUl9DQVVTRSxcbiAgICAgICAgJ0FkYXB0ZXIgaXMgbm90IGNvbmZpZ3VyZWQuIEltcGxlbWVudCBlaXRoZXIgdmFsaWRhdGVBdXRoRGF0YSBvciBhbGwgb2YgdGhlIGZvbGxvd2luZzogdmFsaWRhdGVTZXRVcCwgdmFsaWRhdGVMb2dpbiBhbmQgdmFsaWRhdGVVcGRhdGUnXG4gICAgICApO1xuICAgIH1cbiAgICAvLyBXaGVuIG1hc3RlcktleSBpcyBkZXRlY3RlZCwgd2Ugc2hvdWxkIHRyaWdnZXIgYSBsb2dnZWQgaW4gdXNlclxuICAgIGNvbnN0IGlzTG9nZ2VkSW4gPVxuICAgICAgKHJlcS5hdXRoLnVzZXIgJiYgdXNlciAmJiByZXEuYXV0aC51c2VyLmlkID09PSB1c2VyLmlkKSB8fCAodXNlciAmJiByZXEuYXV0aC5pc01hc3Rlcik7XG4gICAgbGV0IGhhc0F1dGhEYXRhQ29uZmlndXJlZCA9IGZhbHNlO1xuXG4gICAgaWYgKHVzZXIgJiYgdXNlci5nZXQoJ2F1dGhEYXRhJykgJiYgdXNlci5nZXQoJ2F1dGhEYXRhJylbcHJvdmlkZXJdKSB7XG4gICAgICBoYXNBdXRoRGF0YUNvbmZpZ3VyZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIGlmIChpc0xvZ2dlZEluKSB7XG4gICAgICAvLyBVc2VyIGlzIHVwZGF0aW5nIHRoZWlyIGF1dGhEYXRhXG4gICAgICBpZiAoaGFzQXV0aERhdGFDb25maWd1cmVkKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbWV0aG9kOiAndmFsaWRhdGVVcGRhdGUnLFxuICAgICAgICAgIHZhbGlkYXRvcjogKCkgPT4gYWRhcHRlci52YWxpZGF0ZVVwZGF0ZShhdXRoRGF0YSwgb3B0aW9ucywgcmVxdWVzdE9iamVjdCksXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICAvLyBTZXQgdXAgaWYgdGhlIHVzZXIgZG9lcyBub3QgaGF2ZSB0aGUgcHJvdmlkZXIgY29uZmlndXJlZFxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbWV0aG9kOiAndmFsaWRhdGVTZXRVcCcsXG4gICAgICAgIHZhbGlkYXRvcjogKCkgPT4gYWRhcHRlci52YWxpZGF0ZVNldFVwKGF1dGhEYXRhLCBvcHRpb25zLCByZXF1ZXN0T2JqZWN0KSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gTm90IGxvZ2dlZCBpbiBhbmQgYXV0aERhdGEgaXMgY29uZmlndXJlZCBvbiB0aGUgdXNlclxuICAgIGlmIChoYXNBdXRoRGF0YUNvbmZpZ3VyZWQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1ldGhvZDogJ3ZhbGlkYXRlTG9naW4nLFxuICAgICAgICB2YWxpZGF0b3I6ICgpID0+IGFkYXB0ZXIudmFsaWRhdGVMb2dpbihhdXRoRGF0YSwgb3B0aW9ucywgcmVxdWVzdE9iamVjdCksXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIFVzZXIgbm90IGxvZ2dlZCBpbiBhbmQgdGhlIHByb3ZpZGVyIGlzIG5vdCBzZXQgdXAsIGZvciBleGFtcGxlIHdoZW4gYSBuZXcgdXNlclxuICAgIC8vIHNpZ25zIHVwIG9yIGFuIGV4aXN0aW5nIHVzZXIgdXNlcyBhIG5ldyBhdXRoIHByb3ZpZGVyXG4gICAgcmV0dXJuIHtcbiAgICAgIG1ldGhvZDogJ3ZhbGlkYXRlU2V0VXAnLFxuICAgICAgdmFsaWRhdG9yOiAoKSA9PiBhZGFwdGVyLnZhbGlkYXRlU2V0VXAoYXV0aERhdGEsIG9wdGlvbnMsIHJlcXVlc3RPYmplY3QpLFxuICAgIH07XG4gIH07XG59XG5cbmZ1bmN0aW9uIGxvYWRBdXRoQWRhcHRlcihwcm92aWRlciwgYXV0aE9wdGlvbnMpIHtcbiAgLy8gcHJvdmlkZXJzIGFyZSBhdXRoIHByb3ZpZGVycyBpbXBsZW1lbnRlZCBieSBkZWZhdWx0XG4gIGxldCBkZWZhdWx0QWRhcHRlciA9IHByb3ZpZGVyc1twcm92aWRlcl07XG4gIC8vIGF1dGhPcHRpb25zIGNhbiBjb250YWluIGNvbXBsZXRlIGN1c3RvbSBhdXRoIGFkYXB0ZXJzIG9yXG4gIC8vIGEgZGVmYXVsdCBhdXRoIGFkYXB0ZXIgbGlrZSBGYWNlYm9va1xuICBjb25zdCBwcm92aWRlck9wdGlvbnMgPSBhdXRoT3B0aW9uc1twcm92aWRlcl07XG4gIGlmIChcbiAgICBwcm92aWRlck9wdGlvbnMgJiZcbiAgICBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocHJvdmlkZXJPcHRpb25zLCAnb2F1dGgyJykgJiZcbiAgICBwcm92aWRlck9wdGlvbnNbJ29hdXRoMiddID09PSB0cnVlXG4gICkge1xuICAgIGRlZmF1bHRBZGFwdGVyID0gb2F1dGgyO1xuICB9XG5cbiAgLy8gRGVmYXVsdCBwcm92aWRlciBub3QgZm91bmQgYW5kIGEgY3VzdG9tIGF1dGggcHJvdmlkZXIgd2FzIG5vdCBwcm92aWRlZFxuICBpZiAoIWRlZmF1bHRBZGFwdGVyICYmICFwcm92aWRlck9wdGlvbnMpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBhZGFwdGVyID1cbiAgICBkZWZhdWx0QWRhcHRlciBpbnN0YW5jZW9mIEF1dGhBZGFwdGVyID8gZGVmYXVsdEFkYXB0ZXIgOiBPYmplY3QuYXNzaWduKHt9LCBkZWZhdWx0QWRhcHRlcik7XG4gIGNvbnN0IGtleXMgPSBbXG4gICAgJ3ZhbGlkYXRlQXV0aERhdGEnLFxuICAgICd2YWxpZGF0ZUFwcElkJyxcbiAgICAndmFsaWRhdGVTZXRVcCcsXG4gICAgJ3ZhbGlkYXRlTG9naW4nLFxuICAgICd2YWxpZGF0ZVVwZGF0ZScsXG4gICAgJ2NoYWxsZW5nZScsXG4gICAgJ3ZhbGlkYXRlT3B0aW9ucycsXG4gICAgJ3BvbGljeScsXG4gICAgJ2FmdGVyRmluZCcsXG4gIF07XG4gIGNvbnN0IGRlZmF1bHRBdXRoQWRhcHRlciA9IG5ldyBBdXRoQWRhcHRlcigpO1xuICBrZXlzLmZvckVhY2goa2V5ID0+IHtcbiAgICBjb25zdCBleGlzdGluZyA9IGFkYXB0ZXI/LltrZXldO1xuICAgIGlmIChcbiAgICAgIGV4aXN0aW5nICYmXG4gICAgICB0eXBlb2YgZXhpc3RpbmcgPT09ICdmdW5jdGlvbicgJiZcbiAgICAgIGV4aXN0aW5nLnRvU3RyaW5nKCkgPT09IGRlZmF1bHRBdXRoQWRhcHRlcltrZXldLnRvU3RyaW5nKClcbiAgICApIHtcbiAgICAgIGFkYXB0ZXJba2V5XSA9IG51bGw7XG4gICAgfVxuICB9KTtcbiAgY29uc3QgYXBwSWRzID0gcHJvdmlkZXJPcHRpb25zID8gcHJvdmlkZXJPcHRpb25zLmFwcElkcyA6IHVuZGVmaW5lZDtcblxuICAvLyBUcnkgdGhlIGNvbmZpZ3VyYXRpb24gbWV0aG9kc1xuICBpZiAocHJvdmlkZXJPcHRpb25zKSB7XG4gICAgY29uc3Qgb3B0aW9uYWxBZGFwdGVyID0gbG9hZEFkYXB0ZXIocHJvdmlkZXJPcHRpb25zLCB1bmRlZmluZWQsIHByb3ZpZGVyT3B0aW9ucyk7XG4gICAgaWYgKG9wdGlvbmFsQWRhcHRlcikge1xuICAgICAga2V5cy5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIGlmIChvcHRpb25hbEFkYXB0ZXJba2V5XSkge1xuICAgICAgICAgIGFkYXB0ZXJba2V5XSA9IG9wdGlvbmFsQWRhcHRlcltrZXldO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgaWYgKGFkYXB0ZXIudmFsaWRhdGVPcHRpb25zKSB7XG4gICAgYWRhcHRlci52YWxpZGF0ZU9wdGlvbnMocHJvdmlkZXJPcHRpb25zKTtcbiAgfVxuXG4gIHJldHVybiB7IGFkYXB0ZXIsIGFwcElkcywgcHJvdmlkZXJPcHRpb25zIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGF1dGhPcHRpb25zID0ge30sIGVuYWJsZUFub255bW91c1VzZXJzID0gdHJ1ZSkge1xuICBsZXQgX2VuYWJsZUFub255bW91c1VzZXJzID0gZW5hYmxlQW5vbnltb3VzVXNlcnM7XG4gIGNvbnN0IHNldEVuYWJsZUFub255bW91c1VzZXJzID0gZnVuY3Rpb24gKGVuYWJsZSkge1xuICAgIF9lbmFibGVBbm9ueW1vdXNVc2VycyA9IGVuYWJsZTtcbiAgfTtcbiAgLy8gVG8gaGFuZGxlIHRoZSB0ZXN0IGNhc2VzIG9uIGNvbmZpZ3VyYXRpb25cbiAgY29uc3QgZ2V0VmFsaWRhdG9yRm9yUHJvdmlkZXIgPSBmdW5jdGlvbiAocHJvdmlkZXIpIHtcbiAgICBpZiAocHJvdmlkZXIgPT09ICdhbm9ueW1vdXMnICYmICFfZW5hYmxlQW5vbnltb3VzVXNlcnMpIHtcbiAgICAgIHJldHVybiB7IHZhbGlkYXRvcjogdW5kZWZpbmVkIH07XG4gICAgfVxuICAgIGNvbnN0IGF1dGhBZGFwdGVyID0gbG9hZEF1dGhBZGFwdGVyKHByb3ZpZGVyLCBhdXRoT3B0aW9ucyk7XG4gICAgaWYgKCFhdXRoQWRhcHRlcikgcmV0dXJuO1xuICAgIGNvbnN0IHsgYWRhcHRlciwgYXBwSWRzLCBwcm92aWRlck9wdGlvbnMgfSA9IGF1dGhBZGFwdGVyO1xuICAgIHJldHVybiB7IHZhbGlkYXRvcjogYXV0aERhdGFWYWxpZGF0b3IocHJvdmlkZXIsIGFkYXB0ZXIsIGFwcElkcywgcHJvdmlkZXJPcHRpb25zKSwgYWRhcHRlciB9O1xuICB9O1xuXG4gIGNvbnN0IHJ1bkFmdGVyRmluZCA9IGFzeW5jIChyZXEsIGF1dGhEYXRhKSA9PiB7XG4gICAgaWYgKCFhdXRoRGF0YSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBhZGFwdGVycyA9IE9iamVjdC5rZXlzKGF1dGhEYXRhKTtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIGFkYXB0ZXJzLm1hcChhc3luYyBwcm92aWRlciA9PiB7XG4gICAgICAgIGNvbnN0IGF1dGhBZGFwdGVyID0gZ2V0VmFsaWRhdG9yRm9yUHJvdmlkZXIocHJvdmlkZXIpO1xuICAgICAgICBpZiAoIWF1dGhBZGFwdGVyKSB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICBhZGFwdGVyOiB7IGFmdGVyRmluZCB9LFxuICAgICAgICAgIHByb3ZpZGVyT3B0aW9ucyxcbiAgICAgICAgfSA9IGF1dGhBZGFwdGVyO1xuICAgICAgICBpZiAoYWZ0ZXJGaW5kICYmIHR5cGVvZiBhZnRlckZpbmQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICBjb25zdCByZXF1ZXN0T2JqZWN0ID0ge1xuICAgICAgICAgICAgaXA6IHJlcS5jb25maWcuaXAsXG4gICAgICAgICAgICB1c2VyOiByZXEuYXV0aC51c2VyLFxuICAgICAgICAgICAgbWFzdGVyOiByZXEuYXV0aC5pc01hc3RlcixcbiAgICAgICAgICB9O1xuICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGFmdGVyRmluZChyZXF1ZXN0T2JqZWN0LCBhdXRoRGF0YVtwcm92aWRlcl0sIHByb3ZpZGVyT3B0aW9ucyk7XG4gICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgYXV0aERhdGFbcHJvdmlkZXJdID0gcmVzdWx0O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuICB9O1xuXG4gIHJldHVybiBPYmplY3QuZnJlZXplKHtcbiAgICBnZXRWYWxpZGF0b3JGb3JQcm92aWRlcixcbiAgICBzZXRFbmFibGVBbm9ueW1vdXNVc2VycyxcbiAgICBydW5BZnRlckZpbmQsXG4gIH0pO1xufTtcblxubW9kdWxlLmV4cG9ydHMubG9hZEF1dGhB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
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const jwt = require('jsonwebtoken');
|
|
4
|
+
const Parse = require('parse/node').Parse;
|
|
5
|
+
const getHeaderFromToken = token => {
|
|
6
|
+
const decodedToken = jwt.decode(token, {
|
|
7
|
+
complete: true
|
|
8
|
+
});
|
|
9
|
+
if (!decodedToken) {
|
|
10
|
+
throw new Parse.Error(Parse.Error.OBJECT_NOT_FOUND, `provided token does not decode as JWT`);
|
|
11
|
+
}
|
|
12
|
+
return decodedToken.header;
|
|
13
|
+
};
|
|
14
|
+
module.exports = {
|
|
15
|
+
getHeaderFromToken
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJqd3QiLCJyZXF1aXJlIiwiUGFyc2UiLCJnZXRIZWFkZXJGcm9tVG9rZW4iLCJ0b2tlbiIsImRlY29kZWRUb2tlbiIsImRlY29kZSIsImNvbXBsZXRlIiwiRXJyb3IiLCJPQkpFQ1RfTk9UX0ZPVU5EIiwiaGVhZGVyIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9BdXRoL3V0aWxzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGp3dCA9IHJlcXVpcmUoJ2pzb253ZWJ0b2tlbicpO1xuY29uc3QgUGFyc2UgPSByZXF1aXJlKCdwYXJzZS9ub2RlJykuUGFyc2U7XG5jb25zdCBnZXRIZWFkZXJGcm9tVG9rZW4gPSB0b2tlbiA9PiB7XG4gIGNvbnN0IGRlY29kZWRUb2tlbiA9IGp3dC5kZWNvZGUodG9rZW4sIHsgY29tcGxldGU6IHRydWUgfSk7XG4gIGlmICghZGVjb2RlZFRva2VuKSB7XG4gICAgdGhyb3cgbmV3IFBhcnNlLkVycm9yKFBhcnNlLkVycm9yLk9CSkVDVF9OT1RfRk9VTkQsIGBwcm92aWRlZCB0b2tlbiBkb2VzIG5vdCBkZWNvZGUgYXMgSldUYCk7XG4gIH1cblxuICByZXR1cm4gZGVjb2RlZFRva2VuLmhlYWRlcjtcbn07XG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgZ2V0SGVhZGVyRnJvbVRva2VuLFxufTtcbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNQSxHQUFHLEdBQUdDLE9BQU8sQ0FBQyxjQUFjLENBQUM7QUFDbkMsTUFBTUMsS0FBSyxHQUFHRCxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUNDLEtBQUs7QUFDekMsTUFBTUMsa0JBQWtCLEdBQUdDLEtBQUssSUFBSTtFQUNsQyxNQUFNQyxZQUFZLEdBQUdMLEdBQUcsQ0FBQ00sTUFBTSxDQUFDRixLQUFLLEVBQUU7SUFBRUcsUUFBUSxFQUFFO0VBQUssQ0FBQyxDQUFDO0VBQzFELElBQUksQ0FBQ0YsWUFBWSxFQUFFO0lBQ2pCLE1BQU0sSUFBSUgsS0FBSyxDQUFDTSxLQUFLLENBQUNOLEtBQUssQ0FBQ00sS0FBSyxDQUFDQyxnQkFBZ0IsRUFBRyx1Q0FBc0MsQ0FBQztFQUM5RjtFQUVBLE9BQU9KLFlBQVksQ0FBQ0ssTUFBTTtBQUM1QixDQUFDO0FBQ0RDLE1BQU0sQ0FBQ0MsT0FBTyxHQUFHO0VBQ2ZUO0FBQ0YsQ0FBQyJ9
|
|
@@ -6,10 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.CacheAdapter = void 0;
|
|
7
7
|
/*eslint no-unused-vars: "off"*/
|
|
8
8
|
/**
|
|
9
|
-
* @
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* @interface CacheAdapter
|
|
9
|
+
* @interface
|
|
10
|
+
* @memberof module:Adapters
|
|
13
11
|
*/
|
|
14
12
|
class CacheAdapter {
|
|
15
13
|
/**
|
|
@@ -39,4 +37,4 @@ class CacheAdapter {
|
|
|
39
37
|
clear() {}
|
|
40
38
|
}
|
|
41
39
|
exports.CacheAdapter = CacheAdapter;
|
|
42
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDYWNoZUFkYXB0ZXIiLCJnZXQiLCJrZXkiLCJwdXQiLCJ2YWx1ZSIsInR0bCIsImRlbCIsImNsZWFyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL0FkYXB0ZXJzL0NhY2hlL0NhY2hlQWRhcHRlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKmVzbGludCBuby11bnVzZWQtdmFyczogXCJvZmZcIiovXG4vKipcbiAqIEBpbnRlcmZhY2VcbiAqIEBtZW1iZXJvZiBtb2R1bGU6QWRhcHRlcnNcbiAqL1xuZXhwb3J0IGNsYXNzIENhY2hlQWRhcHRlciB7XG4gIC8qKlxuICAgKiBHZXQgYSB2YWx1ZSBpbiB0aGUgY2FjaGVcbiAgICogQHBhcmFtIHtTdHJpbmd9IGtleSBDYWNoZSBrZXkgdG8gZ2V0XG4gICAqIEByZXR1cm4ge1Byb21pc2V9IHRoYXQgd2lsbCBldmVudHVhbGx5IHJlc29sdmUgdG8gdGhlIHZhbHVlIGluIHRoZSBjYWNoZS5cbiAgICovXG4gIGdldChrZXkpIHt9XG5cbiAgLyoqXG4gICAqIFNldCBhIHZhbHVlIGluIHRoZSBjYWNoZVxuICAgKiBAcGFyYW0ge1N0cmluZ30ga2V5IENhY2hlIGtleSB0byBzZXRcbiAgICogQHBhcmFtIHtTdHJpbmd9IHZhbHVlIFZhbHVlIHRvIHNldCB0aGUga2V5XG4gICAqIEBwYXJhbSB7U3RyaW5nfSB0dGwgT3B0aW9uYWwgVFRMXG4gICAqL1xuICBwdXQoa2V5LCB2YWx1ZSwgdHRsKSB7fVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgYSB2YWx1ZSBmcm9tIHRoZSBjYWNoZS5cbiAgICogQHBhcmFtIHtTdHJpbmd9IGtleSBDYWNoZSBrZXkgdG8gcmVtb3ZlXG4gICAqL1xuICBkZWwoa2V5KSB7fVxuXG4gIC8qKlxuICAgKiBFbXB0eSBhIGNhY2hlXG4gICAqL1xuICBjbGVhcigpIHt9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxNQUFNQSxZQUFZLENBQUM7RUFDeEI7QUFDRjtBQUNBO0FBQ0E7QUFDQTtFQUNFQyxHQUFHLENBQUNDLEdBQUcsRUFBRSxDQUFDOztFQUVWO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNFQyxHQUFHLENBQUNELEdBQUcsRUFBRUUsS0FBSyxFQUFFQyxHQUFHLEVBQUUsQ0FBQzs7RUFFdEI7QUFDRjtBQUNBO0FBQ0E7RUFDRUMsR0FBRyxDQUFDSixHQUFHLEVBQUUsQ0FBQzs7RUFFVjtBQUNGO0FBQ0E7RUFDRUssS0FBSyxHQUFHLENBQUM7QUFDWDtBQUFDIn0=
|
|
@@ -6,10 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = exports.MailAdapter = void 0;
|
|
7
7
|
/*eslint no-unused-vars: "off"*/
|
|
8
8
|
/**
|
|
9
|
-
* @
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* @interface MailAdapter
|
|
9
|
+
* @interface
|
|
10
|
+
* @memberof module:Adapters
|
|
13
11
|
* Mail Adapter prototype
|
|
14
12
|
* A MailAdapter should implement at least sendMail()
|
|
15
13
|
*/
|
|
@@ -32,4 +30,4 @@ class MailAdapter {
|
|
|
32
30
|
exports.MailAdapter = MailAdapter;
|
|
33
31
|
var _default = MailAdapter;
|
|
34
32
|
exports.default = _default;
|
|
35
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNYWlsQWRhcHRlciIsInNlbmRNYWlsIiwib3B0aW9ucyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BZGFwdGVycy9FbWFpbC9NYWlsQWRhcHRlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKmVzbGludCBuby11bnVzZWQtdmFyczogXCJvZmZcIiovXG4vKipcbiAqIEBpbnRlcmZhY2VcbiAqIEBtZW1iZXJvZiBtb2R1bGU6QWRhcHRlcnNcbiAqIE1haWwgQWRhcHRlciBwcm90b3R5cGVcbiAqIEEgTWFpbEFkYXB0ZXIgc2hvdWxkIGltcGxlbWVudCBhdCBsZWFzdCBzZW5kTWFpbCgpXG4gKi9cbmV4cG9ydCBjbGFzcyBNYWlsQWRhcHRlciB7XG4gIC8qKlxuICAgKiBBIG1ldGhvZCBmb3Igc2VuZGluZyBtYWlsXG4gICAqIEBwYXJhbSBvcHRpb25zIHdvdWxkIGhhdmUgdGhlIHBhcmFtZXRlcnNcbiAgICogLSB0bzogdGhlIHJlY2lwaWVudFxuICAgKiAtIHRleHQ6IHRoZSByYXcgdGV4dCBvZiB0aGUgbWVzc2FnZVxuICAgKiAtIHN1YmplY3Q6IHRoZSBzdWJqZWN0IG9mIHRoZSBlbWFpbFxuICAgKi9cbiAgc2VuZE1haWwob3B0aW9ucykge31cblxuICAvKiBZb3UgY2FuIGltcGxlbWVudCB0aG9zZSBtZXRob2RzIGlmIHlvdSB3YW50XG4gICAqIHRvIHByb3ZpZGUgSFRNTCB0ZW1wbGF0ZXMgZXRjLi4uXG4gICAqL1xuICAvLyBzZW5kVmVyaWZpY2F0aW9uRW1haWwoeyBsaW5rLCBhcHBOYW1lLCB1c2VyIH0pIHt9XG4gIC8vIHNlbmRQYXNzd29yZFJlc2V0RW1haWwoeyBsaW5rLCBhcHBOYW1lLCB1c2VyIH0pIHt9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1haWxBZGFwdGVyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNPLE1BQU1BLFdBQVcsQ0FBQztFQUN2QjtBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNFQyxRQUFRLENBQUNDLE9BQU8sRUFBRSxDQUFDOztFQUVuQjtBQUNGO0FBQ0E7RUFDRTtFQUNBO0FBQ0Y7QUFBQztBQUFBLGVBRWNGLFdBQVc7QUFBQSJ9
|