@ditojs/server 0.270.0 → 0.273.0
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/app/Application.js +59 -22
- package/lib/app/SessionStore.js +3 -1
- package/lib/app/Validator.js +16 -2
- package/lib/app/index.js +7 -1
- package/lib/cli/console.js +11 -1
- package/lib/cli/db/createMigration.js +13 -1
- package/lib/cli/db/index.js +7 -1
- package/lib/cli/db/listAssetConfig.js +4 -2
- package/lib/cli/db/seed.js +10 -2
- package/lib/cli/index.js +6 -2
- package/lib/controllers/AdminController.js +18 -6
- package/lib/controllers/CollectionController.js +15 -1
- package/lib/controllers/Controller.js +25 -1
- package/lib/controllers/ControllerAction.js +18 -6
- package/lib/controllers/RelationController.js +7 -1
- package/lib/controllers/UserController.js +15 -1
- package/lib/controllers/index.js +7 -1
- package/lib/decorators/index.js +7 -1
- package/lib/decorators/parameters.js +4 -2
- package/lib/decorators/returns.js +4 -2
- package/lib/errors/DatabaseError.js +5 -19
- package/lib/errors/ResponseError.js +4 -14
- package/lib/errors/index.js +7 -1
- package/lib/graph/DitoGraphProcessor.js +5 -1
- package/lib/graph/expression.js +5 -1
- package/lib/graph/graph.js +18 -2
- package/lib/graph/index.js +7 -1
- package/lib/index.js +7 -1
- package/lib/lib/index.js +7 -1
- package/lib/middleware/findRoute.js +7 -1
- package/lib/middleware/index.js +7 -1
- package/lib/mixins/AssetMixin.js +4 -4
- package/lib/mixins/SessionMixin.js +4 -4
- package/lib/mixins/TimeStampedMixin.js +4 -4
- package/lib/mixins/UserMixin.js +10 -4
- package/lib/mixins/index.js +7 -1
- package/lib/models/Model.js +41 -22
- package/lib/models/definitions/filters.js +9 -1
- package/lib/models/definitions/properties.js +7 -1
- package/lib/models/definitions/scopes.js +9 -1
- package/lib/models/index.js +7 -1
- package/lib/query/QueryBuilder.js +11 -1
- package/lib/query/QueryFilters.js +11 -1
- package/lib/query/index.js +7 -1
- package/lib/schema/formats/index.js +7 -1
- package/lib/schema/index.js +10 -2
- package/lib/schema/keywords/index.js +7 -1
- package/lib/schema/properties.js +11 -1
- package/lib/schema/relations.js +18 -4
- package/lib/services/index.js +7 -1
- package/lib/storage/DiskStorage.js +7 -1
- package/lib/storage/Storage.js +5 -1
- package/lib/storage/index.js +7 -1
- package/lib/utils/emitter.js +5 -1
- package/lib/utils/index.js +15 -1
- package/lib/utils/json.js +9 -0
- package/lib/utils/object.js +9 -3
- package/package.json +29 -29
- package/src/app/Application.js +28 -5
- package/src/app/Validator.js +2 -1
- package/src/cli/db/listAssetConfig.js +3 -1
- package/src/controllers/AdminController.js +3 -2
- package/src/controllers/ControllerAction.js +7 -5
- package/src/decorators/parameters.js +2 -2
- package/src/decorators/returns.js +2 -2
- package/src/errors/DatabaseError.js +2 -23
- package/src/errors/ResponseError.js +1 -8
- package/src/models/Model.js +13 -8
- package/src/utils/index.js +1 -0
- package/src/utils/json.js +3 -0
|
@@ -3,6 +3,16 @@
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports.default = void 0;
|
|
5
5
|
|
|
6
|
+
require("core-js/modules/esnext.async-iterator.find.js");
|
|
7
|
+
|
|
8
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
|
9
|
+
|
|
10
|
+
require("core-js/modules/esnext.iterator.find.js");
|
|
11
|
+
|
|
12
|
+
require("core-js/modules/esnext.async-iterator.map.js");
|
|
13
|
+
|
|
14
|
+
require("core-js/modules/esnext.iterator.map.js");
|
|
15
|
+
|
|
6
16
|
var _utils = require("@ditojs/utils");
|
|
7
17
|
|
|
8
18
|
class ControllerAction {
|
|
@@ -148,8 +158,9 @@ class ControllerAction {
|
|
|
148
158
|
if (errors.length > 0) {
|
|
149
159
|
throw this.createValidationError({
|
|
150
160
|
type: 'ParameterValidation',
|
|
151
|
-
message:
|
|
152
|
-
errors
|
|
161
|
+
message: 'The provided action parameters are not valid',
|
|
162
|
+
errors,
|
|
163
|
+
json: getData()
|
|
153
164
|
});
|
|
154
165
|
}
|
|
155
166
|
}
|
|
@@ -169,8 +180,9 @@ class ControllerAction {
|
|
|
169
180
|
} catch (error) {
|
|
170
181
|
throw this.createValidationError({
|
|
171
182
|
type: 'ResultValidation',
|
|
172
|
-
message:
|
|
173
|
-
errors: error.errors
|
|
183
|
+
message: 'The returned action result is not valid',
|
|
184
|
+
errors: error.errors,
|
|
185
|
+
json: getResult()
|
|
174
186
|
});
|
|
175
187
|
}
|
|
176
188
|
}
|
|
@@ -215,7 +227,7 @@ class ControllerAction {
|
|
|
215
227
|
}
|
|
216
228
|
|
|
217
229
|
coerceValue(type, value, modelOptions) {
|
|
218
|
-
if (['date', 'datetime', 'timestamp'].includes(type)) {
|
|
230
|
+
if (value && ['date', 'datetime', 'timestamp'].includes(type)) {
|
|
219
231
|
value = new Date(value);
|
|
220
232
|
} else {
|
|
221
233
|
const objectType = (0, _utils.asArray)(type).find(type => type === 'object' || type in this.app.models);
|
|
@@ -261,4 +273,4 @@ class ControllerAction {
|
|
|
261
273
|
}
|
|
262
274
|
|
|
263
275
|
exports.default = ControllerAction;
|
|
264
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cm9sbGVycy9Db250cm9sbGVyQWN0aW9uLmpzIl0sIm5hbWVzIjpbIkNvbnRyb2xsZXJBY3Rpb24iLCJjb25zdHJ1Y3RvciIsImNvbnRyb2xsZXIiLCJoYW5kbGVyIiwidHlwZSIsIm5hbWUiLCJ2ZXJiIiwicGF0aCIsImF1dGhvcml6ZSIsImlkZW50aWZpZXIiLCJ0cmFuc2FjdGVkIiwiY29yZSIsImdyYXBoIiwiYXNzZXRzIiwiYXV0aG9yaXphdGlvbiIsInByb2Nlc3NBdXRob3JpemUiLCJhcHAiLCJwYXJhbXNOYW1lIiwiaW5jbHVkZXMiLCJwYXJhbWV0ZXJzIiwicmV0dXJucyIsIm9wdGlvbnMiLCJjb21waWxlUGFyYW1ldGVyc1ZhbGlkYXRvciIsImFzeW5jIiwiZGF0YU5hbWUiLCJ1c2VJbnN0YW5jZU9mIiwiZ2V0UGFyYW1zIiwiY3R4IiwiZnJvbSIsInZhbHVlIiwicGFyYW1zIiwicmVxdWVzdCIsImlzTnVsbCIsImhlYWRlcnMiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwiY2FsbEFjdGlvbiIsInZhbGlkYXRlUGFyYW1ldGVycyIsImFyZ3MiLCJtZW1iZXIiLCJjb2xsZWN0QXJndW1lbnRzIiwiaGFuZGxlQXV0aG9yaXphdGlvbiIsImVtaXRIb29rIiwicmVzdWx0IiwiY2FsbEhhbmRsZXIiLCJ2YWxpZGF0ZVJlc3VsdCIsImNhbGwiLCJjcmVhdGVWYWxpZGF0aW9uRXJyb3IiLCJ2YWxpZGF0ZSIsImRhdGEiLCJ1bndyYXBSb290IiwiZXJyb3JzIiwicm9vdCIsImxpc3QiLCJ3cmFwUm9vdCIsInBhcmFtTmFtZSIsImNvZXJjZWQiLCJjb2VyY2VWYWx1ZSIsInNraXBWYWxpZGF0aW9uIiwiZXJyIiwicHVzaCIsImRhdGFQYXRoIiwia2V5d29yZCIsIm1lc3NhZ2UiLCJ0b1N0cmluZyIsImdldERhdGEiLCJlcnJvciIsIkpTT04iLCJzdHJpbmdpZnkiLCJyZXR1cm5zTmFtZSIsImdldFJlc3VsdCIsImFzT2JqZWN0IiwiYWRkQXJndW1lbnQiLCJwYXJhbSIsImdldE1lbWJlciIsIm1vZGVsT3B0aW9ucyIsIkRhdGUiLCJvYmplY3RUeXBlIiwiZmluZCIsIm1vZGVscyIsInRlc3QiLCJwYXJzZSIsImZyb21FbnRyaWVzIiwic3BsaXQiLCJtYXAiLCJlbnRyeSIsImtleSIsInZhbCIsIm1vZGVsQ2xhc3MiLCJmcm9tSnNvbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7QUFFZSxNQUFNQSxnQkFBTixDQUF1QjtBQUNwQ0MsRUFBQUEsV0FBVyxDQUFDQyxVQUFELEVBQWFDLE9BQWIsRUFBc0JDLElBQXRCLEVBQTRCQyxJQUE1QixFQUFrQ0MsSUFBbEMsRUFBd0NDLElBQXhDLEVBQThDQyxTQUE5QyxFQUF5RDtBQUFBOztBQUNsRSxTQUFLTixVQUFMLEdBQWtCQSxVQUFsQjtBQUNBLFNBQUtDLE9BQUwsR0FBZUEsT0FBZjtBQUNBLFNBQUtDLElBQUwsR0FBWUEsSUFBWjtBQUNBLFNBQUtDLElBQUwsR0FBWUEsSUFBWjtBQUNBLFNBQUtJLFVBQUwsR0FBbUIsR0FBRUwsSUFBSyxJQUFHQyxJQUFLLEVBQWxDO0FBR0EsU0FBS0MsSUFBTCxHQUFZSCxPQUFPLENBQUNHLElBQVIsSUFBZ0JBLElBQTVCO0FBRUEsU0FBS0MsSUFBTCxvQkFBWUosT0FBTyxDQUFDSSxJQUFwQiw0QkFBNEJBLElBQTVCO0FBQ0EsU0FBS0MsU0FBTCxHQUFpQkwsT0FBTyxDQUFDSyxTQUFSLElBQXFCQSxTQUF0QztBQUNBLFNBQUtFLFVBQUwsR0FBa0IsQ0FBQyxFQUNqQlAsT0FBTyxDQUFDTyxVQUFSLElBQ0FSLFVBQVUsQ0FBQ1EsVUFEWCxJQUlBUCxPQUFPLENBQUNRLElBQVIsSUFBZ0JMLElBQUksS0FBSyxLQUF6QixLQUFtQ0osVUFBVSxDQUFDVSxLQUFYLElBQW9CVixVQUFVLENBQUNXLE1BQWxFLENBTGlCLENBQW5CO0FBT0EsU0FBS0MsYUFBTCxHQUFxQlosVUFBVSxDQUFDYSxnQkFBWCxDQUE0QixLQUFLUCxTQUFqQyxDQUFyQjtBQUNB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SyxHQUFHdUMsSUFBSSxDQUFDYyxLQUFMLENBQVdyRCxLQUFYLENBQVI7QUFDRDtBQUNGOztBQUNELFlBQUlpRCxVQUFVLEtBQUssUUFBZixJQUEyQixxQkFBU2pELEtBQVQsQ0FBL0IsRUFBZ0Q7QUFFOUMsZ0JBQU00RCxVQUFVLEdBQUcsS0FBS3pFLEdBQUwsQ0FBU2dFLE1BQVQsQ0FBZ0JGLFVBQWhCLENBQW5COztBQUNBLGNBQUlXLFVBQVUsSUFBSSxFQUFFNUQsS0FBSyxZQUFZNEQsVUFBbkIsQ0FBbEIsRUFBa0Q7QUFDaEQ1RCxZQUFBQSxLQUFLLEdBQUc0RCxVQUFVLENBQUNDLFFBQVgsQ0FBb0I3RCxLQUFwQixFQUEyQitDLFlBQTNCLENBQVI7QUFDRDtBQUNGO0FBQ0Y7QUFDRjs7QUFDRCxXQUFPL0MsS0FBUDtBQUNEOztBQUVjLFFBQVQ4QyxTQUFTLEdBQW1CO0FBR2hDLFdBQU8sSUFBUDtBQUNEOztBQXpSbUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1N0cmluZywgaXNPYmplY3QsIGFzQXJyYXksIGNsb25lIH0gZnJvbSAnQGRpdG9qcy91dGlscydcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ29udHJvbGxlckFjdGlvbiB7XG4gIGNvbnN0cnVjdG9yKGNvbnRyb2xsZXIsIGhhbmRsZXIsIHR5cGUsIG5hbWUsIHZlcmIsIHBhdGgsIGF1dGhvcml6ZSkge1xuICAgIHRoaXMuY29udHJvbGxlciA9IGNvbnRyb2xsZXJcbiAgICB0aGlzLmhhbmRsZXIgPSBoYW5kbGVyXG4gICAgdGhpcy50eXBlID0gdHlwZVxuICAgIHRoaXMubmFtZSA9IG5hbWVcbiAgICB0aGlzLmlkZW50aWZpZXIgPSBgJHt0eXBlfToke25hbWV9YFxuICAgIC8vIEFsbG93IGRlY29yYXRvcnMgb24gYWN0aW9ucyB0byBvdmVycmlkZSB0aGUgcHJlZGV0ZXJtaW5lZCBkZWZhdWx0cyBmb3JcbiAgICAvLyBgdmVyYmAsIGBwYXRoYCBhbmQgYGF1dGhvcml6ZWA6XG4gICAgdGhpcy52ZXJiID0gaGFuZGxlci52ZXJiIHx8IHZlcmJcbiAgICAvLyBVc2UgPz8gaW5zdGVhZCBvZiB8fCB0byBhbGxvdyAnJyB0byBvdmVycmlkZSB0aGUgcGF0aC5cbiAgICB0aGlzLnBhdGggPSBoYW5kbGVyLnBhdGggPz8gcGF0aFxuICAgIHRoaXMuYXV0aG9yaXplID0gaGFuZGxlci5hdXRob3JpemUgfHwgYXV0aG9yaXplXG4gICAgdGhpcy50cmFuc2FjdGVkID0gISEoXG4gICAgICBoYW5kbGVyLnRyYW5zYWN0ZWQgfHxcbiAgICAgIGNvbnRyb2xsZXIudHJhbnNhY3RlZCB8fFxuICAgICAgLy8gQ29yZSBncmFwaCBhbmQgYXNzZXRzIG9wZXJhdGlvbnMgYXJlIGFsd2F5cyB0cmFuc2FjdGVkLCB1bmxlc3MgdGhlIHZlcmJcbiAgICAgIC8vIGlzICdnZXQnOlxuICAgICAgaGFuZGxlci5jb3JlICYmIHZlcmIgIT09ICdnZXQnICYmIChjb250cm9sbGVyLmdyYXBoIHx8IGNvbnRyb2xsZXIuYXNzZXRzKVxuICAgIClcbiAgICB0aGlzLmF1dGhvcml6YXRpb24gPSBjb250cm9sbGVyLnByb2Nlc3NBdXRob3JpemUodGhpcy5hdXRob3JpemUpXG4gICAgdGhpcy5hcHAgPSBjb250cm9sbGVyLmFwcFxuICAgIHRoaXMucGFyYW1zTmFtZSA9IFsncG9zdCcsICdwdXQnLCAncGF0Y2gnXS5pbmNsdWRlcyh0aGlzLnZlcmIpXG4gICAgICA/ICdib2R5J1xuICAgICAgOiAncXVlcnknXG4gICAgY29uc3QgeyBwYXJhbWV0ZXJzLCByZXR1cm5zLCBvcHRpb25zID0ge30gfSA9IHRoaXMuaGFuZGxlclxuICAgIHRoaXMucGFyYW1ldGVycyA9IHRoaXMuYXBwLmNvbXBpbGVQYXJhbWV0ZXJzVmFsaWRhdG9yKHBhcmFtZXRlcnMsIHtcbiAgICAgIGFzeW5jOiB0cnVlLFxuICAgICAgLi4ub3B0aW9ucy5wYXJhbWV0ZXJzLCAvLyBTZWUgQHBhcmFtZXRlcnMoKSBkZWNvcmF0b3JcbiAgICAgIGRhdGFOYW1lOiB0aGlzLnBhcmFtc05hbWVcbiAgICB9KVxuICAgIHRoaXMucmV0dXJucyA9IHRoaXMuYXBwLmNvbXBpbGVQYXJhbWV0ZXJzVmFsaWRhdG9yKFxuICAgICAgcmV0dXJucyA/IFtyZXR1cm5zXSA6IFtdLFxuICAgICAge1xuICAgICAgICBhc3luYzogdHJ1ZSxcbiAgICAgICAgLy8gVXNlIGluc3RhbmNlb2YgY2hlY2tzIGluc3RlYWQgb2YgJHJlZiB0byBjaGVjayByZXR1cm5lZCB2YWx1ZXMuXG4gICAgICAgIC8vIFRPRE86IFRoYXQgZG9lc24ndCBndWFyYW50ZWUgdGhlIHZhbGlkaXR5IHRob3VnaC4uLlxuICAgICAgICAvLyBUaGlzIHNob3VsZCBhbHdheXMgYmUgJHJlZiBjaGVja3MsIEkgdGhpbms/XG4gICAgICAgIHVzZUluc3RhbmNlT2Y6IHRydWUsXG4gICAgICAgIC4uLm9wdGlvbnMucmV0dXJucywgLy8gU2VlIEByZXR1cm5zKCkgZGVjb3JhdG9yXG4gICAgICAgIGRhdGFOYW1lOiAncmV0dXJucydcbiAgICAgIH1cbiAgICApXG4gIH1cblxuICAvLyBQb3NzaWJsZSB2YWx1ZXMgZm9yIGBmcm9tYCBhcmU6XG4gIC8vIC0gJ3BhdGgnOiBVc2UgYGN0eC5wYXJhbXNgIHdoaWNoIGlzIG1hcHBlZCB0byB0aGUgcm91dGUgLyBwYXRoXG4gIC8vIC0gJ3F1ZXJ5JzogVXNlIGBjdHgucmVxdWVzdC5xdWVyeWAsIHJlZ2FyZGxlc3Mgb2YgdGhlIGFjdGlvbidzIHZlcmIuXG4gIC8vIC0gJ2JvZHknOiBVc2UgYGN0eC5yZXF1ZXN0LmJvZHlgLCByZWdhcmRsZXNzIG9mIHRoZSBhY3Rpb24ncyB2ZXJiLlxuICBnZXRQYXJhbXMoY3R4LCBmcm9tID0gdGhpcy5wYXJhbXNOYW1lKSB7XG4gICAgY29uc3QgdmFsdWUgPSBmcm9tID09PSAncGF0aCcgPyBjdHgucGFyYW1zIDogY3R4LnJlcXVlc3RbZnJvbV1cbiAgICAvLyBrb2EtYm9keXBhcnNlciBhbHdheXMgc2V0cyBhbiBvYmplY3QsIGV2ZW4gd2hlbiB0aGVyZSBpcyBubyBib2R5LlxuICAgIC8vIERldGVjdCB0aGlzIGhlcmUgYW5kIHJldHVybiBudWxsIGluc3RlYWQuXG4gICAgY29uc3QgaXNOdWxsID0gKFxuICAgICAgZnJvbSA9PT0gJ2JvZHknICYmXG4gICAgICBjdHgucmVxdWVzdC5oZWFkZXJzWydjb250ZW50LWxlbmd0aCddID09PSAnMCcgJiZcbiAgICAgIE9iamVjdC5rZXlzKHZhbHVlKS5sZW5ndGggPT09IDBcbiAgICApXG4gICAgcmV0dXJuIGlzTnVsbCA/IG51bGwgOiB2YWx1ZVxuICB9XG5cbiAgYXN5bmMgY2FsbEFjdGlvbihjdHgpIHtcbiAgICBjb25zdCBwYXJhbXMgPSBhd2FpdCB0aGlzLnZhbGlkYXRlUGFyYW1ldGVycyhjdHgpXG4gICAgY29uc3QgeyBhcmdzLCBtZW1iZXIgfSA9IGF3YWl0IHRoaXMuY29sbGVjdEFyZ3VtZW50cyhjdHgsIHBhcmFtcylcbiAgICBhd2FpdCB0aGlzLmNvbnRyb2xsZXIuaGFuZGxlQXV0aG9yaXphdGlvbih0aGlzLmF1dGhvcml6YXRpb24sIGN0eCwgbWVtYmVyKVxuICAgIGNvbnN0IHsgaWRlbnRpZmllciB9ID0gdGhpc1xuICAgIGF3YWl0IHRoaXMuY29udHJvbGxlci5lbWl0SG9vayhgYmVmb3JlOiR7aWRlbnRpZmllcn1gLCBmYWxzZSwgY3R4LCAuLi5hcmdzKVxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuY2FsbEhhbmRsZXIoY3R4LCAuLi5hcmdzKVxuICAgIHJldHVybiB0aGlzLnZhbGlkYXRlUmVzdWx0KFxuICAgICAgYXdhaXQgdGhpcy5jb250cm9sbGVyLmVtaXRIb29rKGBhZnRlcjoke2lkZW50aWZpZXJ9YCwgdHJ1ZSwgY3R4LCByZXN1bHQpXG4gICAgKVxuICB9XG5cbiAgYXN5bmMgY2FsbEhhbmRsZXIoY3R4LCAuLi5hcmdzKSB7XG4gICAgcmV0dXJuIHRoaXMuaGFuZGxlci5jYWxsKHRoaXMuY29udHJvbGxlciwgY3R4LCAuLi5hcmdzKVxuICB9XG5cbiAgY3JlYXRlVmFsaWRhdGlvbkVycm9yKG9wdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5hcHAuY3JlYXRlVmFsaWRhdGlvbkVycm9yKG9wdGlvbnMpXG4gIH1cblxuICBhc3luYyB2YWxpZGF0ZVBhcmFtZXRlcnMoY3R4KSB7XG4gICAgaWYgKCF0aGlzLnBhcmFtZXRlcnMudmFsaWRhdGUpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuICAgIC8vIFNpbmNlIHZhbGlkYXRpb24gYWxzbyBwZXJmb3JtcyBjb2VyY2lvbiwgY3JlYXRlIGEgY2xvbmUgb2YgdGhlIHBhcmFtc1xuICAgIC8vIHNvIHRoYXQgdGhpcyBkb2Vzbid0IG1vZGlmeSB0aGUgZGF0YSBvbiBgY3R4YC5cbiAgICAvLyBOT1RFOiBUaGUgZGF0YSBjYW4gYmUgZWl0aGVyIGFuIG9iamVjdCBvciBhbiBhcnJheS5cbiAgICBjb25zdCBkYXRhID0gY2xvbmUodGhpcy5nZXRQYXJhbXMoY3R4KSlcbiAgICBsZXQgcGFyYW1zID0gZGF0YSB8fCB7fVxuICAgIGNvbnN0IHsgZGF0YU5hbWUgfSA9IHRoaXMucGFyYW1ldGVyc1xuICAgIGxldCB1bndyYXBSb290ID0gZmFsc2VcbiAgICBjb25zdCBlcnJvcnMgPSBbXVxuICAgIGZvciAoY29uc3Qge1xuICAgICAgbmFtZSwgLy8gU3RyaW5nOiBQcm9wZXJ0eSBuYW1lIHRvIGZldGNoIGZyb20gZGF0YS4gT3ZlcnJpZGFibGUgYnkgYHJvb3RgXG4gICAgICB0eXBlLCAvLyBTdHJpbmc6IFdoYXQgdHlwZSBzaG91bGQgdGhpcyB2YWxpZGF0ZWQgYWdhaW5zdCAvIGNvZXJjZWQgdG8uXG4gICAgICBmcm9tLCAvLyBTdHJpbmc6IEFsbG93IHBhcmFtZXRlcnMgdG8gYmUgJ2JvcnJvd2VkJyBmcm9tIG90aGVyIG9iamVjdHMuXG4gICAgICByb290LCAvLyBCb29sZWFuOiBVc2UgZnVsbCByb290IG9iamVjdCwgaW5zdGVhZCBvZiBkYXRhIGF0IGdpdmVuIHByb3BlcnR5LlxuICAgICAgbWVtYmVyIC8vIEJvb2xlYW46IEZldGNoIG1lbWJlciBpbnN0YW5jZSBpbnN0ZWQgb2YgZGF0YSBmcm9tIHJlcXVlc3QuXG4gICAgfSBvZiB0aGlzLnBhcmFtZXRlcnMubGlzdCkge1xuICAgICAgLy8gRG9uJ3QgdmFsaWRhdGUgbWVtYmVyIHBhcmFtZXRlcnMgYXMgdGhleSBnZXQgcmVzb2x2ZWQgc2VwYXJhdGVseSBhZnRlci5cbiAgICAgIGlmIChtZW1iZXIpIGNvbnRpbnVlXG4gICAgICBsZXQgd3JhcFJvb3QgPSByb290XG4gICAgICBsZXQgcGFyYW1OYW1lID0gbmFtZVxuICAgICAgLy8gSWYgbm8gbmFtZSBpcyBwcm92aWRlZCwgd3JhcCB0aGUgZnVsbCByb290IG9iamVjdCBhcyB2YWx1ZSBhbmQgdW53cmFwXG4gICAgICAvLyBhdCB0aGUgZW5kLCBzZWUgYHVud3JhcFJvb3RgLlxuICAgICAgaWYgKCFwYXJhbU5hbWUpIHtcbiAgICAgICAgcGFyYW1OYW1lID0gZGF0YU5hbWVcbiAgICAgICAgd3JhcFJvb3QgPSB0cnVlXG4gICAgICAgIHVud3JhcFJvb3QgPSB0cnVlXG4gICAgICB9XG4gICAgICBpZiAod3JhcFJvb3QpIHtcbiAgICAgICAgLy8gSWYgcm9vdCBpcyB0byBiZSB1c2VkLCByZXBsYWNlIGBwYXJhbXNgIHdpdGggYSBuZXcgb2JqZWN0IG9uIHdoaWNoXG4gICAgICAgIC8vIHRvIHNldCB0aGUgcm9vdCBvYmplY3QgdG8gdmFsaWRhdGUgdW5kZXIgYHBhcmFtZXRlcnMucGFyYW1OYW1lYFxuICAgICAgICBpZiAocGFyYW1zID09PSBkYXRhKSB7XG4gICAgICAgICAgcGFyYW1zID0ge31cbiAgICAgICAgfVxuICAgICAgICBwYXJhbXNbcGFyYW1OYW1lXSA9IGRhdGFcbiAgICAgIH1cbiAgICAgIGlmIChmcm9tKSB7XG4gICAgICAgIC8vIEFsbG93IHBhcmFtZXRlcnMgdG8gYmUgJ2JvcnJvd2VkJyBmcm9tIG90aGVyIG9iamVjdHMuXG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmdldFBhcmFtcyhjdHgsIGZyb20pXG4gICAgICAgIC8vIFNlZSBhYm92ZSBmb3IgYW4gZXhwbGFuYXRpb24gb2YgYGNsb25lKClgOlxuICAgICAgICBwYXJhbXNbcGFyYW1OYW1lXSA9IGNsb25lKHdyYXBSb290ID8gZGF0YSA6IGRhdGE/LltwYXJhbU5hbWVdKVxuICAgICAgfVxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBwYXJhbXNbcGFyYW1OYW1lXVxuICAgICAgICAvLyBgcGFyYW1ldGVycy52YWxpZGF0ZShwYXJhbXMpYCBjb2VyY2VzIGRhdGEgaW4gdGhlIHF1ZXJ5IHRvIHRoZVxuICAgICAgICAvLyByZXF1aXJlZCBmb3JtYXRzLCBhY2NvcmRpbmcgdG8gdGhlIHJ1bGVzIHNwZWNpZmllZCBoZXJlOlxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZXBvYmVyZXpraW4vYWp2L2Jsb2IvbWFzdGVyL0NPRVJDSU9OLm1kXG4gICAgICAgIC8vIENvZXJjaW9uIGlzbid0IGN1cnJlbnRseSBvZmZlcmVkIGZvciAnb2JqZWN0JyBhbmQgJ2RhdGUnIHR5cGVzLFxuICAgICAgICAvLyBzbyBoYW5kbGUgdGhlc2UgY2FzZXMgcHJpb3IgdG8gdGhlIGNhbGwgb2YgYHBhcmFtZXRlcnMudmFsaWRhdGUoKWA6XG4gICAgICAgIGNvbnN0IGNvZXJjZWQgPSB0aGlzLmNvZXJjZVZhbHVlKHR5cGUsIHZhbHVlLCB7XG4gICAgICAgICAgLy8gVGhlIG1vZGVsIHZhbGlkYXRpb24gaXMgaGFuZGxlZCBzZXBhcmF0ZWx5IHRocm91Z2ggYCRyZWZgLlxuICAgICAgICAgIHNraXBWYWxpZGF0aW9uOiB0cnVlXG4gICAgICAgIH0pXG4gICAgICAgIC8vIElmIGNvZXJjaW9uIGhhcHBlbmVkLCByZXBsYWNlIHZhbHVlIGluIHBhcmFtcyB3aXRoIGNvZXJjZWQgb25lOlxuICAgICAgICBpZiAoY29lcmNlZCAhPT0gdmFsdWUpIHtcbiAgICAgICAgICBwYXJhbXNbcGFyYW1OYW1lXSA9IGNvZXJjZWRcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIC8vIENvbnZlcnQgZXJyb3IgdG8gQWp2IHZhbGlkYXRpb24gZXJyb3IgZm9ybWF0OlxuICAgICAgICBlcnJvcnMucHVzaCh7XG4gICAgICAgICAgZGF0YVBhdGg6IGAuJHtwYXJhbU5hbWV9YCwgLy8gSmF2YVNjcmlwdCBwcm9wZXJ0eSBhY2Nlc3Mgbm90YXRpb25cbiAgICAgICAgICBrZXl3b3JkOiAndHlwZScsXG4gICAgICAgICAgbWVzc2FnZTogZXJyLm1lc3NhZ2UgfHwgZXJyLnRvU3RyaW5nKCksXG4gICAgICAgICAgcGFyYW1zOiB7IHR5cGUgfVxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGdldERhdGEgPSAoKSA9PiB1bndyYXBSb290ID8gcGFyYW1zW2RhdGFOYW1lXSA6IHBhcmFtc1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLnBhcmFtZXRlcnMudmFsaWRhdGUocGFyYW1zKVxuICAgICAgcmV0dXJuIGdldERhdGEoKVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoZXJyb3IuZXJyb3JzKSB7XG4gICAgICAgIGVycm9ycy5wdXNoKC4uLmVycm9yLmVycm9ycylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IGVycm9yXG4gICAgICB9XG4gICAgfVxuICAgIGlmIChlcnJvcnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhyb3cgdGhpcy5jcmVhdGVWYWxpZGF0aW9uRXJyb3Ioe1xuICAgICAgICB0eXBlOiAnUGFyYW1ldGVyVmFsaWRhdGlvbicsXG4gICAgICAgIG1lc3NhZ2U6IGBUaGUgcHJvdmlkZWQgZGF0YSBpcyBub3QgdmFsaWQ6ICR7SlNPTi5zdHJpbmdpZnkoZ2V0RGF0YSgpKX1gLFxuICAgICAgICBlcnJvcnNcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgdmFsaWRhdGVSZXN1bHQocmVzdWx0KSB7XG4gICAgaWYgKHRoaXMucmV0dXJucy52YWxpZGF0ZSkge1xuICAgICAgY29uc3QgcmV0dXJuc05hbWUgPSB0aGlzLmhhbmRsZXIucmV0dXJucy5uYW1lXG4gICAgICAvLyBVc2UgZGF0YU5hbWUgaWYgbm8gbmFtZSBpcyBnaXZlbiwgc2VlOlxuICAgICAgLy8gQXBwbGljYXRpb24uY29tcGlsZVBhcmFtZXRlcnNWYWxpZGF0b3IocmV0dXJucywgeyBkYXRhTmFtZSB9KVxuICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgW3JldHVybnNOYW1lIHx8IHRoaXMucmV0dXJucy5kYXRhTmFtZV06IHJlc3VsdFxuICAgICAgfVxuXG4gICAgICAvLyBJZiBhIG5hbWVkIHJlc3VsdCBpcyBkZWZpbmVkLCByZXR1cm4gdGhlIGRhdGEgd3JhcHBlZCxcbiAgICAgIC8vIG90aGVyd2lzZSByZXR1cm4gdGhlIG9yaWdpbmFsIHVud3JhcHBlZCByZXN1bHQgb2JqZWN0LlxuICAgICAgY29uc3QgZ2V0UmVzdWx0ID0gKCkgPT4gcmV0dXJuc05hbWUgPyBkYXRhIDogcmVzdWx0XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB0aGlzLnJldHVybnMudmFsaWRhdGUoZGF0YSlcbiAgICAgICAgcmV0dXJuIGdldFJlc3VsdCgpXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICB0aHJvdyB0aGlzLmNyZWF0ZVZhbGlkYXRpb25FcnJvcih7XG4gICAgICAgICAgdHlwZTogJ1Jlc3VsdFZhbGlkYXRpb24nLFxuICAgICAgICAgIG1lc3NhZ2U6IGBJbnZhbGlkIHJlc3VsdCBvZiBhY3Rpb246ICR7SlNPTi5zdHJpbmdpZnkoZ2V0UmVzdWx0KCkpfWAsXG4gICAgICAgICAgZXJyb3JzOiBlcnJvci5lcnJvcnNcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG5cbiAgYXN5bmMgY29sbGVjdEFyZ3VtZW50cyhjdHgsIHBhcmFtcykge1xuICAgIGNvbnN0IHsgbGlzdCwgYXNPYmplY3QgfSA9IHRoaXMucGFyYW1ldGVyc1xuXG4gICAgY29uc3QgYXJncyA9IGFzT2JqZWN0ID8gW3t9XSA6IFtdXG4gICAgY29uc3QgYWRkQXJndW1lbnQgPSAobmFtZSwgdmFsdWUpID0+IHtcbiAgICAgIGlmIChhc09iamVjdCkge1xuICAgICAgICBhcmdzWzBdW25hbWVdID0gdmFsdWVcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFyZ3MucHVzaCh2YWx1ZSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBsZXQgbWVtYmVyID0gbnVsbFxuICAgIC8vIElmIHdlIGhhdmUgcGFyYW1ldGVycywgYWRkIHRoZW0gdG8gdGhlIGFyZ3VtZW50cyBub3csXG4gICAgLy8gd2hpbGUgYWxzbyBrZWVwaW5nIHRyYWNrIG9mIGNvbnN1bWVkIHBhcmFtZXRlcnM6XG4gICAgZm9yIChjb25zdCBwYXJhbSBvZiBsaXN0KSB7XG4gICAgICBjb25zdCB7IG5hbWUgfSA9IHBhcmFtXG4gICAgICAvLyBIYW5kbGUgYHsgbWVtYmVyOiB0cnVlIH1gIHBhcmFtZXRlcnMgc2VwYXJhdGVseSwgYnkgZGVsZWdhdGluZyB0b1xuICAgICAgLy8gYGdldE1lbWJlcigpYCB0byByZXNvbHZlIHRvIHRoZSBnaXZlbiBtZW1iZXIuXG4gICAgICBpZiAocGFyYW0ubWVtYmVyKSB7XG4gICAgICAgIG1lbWJlciA9IGF3YWl0IHRoaXMuZ2V0TWVtYmVyKGN0eCwgcGFyYW0pXG4gICAgICAgIGFkZEFyZ3VtZW50KG5hbWUsIG1lbWJlcilcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIElmIG5vIG5hbWUgaXMgcHJvdmlkZWQsIHVzZSB0aGUgYm9keSBvYmplY3QgKHBhcmFtcylcbiAgICAgICAgYWRkQXJndW1lbnQobmFtZSwgbmFtZSA/IHBhcmFtc1tuYW1lXSA6IHBhcmFtcylcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHsgYXJncywgbWVtYmVyIH1cbiAgfVxuXG4gIGNvZXJjZVZhbHVlKHR5cGUsIHZhbHVlLCBtb2RlbE9wdGlvbnMpIHtcbiAgICAvLyBTZWUgaWYgcGFyYW0gbmVlZHMgYWRkaXRpb25hbCBjb2VyY2lvbjpcbiAgICBpZiAoWydkYXRlJywgJ2RhdGV0aW1lJywgJ3RpbWVzdGFtcCddLmluY2x1ZGVzKHR5cGUpKSB7XG4gICAgICB2YWx1ZSA9IG5ldyBEYXRlKHZhbHVlKVxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBTZWUgaWYgdGhlIGRlZmluZWQgdHlwZShzKSByZXF1aXJlIGNvZXJjaW9uIHRvIG9iamVjdHM6XG4gICAgICBjb25zdCBvYmplY3RUeXBlID0gYXNBcnJheSh0eXBlKS5maW5kKFxuICAgICAgICAvLyBDb2VyY2UgdG8gb2JqZWN0IGlmIHR5cGUgaXMgJ29iamVjdCcgb3IgYSBrbm93biBtb2RlbCBuYW1lLlxuICAgICAgICB0eXBlID0+IHR5cGUgPT09ICdvYmplY3QnIHx8IHR5cGUgaW4gdGhpcy5hcHAubW9kZWxzXG4gICAgICApXG4gICAgICBpZiAob2JqZWN0VHlwZSkge1xuICAgICAgICBpZiAodmFsdWUgJiYgaXNTdHJpbmcodmFsdWUpKSB7XG4gICAgICAgICAgaWYgKCEvXlxcey4qXFx9JC8udGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgIC8vIENvbnZlcnQgc2ltcGxpZmllZCBEaXRvIG9iamVjdCBub3RhdGlvbiB0byBKU09OLCBzdXBwb3J0aW5nOlxuICAgICAgICAgICAgLy8gLSBgXCJrZXkxXCI6WCwgXCJrZXkyXCI6WWAgKGN1cmx5IGJyYWNlcyBhcmUgYWRkZWQgYW5kIHBhcnNlZCB0aHJvdWdoXG4gICAgICAgICAgICAvLyAgIGBKU09OLnBhcnNlKClgKVxuICAgICAgICAgICAgLy8gLSBga2V5MTpYLGtleTI6WWAgKGEgc2ltcGxlIHBhcnNlciBpcyBhcHBsaWVkLCBzcGxpdHRpbmcgaW50b1xuICAgICAgICAgICAgLy8gICBlbnRyaWVzIGFuZCBrZXkvdmFsdWUgcGFpcnMsIHZhbHVzZSBhcmUgcGFyc2VkIHdpdGhcbiAgICAgICAgICAgIC8vICAgYEpTT04ucGFyc2UoKWAsIGZhbGxpbmcgYmFjayB0byBzdHJpbmcuXG4gICAgICAgICAgICBpZiAoL1wiLy50ZXN0KHZhbHVlKSkge1xuICAgICAgICAgICAgICAvLyBKdXN0IGFkZCB0aGUgY3VybHkgYnJhY2VzIGFuZCBwYXJzZSBhcyBKU09OXG4gICAgICAgICAgICAgIHZhbHVlID0gSlNPTi5wYXJzZShgeyR7dmFsdWV9fWApXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyBBIHNpbXBsZSB2ZXJzaW9uIG9mIG5hbWVkIGtleS92YWx1ZSBwYWlycywgdmFsdWVzIGNhbiBiZVxuICAgICAgICAgICAgICAvLyBzdHJpbmdzIG9yIG51bWJlcnMuXG4gICAgICAgICAgICAgIHZhbHVlID0gT2JqZWN0LmZyb21FbnRyaWVzKHZhbHVlLnNwbGl0KC9cXHMqLFxccyovZykubWFwKGVudHJ5ID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgW2tleSwgdmFsXSA9IGVudHJ5LnNwbGl0KC9cXHMqOlxccyovKVxuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAvLyBUcnkgcGFyc2luZyBiYXNpYyB0eXBlcywgYnV0IGZhbGwgYmFjayB0byB1bnF1b3RlZCBzdHJpbmcuXG4gICAgICAgICAgICAgICAgICB2YWwgPSBKU09OLnBhcnNlKHZhbClcbiAgICAgICAgICAgICAgICB9IGNhdGNoIHt9XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtrZXksIHZhbF1cbiAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHZhbHVlID0gSlNPTi5wYXJzZSh2YWx1ZSlcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9iamVjdFR5cGUgIT09ICdvYmplY3QnICYmIGlzT2JqZWN0KHZhbHVlKSkge1xuICAgICAgICAgIC8vIENvbnZlcnQgdGhlIFBvam8gdG8gdGhlIGRlc2lyZWQgRGl0byBtb2RlbDpcbiAgICAgICAgICBjb25zdCBtb2RlbENsYXNzID0gdGhpcy5hcHAubW9kZWxzW29iamVjdFR5cGVdXG4gICAgICAgICAgaWYgKG1vZGVsQ2xhc3MgJiYgISh2YWx1ZSBpbnN0YW5jZW9mIG1vZGVsQ2xhc3MpKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IG1vZGVsQ2xhc3MuZnJvbUpzb24odmFsdWUsIG1vZGVsT3B0aW9ucylcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlXG4gIH1cblxuICBhc3luYyBnZXRNZW1iZXIoLyogY3R4LCBwYXJhbSAqLykge1xuICAgIC8vIFRoaXMgaXMgb25seSBkZWZpbmVkIGluIGBNZW1iZXJBY3Rpb25gLCB3aGVyZSBpdCByZXNvbHZlcyB0byB0aGUgbWVtYmVyXG4gICAgLy8gcmVwcmVzZW50ZWQgYnkgdGhlIGdpdmVuIHJvdXRlLlxuICAgIHJldHVybiBudWxsXG4gIH1cbn1cbiJdfQ==
|
|
276
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cm9sbGVycy9Db250cm9sbGVyQWN0aW9uLmpzIl0sIm5hbWVzIjpbIkNvbnRyb2xsZXJBY3Rpb24iLCJjb25zdHJ1Y3RvciIsImNvbnRyb2xsZXIiLCJoYW5kbGVyIiwidHlwZSIsIm5hbWUiLCJ2ZXJiIiwicGF0aCIsImF1dGhvcml6ZSIsImlkZW50aWZpZXIiLCJ0cmFuc2FjdGVkIiwiY29yZSIsImdyYXBoIiwiYXNzZXRzIiwiYXV0aG9yaXphdGlvbiIsInByb2Nlc3NBdXRob3JpemUiLCJhcHAiLCJwYXJhbXNOYW1lIiwiaW5jbHVkZXMiLCJwYXJhbWV0ZXJzIiwicmV0dXJucyIsIm9wdGlvbnMiLCJjb21waWxlUGFyYW1ldGVyc1ZhbGlkYXRvciIsImFzeW5jIiwiZGF0YU5hbWUiLCJ1c2VJbnN0YW5jZU9mIiwiZ2V0UGFyYW1zIiwiY3R4IiwiZnJvbSIsInZhbHVlIiwicGFyYW1zIiwicmVxdWVzdCIsImlzTnVsbCIsImhlYWRlcnMiLCJPYmplY3QiLCJrZXlzIiwibGVuZ3RoIiwiY2FsbEFjdGlvbiIsInZhbGlkYXRlUGFyYW1ldGVycyIsImFyZ3MiLCJtZW1iZXIiLCJjb2xsZWN0QXJndW1lbnRzIiwiaGFuZGxlQXV0aG9yaXphdGlvbiIsImVtaXRIb29rIiwicmVzdWx0IiwiY2FsbEhhbmRsZXIiLCJ2YWxpZGF0ZVJlc3VsdCIsImNhbGwiLCJjcmVhdGVWYWxpZGF0aW9uRXJyb3IiLCJ2YWxpZGF0ZSIsImRhdGEiLCJ1bndyYXBSb290IiwiZXJyb3JzIiwicm9vdCIsImxpc3QiLCJ3cmFwUm9vdCIsInBhcmFtTmFtZSIsImNvZXJjZWQiLCJjb2VyY2VWYWx1ZSIsInNraXBWYWxpZGF0aW9uIiwiZXJyIiwicHVzaCIsImRhdGFQYXRoIiwia2V5d29yZCIsIm1lc3NhZ2UiLCJ0b1N0cmluZyIsImdldERhdGEiLCJlcnJvciIsImpzb24iLCJyZXR1cm5zTmFtZSIsImdldFJlc3VsdCIsImFzT2JqZWN0IiwiYWRkQXJndW1lbnQiLCJwYXJhbSIsImdldE1lbWJlciIsIm1vZGVsT3B0aW9ucyIsIkRhdGUiLCJvYmplY3RUeXBlIiwiZmluZCIsIm1vZGVscyIsInRlc3QiLCJKU09OIiwicGFyc2UiLCJmcm9tRW50cmllcyIsInNwbGl0IiwibWFwIiwiZW50cnkiLCJrZXkiLCJ2YWwiLCJtb2RlbENsYXNzIiwiZnJvbUpzb24iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUVlLE1BQU1BLGdCQUFOLENBQXVCO0FBQ3BDQyxFQUFBQSxXQUFXLENBQUNDLFVBQUQsRUFBYUMsT0FBYixFQUFzQkMsSUFBdEIsRUFBNEJDLElBQTVCLEVBQWtDQyxJQUFsQyxFQUF3Q0MsSUFBeEMsRUFBOENDLFNBQTlDLEVBQXlEO0FBQUE7O0FBQ2xFLFNBQUtOLFVBQUwsR0FBa0JBLFVBQWxCO0FBQ0EsU0FBS0MsT0FBTCxHQUFlQSxPQUFmO0FBQ0EsU0FBS0MsSUFBTCxHQUFZQSxJQUFaO0FBQ0EsU0FBS0MsSUFBTCxHQUFZQSxJQUFaO0FBQ0EsU0FBS0ksVUFBTCxHQUFtQixHQUFFTCxJQUFLLElBQUdDLElBQUssRUFBbEM7QUFHQSxTQUFLQyxJQUFMLEdBQVlILE9BQU8sQ0FBQ0csSUFBUixJQUFnQkEsSUFBNUI7QUFFQSxTQUFLQyxJQUFMLG9CQUFZSixPQUFPLENBQUNJLElBQXBCLDRCQUE0QkEsSUFBNUI7QUFDQSxTQUFLQyxTQUFMLEdBQWlCTCxPQUFPLENBQUNLLFNBQVIsSUFBcUJBLFNBQXRDO0FBQ0EsU0FBS0UsVUFBTCxHQUFrQixDQUFDLEVBQ2pCUCxPQUFPLENBQUNPLFVBQVIsSUFDQVIsVUFBVSxDQUFDUSxVQURYLElBSUFQLE9BQU8sQ0FBQ1EsSUFBUixJQUFnQkwsSUFBSSxLQUFLLEtBQXpCLEtBQW1DSixVQUFVLENBQUNVLEtBQVgsSUFBb0JWLFVBQVUsQ0FBQ1csTUFBbEUsQ0FMaUIsQ0FBbkI7QUFPQSxTQUFLQyxhQUFMLEdBQXFCWixVQUFVLENBQUNhLGdCQUFYLENBQTRCLEtBQUtQLFNBQWpDLENBQXJC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QUdvRCxJQUFJLENBQUNDLEtBQUwsQ0FBV3JELEtBQVgsQ0FBUjtBQUNEO0FBQ0Y7O0FBQ0QsWUFBSWdELFVBQVUsS0FBSyxRQUFmLElBQTJCLHFCQUFTaEQsS0FBVCxDQUEvQixFQUFnRDtBQUU5QyxnQkFBTTRELFVBQVUsR0FBRyxLQUFLekUsR0FBTCxDQUFTK0QsTUFBVCxDQUFnQkYsVUFBaEIsQ0FBbkI7O0FBQ0EsY0FBSVksVUFBVSxJQUFJLEVBQUU1RCxLQUFLLFlBQVk0RCxVQUFuQixDQUFsQixFQUFrRDtBQUNoRDVELFlBQUFBLEtBQUssR0FBRzRELFVBQVUsQ0FBQ0MsUUFBWCxDQUFvQjdELEtBQXBCLEVBQTJCOEMsWUFBM0IsQ0FBUjtBQUNEO0FBQ0Y7QUFDRjtBQUNGOztBQUNELFdBQU85QyxLQUFQO0FBQ0Q7O0FBRWMsUUFBVDZDLFNBQVMsR0FBbUI7QUFHaEMsV0FBTyxJQUFQO0FBQ0Q7O0FBM1JtQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzU3RyaW5nLCBpc09iamVjdCwgYXNBcnJheSwgY2xvbmUgfSBmcm9tICdAZGl0b2pzL3V0aWxzJ1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb250cm9sbGVyQWN0aW9uIHtcbiAgY29uc3RydWN0b3IoY29udHJvbGxlciwgaGFuZGxlciwgdHlwZSwgbmFtZSwgdmVyYiwgcGF0aCwgYXV0aG9yaXplKSB7XG4gICAgdGhpcy5jb250cm9sbGVyID0gY29udHJvbGxlclxuICAgIHRoaXMuaGFuZGxlciA9IGhhbmRsZXJcbiAgICB0aGlzLnR5cGUgPSB0eXBlXG4gICAgdGhpcy5uYW1lID0gbmFtZVxuICAgIHRoaXMuaWRlbnRpZmllciA9IGAke3R5cGV9OiR7bmFtZX1gXG4gICAgLy8gQWxsb3cgZGVjb3JhdG9ycyBvbiBhY3Rpb25zIHRvIG92ZXJyaWRlIHRoZSBwcmVkZXRlcm1pbmVkIGRlZmF1bHRzIGZvclxuICAgIC8vIGB2ZXJiYCwgYHBhdGhgIGFuZCBgYXV0aG9yaXplYDpcbiAgICB0aGlzLnZlcmIgPSBoYW5kbGVyLnZlcmIgfHwgdmVyYlxuICAgIC8vIFVzZSA/PyBpbnN0ZWFkIG9mIHx8IHRvIGFsbG93ICcnIHRvIG92ZXJyaWRlIHRoZSBwYXRoLlxuICAgIHRoaXMucGF0aCA9IGhhbmRsZXIucGF0aCA/PyBwYXRoXG4gICAgdGhpcy5hdXRob3JpemUgPSBoYW5kbGVyLmF1dGhvcml6ZSB8fCBhdXRob3JpemVcbiAgICB0aGlzLnRyYW5zYWN0ZWQgPSAhIShcbiAgICAgIGhhbmRsZXIudHJhbnNhY3RlZCB8fFxuICAgICAgY29udHJvbGxlci50cmFuc2FjdGVkIHx8XG4gICAgICAvLyBDb3JlIGdyYXBoIGFuZCBhc3NldHMgb3BlcmF0aW9ucyBhcmUgYWx3YXlzIHRyYW5zYWN0ZWQsIHVubGVzcyB0aGUgdmVyYlxuICAgICAgLy8gaXMgJ2dldCc6XG4gICAgICBoYW5kbGVyLmNvcmUgJiYgdmVyYiAhPT0gJ2dldCcgJiYgKGNvbnRyb2xsZXIuZ3JhcGggfHwgY29udHJvbGxlci5hc3NldHMpXG4gICAgKVxuICAgIHRoaXMuYXV0aG9yaXphdGlvbiA9IGNvbnRyb2xsZXIucHJvY2Vzc0F1dGhvcml6ZSh0aGlzLmF1dGhvcml6ZSlcbiAgICB0aGlzLmFwcCA9IGNvbnRyb2xsZXIuYXBwXG4gICAgdGhpcy5wYXJhbXNOYW1lID0gWydwb3N0JywgJ3B1dCcsICdwYXRjaCddLmluY2x1ZGVzKHRoaXMudmVyYilcbiAgICAgID8gJ2JvZHknXG4gICAgICA6ICdxdWVyeSdcbiAgICBjb25zdCB7IHBhcmFtZXRlcnMsIHJldHVybnMsIG9wdGlvbnMgPSB7fSB9ID0gdGhpcy5oYW5kbGVyXG4gICAgdGhpcy5wYXJhbWV0ZXJzID0gdGhpcy5hcHAuY29tcGlsZVBhcmFtZXRlcnNWYWxpZGF0b3IocGFyYW1ldGVycywge1xuICAgICAgYXN5bmM6IHRydWUsXG4gICAgICAuLi5vcHRpb25zLnBhcmFtZXRlcnMsIC8vIFNlZSBAcGFyYW1ldGVycygpIGRlY29yYXRvclxuICAgICAgZGF0YU5hbWU6IHRoaXMucGFyYW1zTmFtZVxuICAgIH0pXG4gICAgdGhpcy5yZXR1cm5zID0gdGhpcy5hcHAuY29tcGlsZVBhcmFtZXRlcnNWYWxpZGF0b3IoXG4gICAgICByZXR1cm5zID8gW3JldHVybnNdIDogW10sXG4gICAgICB7XG4gICAgICAgIGFzeW5jOiB0cnVlLFxuICAgICAgICAvLyBVc2UgaW5zdGFuY2VvZiBjaGVja3MgaW5zdGVhZCBvZiAkcmVmIHRvIGNoZWNrIHJldHVybmVkIHZhbHVlcy5cbiAgICAgICAgLy8gVE9ETzogVGhhdCBkb2Vzbid0IGd1YXJhbnRlZSB0aGUgdmFsaWRpdHkgdGhvdWdoLi4uXG4gICAgICAgIC8vIFRoaXMgc2hvdWxkIGFsd2F5cyBiZSAkcmVmIGNoZWNrcywgSSB0aGluaz9cbiAgICAgICAgdXNlSW5zdGFuY2VPZjogdHJ1ZSxcbiAgICAgICAgLi4ub3B0aW9ucy5yZXR1cm5zLCAvLyBTZWUgQHJldHVybnMoKSBkZWNvcmF0b3JcbiAgICAgICAgZGF0YU5hbWU6ICdyZXR1cm5zJ1xuICAgICAgfVxuICAgIClcbiAgfVxuXG4gIC8vIFBvc3NpYmxlIHZhbHVlcyBmb3IgYGZyb21gIGFyZTpcbiAgLy8gLSAncGF0aCc6IFVzZSBgY3R4LnBhcmFtc2Agd2hpY2ggaXMgbWFwcGVkIHRvIHRoZSByb3V0ZSAvIHBhdGhcbiAgLy8gLSAncXVlcnknOiBVc2UgYGN0eC5yZXF1ZXN0LnF1ZXJ5YCwgcmVnYXJkbGVzcyBvZiB0aGUgYWN0aW9uJ3MgdmVyYi5cbiAgLy8gLSAnYm9keSc6IFVzZSBgY3R4LnJlcXVlc3QuYm9keWAsIHJlZ2FyZGxlc3Mgb2YgdGhlIGFjdGlvbidzIHZlcmIuXG4gIGdldFBhcmFtcyhjdHgsIGZyb20gPSB0aGlzLnBhcmFtc05hbWUpIHtcbiAgICBjb25zdCB2YWx1ZSA9IGZyb20gPT09ICdwYXRoJyA/IGN0eC5wYXJhbXMgOiBjdHgucmVxdWVzdFtmcm9tXVxuICAgIC8vIGtvYS1ib2R5cGFyc2VyIGFsd2F5cyBzZXRzIGFuIG9iamVjdCwgZXZlbiB3aGVuIHRoZXJlIGlzIG5vIGJvZHkuXG4gICAgLy8gRGV0ZWN0IHRoaXMgaGVyZSBhbmQgcmV0dXJuIG51bGwgaW5zdGVhZC5cbiAgICBjb25zdCBpc051bGwgPSAoXG4gICAgICBmcm9tID09PSAnYm9keScgJiZcbiAgICAgIGN0eC5yZXF1ZXN0LmhlYWRlcnNbJ2NvbnRlbnQtbGVuZ3RoJ10gPT09ICcwJyAmJlxuICAgICAgT2JqZWN0LmtleXModmFsdWUpLmxlbmd0aCA9PT0gMFxuICAgIClcbiAgICByZXR1cm4gaXNOdWxsID8gbnVsbCA6IHZhbHVlXG4gIH1cblxuICBhc3luYyBjYWxsQWN0aW9uKGN0eCkge1xuICAgIGNvbnN0IHBhcmFtcyA9IGF3YWl0IHRoaXMudmFsaWRhdGVQYXJhbWV0ZXJzKGN0eClcbiAgICBjb25zdCB7IGFyZ3MsIG1lbWJlciB9ID0gYXdhaXQgdGhpcy5jb2xsZWN0QXJndW1lbnRzKGN0eCwgcGFyYW1zKVxuICAgIGF3YWl0IHRoaXMuY29udHJvbGxlci5oYW5kbGVBdXRob3JpemF0aW9uKHRoaXMuYXV0aG9yaXphdGlvbiwgY3R4LCBtZW1iZXIpXG4gICAgY29uc3QgeyBpZGVudGlmaWVyIH0gPSB0aGlzXG4gICAgYXdhaXQgdGhpcy5jb250cm9sbGVyLmVtaXRIb29rKGBiZWZvcmU6JHtpZGVudGlmaWVyfWAsIGZhbHNlLCBjdHgsIC4uLmFyZ3MpXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5jYWxsSGFuZGxlcihjdHgsIC4uLmFyZ3MpXG4gICAgcmV0dXJuIHRoaXMudmFsaWRhdGVSZXN1bHQoXG4gICAgICBhd2FpdCB0aGlzLmNvbnRyb2xsZXIuZW1pdEhvb2soYGFmdGVyOiR7aWRlbnRpZmllcn1gLCB0cnVlLCBjdHgsIHJlc3VsdClcbiAgICApXG4gIH1cblxuICBhc3luYyBjYWxsSGFuZGxlcihjdHgsIC4uLmFyZ3MpIHtcbiAgICByZXR1cm4gdGhpcy5oYW5kbGVyLmNhbGwodGhpcy5jb250cm9sbGVyLCBjdHgsIC4uLmFyZ3MpXG4gIH1cblxuICBjcmVhdGVWYWxpZGF0aW9uRXJyb3Iob3B0aW9ucykge1xuICAgIHJldHVybiB0aGlzLmFwcC5jcmVhdGVWYWxpZGF0aW9uRXJyb3Iob3B0aW9ucylcbiAgfVxuXG4gIGFzeW5jIHZhbGlkYXRlUGFyYW1ldGVycyhjdHgpIHtcbiAgICBpZiAoIXRoaXMucGFyYW1ldGVycy52YWxpZGF0ZSkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgLy8gU2luY2UgdmFsaWRhdGlvbiBhbHNvIHBlcmZvcm1zIGNvZXJjaW9uLCBjcmVhdGUgYSBjbG9uZSBvZiB0aGUgcGFyYW1zXG4gICAgLy8gc28gdGhhdCB0aGlzIGRvZXNuJ3QgbW9kaWZ5IHRoZSBkYXRhIG9uIGBjdHhgLlxuICAgIC8vIE5PVEU6IFRoZSBkYXRhIGNhbiBiZSBlaXRoZXIgYW4gb2JqZWN0IG9yIGFuIGFycmF5LlxuICAgIGNvbnN0IGRhdGEgPSBjbG9uZSh0aGlzLmdldFBhcmFtcyhjdHgpKVxuICAgIGxldCBwYXJhbXMgPSBkYXRhIHx8IHt9XG4gICAgY29uc3QgeyBkYXRhTmFtZSB9ID0gdGhpcy5wYXJhbWV0ZXJzXG4gICAgbGV0IHVud3JhcFJvb3QgPSBmYWxzZVxuICAgIGNvbnN0IGVycm9ycyA9IFtdXG4gICAgZm9yIChjb25zdCB7XG4gICAgICBuYW1lLCAvLyBTdHJpbmc6IFByb3BlcnR5IG5hbWUgdG8gZmV0Y2ggZnJvbSBkYXRhLiBPdmVycmlkYWJsZSBieSBgcm9vdGBcbiAgICAgIHR5cGUsIC8vIFN0cmluZzogV2hhdCB0eXBlIHNob3VsZCB0aGlzIHZhbGlkYXRlZCBhZ2FpbnN0IC8gY29lcmNlZCB0by5cbiAgICAgIGZyb20sIC8vIFN0cmluZzogQWxsb3cgcGFyYW1ldGVycyB0byBiZSAnYm9ycm93ZWQnIGZyb20gb3RoZXIgb2JqZWN0cy5cbiAgICAgIHJvb3QsIC8vIEJvb2xlYW46IFVzZSBmdWxsIHJvb3Qgb2JqZWN0LCBpbnN0ZWFkIG9mIGRhdGEgYXQgZ2l2ZW4gcHJvcGVydHkuXG4gICAgICBtZW1iZXIgLy8gQm9vbGVhbjogRmV0Y2ggbWVtYmVyIGluc3RhbmNlIGluc3RlZCBvZiBkYXRhIGZyb20gcmVxdWVzdC5cbiAgICB9IG9mIHRoaXMucGFyYW1ldGVycy5saXN0KSB7XG4gICAgICAvLyBEb24ndCB2YWxpZGF0ZSBtZW1iZXIgcGFyYW1ldGVycyBhcyB0aGV5IGdldCByZXNvbHZlZCBzZXBhcmF0ZWx5IGFmdGVyLlxuICAgICAgaWYgKG1lbWJlcikgY29udGludWVcbiAgICAgIGxldCB3cmFwUm9vdCA9IHJvb3RcbiAgICAgIGxldCBwYXJhbU5hbWUgPSBuYW1lXG4gICAgICAvLyBJZiBubyBuYW1lIGlzIHByb3ZpZGVkLCB3cmFwIHRoZSBmdWxsIHJvb3Qgb2JqZWN0IGFzIHZhbHVlIGFuZCB1bndyYXBcbiAgICAgIC8vIGF0IHRoZSBlbmQsIHNlZSBgdW53cmFwUm9vdGAuXG4gICAgICBpZiAoIXBhcmFtTmFtZSkge1xuICAgICAgICBwYXJhbU5hbWUgPSBkYXRhTmFtZVxuICAgICAgICB3cmFwUm9vdCA9IHRydWVcbiAgICAgICAgdW53cmFwUm9vdCA9IHRydWVcbiAgICAgIH1cbiAgICAgIGlmICh3cmFwUm9vdCkge1xuICAgICAgICAvLyBJZiByb290IGlzIHRvIGJlIHVzZWQsIHJlcGxhY2UgYHBhcmFtc2Agd2l0aCBhIG5ldyBvYmplY3Qgb24gd2hpY2hcbiAgICAgICAgLy8gdG8gc2V0IHRoZSByb290IG9iamVjdCB0byB2YWxpZGF0ZSB1bmRlciBgcGFyYW1ldGVycy5wYXJhbU5hbWVgXG4gICAgICAgIGlmIChwYXJhbXMgPT09IGRhdGEpIHtcbiAgICAgICAgICBwYXJhbXMgPSB7fVxuICAgICAgICB9XG4gICAgICAgIHBhcmFtc1twYXJhbU5hbWVdID0gZGF0YVxuICAgICAgfVxuICAgICAgaWYgKGZyb20pIHtcbiAgICAgICAgLy8gQWxsb3cgcGFyYW1ldGVycyB0byBiZSAnYm9ycm93ZWQnIGZyb20gb3RoZXIgb2JqZWN0cy5cbiAgICAgICAgY29uc3QgZGF0YSA9IHRoaXMuZ2V0UGFyYW1zKGN0eCwgZnJvbSlcbiAgICAgICAgLy8gU2VlIGFib3ZlIGZvciBhbiBleHBsYW5hdGlvbiBvZiBgY2xvbmUoKWA6XG4gICAgICAgIHBhcmFtc1twYXJhbU5hbWVdID0gY2xvbmUod3JhcFJvb3QgPyBkYXRhIDogZGF0YT8uW3BhcmFtTmFtZV0pXG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHBhcmFtc1twYXJhbU5hbWVdXG4gICAgICAgIC8vIGBwYXJhbWV0ZXJzLnZhbGlkYXRlKHBhcmFtcylgIGNvZXJjZXMgZGF0YSBpbiB0aGUgcXVlcnkgdG8gdGhlXG4gICAgICAgIC8vIHJlcXVpcmVkIGZvcm1hdHMsIGFjY29yZGluZyB0byB0aGUgcnVsZXMgc3BlY2lmaWVkIGhlcmU6XG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9lcG9iZXJlemtpbi9hanYvYmxvYi9tYXN0ZXIvQ09FUkNJT04ubWRcbiAgICAgICAgLy8gQ29lcmNpb24gaXNuJ3QgY3VycmVudGx5IG9mZmVyZWQgZm9yICdvYmplY3QnIGFuZCAnZGF0ZScgdHlwZXMsXG4gICAgICAgIC8vIHNvIGhhbmRsZSB0aGVzZSBjYXNlcyBwcmlvciB0byB0aGUgY2FsbCBvZiBgcGFyYW1ldGVycy52YWxpZGF0ZSgpYDpcbiAgICAgICAgY29uc3QgY29lcmNlZCA9IHRoaXMuY29lcmNlVmFsdWUodHlwZSwgdmFsdWUsIHtcbiAgICAgICAgICAvLyBUaGUgbW9kZWwgdmFsaWRhdGlvbiBpcyBoYW5kbGVkIHNlcGFyYXRlbHkgdGhyb3VnaCBgJHJlZmAuXG4gICAgICAgICAgc2tpcFZhbGlkYXRpb246IHRydWVcbiAgICAgICAgfSlcbiAgICAgICAgLy8gSWYgY29lcmNpb24gaGFwcGVuZWQsIHJlcGxhY2UgdmFsdWUgaW4gcGFyYW1zIHdpdGggY29lcmNlZCBvbmU6XG4gICAgICAgIGlmIChjb2VyY2VkICE9PSB2YWx1ZSkge1xuICAgICAgICAgIHBhcmFtc1twYXJhbU5hbWVdID0gY29lcmNlZFxuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgLy8gQ29udmVydCBlcnJvciB0byBBanYgdmFsaWRhdGlvbiBlcnJvciBmb3JtYXQ6XG4gICAgICAgIGVycm9ycy5wdXNoKHtcbiAgICAgICAgICBkYXRhUGF0aDogYC4ke3BhcmFtTmFtZX1gLCAvLyBKYXZhU2NyaXB0IHByb3BlcnR5IGFjY2VzcyBub3RhdGlvblxuICAgICAgICAgIGtleXdvcmQ6ICd0eXBlJyxcbiAgICAgICAgICBtZXNzYWdlOiBlcnIubWVzc2FnZSB8fCBlcnIudG9TdHJpbmcoKSxcbiAgICAgICAgICBwYXJhbXM6IHsgdHlwZSB9XG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZ2V0RGF0YSA9ICgpID0+IHVud3JhcFJvb3QgPyBwYXJhbXNbZGF0YU5hbWVdIDogcGFyYW1zXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMucGFyYW1ldGVycy52YWxpZGF0ZShwYXJhbXMpXG4gICAgICByZXR1cm4gZ2V0RGF0YSgpXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmIChlcnJvci5lcnJvcnMpIHtcbiAgICAgICAgZXJyb3JzLnB1c2goLi4uZXJyb3IuZXJyb3JzKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgZXJyb3JcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICB0aHJvdyB0aGlzLmNyZWF0ZVZhbGlkYXRpb25FcnJvcih7XG4gICAgICAgIHR5cGU6ICdQYXJhbWV0ZXJWYWxpZGF0aW9uJyxcbiAgICAgICAgbWVzc2FnZTogJ1RoZSBwcm92aWRlZCBhY3Rpb24gcGFyYW1ldGVycyBhcmUgbm90IHZhbGlkJyxcbiAgICAgICAgZXJyb3JzLFxuICAgICAgICBqc29uOiBnZXREYXRhKClcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgYXN5bmMgdmFsaWRhdGVSZXN1bHQocmVzdWx0KSB7XG4gICAgaWYgKHRoaXMucmV0dXJucy52YWxpZGF0ZSkge1xuICAgICAgY29uc3QgcmV0dXJuc05hbWUgPSB0aGlzLmhhbmRsZXIucmV0dXJucy5uYW1lXG4gICAgICAvLyBVc2UgZGF0YU5hbWUgaWYgbm8gbmFtZSBpcyBnaXZlbiwgc2VlOlxuICAgICAgLy8gQXBwbGljYXRpb24uY29tcGlsZVBhcmFtZXRlcnNWYWxpZGF0b3IocmV0dXJucywgeyBkYXRhTmFtZSB9KVxuICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgW3JldHVybnNOYW1lIHx8IHRoaXMucmV0dXJucy5kYXRhTmFtZV06IHJlc3VsdFxuICAgICAgfVxuXG4gICAgICAvLyBJZiBhIG5hbWVkIHJlc3VsdCBpcyBkZWZpbmVkLCByZXR1cm4gdGhlIGRhdGEgd3JhcHBlZCxcbiAgICAgIC8vIG90aGVyd2lzZSByZXR1cm4gdGhlIG9yaWdpbmFsIHVud3JhcHBlZCByZXN1bHQgb2JqZWN0LlxuICAgICAgY29uc3QgZ2V0UmVzdWx0ID0gKCkgPT4gcmV0dXJuc05hbWUgPyBkYXRhIDogcmVzdWx0XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB0aGlzLnJldHVybnMudmFsaWRhdGUoZGF0YSlcbiAgICAgICAgcmV0dXJuIGdldFJlc3VsdCgpXG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICB0aHJvdyB0aGlzLmNyZWF0ZVZhbGlkYXRpb25FcnJvcih7XG4gICAgICAgICAgdHlwZTogJ1Jlc3VsdFZhbGlkYXRpb24nLFxuICAgICAgICAgIG1lc3NhZ2U6ICdUaGUgcmV0dXJuZWQgYWN0aW9uIHJlc3VsdCBpcyBub3QgdmFsaWQnLFxuICAgICAgICAgIGVycm9yczogZXJyb3IuZXJyb3JzLFxuICAgICAgICAgIGpzb246IGdldFJlc3VsdCgpXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHRcbiAgfVxuXG4gIGFzeW5jIGNvbGxlY3RBcmd1bWVudHMoY3R4LCBwYXJhbXMpIHtcbiAgICBjb25zdCB7IGxpc3QsIGFzT2JqZWN0IH0gPSB0aGlzLnBhcmFtZXRlcnNcblxuICAgIGNvbnN0IGFyZ3MgPSBhc09iamVjdCA/IFt7fV0gOiBbXVxuICAgIGNvbnN0IGFkZEFyZ3VtZW50ID0gKG5hbWUsIHZhbHVlKSA9PiB7XG4gICAgICBpZiAoYXNPYmplY3QpIHtcbiAgICAgICAgYXJnc1swXVtuYW1lXSA9IHZhbHVlXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhcmdzLnB1c2godmFsdWUpXG4gICAgICB9XG4gICAgfVxuXG4gICAgbGV0IG1lbWJlciA9IG51bGxcbiAgICAvLyBJZiB3ZSBoYXZlIHBhcmFtZXRlcnMsIGFkZCB0aGVtIHRvIHRoZSBhcmd1bWVudHMgbm93LFxuICAgIC8vIHdoaWxlIGFsc28ga2VlcGluZyB0cmFjayBvZiBjb25zdW1lZCBwYXJhbWV0ZXJzOlxuICAgIGZvciAoY29uc3QgcGFyYW0gb2YgbGlzdCkge1xuICAgICAgY29uc3QgeyBuYW1lIH0gPSBwYXJhbVxuICAgICAgLy8gSGFuZGxlIGB7IG1lbWJlcjogdHJ1ZSB9YCBwYXJhbWV0ZXJzIHNlcGFyYXRlbHksIGJ5IGRlbGVnYXRpbmcgdG9cbiAgICAgIC8vIGBnZXRNZW1iZXIoKWAgdG8gcmVzb2x2ZSB0byB0aGUgZ2l2ZW4gbWVtYmVyLlxuICAgICAgaWYgKHBhcmFtLm1lbWJlcikge1xuICAgICAgICBtZW1iZXIgPSBhd2FpdCB0aGlzLmdldE1lbWJlcihjdHgsIHBhcmFtKVxuICAgICAgICBhZGRBcmd1bWVudChuYW1lLCBtZW1iZXIpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBJZiBubyBuYW1lIGlzIHByb3ZpZGVkLCB1c2UgdGhlIGJvZHkgb2JqZWN0IChwYXJhbXMpXG4gICAgICAgIGFkZEFyZ3VtZW50KG5hbWUsIG5hbWUgPyBwYXJhbXNbbmFtZV0gOiBwYXJhbXMpXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7IGFyZ3MsIG1lbWJlciB9XG4gIH1cblxuICBjb2VyY2VWYWx1ZSh0eXBlLCB2YWx1ZSwgbW9kZWxPcHRpb25zKSB7XG4gICAgLy8gU2VlIGlmIHBhcmFtIG5lZWRzIGFkZGl0aW9uYWwgY29lcmNpb246XG4gICAgaWYgKHZhbHVlICYmIFsnZGF0ZScsICdkYXRldGltZScsICd0aW1lc3RhbXAnXS5pbmNsdWRlcyh0eXBlKSkge1xuICAgICAgdmFsdWUgPSBuZXcgRGF0ZSh2YWx1ZSlcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gU2VlIGlmIHRoZSBkZWZpbmVkIHR5cGUocykgcmVxdWlyZSBjb2VyY2lvbiB0byBvYmplY3RzOlxuICAgICAgY29uc3Qgb2JqZWN0VHlwZSA9IGFzQXJyYXkodHlwZSkuZmluZChcbiAgICAgICAgLy8gQ29lcmNlIHRvIG9iamVjdCBpZiB0eXBlIGlzICdvYmplY3QnIG9yIGEga25vd24gbW9kZWwgbmFtZS5cbiAgICAgICAgdHlwZSA9PiB0eXBlID09PSAnb2JqZWN0JyB8fCB0eXBlIGluIHRoaXMuYXBwLm1vZGVsc1xuICAgICAgKVxuICAgICAgaWYgKG9iamVjdFR5cGUpIHtcbiAgICAgICAgaWYgKHZhbHVlICYmIGlzU3RyaW5nKHZhbHVlKSkge1xuICAgICAgICAgIGlmICghL15cXHsuKlxcfSQvLnRlc3QodmFsdWUpKSB7XG4gICAgICAgICAgICAvLyBDb252ZXJ0IHNpbXBsaWZpZWQgRGl0byBvYmplY3Qgbm90YXRpb24gdG8gSlNPTiwgc3VwcG9ydGluZzpcbiAgICAgICAgICAgIC8vIC0gYFwia2V5MVwiOlgsIFwia2V5MlwiOllgIChjdXJseSBicmFjZXMgYXJlIGFkZGVkIGFuZCBwYXJzZWQgdGhyb3VnaFxuICAgICAgICAgICAgLy8gICBgSlNPTi5wYXJzZSgpYClcbiAgICAgICAgICAgIC8vIC0gYGtleTE6WCxrZXkyOllgIChhIHNpbXBsZSBwYXJzZXIgaXMgYXBwbGllZCwgc3BsaXR0aW5nIGludG9cbiAgICAgICAgICAgIC8vICAgZW50cmllcyBhbmQga2V5L3ZhbHVlIHBhaXJzLCB2YWx1c2UgYXJlIHBhcnNlZCB3aXRoXG4gICAgICAgICAgICAvLyAgIGBKU09OLnBhcnNlKClgLCBmYWxsaW5nIGJhY2sgdG8gc3RyaW5nLlxuICAgICAgICAgICAgaWYgKC9cIi8udGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgLy8gSnVzdCBhZGQgdGhlIGN1cmx5IGJyYWNlcyBhbmQgcGFyc2UgYXMgSlNPTlxuICAgICAgICAgICAgICB2YWx1ZSA9IEpTT04ucGFyc2UoYHske3ZhbHVlfX1gKVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8gQSBzaW1wbGUgdmVyc2lvbiBvZiBuYW1lZCBrZXkvdmFsdWUgcGFpcnMsIHZhbHVlcyBjYW4gYmVcbiAgICAgICAgICAgICAgLy8gc3RyaW5ncyBvciBudW1iZXJzLlxuICAgICAgICAgICAgICB2YWx1ZSA9IE9iamVjdC5mcm9tRW50cmllcyh2YWx1ZS5zcGxpdCgvXFxzKixcXHMqL2cpLm1hcChlbnRyeSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IFtrZXksIHZhbF0gPSBlbnRyeS5zcGxpdCgvXFxzKjpcXHMqLylcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgLy8gVHJ5IHBhcnNpbmcgYmFzaWMgdHlwZXMsIGJ1dCBmYWxsIGJhY2sgdG8gdW5xdW90ZWQgc3RyaW5nLlxuICAgICAgICAgICAgICAgICAgdmFsID0gSlNPTi5wYXJzZSh2YWwpXG4gICAgICAgICAgICAgICAgfSBjYXRjaCB7fVxuICAgICAgICAgICAgICAgIHJldHVybiBba2V5LCB2YWxdXG4gICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YWx1ZSA9IEpTT04ucGFyc2UodmFsdWUpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChvYmplY3RUeXBlICE9PSAnb2JqZWN0JyAmJiBpc09iamVjdCh2YWx1ZSkpIHtcbiAgICAgICAgICAvLyBDb252ZXJ0IHRoZSBQb2pvIHRvIHRoZSBkZXNpcmVkIERpdG8gbW9kZWw6XG4gICAgICAgICAgY29uc3QgbW9kZWxDbGFzcyA9IHRoaXMuYXBwLm1vZGVsc1tvYmplY3RUeXBlXVxuICAgICAgICAgIGlmIChtb2RlbENsYXNzICYmICEodmFsdWUgaW5zdGFuY2VvZiBtb2RlbENsYXNzKSkge1xuICAgICAgICAgICAgdmFsdWUgPSBtb2RlbENsYXNzLmZyb21Kc29uKHZhbHVlLCBtb2RlbE9wdGlvbnMpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZVxuICB9XG5cbiAgYXN5bmMgZ2V0TWVtYmVyKC8qIGN0eCwgcGFyYW0gKi8pIHtcbiAgICAvLyBUaGlzIGlzIG9ubHkgZGVmaW5lZCBpbiBgTWVtYmVyQWN0aW9uYCwgd2hlcmUgaXQgcmVzb2x2ZXMgdG8gdGhlIG1lbWJlclxuICAgIC8vIHJlcHJlc2VudGVkIGJ5IHRoZSBnaXZlbiByb3V0ZS5cbiAgICByZXR1cm4gbnVsbFxuICB9XG59XG4iXX0=
|
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports.RelationController = void 0;
|
|
5
5
|
|
|
6
|
+
require("core-js/modules/esnext.async-iterator.filter.js");
|
|
7
|
+
|
|
8
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
|
9
|
+
|
|
10
|
+
require("core-js/modules/esnext.iterator.filter.js");
|
|
11
|
+
|
|
6
12
|
var _chalk = _interopRequireDefault(require("chalk"));
|
|
7
13
|
|
|
8
14
|
var _errors = require("../errors");
|
|
@@ -73,4 +79,4 @@ class RelationController extends _CollectionController.CollectionController {
|
|
|
73
79
|
}
|
|
74
80
|
|
|
75
81
|
exports.RelationController = RelationController;
|
|
76
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cm9sbGVycy9SZWxhdGlvbkNvbnRyb2xsZXIuanMiXSwibmFtZXMiOlsiUmVsYXRpb25Db250cm9sbGVyIiwiQ29sbGVjdGlvbkNvbnRyb2xsZXIiLCJjb25zdHJ1Y3RvciIsInBhcmVudCIsIm9iamVjdCIsInJlbGF0aW9uSW5zdGFuY2UiLCJyZWxhdGlvbkRlZmluaXRpb24iLCJhcHAiLCJjb2xsZWN0aW9uIiwidG9Db3JlQWN0aW9ucyIsIm1lbWJlciIsIm1vZGVsQ2xhc3MiLCJvd25lck1vZGVsQ2xhc3MiLCJDb250cm9sbGVyRXJyb3IiLCJuYW1lIiwicmVsYXRlZE1vZGVsQ2xhc3MiLCJpc09uZVRvT25lIiwicmVsYXRlIiwib3duZXIiLCJ1bnJlbGF0ZSIsImdyYXBoIiwidHJhbnNhY3RlZCIsImxldmVsIiwic2NvcGUiLCJmaWx0ZXIiLCJwYXRoIiwibm9ybWFsaXplUGF0aCIsInVybCIsImdldFBhdGgiLCJsb2ciLCJjaGFsayIsImJsdWUiLCJ3aGl0ZSIsImtleSIsImluY2x1ZGVzIiwic2V0dXAiLCJpbmhlcml0VmFsdWVzIiwidHlwZSIsInZhbHVlcyIsImV4ZWN1dGUiLCJjdHgiLCJpZCIsImdldE1lbWJlcklkIiwicGFyZW50UXVlcnkiLCJ0cngiLCJtb2RlbCIsImlnbm9yZVNjb3BlIiwiZmluZEJ5SWQiLCJ0aHJvd0lmTm90Rm91bmQiLCJzZWxlY3QiLCJvd25lclByb3AiLCJwcm9wcyIsInF1ZXJ5IiwiJHJlbGF0ZWRRdWVyeSIsInNldHVwUXVlcnkiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFFTyxNQUFNQSxrQkFBTixTQUFpQ0MsMENBQWpDLENBQXNEO0FBQzNEQyxFQUFBQSxXQUFXLENBQUNDLE1BQUQsRUFBU0MsTUFBVCxFQUFpQkMsZ0JBQWpCLEVBQW1DQyxrQkFBbkMsRUFBdUQ7QUFDaEUsVUFBTUgsTUFBTSxDQUFDSSxHQUFiLEVBQWtC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LFlBQU1DLEtBQUssR0FBRyxNQUFNRixXQUFXLENBQzVCRyxXQURpQixHQUVqQkMsUUFGaUIsQ0FFUk4sRUFGUSxFQUdqQk8sZUFIaUIsR0FLakJDLE1BTGlCLENBS1YsR0FBRyxLQUFLNUMsZ0JBQUwsQ0FBc0I2QyxTQUF0QixDQUFnQ0MsS0FMekIsQ0FBcEI7QUFRQSxZQUFNQyxLQUFLLEdBQUdQLEtBQUssQ0FBQ1EsYUFBTixDQUFvQixLQUFLaEQsZ0JBQUwsQ0FBc0JTLElBQTFDLEVBQWdEOEIsR0FBaEQsQ0FBZDtBQUNBLFdBQUtVLFVBQUwsQ0FBZ0JGLEtBQWhCO0FBQ0EsYUFBT2IsT0FBTyxDQUFDYSxLQUFELEVBQVFSLEdBQVIsQ0FBZDtBQUNELEtBYkksQ0FBUDtBQWVEOztBQWxGMEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY2hhbGsgZnJvbSAnY2hhbGsnXG5pbXBvcnQgeyBDb250cm9sbGVyRXJyb3IgfSBmcm9tICdAL2Vycm9ycydcbmltcG9ydCB7IENvbGxlY3Rpb25Db250cm9sbGVyIH0gZnJvbSAnLi9Db2xsZWN0aW9uQ29udHJvbGxlcidcbmltcG9ydCB7IHNldHVwUHJvcGVydHlJbmhlcml0YW5jZSwgZ2V0U2NvcGUgfSBmcm9tICdAL3V0aWxzJ1xuaW1wb3J0IHsgYXNBcnJheSB9IGZyb20gJ0BkaXRvanMvdXRpbHMnXG5cbmV4cG9ydCBjbGFzcyBSZWxhdGlvbkNvbnRyb2xsZXIgZXh0ZW5kcyBDb2xsZWN0aW9uQ29udHJvbGxlciB7XG4gIGNvbnN0cnVjdG9yKHBhcmVudCwgb2JqZWN0LCByZWxhdGlvbkluc3RhbmNlLCByZWxhdGlvbkRlZmluaXRpb24pIHtcbiAgICBzdXBlcihwYXJlbnQuYXBwLCBudWxsKVxuICAgIGlmIChwYXJlbnQubW9kZWxDbGFzcyAhPT0gcmVsYXRpb25JbnN0YW5jZS5vd25lck1vZGVsQ2xhc3MpIHtcbiAgICAgIHRocm93IG5ldyBDb250cm9sbGVyRXJyb3IocGFyZW50LFxuICAgICAgICBgSW52YWxpZCBwYXJlbnQgY29udHJvbGxlciBmb3IgcmVsYXRpb24gJyR7cmVsYXRpb25JbnN0YW5jZS5uYW1lfScuYClcbiAgICB9XG4gICAgdGhpcy5wYXJlbnQgPSBwYXJlbnRcbiAgICB0aGlzLm9iamVjdCA9IG9iamVjdFxuICAgIHRoaXMucmVsYXRpb25JbnN0YW5jZSA9IHJlbGF0aW9uSW5zdGFuY2VcbiAgICB0aGlzLnJlbGF0aW9uRGVmaW5pdGlvbiA9IHJlbGF0aW9uRGVmaW5pdGlvblxuICAgIHRoaXMubmFtZSA9IHJlbGF0aW9uSW5zdGFuY2UubmFtZVxuICAgIHRoaXMubW9kZWxDbGFzcyA9IHJlbGF0aW9uSW5zdGFuY2UucmVsYXRlZE1vZGVsQ2xhc3NcbiAgICB0aGlzLmlzT25lVG9PbmUgPSByZWxhdGlvbkluc3RhbmNlLmlzT25lVG9PbmUoKVxuICAgIHRoaXMucmVsYXRlID0gIXJlbGF0aW9uRGVmaW5pdGlvbi5vd25lclxuICAgIHRoaXMudW5yZWxhdGUgPSAhcmVsYXRpb25EZWZpbml0aW9uLm93bmVyXG4gICAgLy8gSW5oZXJpdCBwYXJlbnQgdmFsdWVzOlxuICAgIHRoaXMuZ3JhcGggPSBwYXJlbnQuZ3JhcGhcbiAgICB0aGlzLnRyYW5zYWN0ZWQgPSBwYXJlbnQudHJhbnNhY3RlZFxuICAgIHRoaXMubGV2ZWwgPSBwYXJlbnQubGV2ZWwgKyAxXG4gICAgaWYgKHBhcmVudC5zY29wZSkge1xuICAgICAgLy8gSW5oZXJpdCBvbmx5IHRoZSBncmFwaCBzY29wZXMgc2luY2UgaXQncyBpbiBpdHMgbmF0dXJlIHRvIHByb3BhZ2F0ZSB0b1xuICAgICAgLy8gcmVsYXRpb25zOlxuICAgICAgdGhpcy5zY29wZSA9IGFzQXJyYXkocGFyZW50LnNjb3BlKS5maWx0ZXIoc2NvcGUgPT4gZ2V0U2NvcGUoc2NvcGUpLmdyYXBoKVxuICAgIH1cbiAgICAvLyBJbml0aWFsaXplOlxuICAgIHRoaXMucGF0aCA9IHRoaXMuYXBwLm5vcm1hbGl6ZVBhdGgodGhpcy5uYW1lKVxuICAgIHRoaXMudXJsID0gYCR7dGhpcy5wYXJlbnQudXJsfS8ke3RoaXMucGFyZW50LmdldFBhdGgoJ21lbWJlcicsIHRoaXMucGF0aCl9YFxuICAgIHRoaXMubG9nKGAke2NoYWxrLmJsdWUodGhpcy5wYXRoKX0ke2NoYWxrLndoaXRlKCc6Jyl9YCwgdGhpcy5sZXZlbClcbiAgICAvLyBDb3B5IG92ZXIgYWxsIGZpZWxkcyBpbiB0aGUgcmVsYXRpb24gb2JqZWN0IGV4Y2VwdCB0aGUgb25lcyB0aGF0IGFyZVxuICAgIC8vIGdvaW5nIHRvIGJlIGluaGVyaXRlZCBpbiBgc2V0dXAoKWAgKHJlbGF0aW9uLCBtZW1iZXIsIGFsbG93KSwgZm9yXG4gICAgLy8gc2V0dGluZ3MgbGlrZSBzY29wZSwgZXRjLlxuICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMub2JqZWN0KSB7XG4gICAgICBpZiAoIVsncmVsYXRpb24nLCAnbWVtYmVyJywgJ2FsbG93J10uaW5jbHVkZXMoa2V5KSkge1xuICAgICAgICB0aGlzW2tleV0gPSB0aGlzLm9iamVjdFtrZXldXG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMuc2V0dXAoZmFsc2UpXG4gIH1cblxuICAvLyBAb3ZlcnJpZGVcbiAgaW5oZXJpdFZhbHVlcyh0eXBlKSB7XG4gICAgLy8gU2luY2UgUmVsYXRpb25Db250cm9sbGVyIGFyZSBtYXBwZWQgdG8gbmVzdGVkIGByZWxhdGlvbnNgIG9iamVjdHMgaW5cbiAgICAvLyBNb2RlbENvbnRyb2xsZXIgcGFyZW50cyBhbmQgYXJlIG5ldmVyIGV4dGVuZGVkIGRpcmVjdGx5IGluIHRoZSB1c2VyIGxhbmRcbiAgICAvLyBjb2RlLCBpbmhlcml0YW5jZSB3b3JrcyBkaWZmZXJlbnRseSBoZXJlIHRoYW4gb24gdGhlIG90aGVyIGNvbnRyb2xsZXJzOlxuICAgIC8vIE1vZGVsQ29udHJvbGxlciBhbHJlYWR5IHNldHMgdXAgaW5oZXJpdGFuY2UgZm9yIGl0cyBgcmVsYXRpb25zYCBvYmplY3RcbiAgICAvLyBhbmQgaXRzIGVudHJpZXMgZm9yIGVhY2ggcmVsYXRpb24gZnJvbSB3aGljaCBgb2JqZWN0YCBpcyByZXRyaWV2ZWQuXG4gICAgLy8gQnV0IHRoZSBhY3Rpb25zIHBlciByZWxhdGlvbiBzdGlsbCBuZWVkIHRvIGhhdmUgaW5oZXJpdGFuY2Ugc2V0IHVwLFxuICAgIC8vIHVzaW5nIHRoZSB2YWx1ZXMgaW4gaXRzIHBhcmVudCBjb250cm9sbGVyIGFuZCBwb3RlbnRpYWwgc3VwZXItY2xhc3NlcyxcbiAgICAvLyBmYWxsaW5nIGJhY2sgb24gdGhlIGRlZmluaXRpb25zIGluIFJlbGF0aW9uQ29udHJvbGxlciBhbmQgaXRzIGluaGVyaXRlZFxuICAgIC8vIHZhbHVlcyBmcm9tIE1vZGVsQ29udHJvbGxlci5cbiAgICBjb25zdCB2YWx1ZXMgPSBzZXR1cFByb3BlcnR5SW5oZXJpdGFuY2UoXG4gICAgICB0aGlzLm9iamVjdCxcbiAgICAgIC8vIE9uIHRoZSByZWxhdGlvbiBvYmplY3RzLCB0aGUgYGNvbGxlY3Rpb25gIGFjdGlvbnMgYXJlIHN0b3JlZCBpbiBhXG4gICAgICAvLyBgcmVsYXRpb25gIG9iamVjdCwgdG8gbWFrZSBzZW5zZSBib3RoIGZvciBvbmUtIGFuZCBtYW55LXJlbGF0aW9uczpcbiAgICAgIHR5cGUgPT09ICdjb2xsZWN0aW9uJyA/ICdyZWxhdGlvbicgOiB0eXBlLFxuICAgICAgLy8gU2V0IHVwIGluaGVyaXRhbmNlIGZvciBSZWxhdGlvbkNvbnRyb2xsZXIncyBvdmVycmlkZSBvZiBgY29sbGVjdGlvbmBcbiAgICAgIC8vIGFuZCBgbWVtYmVyYCBvYmplY3RzLCBhbmQgdXNlIGl0IGFzIHRoZSBiYXNlIGZvciBmdXJ0aGVyIGluaGVyaXRhbmNlLlxuICAgICAgLy8gTk9URTogQ3VycmVudGx5IHRoZXkncmUgZW1wdHksIGJ1dCB0aGV5IGNvdWxkIGFsbG93IGxvY2FsIG92ZXJyaWRlcy5cbiAgICAgIHN1cGVyLmluaGVyaXRWYWx1ZXModHlwZSlcbiAgICApXG4gICAgcmV0dXJuIHZhbHVlc1xuICB9XG5cbiAgLy8gQG92ZXJyaWRlXG4gIGFzeW5jIGV4ZWN1dGUoY3R4LCBleGVjdXRlKSB7XG4gICAgY29uc3QgaWQgPSB0aGlzLnBhcmVudC5nZXRNZW1iZXJJZChjdHgpXG4gICAgcmV0dXJuIHRoaXMucGFyZW50LmV4ZWN1dGUoY3R4LFxuICAgICAgYXN5bmMgKHBhcmVudFF1ZXJ5LCB0cngpID0+IHtcbiAgICAgICAgY29uc3QgbW9kZWwgPSBhd2FpdCBwYXJlbnRRdWVyeVxuICAgICAgICAgIC5pZ25vcmVTY29wZSgpXG4gICAgICAgICAgLmZpbmRCeUlkKGlkKVxuICAgICAgICAgIC50aHJvd0lmTm90Rm91bmQoKVxuICAgICAgICAgIC8vIEV4cGxpY2l0bHkgb25seSBzZWxlY3QgdGhlIGZvcmVpZ24ga2V5IGlkcyBmb3IgbW9yZSBlZmZpY2llbmN5LlxuICAgICAgICAgIC5zZWxlY3QoLi4udGhpcy5yZWxhdGlvbkluc3RhbmNlLm93bmVyUHJvcC5wcm9wcylcbiAgICAgICAgLy8gVGhpcyBpcyB0aGUgc2FtZSBhcyBgTW9kZWxDb250cm9sbGVyLmV4ZWN1dGUoKWAsIGV4Y2VwdCBmb3IgdGhlIHVzZVxuICAgICAgICAvLyBvZiBgbW9kZWwuJHJlbGF0ZWRRdWVyeSgpYCBpbnN0ZWFkIG9mIGBtb2RlbENsYXNzLnF1ZXJ5KClgOlxuICAgICAgICBjb25zdCBxdWVyeSA9IG1vZGVsLiRyZWxhdGVkUXVlcnkodGhpcy5yZWxhdGlvbkluc3RhbmNlLm5hbWUsIHRyeClcbiAgICAgICAgdGhpcy5zZXR1cFF1ZXJ5KHF1ZXJ5KVxuICAgICAgICByZXR1cm4gZXhlY3V0ZShxdWVyeSwgdHJ4KVxuICAgICAgfVxuICAgIClcbiAgfVxuXG4gIGNvbGxlY3Rpb24gPSB0aGlzLnRvQ29yZUFjdGlvbnMoe1xuICB9KVxuXG4gIG1lbWJlciA9IHRoaXMudG9Db3JlQWN0aW9ucyh7XG4gIH0pXG59XG4iXX0=
|
|
@@ -3,6 +3,20 @@
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports.UserController = void 0;
|
|
5
5
|
|
|
6
|
+
require("core-js/modules/esnext.async-iterator.find.js");
|
|
7
|
+
|
|
8
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
|
9
|
+
|
|
10
|
+
require("core-js/modules/esnext.iterator.find.js");
|
|
11
|
+
|
|
12
|
+
require("core-js/modules/esnext.async-iterator.for-each.js");
|
|
13
|
+
|
|
14
|
+
require("core-js/modules/esnext.iterator.for-each.js");
|
|
15
|
+
|
|
16
|
+
require("core-js/modules/esnext.async-iterator.reduce.js");
|
|
17
|
+
|
|
18
|
+
require("core-js/modules/esnext.iterator.reduce.js");
|
|
19
|
+
|
|
6
20
|
var _decorators = require("../decorators");
|
|
7
21
|
|
|
8
22
|
var _ModelController = require("./ModelController");
|
|
@@ -81,4 +95,4 @@ class UserController extends _ModelController.ModelController {
|
|
|
81
95
|
}
|
|
82
96
|
|
|
83
97
|
exports.UserController = UserController;
|
|
84
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
98
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cm9sbGVycy9Vc2VyQ29udHJvbGxlci5qcyJdLCJuYW1lcyI6WyJVc2VyQ29udHJvbGxlciIsIk1vZGVsQ29udHJvbGxlciIsImNvbGxlY3Rpb24iLCJsb2dpbiIsImN0eCIsInVzZXIiLCJlcnJvciIsIm1vZGVsQ2xhc3MiLCIkcGF0Y2giLCJsYXN0TG9naW4iLCJEYXRlIiwidHJhbnNhY3Rpb24iLCJlcnIiLCJhcHAiLCJlbWl0IiwiZGF0YSIsIm1lc3NhZ2UiLCJzdGF0dXMiLCJzdWNjZXNzIiwiYXV0aGVudGljYXRlZCIsImlzQXV0aGVudGljYXRlZCIsImxvZ291dCIsImlzVW5hdXRoZW50aWNhdGVkIiwic2Vzc2lvbiIsInN0YXRlIiwic2VsZiIsIm1lbWJlciIsImZpbmQiLCJjYWxsIiwiZ2V0Q29udGV4dFdpdGhNZW1iZXJJZCIsIiRpZCIsImF1dGhvcml6ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOzs7O0FBR08sTUFBTUEsY0FBTixTQUE2QkMsZ0NBQTdCLENBQTZDO0FBQUE7QUFBQTs7QUFBQTtBQUFBLFNBQ2xEQyxVQURrRCxXQUUvQyx3QkFBTyxNQUFQLENBRitDLFVBd0IvQyx3QkFBTyxNQUFQLENBeEIrQyxVQXFDL0Msd0JBQU8sS0FBUCxDQXJDK0MsVUE4Qy9DLHdCQUFPLEtBQVAsQ0E5QytDLFVBQ3JDO0FBRVgsWUFBTUMsS0FBTixDQUFZQyxHQUFaLEVBQWlCO0FBQ2YsWUFBSUMsSUFBSjtBQUNBLFlBQUlDLEtBQUo7O0FBQ0EsWUFBSTtBQUNGRCxVQUFBQSxJQUFJLEdBQUcsTUFBTSxLQUFLRSxVQUFMLENBQWdCSixLQUFoQixDQUFzQkMsR0FBdEIsQ0FBYjtBQUNBLGdCQUFNQyxJQUFJLENBQUNHLE1BQUwsQ0FBWTtBQUFFQyxZQUFBQSxTQUFTLEVBQUUsSUFBSUMsSUFBSjtBQUFiLFdBQVosRUFBdUNOLEdBQUcsQ0FBQ08sV0FBM0MsQ0FBTjtBQUNELFNBSEQsQ0FHRSxPQUFPQyxHQUFQLEVBQVk7QUFBQTs7QUFDWixlQUFLQyxHQUFMLENBQVNDLElBQVQsQ0FBYyxPQUFkLEVBQXVCRixHQUF2QixFQUE0QlIsR0FBNUI7QUFDQUMsVUFBQUEsSUFBSSxHQUFHLElBQVA7QUFDQUMsVUFBQUEsS0FBSyxHQUFHLGNBQUFNLEdBQUcsQ0FBQ0csSUFBSiwrQkFBVUMsT0FBVixLQUFxQkosR0FBRyxDQUFDSSxPQUFqQztBQUNBWixVQUFBQSxHQUFHLENBQUNhLE1BQUosR0FBYUwsR0FBRyxDQUFDSyxNQUFKLElBQWMsR0FBM0I7QUFDRDs7QUFDRCxjQUFNQyxPQUFPLEdBQUcsQ0FBQyxDQUFDYixJQUFsQjtBQUNBLGVBQU87QUFDTGEsVUFBQUEsT0FESztBQUVMQyxVQUFBQSxhQUFhLEVBQUVELE9BQU8sSUFBSSxLQUFLRSxlQUFMLENBQXFCaEIsR0FBckIsQ0FGckI7QUFHTEMsVUFBQUEsSUFISztBQUlMQyxVQUFBQTtBQUpLLFNBQVA7QUFNRCxPQXJCVTs7QUF3QlgsWUFBTWUsTUFBTixDQUFhakIsR0FBYixFQUFrQjtBQUNoQixZQUFJYyxPQUFPLEdBQUcsS0FBZDs7QUFDQSxZQUFJLEtBQUtFLGVBQUwsQ0FBcUJoQixHQUFyQixDQUFKLEVBQStCO0FBQzdCLGdCQUFNQSxHQUFHLENBQUNpQixNQUFKLEVBQU47QUFDQUgsVUFBQUEsT0FBTyxHQUFHZCxHQUFHLENBQUNrQixpQkFBSixFQUFWO0FBQ0Q7O0FBQ0QsZUFBTztBQUNMSixVQUFBQSxPQURLO0FBRUxDLFVBQUFBLGFBQWEsRUFBRSxLQUFLQyxlQUFMLENBQXFCaEIsR0FBckI7QUFGVixTQUFQO0FBSUQsT0FsQ1U7O0FBcUNYbUIsTUFBQUEsT0FBTyxDQUFDbkIsR0FBRCxFQUFNO0FBQ1gsY0FBTWUsYUFBYSxHQUFHLEtBQUtDLGVBQUwsQ0FBcUJoQixHQUFyQixDQUF0QjtBQUNBLGVBQU87QUFDTGUsVUFBQUEsYUFESztBQUVMZCxVQUFBQSxJQUFJLEVBQUVjLGFBQWEsR0FBR2YsR0FBRyxDQUFDb0IsS0FBSixDQUFVbkIsSUFBYixHQUFvQjtBQUZsQyxTQUFQO0FBSUQsT0EzQ1U7O0FBOENYb0IsTUFBQUEsSUFBSSxDQUFDckIsR0FBRCxFQUFNO0FBQ1IsZUFBTyxLQUFLZ0IsZUFBTCxDQUFxQmhCLEdBQXJCLElBQ0gsS0FBS3NCLE1BQUwsQ0FBWUMsSUFBWixDQUFpQkMsSUFBakIsQ0FDQSxJQURBLEVBRUEsS0FBS0Msc0JBQUwsQ0FBNEJ6QixHQUE1QixFQUFpQ0EsR0FBRyxDQUFDb0IsS0FBSixDQUFVbkIsSUFBVixDQUFleUIsR0FBZixFQUFqQyxDQUZBLENBREcsR0FLSCxJQUxKO0FBTUQ7O0FBckRVLEtBRHFDO0FBQUEsU0F5RGxESixNQXpEa0QsR0F5RHpDO0FBQ1BLLE1BQUFBLFNBQVMsRUFBRSxDQUFDLE9BQUQ7QUFESixLQXpEeUM7QUFBQTs7QUE2RGxEWCxFQUFBQSxlQUFlLENBQUNoQixHQUFELEVBQU07QUFFbkIsV0FBT0EsR0FBRyxDQUFDZ0IsZUFBSixNQUF5QmhCLEdBQUcsQ0FBQ29CLEtBQUosQ0FBVW5CLElBQVYsWUFBMEIsS0FBS0UsVUFBL0Q7QUFDRDs7QUFoRWlEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYWN0aW9uIH0gZnJvbSAnQC9kZWNvcmF0b3JzJ1xuaW1wb3J0IHsgTW9kZWxDb250cm9sbGVyIH0gZnJvbSAnLi9Nb2RlbENvbnRyb2xsZXInXG5cbi8vIFRPRE86IFJlbmFtZSB0byBVc2Vyc0NvbnRyb2xsZXI/XG5leHBvcnQgY2xhc3MgVXNlckNvbnRyb2xsZXIgZXh0ZW5kcyBNb2RlbENvbnRyb2xsZXIge1xuICBjb2xsZWN0aW9uID0ge1xuICAgIEBhY3Rpb24oJ3Bvc3QnKVxuICAgIGFzeW5jIGxvZ2luKGN0eCkge1xuICAgICAgbGV0IHVzZXJcbiAgICAgIGxldCBlcnJvclxuICAgICAgdHJ5IHtcbiAgICAgICAgdXNlciA9IGF3YWl0IHRoaXMubW9kZWxDbGFzcy5sb2dpbihjdHgpXG4gICAgICAgIGF3YWl0IHVzZXIuJHBhdGNoKHsgbGFzdExvZ2luOiBuZXcgRGF0ZSgpIH0sIGN0eC50cmFuc2FjdGlvbilcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICB0aGlzLmFwcC5lbWl0KCdlcnJvcicsIGVyciwgY3R4KVxuICAgICAgICB1c2VyID0gbnVsbFxuICAgICAgICBlcnJvciA9IGVyci5kYXRhPy5tZXNzYWdlIHx8IGVyci5tZXNzYWdlXG4gICAgICAgIGN0eC5zdGF0dXMgPSBlcnIuc3RhdHVzIHx8IDQwMVxuICAgICAgfVxuICAgICAgY29uc3Qgc3VjY2VzcyA9ICEhdXNlclxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3VjY2VzcyxcbiAgICAgICAgYXV0aGVudGljYXRlZDogc3VjY2VzcyAmJiB0aGlzLmlzQXV0aGVudGljYXRlZChjdHgpLFxuICAgICAgICB1c2VyLFxuICAgICAgICBlcnJvclxuICAgICAgfVxuICAgIH0sXG5cbiAgICBAYWN0aW9uKCdwb3N0JylcbiAgICBhc3luYyBsb2dvdXQoY3R4KSB7XG4gICAgICBsZXQgc3VjY2VzcyA9IGZhbHNlXG4gICAgICBpZiAodGhpcy5pc0F1dGhlbnRpY2F0ZWQoY3R4KSkge1xuICAgICAgICBhd2FpdCBjdHgubG9nb3V0KClcbiAgICAgICAgc3VjY2VzcyA9IGN0eC5pc1VuYXV0aGVudGljYXRlZCgpXG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdWNjZXNzLFxuICAgICAgICBhdXRoZW50aWNhdGVkOiB0aGlzLmlzQXV0aGVudGljYXRlZChjdHgpXG4gICAgICB9XG4gICAgfSxcblxuICAgIEBhY3Rpb24oJ2dldCcpXG4gICAgc2Vzc2lvbihjdHgpIHtcbiAgICAgIGNvbnN0IGF1dGhlbnRpY2F0ZWQgPSB0aGlzLmlzQXV0aGVudGljYXRlZChjdHgpXG4gICAgICByZXR1cm4ge1xuICAgICAgICBhdXRoZW50aWNhdGVkLFxuICAgICAgICB1c2VyOiBhdXRoZW50aWNhdGVkID8gY3R4LnN0YXRlLnVzZXIgOiBudWxsXG4gICAgICB9XG4gICAgfSxcblxuICAgIEBhY3Rpb24oJ2dldCcpXG4gICAgc2VsZihjdHgpIHtcbiAgICAgIHJldHVybiB0aGlzLmlzQXV0aGVudGljYXRlZChjdHgpXG4gICAgICAgID8gdGhpcy5tZW1iZXIuZmluZC5jYWxsKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgdGhpcy5nZXRDb250ZXh0V2l0aE1lbWJlcklkKGN0eCwgY3R4LnN0YXRlLnVzZXIuJGlkKCkpXG4gICAgICAgIClcbiAgICAgICAgOiBudWxsXG4gICAgfVxuICB9XG5cbiAgbWVtYmVyID0ge1xuICAgIGF1dGhvcml6ZTogWyckc2VsZiddXG4gIH1cblxuICBpc0F1dGhlbnRpY2F0ZWQoY3R4KSB7XG4gICAgLy8gTWFrZSBzdXJlIHRoZSBjdXJyZW50bHkgbG9nZ2VkIGluIHVzZXIgaGFzIHRoZSBjb3JyZWN0IG1vZGVsLWNsYXNzOlxuICAgIHJldHVybiBjdHguaXNBdXRoZW50aWNhdGVkKCkgJiYgY3R4LnN0YXRlLnVzZXIgaW5zdGFuY2VvZiB0aGlzLm1vZGVsQ2xhc3NcbiAgfVxufVxuIl19
|
package/lib/controllers/index.js
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
require("core-js/modules/esnext.async-iterator.for-each.js");
|
|
4
|
+
|
|
5
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
|
6
|
+
|
|
7
|
+
require("core-js/modules/esnext.iterator.for-each.js");
|
|
8
|
+
|
|
3
9
|
exports.__esModule = true;
|
|
4
10
|
|
|
5
11
|
var _Controller = require("./Controller");
|
|
@@ -41,4 +47,4 @@ Object.keys(_UserController).forEach(function (key) {
|
|
|
41
47
|
if (key in exports && exports[key] === _UserController[key]) return;
|
|
42
48
|
exports[key] = _UserController[key];
|
|
43
49
|
});
|
|
44
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250cm9sbGVycy9pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFDQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUNBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ0E7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFDQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9Db250cm9sbGVyJ1xuZXhwb3J0ICogZnJvbSAnLi9Nb2RlbENvbnRyb2xsZXInXG5leHBvcnQgKiBmcm9tICcuL1JlbGF0aW9uQ29udHJvbGxlcidcbmV4cG9ydCAqIGZyb20gJy4vQWRtaW5Db250cm9sbGVyJ1xuZXhwb3J0ICogZnJvbSAnLi9Vc2VyQ29udHJvbGxlcidcbiJdfQ==
|
package/lib/decorators/index.js
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
require("core-js/modules/esnext.async-iterator.for-each.js");
|
|
4
|
+
|
|
5
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
|
6
|
+
|
|
7
|
+
require("core-js/modules/esnext.iterator.for-each.js");
|
|
8
|
+
|
|
3
9
|
exports.__esModule = true;
|
|
4
10
|
|
|
5
11
|
var _action = require("./action");
|
|
@@ -49,4 +55,4 @@ Object.keys(_transacted).forEach(function (key) {
|
|
|
49
55
|
if (key in exports && exports[key] === _transacted[key]) return;
|
|
50
56
|
exports[key] = _transacted[key];
|
|
51
57
|
});
|
|
52
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZWNvcmF0b3JzL2luZGV4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUNBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ0E7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFDQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUNBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ0E7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYWN0aW9uJ1xuZXhwb3J0ICogZnJvbSAnLi9hdXRob3JpemUnXG5leHBvcnQgKiBmcm9tICcuL3BhcmFtZXRlcnMnXG5leHBvcnQgKiBmcm9tICcuL3JldHVybnMnXG5leHBvcnQgKiBmcm9tICcuL3Njb3BlJ1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc2FjdGVkJ1xuIl19
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports.parameters = parameters;
|
|
5
5
|
|
|
6
|
+
require("core-js/modules/es.error.cause.js");
|
|
7
|
+
|
|
6
8
|
var _utils = require("@ditojs/utils");
|
|
7
9
|
|
|
8
10
|
var _utils2 = require("../utils");
|
|
@@ -12,7 +14,7 @@ function parameters(parameters, options) {
|
|
|
12
14
|
const first = parameters[Object.keys(parameters)[0]];
|
|
13
15
|
|
|
14
16
|
if (!(0, _utils.isObject)(first)) {
|
|
15
|
-
(0, _utils2.deprecate)(`@parameters(${
|
|
17
|
+
(0, _utils2.deprecate)(`@parameters(${(0, _utils2.formatJson)(parameters, false)}) with parameter schema object is deprecated: Schema object should be passed nested inside an array or object definition.`);
|
|
16
18
|
parameters = [...arguments];
|
|
17
19
|
}
|
|
18
20
|
}
|
|
@@ -30,4 +32,4 @@ function parameters(parameters, options) {
|
|
|
30
32
|
}
|
|
31
33
|
});
|
|
32
34
|
}
|
|
33
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZWNvcmF0b3JzL3BhcmFtZXRlcnMuanMiXSwibmFtZXMiOlsicGFyYW1ldGVycyIsIm9wdGlvbnMiLCJmaXJzdCIsIk9iamVjdCIsImtleXMiLCJhcmd1bWVudHMiLCJFcnJvciIsInZhbHVlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7O0FBRU8sU0FBU0EsVUFBVCxDQUFvQkEsVUFBcEIsRUFBZ0NDLE9BQWhDLEVBQXlDO0FBQzlDLE1BQUkscUJBQVNELFVBQVQsQ0FBSixFQUEwQjtBQUN4QixVQUFNRSxLQUFLLEdBQUdGLFVBQVUsQ0FBQ0csTUFBTSxDQUFDQyxJQUFQLENBQVlKLFVBQVosRUFBd0IsQ0FBeEIsQ0FBRCxDQUF4Qjs7QUFDQSxRQUFJLENBQUMscUJBQVNFLEtBQVQsQ0FBTCxFQUFzQjtBQUNwQiw2QkFDRyxlQUNDLHdCQUFXRixVQUFYLEVBQXVCLEtBQXZCLENBQ0QsMkhBSEg7QUFLQUEsTUFBQUEsVUFBVSxHQUFHLENBQUMsR0FBR0ssU0FBSixDQUFiO0FBQ0Q7QUFDRjs7QUFDRCxNQUFJLENBQUMsb0JBQVFMLFVBQVIsQ0FBRCxJQUF3QixDQUFDLHFCQUFTQSxVQUFULENBQTdCLEVBQW1EO0FBQ2pELFVBQU0sSUFBSU0sS0FBSixDQUFXLG9FQUFYLENBQU47QUFDRDs7QUFFRCxTQUFPLDZCQUFnQkMsS0FBSyxJQUFJO0FBQzlCQSxJQUFBQSxLQUFLLENBQUNQLFVBQU4sR0FBbUJBLFVBQW5COztBQUdBLFFBQUlDLE9BQUosRUFBYTtBQUNYTSxNQUFBQSxLQUFLLENBQUNOLE9BQU4sS0FBQU0sS0FBSyxDQUFDTixPQUFOLEdBQWtCLEVBQWxCO0FBQ0FNLE1BQUFBLEtBQUssQ0FBQ04sT0FBTixDQUFjRCxVQUFkLEdBQTJCQyxPQUEzQjtBQUNEO0FBQ0YsR0FSTSxDQUFQO0FBU0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0FycmF5LCBpc09iamVjdCB9IGZyb20gJ0BkaXRvanMvdXRpbHMnXG5pbXBvcnQgeyBjcmVhdGVEZWNvcmF0b3IsIGRlcHJlY2F0ZSwgZm9ybWF0SnNvbiB9IGZyb20gJ0AvdXRpbHMnXG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJhbWV0ZXJzKHBhcmFtZXRlcnMsIG9wdGlvbnMpIHtcbiAgaWYgKGlzT2JqZWN0KHBhcmFtZXRlcnMpKSB7XG4gICAgY29uc3QgZmlyc3QgPSBwYXJhbWV0ZXJzW09iamVjdC5rZXlzKHBhcmFtZXRlcnMpWzBdXVxuICAgIGlmICghaXNPYmplY3QoZmlyc3QpKSB7XG4gICAgICBkZXByZWNhdGUoXG4gICAgICAgIGBAcGFyYW1ldGVycygke1xuICAgICAgICAgIGZvcm1hdEpzb24ocGFyYW1ldGVycywgZmFsc2UpXG4gICAgICAgIH0pIHdpdGggcGFyYW1ldGVyIHNjaGVtYSBvYmplY3QgaXMgZGVwcmVjYXRlZDogU2NoZW1hIG9iamVjdCBzaG91bGQgYmUgcGFzc2VkIG5lc3RlZCBpbnNpZGUgYW4gYXJyYXkgb3Igb2JqZWN0IGRlZmluaXRpb24uYFxuICAgICAgKVxuICAgICAgcGFyYW1ldGVycyA9IFsuLi5hcmd1bWVudHNdXG4gICAgfVxuICB9XG4gIGlmICghaXNBcnJheShwYXJhbWV0ZXJzKSAmJiAhaXNPYmplY3QocGFyYW1ldGVycykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEBwYXJhbWV0ZXJzKCkgbmVlZCB0byBiZSBkZWZpbmVkIHVzaW5nIGFycmF5IG9yIG9iamVjdCBkZWZpbml0aW9uc2ApXG4gIH1cblxuICByZXR1cm4gY3JlYXRlRGVjb3JhdG9yKHZhbHVlID0+IHtcbiAgICB2YWx1ZS5wYXJhbWV0ZXJzID0gcGFyYW1ldGVyc1xuICAgIC8vIElmIHZhbGlkYXRpb24gb3B0aW9ucyBhcmUgcHJvdmlkZWQsIGV4cG9zZSB0aGVtIHRocm91Z2hcbiAgICAvLyBgaGFuZGxlci5vcHRpb25zLnBhcmFtZXRlcnNgLCBzZWUgQ29udHJvbGxlckFjdGlvblxuICAgIGlmIChvcHRpb25zKSB7XG4gICAgICB2YWx1ZS5vcHRpb25zIHx8PSB7fVxuICAgICAgdmFsdWUub3B0aW9ucy5wYXJhbWV0ZXJzID0gb3B0aW9uc1xuICAgIH1cbiAgfSlcbn1cbiJdfQ==
|
|
@@ -3,13 +3,15 @@
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports.returns = returns;
|
|
5
5
|
|
|
6
|
+
require("core-js/modules/es.error.cause.js");
|
|
7
|
+
|
|
6
8
|
var _utils = require("@ditojs/utils");
|
|
7
9
|
|
|
8
10
|
var _utils2 = require("../utils");
|
|
9
11
|
|
|
10
12
|
function returns(returns, options) {
|
|
11
13
|
if (!(0, _utils.isObject)(returns)) {
|
|
12
|
-
throw new Error(`@returns(${
|
|
14
|
+
throw new Error(`@returns(${(0, _utils2.formatJson)(returns, false)}) needs to be defined using an object parameter definition`);
|
|
13
15
|
}
|
|
14
16
|
|
|
15
17
|
return (0, _utils2.createDecorator)(value => {
|
|
@@ -21,4 +23,4 @@ function returns(returns, options) {
|
|
|
21
23
|
}
|
|
22
24
|
});
|
|
23
25
|
}
|
|
24
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZWNvcmF0b3JzL3JldHVybnMuanMiXSwibmFtZXMiOlsicmV0dXJucyIsIm9wdGlvbnMiLCJFcnJvciIsInZhbHVlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBQ0E7O0FBRU8sU0FBU0EsT0FBVCxDQUFpQkEsT0FBakIsRUFBMEJDLE9BQTFCLEVBQW1DO0FBQ3hDLE1BQUksQ0FBQyxxQkFBU0QsT0FBVCxDQUFMLEVBQXdCO0FBQ3RCLFVBQU0sSUFBSUUsS0FBSixDQUNILFlBQ0Msd0JBQVdGLE9BQVgsRUFBb0IsS0FBcEIsQ0FDRCw0REFIRyxDQUFOO0FBS0Q7O0FBRUQsU0FBTyw2QkFBZ0JHLEtBQUssSUFBSTtBQUM5QkEsSUFBQUEsS0FBSyxDQUFDSCxPQUFOLEdBQWdCQSxPQUFoQjs7QUFHQSxRQUFJQyxPQUFKLEVBQWE7QUFDWEUsTUFBQUEsS0FBSyxDQUFDRixPQUFOLEtBQUFFLEtBQUssQ0FBQ0YsT0FBTixHQUFrQixFQUFsQjtBQUNBRSxNQUFBQSxLQUFLLENBQUNGLE9BQU4sQ0FBY0QsT0FBZCxHQUF3QkMsT0FBeEI7QUFDRDtBQUNGLEdBUk0sQ0FBUDtBQVNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNPYmplY3QgfSBmcm9tICdAZGl0b2pzL3V0aWxzJ1xuaW1wb3J0IHsgY3JlYXRlRGVjb3JhdG9yLCBmb3JtYXRKc29uIH0gZnJvbSAnQC91dGlscydcblxuZXhwb3J0IGZ1bmN0aW9uIHJldHVybnMocmV0dXJucywgb3B0aW9ucykge1xuICBpZiAoIWlzT2JqZWN0KHJldHVybnMpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEByZXR1cm5zKCR7XG4gICAgICAgIGZvcm1hdEpzb24ocmV0dXJucywgZmFsc2UpXG4gICAgICB9KSBuZWVkcyB0byBiZSBkZWZpbmVkIHVzaW5nIGFuIG9iamVjdCBwYXJhbWV0ZXIgZGVmaW5pdGlvbmBcbiAgICApXG4gIH1cblxuICByZXR1cm4gY3JlYXRlRGVjb3JhdG9yKHZhbHVlID0+IHtcbiAgICB2YWx1ZS5yZXR1cm5zID0gcmV0dXJuc1xuICAgIC8vIElmIHZhbGlkYXRpb24gb3B0aW9ucyBhcmUgcHJvdmlkZWQsIGV4cG9zZSB0aGVtIHRocm91Z2hcbiAgICAvLyBgaGFuZGxlci5vcHRpb25zLnJldHVybnNgLCBzZWUgQ29udHJvbGxlckFjdGlvblxuICAgIGlmIChvcHRpb25zKSB7XG4gICAgICB2YWx1ZS5vcHRpb25zIHx8PSB7fVxuICAgICAgdmFsdWUub3B0aW9ucy5yZXR1cm5zID0gb3B0aW9uc1xuICAgIH1cbiAgfSlcbn1cbiJdfQ==
|
|
@@ -8,14 +8,12 @@ var _WrappedError = require("./WrappedError");
|
|
|
8
8
|
var _objection = require("objection");
|
|
9
9
|
|
|
10
10
|
class DatabaseError extends _WrappedError.WrappedError {
|
|
11
|
-
constructor(error) {
|
|
11
|
+
constructor(error, overrides) {
|
|
12
12
|
const status = error instanceof _objection.CheckViolationError ? 400 : error instanceof _objection.NotNullViolationError ? 400 : error instanceof _objection.ConstraintViolationError ? 409 : error instanceof _objection.DataError ? 400 : error instanceof _objection.DBError ? 500 : 400;
|
|
13
|
-
|
|
14
|
-
const overrides = {
|
|
13
|
+
overrides = {
|
|
15
14
|
type: error.constructor.name,
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
status
|
|
15
|
+
status,
|
|
16
|
+
...overrides
|
|
19
17
|
};
|
|
20
18
|
super(error, overrides, {
|
|
21
19
|
message: 'Database error',
|
|
@@ -23,19 +21,7 @@ class DatabaseError extends _WrappedError.WrappedError {
|
|
|
23
21
|
});
|
|
24
22
|
}
|
|
25
23
|
|
|
26
|
-
toJSON() {
|
|
27
|
-
if (process.env.NODE_ENV !== 'development' || process.env.NODE_ENV !== 'test') {
|
|
28
|
-
const {
|
|
29
|
-
sql,
|
|
30
|
-
...data
|
|
31
|
-
} = this.data;
|
|
32
|
-
return data;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
return this.data;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
24
|
}
|
|
39
25
|
|
|
40
26
|
exports.DatabaseError = DatabaseError;
|
|
41
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lcnJvcnMvRGF0YWJhc2VFcnJvci5qcyJdLCJuYW1lcyI6WyJEYXRhYmFzZUVycm9yIiwiV3JhcHBlZEVycm9yIiwiY29uc3RydWN0b3IiLCJlcnJvciIsIm92ZXJyaWRlcyIsInN0YXR1cyIsIkNoZWNrVmlvbGF0aW9uRXJyb3IiLCJOb3ROdWxsVmlvbGF0aW9uRXJyb3IiLCJDb25zdHJhaW50VmlvbGF0aW9uRXJyb3IiLCJEYXRhRXJyb3IiLCJEQkVycm9yIiwidHlwZSIsIm5hbWUiLCJtZXNzYWdlIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFBOztBQUNBOztBQVFPLE1BQU1BLGFBQU4sU0FBNEJDLDBCQUE1QixDQUF5QztBQUM5Q0MsRUFBQUEsV0FBVyxDQUFDQyxLQUFELEVBQVFDLFNBQVIsRUFBbUI7QUFDNUIsVUFBTUMsTUFBTSxHQUNWRixLQUFLLFlBQVlHLDhCQUFqQixHQUF1QyxHQUF2QyxHQUNFSCxLQUFLLFlBQVlJLGdDQUFqQixHQUF5QyxHQUF6QyxHQUNBSixLQUFLLFlBQVlLLG1DQUFqQixHQUE0QyxHQUE1QyxHQUNBTCxLQUFLLFlBQVlNLG9CQUFqQixHQUE2QixHQUE3QixHQUNBTixLQUFLLFlBQVlPLGtCQUFqQixHQUEyQixHQUEzQixHQUNBLEdBTko7QUFPQU4sSUFBQUEsU0FBUyxHQUFHO0FBQUVPLE1BQUFBLElBQUksRUFBRVIsS0FBSyxDQUFDRCxXQUFOLENBQWtCVSxJQUExQjtBQUFnQ1AsTUFBQUEsTUFBaEM7QUFBd0MsU0FBR0Q7QUFBM0MsS0FBWjtBQUNBLFVBQU1ELEtBQU4sRUFBYUMsU0FBYixFQUF3QjtBQUFFUyxNQUFBQSxPQUFPLEVBQUUsZ0JBQVg7QUFBNkJSLE1BQUFBO0FBQTdCLEtBQXhCO0FBQ0Q7O0FBWDZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV3JhcHBlZEVycm9yIH0gZnJvbSAnLi9XcmFwcGVkRXJyb3InXG5pbXBvcnQge1xuICBEQkVycm9yLFxuICBEYXRhRXJyb3IsXG4gIENoZWNrVmlvbGF0aW9uRXJyb3IsXG4gIE5vdE51bGxWaW9sYXRpb25FcnJvcixcbiAgQ29uc3RyYWludFZpb2xhdGlvbkVycm9yXG59IGZyb20gJ29iamVjdGlvbidcblxuZXhwb3J0IGNsYXNzIERhdGFiYXNlRXJyb3IgZXh0ZW5kcyBXcmFwcGVkRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihlcnJvciwgb3ZlcnJpZGVzKSB7XG4gICAgY29uc3Qgc3RhdHVzID1cbiAgICAgIGVycm9yIGluc3RhbmNlb2YgQ2hlY2tWaW9sYXRpb25FcnJvciA/IDQwMFxuICAgICAgOiBlcnJvciBpbnN0YW5jZW9mIE5vdE51bGxWaW9sYXRpb25FcnJvciA/IDQwMFxuICAgICAgOiBlcnJvciBpbnN0YW5jZW9mIENvbnN0cmFpbnRWaW9sYXRpb25FcnJvciA/IDQwOVxuICAgICAgOiBlcnJvciBpbnN0YW5jZW9mIERhdGFFcnJvciA/IDQwMFxuICAgICAgOiBlcnJvciBpbnN0YW5jZW9mIERCRXJyb3IgPyA1MDBcbiAgICAgIDogNDAwXG4gICAgb3ZlcnJpZGVzID0geyB0eXBlOiBlcnJvci5jb25zdHJ1Y3Rvci5uYW1lLCBzdGF0dXMsIC4uLm92ZXJyaWRlcyB9XG4gICAgc3VwZXIoZXJyb3IsIG92ZXJyaWRlcywgeyBtZXNzYWdlOiAnRGF0YWJhc2UgZXJyb3InLCBzdGF0dXMgfSlcbiAgfVxufVxuIl19
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports.ResponseError = void 0;
|
|
5
5
|
|
|
6
|
+
require("core-js/modules/es.error.cause.js");
|
|
7
|
+
|
|
6
8
|
var _utils = require("@ditojs/utils");
|
|
7
9
|
|
|
8
10
|
class ResponseError extends Error {
|
|
@@ -23,22 +25,10 @@ class ResponseError extends Error {
|
|
|
23
25
|
} = { ...defaults,
|
|
24
26
|
...object
|
|
25
27
|
};
|
|
26
|
-
|
|
28
|
+
const {
|
|
27
29
|
message,
|
|
28
30
|
code
|
|
29
31
|
} = data;
|
|
30
|
-
|
|
31
|
-
if (process.env.NODE_ENV === 'test' && error === object) {
|
|
32
|
-
const {
|
|
33
|
-
message: _,
|
|
34
|
-
...rest
|
|
35
|
-
} = data;
|
|
36
|
-
|
|
37
|
-
if (Object.keys(rest).length > 0) {
|
|
38
|
-
message = `${message}\nError Data:\n${JSON.stringify(rest, null, 2)}`;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
|
|
42
32
|
super(message);
|
|
43
33
|
this.name = this.constructor.name;
|
|
44
34
|
this.status = status;
|
|
@@ -53,4 +43,4 @@ class ResponseError extends Error {
|
|
|
53
43
|
}
|
|
54
44
|
|
|
55
45
|
exports.ResponseError = ResponseError;
|
|
56
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lcnJvcnMvUmVzcG9uc2VFcnJvci5qcyJdLCJuYW1lcyI6WyJSZXNwb25zZUVycm9yIiwiRXJyb3IiLCJjb25zdHJ1Y3RvciIsImVycm9yIiwiZGVmYXVsdHMiLCJtZXNzYWdlIiwic3RhdHVzIiwib2JqZWN0IiwiaXNBeGlvc0Vycm9yIiwiY29kZSIsImRhdGEiLCJuYW1lIiwidG9KU09OIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBRU8sTUFBTUEsYUFBTixTQUE0QkMsS0FBNUIsQ0FBa0M7QUFDdkNDLEVBQUFBLFdBQVcsQ0FBQ0MsS0FBRCxFQUFRQyxRQUFRLEdBQUc7QUFBRUMsSUFBQUEsT0FBTyxFQUFFLGdCQUFYO0FBQTZCQyxJQUFBQSxNQUFNLEVBQUU7QUFBckMsR0FBbkIsRUFBK0Q7QUFDeEUsVUFBTUMsTUFBTSxHQUFHLDBCQUFjSixLQUFkLElBQ1hBLEtBRFcsR0FFWEEsS0FBSyxZQUFZRixLQUFqQixHQUNFLEVBTUEsSUFBSUUsS0FBSyxDQUFDSyxZQUFOLEdBQXFCLElBQXJCLEdBQTRCTCxLQUFoQyxDQU5BO0FBUUFFLE1BQUFBLE9BQU8sRUFBRUYsS0FBSyxDQUFDRSxPQVJmO0FBU0FDLE1BQUFBLE1BQU0sRUFBRUgsS0FBSyxDQUFDRyxNQVRkO0FBVUFHLE1BQUFBLElBQUksRUFBRU4sS0FBSyxDQUFDTTtBQVZaLEtBREYsR0FhRSxxQkFBU04sS0FBVCxJQUNFO0FBQUVFLE1BQUFBLE9BQU8sRUFBRUY7QUFBWCxLQURGLEdBRUVBLEtBQUssSUFBSSxFQWpCakI7QUFrQkEsVUFBTTtBQUFFRyxNQUFBQSxNQUFGO0FBQVUsU0FBR0k7QUFBYixRQUFzQixFQUFFLEdBQUdOLFFBQUw7QUFBZSxTQUFHRztBQUFsQixLQUE1QjtBQUNBLFVBQU07QUFBRUYsTUFBQUEsT0FBRjtBQUFXSSxNQUFBQTtBQUFYLFFBQW9CQyxJQUExQjtBQUNBLFVBQU1MLE9BQU47QUFDQSxTQUFLTSxJQUFMLEdBQVksS0FBS1QsV0FBTCxDQUFpQlMsSUFBN0I7QUFDQSxTQUFLTCxNQUFMLEdBQWNBLE1BQWQ7QUFDQSxTQUFLRyxJQUFMLEdBQVlBLElBQVo7QUFDQSxTQUFLQyxJQUFMLEdBQVlBLElBQVo7QUFDRDs7QUFFREUsRUFBQUEsTUFBTSxHQUFHO0FBQ1AsV0FBTyxLQUFLRixJQUFaO0FBQ0Q7O0FBL0JzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhaW5PYmplY3QsIGlzU3RyaW5nIH0gZnJvbSAnQGRpdG9qcy91dGlscydcblxuZXhwb3J0IGNsYXNzIFJlc3BvbnNlRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKGVycm9yLCBkZWZhdWx0cyA9IHsgbWVzc2FnZTogJ1Jlc3BvbnNlIGVycm9yJywgc3RhdHVzOiA0MDAgfSkge1xuICAgIGNvbnN0IG9iamVjdCA9IGlzUGxhaW5PYmplY3QoZXJyb3IpXG4gICAgICA/IGVycm9yXG4gICAgICA6IGVycm9yIGluc3RhbmNlb2YgRXJyb3JcbiAgICAgICAgPyB7XG4gICAgICAgICAgLy8gQ29weSBlcnJvciBpbnRvIG9iamVjdCBzbyB0aGV5IGNhbiBiZSBtZXJnZWQgd2l0aCBkZWZhdWx0cyBhZnRlci5cbiAgICAgICAgICAvLyBGaXJzdCBjb3B5IGV2ZXJ5dGhpbmcgdGhhdCBpcyBlbnVtZXJhYmxlLCB1bmxlc3MgdGhlIGVycm9yIGlzIGZyb21cbiAgICAgICAgICAvLyBheGlvcywgaW4gd2hpY2ggY2FzZSB3ZSBkb24ndCB3YW50IHRvIGxlYWsgY29uZmlnIGluZm9ybWF0aW9uLlxuICAgICAgICAgIC8vIFRPRE86IFVzZSBgaW5zdGFuY2VvZiBBeGlvc0V4Y2VwdGlvbmAgaW5zdGVhZCBvbmNlIGF4aW9zIGlzIHYxLjAuMDpcbiAgICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYXhpb3MvYXhpb3MvcHVsbC8yMDE0XG4gICAgICAgICAgLi4uKGVycm9yLmlzQXhpb3NFcnJvciA/IG51bGwgOiBlcnJvciksXG4gICAgICAgICAgLy8gQWxzbyBleHBsaWNpdGx5IGNvcHkgbWVzc2FnZSwgc3RhdHVzIGFuZCBjb2RlLlxuICAgICAgICAgIG1lc3NhZ2U6IGVycm9yLm1lc3NhZ2UsXG4gICAgICAgICAgc3RhdHVzOiBlcnJvci5zdGF0dXMsXG4gICAgICAgICAgY29kZTogZXJyb3IuY29kZVxuICAgICAgICB9XG4gICAgICAgIDogaXNTdHJpbmcoZXJyb3IpXG4gICAgICAgICAgPyB7IG1lc3NhZ2U6IGVycm9yIH1cbiAgICAgICAgICA6IGVycm9yIHx8IHt9XG4gICAgY29uc3QgeyBzdGF0dXMsIC4uLmRhdGEgfSA9IHsgLi4uZGVmYXVsdHMsIC4uLm9iamVjdCB9XG4gICAgY29uc3QgeyBtZXNzYWdlLCBjb2RlIH0gPSBkYXRhXG4gICAgc3VwZXIobWVzc2FnZSlcbiAgICB0aGlzLm5hbWUgPSB0aGlzLmNvbnN0cnVjdG9yLm5hbWVcbiAgICB0aGlzLnN0YXR1cyA9IHN0YXR1c1xuICAgIHRoaXMuY29kZSA9IGNvZGVcbiAgICB0aGlzLmRhdGEgPSBkYXRhXG4gIH1cblxuICB0b0pTT04oKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVxuICB9XG59XG4iXX0=
|
package/lib/errors/index.js
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
require("core-js/modules/esnext.async-iterator.for-each.js");
|
|
4
|
+
|
|
5
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
|
6
|
+
|
|
7
|
+
require("core-js/modules/esnext.iterator.for-each.js");
|
|
8
|
+
|
|
3
9
|
exports.__esModule = true;
|
|
4
10
|
|
|
5
11
|
var _AssetError = require("./AssetError");
|
|
@@ -113,4 +119,4 @@ Object.keys(_WrappedError).forEach(function (key) {
|
|
|
113
119
|
if (key in exports && exports[key] === _WrappedError[key]) return;
|
|
114
120
|
exports[key] = _WrappedError[key];
|
|
115
121
|
});
|
|
116
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
122
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9lcnJvcnMvaW5kZXguanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ0E7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFDQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUNBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ0E7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFDQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUNBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ0E7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFDQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUNBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ0E7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFDQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUNBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ0E7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vQXNzZXRFcnJvcidcbmV4cG9ydCAqIGZyb20gJy4vUmVzcG9uc2VFcnJvcidcbmV4cG9ydCAqIGZyb20gJy4vQXV0aGVudGljYXRpb25FcnJvcidcbmV4cG9ydCAqIGZyb20gJy4vQXV0aG9yaXphdGlvbkVycm9yJ1xuZXhwb3J0ICogZnJvbSAnLi9Db250cm9sbGVyRXJyb3InXG5leHBvcnQgKiBmcm9tICcuL0RhdGFiYXNlRXJyb3InXG5leHBvcnQgKiBmcm9tICcuL0dyYXBoRXJyb3InXG5leHBvcnQgKiBmcm9tICcuL01vZGVsRXJyb3InXG5leHBvcnQgKiBmcm9tICcuL05vdEZvdW5kRXJyb3InXG5leHBvcnQgKiBmcm9tICcuL05vdEltcGxlbWVudGVkRXJyb3InXG5leHBvcnQgKiBmcm9tICcuL1F1ZXJ5QnVpbGRlckVycm9yJ1xuZXhwb3J0ICogZnJvbSAnLi9SZWxhdGlvbkVycm9yJ1xuZXhwb3J0ICogZnJvbSAnLi9WYWxpZGF0aW9uRXJyb3InXG5leHBvcnQgKiBmcm9tICcuL1dyYXBwZWRFcnJvcidcbiJdfQ==
|
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports.DitoGraphProcessor = void 0;
|
|
5
5
|
|
|
6
|
+
require("core-js/modules/esnext.async-iterator.map.js");
|
|
7
|
+
|
|
8
|
+
require("core-js/modules/esnext.iterator.map.js");
|
|
9
|
+
|
|
6
10
|
var _utils = require("@ditojs/utils");
|
|
7
11
|
|
|
8
12
|
var _ = require(".");
|
|
@@ -178,4 +182,4 @@ exports.DitoGraphProcessor = DitoGraphProcessor;
|
|
|
178
182
|
function appendPath(path, separator, token) {
|
|
179
183
|
return path !== '' ? `${path}${separator}${token}` : token;
|
|
180
184
|
}
|
|
181
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ncmFwaC9EaXRvR3JhcGhQcm9jZXNzb3IuanMiXSwibmFtZXMiOlsiRGl0b0dyYXBoUHJvY2Vzc29yIiwiY29uc3RydWN0b3IiLCJyb290TW9kZWxDbGFzcyIsImRhdGEiLCJvcHRpb25zIiwic2V0dGluZ3MiLCJza2lwVmFsaWRhdGlvbiIsImlzQXJyYXkiLCJvdmVycmlkZXMiLCJleHRyYXMiLCJudW1PcHRpb25zIiwiT2JqZWN0Iiwia2V5cyIsImxlbmd0aCIsIm51bU92ZXJyaWRlcyIsInByb2Nlc3NPdmVycmlkZXMiLCJjb2xsZWN0T3ZlcnJpZGVzIiwiZ2V0T3B0aW9ucyIsImdldERhdGEiLCJwcm9jZXNzUmVsYXRlcyIsImdldEdyYXBoT3B0aW9ucyIsInJlbGF0aW9uIiwib3duZXJPcHRpb25zIiwicmVsYXRlIiwidW5yZWxhdGUiLCJncmFwaE9wdGlvbnMiLCJvd25lciIsInByb2Nlc3NlZCIsInByb2Nlc3NNb2RlbENsYXNzIiwibW9kZWxDbGFzcyIsIm5hbWUiLCJyZWxhdGlvbnMiLCJkZWZpbml0aW9uIiwicmVsYXRpb25JbnN0YW5jZXMiLCJnZXRSZWxhdGlvbnMiLCJlbnRyaWVzIiwia2V5IiwicmVsYXRlZE1vZGVsQ2xhc3MiLCJleHByIiwicHJvY2Vzc0V4cHJlc3Npb24iLCJyZWxhdGlvblBhdGgiLCJvcHRpb24iLCJwdXNoIiwiZXh0cmEiLCJ0aHJvdWdoIiwiY2hpbGRFeHByIiwiYXBwZW5kUGF0aCIsInNob3VsZFJlbGF0ZSIsImluY2x1ZGVzIiwiZGF0YVBhdGgiLCIkaXNPYmplY3Rpb25Nb2RlbCIsImNvcHkiLCJnZXRSZWZlcmVuY2UiLCIkY2xvbmUiLCJzaGFsbG93IiwidmFsdWVzIiwibWFwIiwiZW50cnkiLCJpbmRleCIsInBhdGgiLCJzZXBhcmF0b3IiLCJ0b2tlbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7QUFDQTs7QUFFTyxNQUFNQSxrQkFBTixDQUF5QjtBQUM5QkMsRUFBQUEsV0FBVyxDQUFD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dCI6WyJpbXBvcnQgeyBpc0FycmF5IH0gZnJvbSAnQGRpdG9qcy91dGlscydcbmltcG9ydCB7IG1vZGVsR3JhcGhUb0V4cHJlc3Npb24sIGVuc3VyZU1vZGVsQXJyYXkgfSBmcm9tICcuJ1xuXG5leHBvcnQgY2xhc3MgRGl0b0dyYXBoUHJvY2Vzc29yIHtcbiAgY29uc3RydWN0b3Iocm9vdE1vZGVsQ2xhc3MsIGRhdGEsIG9wdGlvbnMgPSB7fSwgc2V0dGluZ3MgPSB7fSkge1xuICAgIHRoaXMucm9vdE1vZGVsQ2xhc3MgPSByb290TW9kZWxDbGFzc1xuICAgIHRoaXMuZGF0YSA9IGVuc3VyZU1vZGVsQXJyYXkocm9vdE1vZGVsQ2xhc3MsIGRhdGEsIHtcbiAgICAgIHNraXBWYWxpZGF0aW9uOiB0cnVlXG4gICAgfSlcbiAgICB0aGlzLmlzQXJyYXkgPSBpc0FycmF5KGRhdGEpXG4gICAgdGhpcy5vcHRpb25zID0gb3B0aW9uc1xuICAgIHRoaXMuc2V0dGluZ3MgPSBzZXR0aW5nc1xuICAgIHRoaXMub3ZlcnJpZGVzID0ge31cbiAgICB0aGlzLmV4dHJhcyA9IHt9XG4gICAgdGhpcy5udW1PcHRpb25zID0gT2JqZWN0LmtleXMob3B0aW9ucykubGVuZ3RoXG4gICAgdGhpcy5udW1PdmVycmlkZXMgPSAwXG4gICAgaWYgKHNldHRpbmdzLnByb2Nlc3NPdmVycmlkZXMpIHtcbiAgICAgIHRoaXMuY29sbGVjdE92ZXJyaWRlcygpXG4gICAgICBpZiAodGhpcy5udW1PdmVycmlkZXMgPiAwKSB7XG4gICAgICAgIHRoaXMucHJvY2Vzc092ZXJyaWRlcygpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0T3B0aW9ucygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4udGhpcy5vcHRpb25zLFxuICAgICAgLi4udGhpcy5vdmVycmlkZXNcbiAgICB9XG4gIH1cblxuICBnZXREYXRhKCkge1xuICAgIC8vIElmIHNldHRpbmcucHJvY2Vzc1JlbGF0ZXMgaXMgdXNlZCwgY2FsbCBwcm9jZXNzUmVsYXRlKCkgdG8gZmlsdGVyIG91dFxuICAgIC8vIG5lc3RlZCByZWxhdGlvbnMgb2YgbW9kZWxzIHRoYXQgYXJlIHVzZWQgZm9yIHJlbGF0ZXMuXG4gICAgY29uc3QgZGF0YSA9IHRoaXMuc2V0dGluZ3MucHJvY2Vzc1JlbGF0ZXNcbiAgICAgID8gdGhpcy5wcm9jZXNzUmVsYXRlcyh0aGlzLmRhdGEpXG4gICAgICA6IHRoaXMuZGF0YVxuICAgIHJldHVybiB0aGlzLmlzQXJyYXkgPyBkYXRhIDogZGF0YVswXVxuICB9XG5cbiAgZ2V0R3JhcGhPcHRpb25zKHJlbGF0aW9uKSB7XG4gICAgLy8gV2hlbiBhIHJlbGF0aW9uIGlzIG93bmVyIG9mIGl0cyBkYXRhLCB0aGVuIGEgZmFsbC1iYWNrIGZvciBgZ3JhcGhPcHRpb25zYFxuICAgIC8vIGlzIHByb3ZpZGVkIHdoZXJlIGJvdGggYHJlbGF0ZWAgYW5kIGB1bnJlbGF0ZWAgaXMgZGlzYWJsZWQsIHJlc3VsdGluZyBpblxuICAgIC8vIGluc2VydHMgYW5kIGRlbGV0ZXMgaW5zdGVhZC5cbiAgICBjb25zdCBvd25lck9wdGlvbnMgPSB7XG4gICAgICByZWxhdGU6IGZhbHNlLFxuICAgICAgdW5yZWxhdGU6IGZhbHNlXG4gICAgfVxuICAgIC8vIERldGVybWluZSB0aGUgYGdyYXBoT3B0aW9uc2AgdG8gYmUgdXNlZCBmb3IgdGhpcyByZWxhdGlvbi5cbiAgICByZXR1cm4gcmVsYXRpb24uZ3JhcGhPcHRpb25zIHx8IHJlbGF0aW9uLm93bmVyICYmIG93bmVyT3B0aW9ucyB8fCB7fVxuICB9XG5cbiAgLyoqXG4gICAqIExvb3BzIHRocm91Z2ggYWxsIG5lc3RlZCByZWxhdGlvbnMgYW5kIGZpbmRzIHRoZSBvbmVzIHRoYXQgZGVmaW5lIGxvY2FsXG4gICAqIG92ZXJyaWRlcyBvZiB0aGUgZ2xvYmFsIG9wdGlvbnMsIHRoZW4gY29sbGVjdHMgZW1wdHkgb3ZlcnJpZGUgYXJyYXlzIGZvclxuICAgKiBlYWNoIHNldHRpbmcsIHNvIHByb2Nlc3NPdmVycmlkZXMoKSBjYW4gZmlsbCB0aGVtIGlmIGFueSBvdmVycmlkZXMgZXhpc3QuXG4gICAqL1xuICBjb2xsZWN0T3ZlcnJpZGVzKCkge1xuICAgIC8vIFRPRE86IHdlIG1heSB3YW50IG9wdGltaXplIHRoaXMgY29kZSB0byBvbmx5IGNvbGxlY3QgdGhlIG92ZXJyaWRlcyBmb3JcbiAgICAvLyB0aGUgcmVsYXRpb25zIHRoYXQgYXJlIGFjdHVhbGx5IHVzZWQgaW4gdGhlIGdyYXBoLCBlLmcuIHRocm91Z2hcbiAgICAvLyBgbW9kZWxHcmFwaFRvRXhwcmVzc2lvbihkYXRhKWAuIFNob3VsZCB3ZSBldmVyIHN3aXRjaCB0byBvdXIgb3duXG4gICAgLy8gaW1wbGVtZW50YXRpb24gb2YgKkFuZEZldGNoKCkgbWV0aG9kcywgd2UgYWxyZWFkeSBoYXZlIHRvIGNhbGwgdGhpcy5cbiAgICBjb25zdCBwcm9jZXNzZWQgPSB7fVxuICAgIGNvbnN0IHByb2Nlc3NNb2RlbENsYXNzID0gbW9kZWxDbGFzcyA9PiB7XG4gICAgICBjb25zdCB7IG5hbWUgfSA9IG1vZGVsQ2xhc3NcbiAgICAgIC8vIE9ubHkgcHJvY2VzcyBlYWNoIG1vZGVsQ2xhc3Mgb25jZSwgdG8gYXZvaWQgY2lyY3VsYXIgcmVmZXJlbmNlIGxvb3BzLlxuICAgICAgaWYgKCFwcm9jZXNzZWRbbmFtZV0pIHtcbiAgICAgICAgcHJvY2Vzc2VkW25hbWVdID0gdHJ1ZVxuICAgICAgICBjb25zdCB7IHJlbGF0aW9ucyB9ID0gbW9kZWxDbGFzcy5kZWZpbml0aW9uXG4gICAgICAgIGNvbnN0IHJlbGF0aW9uSW5zdGFuY2VzID0gbW9kZWxDbGFzcy5nZXRSZWxhdGlvbnMoKVxuICAgICAgICBmb3IgKGNvbnN0IFtuYW1lLCByZWxhdGlvbl0gb2YgT2JqZWN0LmVudHJpZXMocmVsYXRpb25zKSkge1xuICAgICAgICAgIGNvbnN0IGdyYXBoT3B0aW9ucyA9IHRoaXMuZ2V0R3JhcGhPcHRpb25zKHJlbGF0aW9uKVxuICAgICAgICAgIGlmIChncmFwaE9wdGlvbnMpIHtcbiAgICAgICAgICAgIC8vIExvb3AgdGhyb3VnaCBgdGhpcy5vcHRpb25zYCBhbmQgb25seSBsb29rIGZvciBvdmVycmlkZXMgb2YgdGhlbSxcbiAgICAgICAgICAgIC8vIHNpbmNlIGByZWxhdGlvbi5ncmFwaE9wdGlvbnNgIGlzIGFjcm9zcyBpbnNlcnQgIC8gdXBzZXJ0ICYgY28uLFxuICAgICAgICAgICAgLy8gYnV0IG5vdCBhbGwgb2YgdGhlbSB1c2UgYWxsIG9wdGlvbnMgKGluc2VydCBkZWZpbmVzIGxlc3MpLlxuICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gdGhpcy5vcHRpb25zKSB7XG4gICAgICAgICAgICAgIGlmIChrZXkgaW4gZ3JhcGhPcHRpb25zICYmXG4gICAgICAgICAgICAgICAgICBncmFwaE9wdGlvbnNba2V5XSAhPT0gdGhpcy5vcHRpb25zW2tleV0gJiZcbiAgICAgICAgICAgICAgICAgICF0aGlzLm92ZXJyaWRlc1trZXldKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5udW1PdmVycmlkZXMrK1xuICAgICAgICAgICAgICAgIHRoaXMub3ZlcnJpZGVzW2tleV0gPSBbXVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBLZWVwIHNjYW5uaW5nIHVudGlsIHdlJ3JlIGRvbmUgb3IgZm91bmQgdGhhdCBhbGwgb3B0aW9ucyBoYXZlXG4gICAgICAgICAgICAvLyBvdmVycmlkZXMuXG4gICAgICAgICAgICBpZiAodGhpcy5udW1PdmVycmlkZXMgPCB0aGlzLm51bU9wdGlvbnMpIHtcbiAgICAgICAgICAgICAgcHJvY2Vzc01vZGVsQ2xhc3MocmVsYXRpb25JbnN0YW5jZXNbbmFtZV0ucmVsYXRlZE1vZGVsQ2xhc3MpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHJvY2Vzc01vZGVsQ2xhc3ModGhpcy5yb290TW9kZWxDbGFzcylcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWxscyB0aGUgZW1wdHkgb3ZlcnJpZGUgYXJyYXlzIGNvbGxlY3RlZCBieSBjb2xsZWN0T3ZlcnJpZGVzKCkgYnkgd2Fsa2luZ1xuICAgKiB0aHJvdWdoIHRoZSBhY3R1YWwgZ3JhcGggYW5kIGZpbmRpbmcgcmVsYXRpb25zIHRoYXQgaGF2ZSBvdmVycmlkZXMsIGFuZFxuICAgKiBidWlsZGluZyByZWxhdGlvbiBwYXRocyBmb3IgdGhlbS5cbiAgICovXG4gIHByb2Nlc3NPdmVycmlkZXMoKSB7XG4gICAgY29uc3QgZXhwciA9IG1vZGVsR3JhcGhUb0V4cHJlc3Npb24odGhpcy5kYXRhKVxuXG4gICAgY29uc3QgcHJvY2Vzc0V4cHJlc3Npb24gPVxuICAgICAgKGV4cHIsIG1vZGVsQ2xhc3MsIHJlbGF0aW9uLCByZWxhdGlvblBhdGggPSAnJykgPT4ge1xuICAgICAgICBpZiAocmVsYXRpb24pIHtcbiAgICAgICAgICBjb25zdCBncmFwaE9wdGlvbnMgPSB0aGlzLmdldEdyYXBoT3B0aW9ucyhyZWxhdGlvbilcbiAgICAgICAgICAvLyBMb29wIHRocm91Z2ggYWxsIG92ZXJyaWRlIG9wdGlvbnMsIGZpZ3VyZSBvdXQgdGhlaXIgc2V0dGluZ3MgZm9yXG4gICAgICAgICAgLy8gdGhlIGN1cnJlbnQgcmVsYXRpb24gYW5kIGJ1aWxkIHJlbGF0aW9uIGV4cHJlc3Npb24gYXJyYXlzIGZvciBlYWNoXG4gICAgICAgICAgLy8gb3ZlcnJpZGUgcmVmbGVjdGluZyB0aGVpciBuZXN0ZWQgc2V0dGluZ3MgaW4gYXJyYXlzIG9mIGV4cHJlc3Npb25zLlxuICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMub3ZlcnJpZGVzKSB7XG4gICAgICAgICAgICBjb25zdCBvcHRpb24gPSBncmFwaE9wdGlvbnNba2V5XSA/PyB0aGlzLm9wdGlvbnNba2V5XVxuICAgICAgICAgICAgaWYgKG9wdGlvbikge1xuICAgICAgICAgICAgICB0aGlzLm92ZXJyaWRlc1trZXldLnB1c2gocmVsYXRpb25QYXRoKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIEFsc28gY29sbGVjdCBhbnkgbWFueS10by1tYW55IHBpdm90IHRhYmxlIGV4dHJhIHByb3BlcnRpZXMuXG4gICAgICAgICAgY29uc3QgZXh0cmEgPSByZWxhdGlvbi50aHJvdWdoPy5leHRyYVxuICAgICAgICAgIGlmIChleHRyYT8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5leHRyYXNbcmVsYXRpb25QYXRoXSA9IGV4dHJhXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgeyByZWxhdGlvbnMgfSA9IG1vZGVsQ2xhc3MuZGVmaW5pdGlvblxuICAgICAgICBjb25zdCByZWxhdGlvbkluc3RhbmNlcyA9IG1vZGVsQ2xhc3MuZ2V0UmVsYXRpb25zKClcbiAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gZXhwcikge1xuICAgICAgICAgIGNvbnN0IGNoaWxkRXhwciA9IGV4cHJba2V5XVxuICAgICAgICAgIGNvbnN0IHsgcmVsYXRlZE1vZGVsQ2xhc3MgfSA9IHJlbGF0aW9uSW5zdGFuY2VzW2tleV1cbiAgICAgICAgICBwcm9jZXNzRXhwcmVzc2lvbihcbiAgICAgICAgICAgIGNoaWxkRXhwcixcbiAgICAgICAgICAgIHJlbGF0ZWRNb2RlbENsYXNzLFxuICAgICAgICAgICAgcmVsYXRpb25zW2tleV0sXG4gICAgICAgICAgICBhcHBlbmRQYXRoKHJlbGF0aW9uUGF0aCwgJy4nLCBrZXkpXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICBwcm9jZXNzRXhwcmVzc2lvbihleHByLCB0aGlzLnJvb3RNb2RlbENsYXNzKVxuICB9XG5cbiAgc2hvdWxkUmVsYXRlKHJlbGF0aW9uUGF0aCkge1xuICAgIC8vIFJvb3Qgb2JqZWN0cyAocmVsYXRpb25QYXRoID09PSAnJykgc2hvdWxkIG5ldmVyIHJlbGF0ZS5cbiAgICBpZiAocmVsYXRpb25QYXRoICE9PSAnJykge1xuICAgICAgY29uc3QgeyByZWxhdGUgfSA9IHRoaXMub3ZlcnJpZGVzXG4gICAgICByZXR1cm4gcmVsYXRlXG4gICAgICAgIC8vIFNlZSBpZiB0aGUgcmVsYXRlIG92ZXJyaWRlcyBjb250YWluIHRoaXMgcGFydGljdWxhciByZWxhdGlvbi1QYXRoXG4gICAgICAgIC8vIGFuZCBvbmx5IHJlbW92ZSBhbmQgcmVzdG9yZSByZWxhdGlvbiBkYXRhIGlmIHJlbGF0ZSBpcyB0byBiZSB1c2VkXG4gICAgICAgID8gcmVsYXRlLmluY2x1ZGVzKHJlbGF0aW9uUGF0aClcbiAgICAgICAgOiB0aGlzLm9wdGlvbnMucmVsYXRlXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgcmVsYXRlIG9wdGlvbiBieSBkZXRlY3RpbmcgT2JqZWN0aW9uIGluc3RhbmNlcyBpbiB0aGUgZ3JhcGggYW5kXG4gICAqIGNvbnZlcnRpbmcgdGhlbSB0byBzaGFsbG93IGlkIGxpbmtzLlxuICAgKlxuICAgKiBGb3IgZGV0YWlscywgc2VlOlxuICAgKiBodHRwczovL2dpdHRlci5pbS9WaW5jaXQvb2JqZWN0aW9uLmpzP2F0PTVhNDI0NmVlYmEzOWE1M2YxYWEzYTNiMVxuICAgKi9cbiAgcHJvY2Vzc1JlbGF0ZXMoZGF0YSwgcmVsYXRpb25QYXRoID0gJycsIGRhdGFQYXRoID0gJycpIHtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgaWYgKGRhdGEuJGlzT2JqZWN0aW9uTW9kZWwpIHtcbiAgICAgICAgY29uc3QgeyBjb25zdHJ1Y3RvciB9ID0gZGF0YVxuICAgICAgICBsZXQgY29weVxuICAgICAgICBpZiAodGhpcy5zaG91bGRSZWxhdGUocmVsYXRpb25QYXRoKSkge1xuICAgICAgICAgIC8vIEZvciByZWxhdGVzLCBzdGFydCB3aXRoIGEgcmVmZXJlbmNlIG1vZGVsIHRoYXQgb25seSBjb250YWlucyB0aGVcbiAgICAgICAgICAvLyBpZCAvICNyZWYgZmllbGRzLCBhbmQgYW55IG1hbnktdG8tbWFueSBwaXZvdCB0YWJsZSBleHRyYSB2YWx1ZXM6XG4gICAgICAgICAgY29weSA9IGNvbnN0cnVjdG9yLmdldFJlZmVyZW5jZShkYXRhLCB0aGlzLmV4dHJhc1tyZWxhdGlvblBhdGhdKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIFRoaXMgaXNuJ3QgYSByZWxhdGUsIHNvIGNyZWF0ZSBhIHByb3BlciBzaGFsbG93IGNsb25lOlxuICAgICAgICAgIC8vIE5PVEU6IFRoaXMgYWxzbyBjb3BpZXMgYCQkcXVlcnlQcm9wc2AsIHdoaWNoIGlzIGNydWNpYWwgZm9yIG1vcmVcbiAgICAgICAgICAvLyBhZHZhbmNlZCBPYmplY3Rpb24uanMgZmVhdHVyZXMgdG8gd29yaywgZS5nLiBMaXRlcmFsQnVpbGRlcjpcbiAgICAgICAgICBjb3B5ID0gZGF0YS4kY2xvbmUoeyBzaGFsbG93OiB0cnVlIH0pXG4gICAgICAgICAgLy8gRm9sbG93IGFsbCByZWxhdGlvbnMgYW5kIGtlZXAgcHJvY2Vzc2luZzpcbiAgICAgICAgICBmb3IgKGNvbnN0IHsgbmFtZSB9IG9mIE9iamVjdC52YWx1ZXMoY29uc3RydWN0b3IuZ2V0UmVsYXRpb25zKCkpKSB7XG4gICAgICAgICAgICBpZiAobmFtZSBpbiBkYXRhKSB7XG4gICAgICAgICAgICAgIGNvcHlbbmFtZV0gPSB0aGlzLnByb2Nlc3NSZWxhdGVzKFxuICAgICAgICAgICAgICAgIGRhdGFbbmFtZV0sXG4gICAgICAgICAgICAgICAgYXBwZW5kUGF0aChyZWxhdGlvblBhdGgsICcuJywgbmFtZSksXG4gICAgICAgICAgICAgICAgYXBwZW5kUGF0aChkYXRhUGF0aCwgJy8nLCBuYW1lKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjb3B5XG4gICAgICB9IGVsc2UgaWYgKGlzQXJyYXkoZGF0YSkpIHtcbiAgICAgICAgLy8gUG90ZW50aWFsbHkgYSBoYXMtbWFueSByZWxhdGlvbiwgc28ga2VlcCBwcm9jZXNzaW5nIHJlbGF0ZXM6XG4gICAgICAgIHJldHVybiBkYXRhLm1hcCgoZW50cnksIGluZGV4KSA9PiB0aGlzLnByb2Nlc3NSZWxhdGVzKFxuICAgICAgICAgIGVudHJ5LFxuICAgICAgICAgIHJlbGF0aW9uUGF0aCxcbiAgICAgICAgICBhcHBlbmRQYXRoKGRhdGFQYXRoLCAnLycsIGluZGV4KVxuICAgICAgICApKVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZGF0YVxuICB9XG59XG5cbmZ1bmN0aW9uIGFwcGVuZFBhdGgocGF0aCwgc2VwYXJhdG9yLCB0b2tlbikge1xuICByZXR1cm4gcGF0aCAhPT0gJycgPyBgJHtwYXRofSR7c2VwYXJhdG9yfSR7dG9rZW59YCA6IHRva2VuXG59XG4iXX0=
|
|
185
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ncmFwaC9EaXRvR3JhcGhQcm9jZXNzb3IuanMiXSwibmFtZXMiOlsiRGl0b0dyYXBoUHJvY2Vzc29yIiwiY29uc3RydWN0b3IiLCJyb290TW9kZWxDbGFzcyIsImRhdGEiLCJvcHRpb25zIiwic2V0dGluZ3MiLCJza2lwVmFsaWRhdGlvbiIsImlzQXJyYXkiLCJvdmVycmlkZXMiLCJleHRyYXMiLCJudW1PcHRpb25zIiwiT2JqZWN0Iiwia2V5cyIsImxlbmd0aCIsIm51bU92ZXJyaWRlcyIsInByb2Nlc3NPdmVycmlkZXMiLCJjb2xsZWN0T3ZlcnJpZGVzIiwiZ2V0T3B0aW9ucyIsImdldERhdGEiLCJwcm9jZXNzUmVsYXRlcyIsImdldEdyYXBoT3B0aW9ucyIsInJlbGF0aW9uIiwib3duZXJPcHRpb25zIiwicmVsYXRlIiwidW5yZWxhdGUiLCJncmFwaE9wdGlvbnMiLCJvd25lciIsInByb2Nlc3NlZCIsInByb2Nlc3NNb2RlbENsYXNzIiwibW9kZWxDbGFzcyIsIm5hbWUiLCJyZWxhdGlvbnMiLCJkZWZpbml0aW9uIiwicmVsYXRpb25JbnN0YW5jZXMiLCJnZXRSZWxhdGlvbnMiLCJlbnRyaWVzIiwia2V5IiwicmVsYXRlZE1vZGVsQ2xhc3MiLCJleHByIiwicHJvY2Vzc0V4cHJlc3Npb24iLCJyZWxhdGlvblBhdGgiLCJvcHRpb24iLCJwdXNoIiwiZXh0cmEiLCJ0aHJvdWdoIiwiY2hpbGRFeHByIiwiYXBwZW5kUGF0aCIsInNob3VsZFJlbGF0ZSIsImluY2x1ZGVzIiwiZGF0YVBhdGgiLCIkaXNPYmplY3Rpb25Nb2RlbCIsImNvcHkiLCJnZXRSZWZlcmVuY2UiLCIkY2xvbmUiLCJzaGFsbG93IiwidmFsdWVzIiwibWFwIiwiZW50cnkiLCJpbmRleCIsInBhdGgiLCJzZXBhcmF0b3IiLCJ0b2tlbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBRU8sTUFBTUEsa0JBQU4sQ0FBeUI7QUFDOUJDLEVBQUFBLFdBQVcs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bnRlbnQiOlsiaW1wb3J0IHsgaXNBcnJheSB9IGZyb20gJ0BkaXRvanMvdXRpbHMnXG5pbXBvcnQgeyBtb2RlbEdyYXBoVG9FeHByZXNzaW9uLCBlbnN1cmVNb2RlbEFycmF5IH0gZnJvbSAnLidcblxuZXhwb3J0IGNsYXNzIERpdG9HcmFwaFByb2Nlc3NvciB7XG4gIGNvbnN0cnVjdG9yKHJvb3RNb2RlbENsYXNzLCBkYXRhLCBvcHRpb25zID0ge30sIHNldHRpbmdzID0ge30pIHtcbiAgICB0aGlzLnJvb3RNb2RlbENsYXNzID0gcm9vdE1vZGVsQ2xhc3NcbiAgICB0aGlzLmRhdGEgPSBlbnN1cmVNb2RlbEFycmF5KHJvb3RNb2RlbENsYXNzLCBkYXRhLCB7XG4gICAgICBza2lwVmFsaWRhdGlvbjogdHJ1ZVxuICAgIH0pXG4gICAgdGhpcy5pc0FycmF5ID0gaXNBcnJheShkYXRhKVxuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnNcbiAgICB0aGlzLnNldHRpbmdzID0gc2V0dGluZ3NcbiAgICB0aGlzLm92ZXJyaWRlcyA9IHt9XG4gICAgdGhpcy5leHRyYXMgPSB7fVxuICAgIHRoaXMubnVtT3B0aW9ucyA9IE9iamVjdC5rZXlzKG9wdGlvbnMpLmxlbmd0aFxuICAgIHRoaXMubnVtT3ZlcnJpZGVzID0gMFxuICAgIGlmIChzZXR0aW5ncy5wcm9jZXNzT3ZlcnJpZGVzKSB7XG4gICAgICB0aGlzLmNvbGxlY3RPdmVycmlkZXMoKVxuICAgICAgaWYgKHRoaXMubnVtT3ZlcnJpZGVzID4gMCkge1xuICAgICAgICB0aGlzLnByb2Nlc3NPdmVycmlkZXMoKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldE9wdGlvbnMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnRoaXMub3B0aW9ucyxcbiAgICAgIC4uLnRoaXMub3ZlcnJpZGVzXG4gICAgfVxuICB9XG5cbiAgZ2V0RGF0YSgpIHtcbiAgICAvLyBJZiBzZXR0aW5nLnByb2Nlc3NSZWxhdGVzIGlzIHVzZWQsIGNhbGwgcHJvY2Vzc1JlbGF0ZSgpIHRvIGZpbHRlciBvdXRcbiAgICAvLyBuZXN0ZWQgcmVsYXRpb25zIG9mIG1vZGVscyB0aGF0IGFyZSB1c2VkIGZvciByZWxhdGVzLlxuICAgIGNvbnN0IGRhdGEgPSB0aGlzLnNldHRpbmdzLnByb2Nlc3NSZWxhdGVzXG4gICAgICA/IHRoaXMucHJvY2Vzc1JlbGF0ZXModGhpcy5kYXRhKVxuICAgICAgOiB0aGlzLmRhdGFcbiAgICByZXR1cm4gdGhpcy5pc0FycmF5ID8gZGF0YSA6IGRhdGFbMF1cbiAgfVxuXG4gIGdldEdyYXBoT3B0aW9ucyhyZWxhdGlvbikge1xuICAgIC8vIFdoZW4gYSByZWxhdGlvbiBpcyBvd25lciBvZiBpdHMgZGF0YSwgdGhlbiBhIGZhbGwtYmFjayBmb3IgYGdyYXBoT3B0aW9uc2BcbiAgICAvLyBpcyBwcm92aWRlZCB3aGVyZSBib3RoIGByZWxhdGVgIGFuZCBgdW5yZWxhdGVgIGlzIGRpc2FibGVkLCByZXN1bHRpbmcgaW5cbiAgICAvLyBpbnNlcnRzIGFuZCBkZWxldGVzIGluc3RlYWQuXG4gICAgY29uc3Qgb3duZXJPcHRpb25zID0ge1xuICAgICAgcmVsYXRlOiBmYWxzZSxcbiAgICAgIHVucmVsYXRlOiBmYWxzZVxuICAgIH1cbiAgICAvLyBEZXRlcm1pbmUgdGhlIGBncmFwaE9wdGlvbnNgIHRvIGJlIHVzZWQgZm9yIHRoaXMgcmVsYXRpb24uXG4gICAgcmV0dXJuIHJlbGF0aW9uLmdyYXBoT3B0aW9ucyB8fCByZWxhdGlvbi5vd25lciAmJiBvd25lck9wdGlvbnMgfHwge31cbiAgfVxuXG4gIC8qKlxuICAgKiBMb29wcyB0aHJvdWdoIGFsbCBuZXN0ZWQgcmVsYXRpb25zIGFuZCBmaW5kcyB0aGUgb25lcyB0aGF0IGRlZmluZSBsb2NhbFxuICAgKiBvdmVycmlkZXMgb2YgdGhlIGdsb2JhbCBvcHRpb25zLCB0aGVuIGNvbGxlY3RzIGVtcHR5IG92ZXJyaWRlIGFycmF5cyBmb3JcbiAgICogZWFjaCBzZXR0aW5nLCBzbyBwcm9jZXNzT3ZlcnJpZGVzKCkgY2FuIGZpbGwgdGhlbSBpZiBhbnkgb3ZlcnJpZGVzIGV4aXN0LlxuICAgKi9cbiAgY29sbGVjdE92ZXJyaWRlcygpIHtcbiAgICAvLyBUT0RPOiB3ZSBtYXkgd2FudCBvcHRpbWl6ZSB0aGlzIGNvZGUgdG8gb25seSBjb2xsZWN0IHRoZSBvdmVycmlkZXMgZm9yXG4gICAgLy8gdGhlIHJlbGF0aW9ucyB0aGF0IGFyZSBhY3R1YWxseSB1c2VkIGluIHRoZSBncmFwaCwgZS5nLiB0aHJvdWdoXG4gICAgLy8gYG1vZGVsR3JhcGhUb0V4cHJlc3Npb24oZGF0YSlgLiBTaG91bGQgd2UgZXZlciBzd2l0Y2ggdG8gb3VyIG93blxuICAgIC8vIGltcGxlbWVudGF0aW9uIG9mICpBbmRGZXRjaCgpIG1ldGhvZHMsIHdlIGFscmVhZHkgaGF2ZSB0byBjYWxsIHRoaXMuXG4gICAgY29uc3QgcHJvY2Vzc2VkID0ge31cbiAgICBjb25zdCBwcm9jZXNzTW9kZWxDbGFzcyA9IG1vZGVsQ2xhc3MgPT4ge1xuICAgICAgY29uc3QgeyBuYW1lIH0gPSBtb2RlbENsYXNzXG4gICAgICAvLyBPbmx5IHByb2Nlc3MgZWFjaCBtb2RlbENsYXNzIG9uY2UsIHRvIGF2b2lkIGNpcmN1bGFyIHJlZmVyZW5jZSBsb29wcy5cbiAgICAgIGlmICghcHJvY2Vzc2VkW25hbWVdKSB7XG4gICAgICAgIHByb2Nlc3NlZFtuYW1lXSA9IHRydWVcbiAgICAgICAgY29uc3QgeyByZWxhdGlvbnMgfSA9IG1vZGVsQ2xhc3MuZGVmaW5pdGlvblxuICAgICAgICBjb25zdCByZWxhdGlvbkluc3RhbmNlcyA9IG1vZGVsQ2xhc3MuZ2V0UmVsYXRpb25zKClcbiAgICAgICAgZm9yIChjb25zdCBbbmFtZSwgcmVsYXRpb25dIG9mIE9iamVjdC5lbnRyaWVzKHJlbGF0aW9ucykpIHtcbiAgICAgICAgICBjb25zdCBncmFwaE9wdGlvbnMgPSB0aGlzLmdldEdyYXBoT3B0aW9ucyhyZWxhdGlvbilcbiAgICAgICAgICBpZiAoZ3JhcGhPcHRpb25zKSB7XG4gICAgICAgICAgICAvLyBMb29wIHRocm91Z2ggYHRoaXMub3B0aW9uc2AgYW5kIG9ubHkgbG9vayBmb3Igb3ZlcnJpZGVzIG9mIHRoZW0sXG4gICAgICAgICAgICAvLyBzaW5jZSBgcmVsYXRpb24uZ3JhcGhPcHRpb25zYCBpcyBhY3Jvc3MgaW5zZXJ0ICAvIHVwc2VydCAmIGNvLixcbiAgICAgICAgICAgIC8vIGJ1dCBub3QgYWxsIG9mIHRoZW0gdXNlIGFsbCBvcHRpb25zIChpbnNlcnQgZGVmaW5lcyBsZXNzKS5cbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIHRoaXMub3B0aW9ucykge1xuICAgICAgICAgICAgICBpZiAoa2V5IGluIGdyYXBoT3B0aW9ucyAmJlxuICAgICAgICAgICAgICAgICAgZ3JhcGhPcHRpb25zW2tleV0gIT09IHRoaXMub3B0aW9uc1trZXldICYmXG4gICAgICAgICAgICAgICAgICAhdGhpcy5vdmVycmlkZXNba2V5XSkge1xuICAgICAgICAgICAgICAgIHRoaXMubnVtT3ZlcnJpZGVzKytcbiAgICAgICAgICAgICAgICB0aGlzLm92ZXJyaWRlc1trZXldID0gW11cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gS2VlcCBzY2FubmluZyB1bnRpbCB3ZSdyZSBkb25lIG9yIGZvdW5kIHRoYXQgYWxsIG9wdGlvbnMgaGF2ZVxuICAgICAgICAgICAgLy8gb3ZlcnJpZGVzLlxuICAgICAgICAgICAgaWYgKHRoaXMubnVtT3ZlcnJpZGVzIDwgdGhpcy5udW1PcHRpb25zKSB7XG4gICAgICAgICAgICAgIHByb2Nlc3NNb2RlbENsYXNzKHJlbGF0aW9uSW5zdGFuY2VzW25hbWVdLnJlbGF0ZWRNb2RlbENsYXNzKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHByb2Nlc3NNb2RlbENsYXNzKHRoaXMucm9vdE1vZGVsQ2xhc3MpXG4gIH1cblxuICAvKipcbiAgICogRmlsbHMgdGhlIGVtcHR5IG92ZXJyaWRlIGFycmF5cyBjb2xsZWN0ZWQgYnkgY29sbGVjdE92ZXJyaWRlcygpIGJ5IHdhbGtpbmdcbiAgICogdGhyb3VnaCB0aGUgYWN0dWFsIGdyYXBoIGFuZCBmaW5kaW5nIHJlbGF0aW9ucyB0aGF0IGhhdmUgb3ZlcnJpZGVzLCBhbmRcbiAgICogYnVpbGRpbmcgcmVsYXRpb24gcGF0aHMgZm9yIHRoZW0uXG4gICAqL1xuICBwcm9jZXNzT3ZlcnJpZGVzKCkge1xuICAgIGNvbnN0IGV4cHIgPSBtb2RlbEdyYXBoVG9FeHByZXNzaW9uKHRoaXMuZGF0YSlcblxuICAgIGNvbnN0IHByb2Nlc3NFeHByZXNzaW9uID1cbiAgICAgIChleHByLCBtb2RlbENsYXNzLCByZWxhdGlvbiwgcmVsYXRpb25QYXRoID0gJycpID0+IHtcbiAgICAgICAgaWYgKHJlbGF0aW9uKSB7XG4gICAgICAgICAgY29uc3QgZ3JhcGhPcHRpb25zID0gdGhpcy5nZXRHcmFwaE9wdGlvbnMocmVsYXRpb24pXG4gICAgICAgICAgLy8gTG9vcCB0aHJvdWdoIGFsbCBvdmVycmlkZSBvcHRpb25zLCBmaWd1cmUgb3V0IHRoZWlyIHNldHRpbmdzIGZvclxuICAgICAgICAgIC8vIHRoZSBjdXJyZW50IHJlbGF0aW9uIGFuZCBidWlsZCByZWxhdGlvbiBleHByZXNzaW9uIGFycmF5cyBmb3IgZWFjaFxuICAgICAgICAgIC8vIG92ZXJyaWRlIHJlZmxlY3RpbmcgdGhlaXIgbmVzdGVkIHNldHRpbmdzIGluIGFycmF5cyBvZiBleHByZXNzaW9ucy5cbiAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiB0aGlzLm92ZXJyaWRlcykge1xuICAgICAgICAgICAgY29uc3Qgb3B0aW9uID0gZ3JhcGhPcHRpb25zW2tleV0gPz8gdGhpcy5vcHRpb25zW2tleV1cbiAgICAgICAgICAgIGlmIChvcHRpb24pIHtcbiAgICAgICAgICAgICAgdGhpcy5vdmVycmlkZXNba2V5XS5wdXNoKHJlbGF0aW9uUGF0aClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBBbHNvIGNvbGxlY3QgYW55IG1hbnktdG8tbWFueSBwaXZvdCB0YWJsZSBleHRyYSBwcm9wZXJ0aWVzLlxuICAgICAgICAgIGNvbnN0IGV4dHJhID0gcmVsYXRpb24udGhyb3VnaD8uZXh0cmFcbiAgICAgICAgICBpZiAoZXh0cmE/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuZXh0cmFzW3JlbGF0aW9uUGF0aF0gPSBleHRyYVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHsgcmVsYXRpb25zIH0gPSBtb2RlbENsYXNzLmRlZmluaXRpb25cbiAgICAgICAgY29uc3QgcmVsYXRpb25JbnN0YW5jZXMgPSBtb2RlbENsYXNzLmdldFJlbGF0aW9ucygpXG4gICAgICAgIGZvciAoY29uc3Qga2V5IGluIGV4cHIpIHtcbiAgICAgICAgICBjb25zdCBjaGlsZEV4cHIgPSBleHByW2tleV1cbiAgICAgICAgICBjb25zdCB7IHJlbGF0ZWRNb2RlbENsYXNzIH0gPSByZWxhdGlvbkluc3RhbmNlc1trZXldXG4gICAgICAgICAgcHJvY2Vzc0V4cHJlc3Npb24oXG4gICAgICAgICAgICBjaGlsZEV4cHIsXG4gICAgICAgICAgICByZWxhdGVkTW9kZWxDbGFzcyxcbiAgICAgICAgICAgIHJlbGF0aW9uc1trZXldLFxuICAgICAgICAgICAgYXBwZW5kUGF0aChyZWxhdGlvblBhdGgsICcuJywga2V5KVxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgcHJvY2Vzc0V4cHJlc3Npb24oZXhwciwgdGhpcy5yb290TW9kZWxDbGFzcylcbiAgfVxuXG4gIHNob3VsZFJlbGF0ZShyZWxhdGlvblBhdGgpIHtcbiAgICAvLyBSb290IG9iamVjdHMgKHJlbGF0aW9uUGF0aCA9PT0gJycpIHNob3VsZCBuZXZlciByZWxhdGUuXG4gICAgaWYgKHJlbGF0aW9uUGF0aCAhPT0gJycpIHtcbiAgICAgIGNvbnN0IHsgcmVsYXRlIH0gPSB0aGlzLm92ZXJyaWRlc1xuICAgICAgcmV0dXJuIHJlbGF0ZVxuICAgICAgICAvLyBTZWUgaWYgdGhlIHJlbGF0ZSBvdmVycmlkZXMgY29udGFpbiB0aGlzIHBhcnRpY3VsYXIgcmVsYXRpb24tUGF0aFxuICAgICAgICAvLyBhbmQgb25seSByZW1vdmUgYW5kIHJlc3RvcmUgcmVsYXRpb24gZGF0YSBpZiByZWxhdGUgaXMgdG8gYmUgdXNlZFxuICAgICAgICA/IHJlbGF0ZS5pbmNsdWRlcyhyZWxhdGlvblBhdGgpXG4gICAgICAgIDogdGhpcy5vcHRpb25zLnJlbGF0ZVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHJlbGF0ZSBvcHRpb24gYnkgZGV0ZWN0aW5nIE9iamVjdGlvbiBpbnN0YW5jZXMgaW4gdGhlIGdyYXBoIGFuZFxuICAgKiBjb252ZXJ0aW5nIHRoZW0gdG8gc2hhbGxvdyBpZCBsaW5rcy5cbiAgICpcbiAgICogRm9yIGRldGFpbHMsIHNlZTpcbiAgICogaHR0cHM6Ly9naXR0ZXIuaW0vVmluY2l0L29iamVjdGlvbi5qcz9hdD01YTQyNDZlZWJhMzlhNTNmMWFhM2EzYjFcbiAgICovXG4gIHByb2Nlc3NSZWxhdGVzKGRhdGEsIHJlbGF0aW9uUGF0aCA9ICcnLCBkYXRhUGF0aCA9ICcnKSB7XG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIGlmIChkYXRhLiRpc09iamVjdGlvbk1vZGVsKSB7XG4gICAgICAgIGNvbnN0IHsgY29uc3RydWN0b3IgfSA9IGRhdGFcbiAgICAgICAgbGV0IGNvcHlcbiAgICAgICAgaWYgKHRoaXMuc2hvdWxkUmVsYXRlKHJlbGF0aW9uUGF0aCkpIHtcbiAgICAgICAgICAvLyBGb3IgcmVsYXRlcywgc3RhcnQgd2l0aCBhIHJlZmVyZW5jZSBtb2RlbCB0aGF0IG9ubHkgY29udGFpbnMgdGhlXG4gICAgICAgICAgLy8gaWQgLyAjcmVmIGZpZWxkcywgYW5kIGFueSBtYW55LXRvLW1hbnkgcGl2b3QgdGFibGUgZXh0cmEgdmFsdWVzOlxuICAgICAgICAgIGNvcHkgPSBjb25zdHJ1Y3Rvci5nZXRSZWZlcmVuY2UoZGF0YSwgdGhpcy5leHRyYXNbcmVsYXRpb25QYXRoXSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBUaGlzIGlzbid0IGEgcmVsYXRlLCBzbyBjcmVhdGUgYSBwcm9wZXIgc2hhbGxvdyBjbG9uZTpcbiAgICAgICAgICAvLyBOT1RFOiBUaGlzIGFsc28gY29waWVzIGAkJHF1ZXJ5UHJvcHNgLCB3aGljaCBpcyBjcnVjaWFsIGZvciBtb3JlXG4gICAgICAgICAgLy8gYWR2YW5jZWQgT2JqZWN0aW9uLmpzIGZlYXR1cmVzIHRvIHdvcmssIGUuZy4gTGl0ZXJhbEJ1aWxkZXI6XG4gICAgICAgICAgY29weSA9IGRhdGEuJGNsb25lKHsgc2hhbGxvdzogdHJ1ZSB9KVxuICAgICAgICAgIC8vIEZvbGxvdyBhbGwgcmVsYXRpb25zIGFuZCBrZWVwIHByb2Nlc3Npbmc6XG4gICAgICAgICAgZm9yIChjb25zdCB7IG5hbWUgfSBvZiBPYmplY3QudmFsdWVzKGNvbnN0cnVjdG9yLmdldFJlbGF0aW9ucygpKSkge1xuICAgICAgICAgICAgaWYgKG5hbWUgaW4gZGF0YSkge1xuICAgICAgICAgICAgICBjb3B5W25hbWVdID0gdGhpcy5wcm9jZXNzUmVsYXRlcyhcbiAgICAgICAgICAgICAgICBkYXRhW25hbWVdLFxuICAgICAgICAgICAgICAgIGFwcGVuZFBhdGgocmVsYXRpb25QYXRoLCAnLicsIG5hbWUpLFxuICAgICAgICAgICAgICAgIGFwcGVuZFBhdGgoZGF0YVBhdGgsICcvJywgbmFtZSlcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29weVxuICAgICAgfSBlbHNlIGlmIChpc0FycmF5KGRhdGEpKSB7XG4gICAgICAgIC8vIFBvdGVudGlhbGx5IGEgaGFzLW1hbnkgcmVsYXRpb24sIHNvIGtlZXAgcHJvY2Vzc2luZyByZWxhdGVzOlxuICAgICAgICByZXR1cm4gZGF0YS5tYXAoKGVudHJ5LCBpbmRleCkgPT4gdGhpcy5wcm9jZXNzUmVsYXRlcyhcbiAgICAgICAgICBlbnRyeSxcbiAgICAgICAgICByZWxhdGlvblBhdGgsXG4gICAgICAgICAgYXBwZW5kUGF0aChkYXRhUGF0aCwgJy8nLCBpbmRleClcbiAgICAgICAgKSlcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGRhdGFcbiAgfVxufVxuXG5mdW5jdGlvbiBhcHBlbmRQYXRoKHBhdGgsIHNlcGFyYXRvciwgdG9rZW4pIHtcbiAgcmV0dXJuIHBhdGggIT09ICcnID8gYCR7cGF0aH0ke3NlcGFyYXRvcn0ke3Rva2VufWAgOiB0b2tlblxufVxuIl19
|