@ditojs/server 0.272.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 +39 -5
- package/lib/app/SessionStore.js +3 -1
- package/lib/app/Validator.js +13 -1
- 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/seed.js +10 -2
- package/lib/cli/index.js +6 -2
- package/lib/controllers/AdminController.js +12 -2
- package/lib/controllers/CollectionController.js +15 -1
- package/lib/controllers/Controller.js +25 -1
- package/lib/controllers/ControllerAction.js +23 -14
- 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 +3 -1
- package/lib/decorators/returns.js +3 -1
- package/lib/errors/DatabaseError.js +5 -19
- package/lib/errors/ResponseError.js +4 -16
- 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 +21 -4
- 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 +7 -1
- package/lib/utils/object.js +9 -3
- package/package.json +29 -29
- package/src/app/Application.js +23 -3
- package/src/controllers/AdminController.js +1 -1
- package/src/controllers/ControllerAction.js +7 -13
- package/src/errors/DatabaseError.js +2 -23
- package/src/errors/ResponseError.js +1 -9
- package/src/models/Model.js +10 -8
package/lib/schema/relations.js
CHANGED
|
@@ -1,11 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
|
-
exports.
|
|
5
|
-
exports.isThroughRelationClass = isThroughRelationClass;
|
|
4
|
+
exports.addRelationSchemas = addRelationSchemas;
|
|
6
5
|
exports.convertRelation = convertRelation;
|
|
7
6
|
exports.convertRelations = convertRelations;
|
|
8
|
-
exports.
|
|
7
|
+
exports.getRelationClass = getRelationClass;
|
|
8
|
+
exports.isThroughRelationClass = isThroughRelationClass;
|
|
9
|
+
|
|
10
|
+
require("core-js/modules/esnext.async-iterator.map.js");
|
|
11
|
+
|
|
12
|
+
require("core-js/modules/esnext.iterator.map.js");
|
|
13
|
+
|
|
14
|
+
require("core-js/modules/esnext.async-iterator.filter.js");
|
|
15
|
+
|
|
16
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
|
17
|
+
|
|
18
|
+
require("core-js/modules/esnext.iterator.filter.js");
|
|
19
|
+
|
|
20
|
+
require("core-js/modules/esnext.async-iterator.find.js");
|
|
21
|
+
|
|
22
|
+
require("core-js/modules/esnext.iterator.find.js");
|
|
9
23
|
|
|
10
24
|
var _objection = require("objection");
|
|
11
25
|
|
|
@@ -257,4 +271,4 @@ function addRelationSchemas(modelClass, properties) {
|
|
|
257
271
|
|
|
258
272
|
return properties;
|
|
259
273
|
}
|
|
260
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWEvcmVsYXRpb25zLmpzIl0sIm5hbWVzIjpbInJlbGF0aW9uTG9va3VwIiwiYmVsb25nc1RvIiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJoYXNPbmUiLCJIYXNPbmVSZWxhdGlvbiIsImhhc09uZVRocm91Z2giLCJIYXNPbmVUaHJvdWdoUmVsYXRpb24iLCJoYXNNYW55IiwiSGFzTWFueVJlbGF0aW9uIiwibWFueVRvTWFueSIsIk1hbnlUb01hbnlSZWxhdGlvbiIsInJlbGF0aW9uQ2xhc3NlcyIsInRocm91Z2hSZWxhdGlvbkNsYXNzZXMiLCJNb2RlbFJlZmVyZW5jZSIsImNvbnN0cnVjdG9yIiwicmVmZXJlbmNlIiwibW9kZWxzIiwiYWxsb3dVbmtub3duIiwibW9kZWxOYW1lIiwibW9kZWxDbGFzcyIsInByb3BlcnR5TmFtZXMiLCJyZWYiLCJwcm9wZXJ0eU5hbWUiLCJzcGxpdCIsIlJlbGF0aW9uRXJyb3IiLCJwdXNoIiwiYXNWYWx1ZSIsInByb3BlcnRpZXMiLCJsZW5ndGgiLCJ0b1ZhbHVlIiwibWFwIiwicHJvcE5hbWUiLCJ0b1N0cmluZyIsInZhbHVlIiwiam9pbiIsImJ1aWxkVGhyb3VnaCIsInRvUmVmIiwiaW52ZXJzZSIsImZyb21OYW1lIiwiZnJvbVByb3BlcnRpZXMiLCJ0b05hbWUiLCJ0b1Byb3BlcnRpZXMiLCJmcm9tIiwidG8iLCJpIiwiZnJvbVByb3BlcnR5IiwidG9Qcm9wZXJ0eSIsInRocm91Z2hOYW1lIiwidGhyb3VnaEZyb20iLCJnZXRUaHJvdWdoUHJvcGVydHkiLCJ0aHJvdWdoVG8iLCJuYW1lIiwicHJvcGVydHkiLCJ0b0xvd2VyQ2FzZSIsInNsaWNlIiwiZ2V0UmVsYXRpb25DbGFzcyIsInJlbGF0aW9uIiwiUmVsYXRpb24iLCJpc1Byb3RvdHlwZU9mIiwiaXNUaHJvdWdoUmVsYXRpb25DbGFzcyIsInJlbGF0aW9uQ2xhc3MiLCJjb252ZXJ0UmVsYXRpb24iLCJzY2hlbWEiLCJ0aHJvdWdoIiwibW9kaWZ5Iiwic2NvcGUiLCJmaWx0ZXIiLCJudWxsYWJsZSIsIm93bmVyIiwicmVzdCIsInF1ZXJ5IiwiZmluZCIsIm9yaWdNb2RpZnkiLCJhcHBseVNjb3BlIiwiY29udmVydFJlbGF0aW9ucyIsIm93bmVyTW9kZWxDbGFzcyIsInJlbGF0aW9ucyIsImNvbnZlcnRlZCIsIk9iamVjdCIsImVudHJpZXMiLCJlcnIiLCJtZXNzYWdlIiwiYWRkUmVsYXRpb25TY2hlbWFzIiwicmVsYXRpb25JbnN0YW5jZSIsInZhbHVlcyIsImdldFJlbGF0aW9ucyIsInJlbGF0ZWRNb2RlbENsYXNzIiwicmVsYXRpb25EZWZpbml0aW9uIiwiZGVmaW5pdGlvbiIsImlzT25lVG9PbmUiLCIkcmVmIiwiYW55T2YiLCJ0eXBlIiwicmVsYXRlIiwiaXRlbXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQVFBOztBQUNBOztBQUlBLE1BQU1BLGNBQWMsR0FBRztBQUVyQkMsRUFBQUEsU0FBUyxFQUFFQywrQkFGVTtBQUdyQkMsRUFBQUEsTUFBTSxFQUFFQyx5QkFIYTtBQUlyQkMsRUFBQUEsYUFBYSxFQUFFQyxnQ0FKTTtBQU1yQkMsRUFBQUEsT0FBTyxFQUFFQywwQkFOWTtBQU9yQkMsRUFBQUEsVUFBVSxFQUFFQztBQVBTLENBQXZCO0FBVUEsTUFBTUMsZUFBZSxHQUFHO0FBQ3RCVCxFQUFBQSxvQkFBb0IsRUFBcEJBLCtCQURzQjtBQUV0QkUsRUFBQUEsY0FBYyxFQUFkQSx5QkFGc0I7QUFHdEJFLEVBQUFBLHFCQUFxQixFQUFyQkEsZ0NBSHNCO0FBSXRCRSxFQUFBQSxlQUFlLEVBQWZBLDBCQUpzQjtBQUt0QkUsRUFBQUEsa0JBQWtCLEVBQWxCQTtBQUxzQixDQUF4QjtBQVFBLE1BQU1FLHNCQUFzQixHQUFHO0FBQzdCRixFQUFBQSxrQkFBa0IsRUFBbEJBLDZCQUQ2QjtBQUU3QkosRUFBQUEscUJBQXFCLEVBQXJCQTtBQUY2QixDQUEvQjs7QUFLQSxNQUFNTyxjQUFOLENBQXFCO0FBQ25CQyxFQUFBQSxXQUFX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S0FBSyxDQUFDLENBQUQsQ0FGVDtBQUdBaEUsSUFBQUEsVUFBVSxDQUFDd0IsSUFBRCxDQUFWLEdBQW1Cc0MsVUFBVSxHQUN6QkssS0FEeUIsR0FFekI7QUFDQUYsTUFBQUEsSUFBSSxFQUFFLE9BRE47QUFFQUUsTUFBQUE7QUFGQSxLQUZKO0FBTUQ7O0FBQ0QsU0FBT25FLFVBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIFJlbGF0aW9uLFxuICBCZWxvbmdzVG9PbmVSZWxhdGlvbixcbiAgSGFzT25lUmVsYXRpb24sXG4gIEhhc09uZVRocm91Z2hSZWxhdGlvbixcbiAgSGFzTWFueVJlbGF0aW9uLFxuICBNYW55VG9NYW55UmVsYXRpb25cbn0gZnJvbSAnb2JqZWN0aW9uJ1xuaW1wb3J0IHsgUmVsYXRpb25FcnJvciB9IGZyb20gJ0AvZXJyb3JzJ1xuaW1wb3J0IHtcbiAgaXNPYmplY3QsIGlzQXJyYXksIGlzU3RyaW5nLCBhc0FycmF5LCBjYXBpdGFsaXplLCBjYW1lbGl6ZVxufSBmcm9tICdAZGl0b2pzL3V0aWxzJ1xuXG5jb25zdCByZWxhdGlvbkxvb2t1cCA9IHtcbiAgLy8gb25lOlxuICBiZWxvbmdzVG86IEJlbG9uZ3NUb09uZVJlbGF0aW9uLFxuICBoYXNPbmU6IEhhc09uZVJlbGF0aW9uLFxuICBoYXNPbmVUaHJvdWdoOiBIYXNPbmVUaHJvdWdoUmVsYXRpb24sXG4gIC8vIG1hbnk6XG4gIGhhc01hbnk6IEhhc01hbnlSZWxhdGlvbixcbiAgbWFueVRvTWFueTogTWFueVRvTWFueVJlbGF0aW9uXG59XG5cbmNvbnN0IHJlbGF0aW9uQ2xhc3NlcyA9IHtcbiAgQmVsb25nc1RvT25lUmVsYXRpb24sXG4gIEhhc09uZVJlbGF0aW9uLFxuICBIYXNPbmVUaHJvdWdoUmVsYXRpb24sXG4gIEhhc01hbnlSZWxhdGlvbixcbiAgTWFueVRvTWFueVJlbGF0aW9uXG59XG5cbmNvbnN0IHRocm91Z2hSZWxhdGlvbkNsYXNzZXMgPSB7XG4gIE1hbnlUb01hbnlSZWxhdGlvbixcbiAgSGFzT25lVGhyb3VnaFJlbGF0aW9uXG59XG5cbmNsYXNzIE1vZGVsUmVmZXJlbmNlIHtcbiAgY29uc3RydWN0b3IocmVmZXJlbmNlLCBtb2RlbHMsIGFsbG93VW5rbm93biA9IGZhbHNlKSB7XG4gICAgdGhpcy5tb2RlbE5hbWUgPSBudWxsXG4gICAgdGhpcy5tb2RlbENsYXNzID0gbnVsbFxuICAgIHRoaXMucHJvcGVydHlOYW1lcyA9IFtdXG4gICAgLy8gUGFyc2UgYW5kIHZhbGlkYXRlIG1vZGVsIGtleSByZWZlcmVuY2VzXG4gICAgZm9yIChjb25zdCByZWYgb2YgYXNBcnJheShyZWZlcmVuY2UpKSB7XG4gICAgICBjb25zdCBbbW9kZWxOYW1lLCBwcm9wZXJ0eU5hbWVdID0gcmVmPy5zcGxpdCgnLicpIHx8IFtdXG4gICAgICBjb25zdCBtb2RlbENsYXNzID0gbW9kZWxzW21vZGVsTmFtZV1cbiAgICAgIGlmICghbW9kZWxDbGFzcyAmJiAhYWxsb3dVbmtub3duKSB7XG4gICAgICAgIHRocm93IG5ldyBSZWxhdGlvbkVycm9yKFxuICAgICAgICAgIGBVbmtub3duIG1vZGVsIHJlZmVyZW5jZTogJHtyZWZ9YClcbiAgICAgIH1cbiAgICAgIGlmICghdGhpcy5tb2RlbE5hbWUpIHtcbiAgICAgICAgdGhpcy5tb2RlbE5hbWUgPSBtb2RlbE5hbWVcbiAgICAgICAgdGhpcy5tb2RlbENsYXNzID0gbW9kZWxDbGFzc1xuICAgICAgfSBlbHNlIGlmICh0aGlzLm1vZGVsTmFtZSAhPT0gbW9kZWxOYW1lKSB7XG4gICAgICAgIHRocm93IG5ldyBSZWxhdGlvbkVycm9yKFxuICAgICAgICAgIGBDb21wb3NpdGUga2V5cyBuZWVkIHRvIGJlIGRlZmluZWQgb24gdGhlIHNhbWUgdGFibGU6ICR7cmVmfWApXG4gICAgICB9XG4gICAgICB0aGlzLnByb3BlcnR5TmFtZXMucHVzaChwcm9wZXJ0eU5hbWUpXG4gICAgfVxuICB9XG5cbiAgYXNWYWx1ZShwcm9wZXJ0aWVzKSB7XG4gICAgLy8gVW5wYWNrIHRoZSByZWZlcmVuY2UgYXJyYXkgaWYgaXQgZG9lc24ndCBjb250YWluIG11bHRpcGxlIHByb3BlcnRpZXMuXG4gICAgcmV0dXJuIHByb3BlcnRpZXMubGVuZ3RoID4gMSA/IHByb3BlcnRpZXMgOiBwcm9wZXJ0aWVzWzBdXG4gIH1cblxuICB0b1ZhbHVlKCkge1xuICAgIHJldHVybiB0aGlzLmFzVmFsdWUoXG4gICAgICB0aGlzLnByb3BlcnR5TmFtZXMubWFwKFxuICAgICAgICBwcm9wTmFtZSA9PiBgJHt0aGlzLm1vZGVsTmFtZX0uJHtwcm9wTmFtZX1gXG4gICAgICApXG4gICAgKVxuICB9XG5cbiAgdG9TdHJpbmcoKSB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnRvVmFsdWUoKVxuICAgIHJldHVybiBpc0FycmF5KHZhbHVlKSA/IGBbJHt2YWx1ZS5qb2luKCcsICcpfV1gIDogdmFsdWVcbiAgfVxuXG4gIGJ1aWxkVGhyb3VnaCh0b1JlZiwgaW52ZXJzZSkge1xuICAgIC8vIEF1dG8tZ2VuZXJhdGUgdGhlIGB0aHJvdWdoYCBzZXR0aW5nIGJhc2VkIG9uIHNpbXBsZSBjb252ZW50aW9uczpcbiAgICAvLyAtIFRoZSBjYW1lbGl6ZWQgdGhyb3VnaCB0YWJsZSBpcyBjYWxsZWQ6IGAke2Zyb21OYW1lfSR7dG9OYW1lfWBcbiAgICAvLyAtIFRoZSBgdGhyb3VnaC5mcm9tYCBwcm9wZXJ0eSBpcyBjYWxsZWQ6XG4gICAgLy8gICBgJHtmcm9tTW9kZWxOYW1lKSR7Y2FwaXRhbGl6ZShmcm9tUHJvcCl9YFxuICAgIC8vIC0gVGhlIGB0aHJvdWdoLnRvYCBwcm9wZXJ0eSBpcyBjYWxsZWQ6XG4gICAgLy8gICBgJHt0b01vZGVsTmFtZSkke2NhcGl0YWxpemUodG9Qcm9wKX1gXG4gICAgLy8gTk9URTogRHVlIHRvIHRoZSB1c2Ugb2Yga25leFNuYWtlQ2FzZU1hcHBlcnMoKSwgdGhlcmUgaXMgbm8gbmVlZCB0b1xuICAgIC8vIGdlbmVyYXRlIGFjdHVhbCB0YWJsZS1uYW1lcyBoZXJlLlxuICAgIGNvbnN0IGZyb21OYW1lID0gdGhpcy5tb2RlbE5hbWVcbiAgICBjb25zdCBmcm9tUHJvcGVydGllcyA9IHRoaXMucHJvcGVydHlOYW1lc1xuICAgIGNvbnN0IHRvTmFtZSA9IHRvUmVmLm1vZGVsTmFtZVxuICAgIGNvbnN0IHRvUHJvcGVydGllcyA9IHRvUmVmLnByb3BlcnR5TmFtZXNcbiAgICBpZiAoZnJvbVByb3BlcnRpZXMubGVuZ3RoICE9PSB0b1Byb3BlcnRpZXMubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgUmVsYXRpb25FcnJvcignVW5hYmxlIHRvIGNyZWF0ZSB0aHJvdWdoIGpvaW4gZm9yICcgK1xuICAgICAgICBgY29tcG9zaXRlIGtleXMgZnJvbSAnJHt0aGlzfScgdG8gJyR7dG9SZWZ9J2ApXG4gICAgfVxuICAgIGNvbnN0IGZyb20gPSBbXVxuICAgIGNvbnN0IHRvID0gW11cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZyb21Qcm9wZXJ0aWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBmcm9tUHJvcGVydHkgPSBmcm9tUHJvcGVydGllc1tpXVxuICAgICAgY29uc3QgdG9Qcm9wZXJ0eSA9IHRvUHJvcGVydGllc1tpXVxuICAgICAgaWYgKGZyb21Qcm9wZXJ0eSAmJiB0b1Byb3BlcnR5KSB7XG4gICAgICAgIGNvbnN0IHRocm91Z2hOYW1lID0gYCR7ZnJvbU5hbWV9JHt0b05hbWV9YFxuICAgICAgICBjb25zdCB0aHJvdWdoRnJvbSA9IHRoaXMuZ2V0VGhyb3VnaFByb3BlcnR5KGZyb21OYW1lLCBmcm9tUHJvcGVydHkpXG4gICAgICAgIGNvbnN0IHRocm91Z2hUbyA9IHRoaXMuZ2V0VGhyb3VnaFByb3BlcnR5KHRvTmFtZSwgdG9Qcm9wZXJ0eSlcbiAgICAgICAgZnJvbS5wdXNoKGAke3Rocm91Z2hOYW1lfS4ke3Rocm91Z2hGcm9tfWApXG4gICAgICAgIHRvLnB1c2goYCR7dGhyb3VnaE5hbWV9LiR7dGhyb3VnaFRvfWApXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgUmVsYXRpb25FcnJvcihcbiAgICAgICAgICBgVW5hYmxlIHRvIGNyZWF0ZSB0aHJvdWdoIGpvaW4gZnJvbSAnJHt0aGlzfScgdG8gJyR7dG99J2ApXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBmcm9tOiB0aGlzLmFzVmFsdWUoaW52ZXJzZSA/IHRvIDogZnJvbSksXG4gICAgICB0bzogdGhpcy5hc1ZhbHVlKGludmVyc2UgPyBmcm9tIDogdG8pXG4gICAgfVxuICB9XG5cbiAgZ2V0VGhyb3VnaFByb3BlcnR5KG5hbWUsIHByb3BlcnR5KSB7XG4gICAgcmV0dXJuIGAke25hbWVbMF0udG9Mb3dlckNhc2UoKX0ke25hbWUuc2xpY2UoMSl9JHtjYXBpdGFsaXplKHByb3BlcnR5KX1gXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlbGF0aW9uQ2xhc3MocmVsYXRpb24pIHtcbiAgcmV0dXJuIGlzU3RyaW5nKHJlbGF0aW9uKVxuICAgID8gcmVsYXRpb25Mb29rdXBbY2FtZWxpemUocmVsYXRpb24pXSB8fCByZWxhdGlvbkNsYXNzZXNbcmVsYXRpb25dXG4gICAgOiBSZWxhdGlvbi5pc1Byb3RvdHlwZU9mKHJlbGF0aW9uKVxuICAgICAgPyByZWxhdGlvblxuICAgICAgOiBudWxsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1Rocm91Z2hSZWxhdGlvbkNsYXNzKHJlbGF0aW9uQ2xhc3MpIHtcbiAgcmV0dXJuIHRocm91Z2hSZWxhdGlvbkNsYXNzZXNbcmVsYXRpb25DbGFzcy5uYW1lXVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udmVydFJlbGF0aW9uKHNjaGVtYSwgbW9kZWxzKSB7XG4gIGxldCB7XG4gICAgcmVsYXRpb24sXG4gICAgLy8gRGl0by5qcy1zdHlsZSByZWxhdGlvbiBkZXNjcmlwdGlvbjpcbiAgICBmcm9tLCB0bywgdGhyb3VnaCwgaW52ZXJzZSwgbW9kaWZ5LCBzY29wZSxcbiAgICAvLyBPYmplY3Rpb24uanMtc3R5bGUgcmVsYXRpb24gZGVzY3JpcHRpb24gKGBtb2RpZnlgIGlzIHNoYXJlZClcbiAgICBqb2luLCBmaWx0ZXIsXG4gICAgLy8gUGx1Y2sgRGl0by5qcy1yZWxhdGVkIHByb3BlcnRpZXMgdGhhdCBzaG91bGQgbm90IGVuZCB1cCBpbiBgcmVzdGA6XG4gICAgbnVsbGFibGUsIG93bmVyLFxuICAgIC4uLnJlc3RcbiAgfSA9IHNjaGVtYSB8fCB7fVxuICBjb25zdCByZWxhdGlvbkNsYXNzID0gZ2V0UmVsYXRpb25DbGFzcyhyZWxhdGlvbilcbiAgaWYgKCFyZWxhdGlvbkNsYXNzKSB7XG4gICAgdGhyb3cgbmV3IFJlbGF0aW9uRXJyb3IoYFVucmVjb2duaXplZCByZWxhdGlvbjogJHtyZWxhdGlvbn1gKVxuICB9IGVsc2UgaWYgKGpvaW4gJiYgIWlzU3RyaW5nKHJlbGF0aW9uKSkge1xuICAgIC8vIE9yaWdpbmFsIE9iamVjdGlvbi5qcy1zdHlsZSByZWxhdGlvbiwganVzdCBwYXNzIHRocm91Z2hcbiAgICByZXR1cm4gc2NoZW1hXG4gIH0gZWxzZSB7XG4gICAgLy8gRGl0by5qcy1zdHlsZSByZWxhdGlvbiwgZS5nLjpcbiAgICAvLyB7XG4gICAgLy8gICByZWxhdGlvbjogJ2hhc01hbnknLFxuICAgIC8vICAgZnJvbTogJ0Zyb21Nb2RlbC5wcmltYXJ5S2V5UHJvcGVydHlOYW1lJyxcbiAgICAvLyAgIHRvOiAnVG9Nb2RlbC5mb3JlaWduS2V5UHJvcGVydHlOYW1lJyxcbiAgICAvLyAgIHNjb3BlOiAnbGF0ZXN0J1xuICAgIC8vIH1cbiAgICBmcm9tID0gbmV3IE1vZGVsUmVmZXJlbmNlKGZyb20sIG1vZGVscywgZmFsc2UpXG4gICAgdG8gPSBuZXcgTW9kZWxSZWZlcmVuY2UodG8sIG1vZGVscywgZmFsc2UpXG4gICAgaWYgKGlzVGhyb3VnaFJlbGF0aW9uQ2xhc3MocmVsYXRpb25DbGFzcykpIHtcbiAgICAgIGlmICghdGhyb3VnaCkge1xuICAgICAgICAvLyBBdXRvLWdlbmVyYXRlIHRoZSB0aHJvdWdoIHNldHRpbmdzLCBzZWUgYnVpbGRUaHJvdWdoKCk6XG4gICAgICAgIHRocm91Z2ggPSBpbnZlcnNlXG4gICAgICAgICAgPyB0by5idWlsZFRocm91Z2goZnJvbSwgdHJ1ZSlcbiAgICAgICAgICA6IGZyb20uYnVpbGRUaHJvdWdoKHRvLCBmYWxzZSlcbiAgICAgIH0gZWxzZSBpZiAodGhyb3VnaC5mcm9tICYmIHRocm91Z2gudG8pIHtcbiAgICAgICAgLy8gYHRocm91Z2guZnJvbWAgYW5kIGB0aHJvdWdoLnRvYCBuZWVkIHNwZWNpYWwgcHJvY2Vzc2luZywgd2hlcmUgdGhleVxuICAgICAgICAvLyBjYW4gZWl0aGVyIGJlIG1vZGVsIHJlZmVyZW5jZXMgb3IgdGFibGUgcmVmZXJlbmNlcywgYW5kIGlmIHRoZXlcbiAgICAgICAgLy8gcmVmZXJlbmNlIG1vZGVscywgdGhleSBzaG91bGQgYmUgY29udmVydGVkIHRvIHRhYmxlIHJlZmVyZW5jZXMgYW5kXG4gICAgICAgIC8vIHRoZSBtb2RlbCBzaG91bGQgYmUgZXh0cmFjdGVkIGF1dG9tYXRpY2FsbHkuXG4gICAgICAgIGNvbnN0IHRocm91Z2hGcm9tID0gbmV3IE1vZGVsUmVmZXJlbmNlKHRocm91Z2guZnJvbSwgbW9kZWxzLCB0cnVlKVxuICAgICAgICBjb25zdCB0aHJvdWdoVG8gPSBuZXcgTW9kZWxSZWZlcmVuY2UodGhyb3VnaC50bywgbW9kZWxzLCB0cnVlKVxuICAgICAgICBpZiAodGhyb3VnaEZyb20ubW9kZWxDbGFzcyB8fCB0aHJvdWdoVG8ubW9kZWxDbGFzcykge1xuICAgICAgICAgIGlmICh0aHJvdWdoRnJvbS5tb2RlbENsYXNzID09PSB0aHJvdWdoVG8ubW9kZWxDbGFzcykge1xuICAgICAgICAgICAgdGhyb3VnaC5tb2RlbENsYXNzID0gdGhyb3VnaFRvLm1vZGVsQ2xhc3NcbiAgICAgICAgICAgIHRocm91Z2guZnJvbSA9IHRocm91Z2hGcm9tLnRvVmFsdWUoKVxuICAgICAgICAgICAgdGhyb3VnaC50byA9IHRocm91Z2hUby50b1ZhbHVlKClcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFJlbGF0aW9uRXJyb3IoJ0JvdGggc2lkZXMgb2YgdGhlIGB0aHJvdWdoYCBkZWZpbml0aW9uICcgK1xuICAgICAgICAgICAgICAnbmVlZCB0byBiZSBvbiB0aGUgc2FtZSBqb2luIG1vZGVsJylcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gQXNzdW1lIHRoZSByZWZlcmVuY2VzIGFyZSB0byBhIGpvaW4gdGFibGUsIGFuZCB1c2UgdGhlIHNldHRpbmdzXG4gICAgICAgICAgLy8gdW5tb2RpZmllZC5cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhyb3cgbmV3IFJlbGF0aW9uRXJyb3IoJ1RoZSByZWxhdGlvbiBuZWVkcyBhIGB0aHJvdWdoLmZyb21gIGFuZCAnICtcbiAgICAgICAgICAnYHRocm91Z2gudG9gIGRlZmluaXRpb24nKVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhyb3VnaCkge1xuICAgICAgdGhyb3cgbmV3IFJlbGF0aW9uRXJyb3IoJ1Vuc3VwcG9ydGVkIHRocm91Z2ggam9pbiBkZWZpbml0aW9uJylcbiAgICB9XG4gICAgLy8gQ29tYmluZSBgbW9kaWZ5YCBhbmQgYGZpbHRlcmAuIFNldHRpbmcgYm90aCB0b2dldGhlciBpcyBub3Qgc3VwcG9ydGVkLlxuICAgIG1vZGlmeSA9IG1vZGlmeSB8fCBmaWx0ZXJcbiAgICBpZiAoaXNPYmplY3QobW9kaWZ5KSkge1xuICAgICAgLy8gQ29udmVydCBhIGZpbmQtZmlsdGVyIG9iamVjdCB0byBhIGZpbHRlciBmdW5jdGlvbiwgc2FtZSBhcyBpbiB0aGVcbiAgICAgIC8vIGhhbmRsaW5nIG9mIGRlZmluaXRpb24uc2NvcGVzLCBzZWUgTW9kZWwuanNcbiAgICAgIG1vZGlmeSA9IHF1ZXJ5ID0+IHF1ZXJ5LmZpbmQobW9kaWZ5KVxuICAgIH1cbiAgICBpZiAoc2NvcGUpIHtcbiAgICAgIC8vIENyZWF0ZSBhIG5ldyBtb2RpZnkgZnVuY3Rpb24gdGhhdCBtZXJnZXMgc2NvcGUgYW5kIG1vZGlmeSB0aGVtOlxuICAgICAgY29uc3Qgb3JpZ01vZGlmeSA9IG1vZGlmeVxuICAgICAgbW9kaWZ5ID0gcXVlcnkgPT4ge1xuICAgICAgICBxdWVyeS5hcHBseVNjb3BlKHNjb3BlKVxuICAgICAgICBpZiAob3JpZ01vZGlmeSkge1xuICAgICAgICAgIHF1ZXJ5Lm1vZGlmeShvcmlnTW9kaWZ5KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICByZWxhdGlvbjogcmVsYXRpb25DbGFzcyxcbiAgICAgIG1vZGVsQ2xhc3M6IHRvLm1vZGVsQ2xhc3MsXG4gICAgICBqb2luOiB7XG4gICAgICAgIGZyb206IGZyb20udG9WYWx1ZSgpLFxuICAgICAgICB0bzogdG8udG9WYWx1ZSgpLFxuICAgICAgICAuLi4odGhyb3VnaCAmJiB7IHRocm91Z2ggfSlcbiAgICAgIH0sXG4gICAgICAuLi4obW9kaWZ5ICYmIHsgbW9kaWZ5IH0pLFxuICAgICAgLi4ucmVzdFxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udmVydFJlbGF0aW9ucyhvd25lck1vZGVsQ2xhc3MsIHJlbGF0aW9ucywgbW9kZWxzKSB7XG4gIGNvbnN0IGNvbnZlcnRlZCA9IHt9XG4gIGZvciAoY29uc3QgW25hbWUsIHJlbGF0aW9uXSBvZiBPYmplY3QuZW50cmllcyhyZWxhdGlvbnMpKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnZlcnRlZFtuYW1lXSA9IGNvbnZlcnRSZWxhdGlvbihyZWxhdGlvbiwgbW9kZWxzKVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhyb3cgbmV3IFJlbGF0aW9uRXJyb3IoXG4gICAgICAgIGAke293bmVyTW9kZWxDbGFzcy5uYW1lfS5yZWxhdGlvbnMuJHtuYW1lfTogJHsoZXJyLm1lc3NhZ2UgfHwgZXJyKX1gKVxuICAgIH1cbiAgfVxuICByZXR1cm4gY29udmVydGVkXG59XG5cbi8qKlxuICogQWRkcyBKU09OIHNjaGVtYSBwcm9wZXJ0aWVzIGZvciBlYWNoIG9mIHRoZSBtb2RlbENsYXNzJyByZWxhdGlvbnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhZGRSZWxhdGlvblNjaGVtYXMobW9kZWxDbGFzcywgcHJvcGVydGllcykge1xuICBmb3IgKGNvbnN0IHJlbGF0aW9uSW5zdGFuY2Ugb2YgT2JqZWN0LnZhbHVlcyhtb2RlbENsYXNzLmdldFJlbGF0aW9ucygpKSkge1xuICAgIGNvbnN0IHsgbmFtZSwgb3duZXJNb2RlbENsYXNzLCByZWxhdGVkTW9kZWxDbGFzcyB9ID0gcmVsYXRpb25JbnN0YW5jZVxuICAgIGNvbnN0IHJlbGF0aW9uRGVmaW5pdGlvbiA9IG93bmVyTW9kZWxDbGFzcy5kZWZpbml0aW9uLnJlbGF0aW9uc1tuYW1lXVxuICAgIGNvbnN0IGlzT25lVG9PbmUgPSByZWxhdGlvbkluc3RhbmNlLmlzT25lVG9PbmUoKVxuICAgIGNvbnN0IHsgb3duZXIgfSA9IHJlbGF0aW9uRGVmaW5pdGlvblxuICAgIGNvbnN0ICRyZWYgPSByZWxhdGVkTW9kZWxDbGFzcy5uYW1lXG4gICAgY29uc3QgYW55T2YgPSBbXVxuICAgIGlmIChpc09uZVRvT25lKSB7XG4gICAgICAvLyBBbGxvdyBudWxsLXZhbHVlIG9uIG9uZS10by1vbmUgcmVsYXRpb25zXG4gICAgICBhbnlPZi5wdXNoKHtcbiAgICAgICAgdHlwZTogJ251bGwnXG4gICAgICB9KVxuICAgIH1cbiAgICBpZiAoIW93bmVyKSB7XG4gICAgICAvLyBBbGxvdyByZWZlcmVuY2Ugb2JqZWN0cyBmb3IgcmVsYXRpb25zIHRoYXQgZG9uJ3Qgb3duIHRoZWlyIGRhdGEuXG4gICAgICBhbnlPZi5wdXNoKHtcbiAgICAgICAgcmVsYXRlOiAkcmVmXG4gICAgICB9KVxuICAgIH1cbiAgICAvLyBGaW5hbGx5IHRoZSBtb2RlbCBpdHNlbGZcbiAgICBhbnlPZi5wdXNoKHsgJHJlZiB9KVxuICAgIGNvbnN0IGl0ZW1zID0gYW55T2YubGVuZ3RoID4gMVxuICAgICAgPyB7IGFueU9mIH1cbiAgICAgIDogYW55T2ZbMF1cbiAgICBwcm9wZXJ0aWVzW25hbWVdID0gaXNPbmVUb09uZVxuICAgICAgPyBpdGVtc1xuICAgICAgOiB7XG4gICAgICAgIHR5cGU6ICdhcnJheScsXG4gICAgICAgIGl0ZW1zXG4gICAgICB9XG4gIH1cbiAgcmV0dXJuIHByb3BlcnRpZXNcbn1cbiJdfQ==
|
|
274
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWEvcmVsYXRpb25zLmpzIl0sIm5hbWVzIjpbInJlbGF0aW9uTG9va3VwIiwiYmVsb25nc1RvIiwiQmVsb25nc1RvT25lUmVsYXRpb24iLCJoYXNPbmUiLCJIYXNPbmVSZWxhdGlvbiIsImhhc09uZVRocm91Z2giLCJIYXNPbmVUaHJvdWdoUmVsYXRpb24iLCJoYXNNYW55IiwiSGFzTWFueVJlbGF0aW9uIiwibWFueVRvTWFueSIsIk1hbnlUb01hbnlSZWxhdGlvbiIsInJlbGF0aW9uQ2xhc3NlcyIsInRocm91Z2hSZWxhdGlvbkNsYXNzZXMiLCJNb2RlbFJlZmVyZW5jZSIsImNvbnN0cnVjdG9yIiwicmVmZXJlbmNlIiwibW9kZWxzIiwiYWxsb3dVbmtub3duIiwibW9kZWxOYW1lIiwibW9kZWxDbGFzcyIsInByb3BlcnR5TmFtZXMiLCJyZWYiLCJwcm9wZXJ0eU5hbWUiLCJzcGxpdCIsIlJlbGF0aW9uRXJyb3IiLCJwdXNoIiwiYXNWYWx1ZSIsInByb3BlcnRpZXMiLCJsZW5ndGgiLCJ0b1ZhbHVlIiwibWFwIiwicHJvcE5hbWUiLCJ0b1N0cmluZyIsInZhbHVlIiwiam9pbiIsImJ1aWxkVGhyb3VnaCIsInRvUmVmIiwiaW52ZXJzZSIsImZyb21OYW1lIiwiZnJvbVByb3BlcnRpZXMiLCJ0b05hbWUiLCJ0b1Byb3BlcnRpZXMiLCJmcm9tIiwidG8iLCJpIiwiZnJvbVByb3BlcnR5IiwidG9Qcm9wZXJ0eSIsInRocm91Z2hOYW1lIiwidGhyb3VnaEZyb20iLCJnZXRUaHJvdWdoUHJvcGVydHkiLCJ0aHJvdWdoVG8iLCJuYW1lIiwicHJvcGVydHkiLCJ0b0xvd2VyQ2FzZSIsInNsaWNlIiwiZ2V0UmVsYXRpb25DbGFzcyIsInJlbGF0aW9uIiwiUmVsYXRpb24iLCJpc1Byb3RvdHlwZU9mIiwiaXNUaHJvdWdoUmVsYXRpb25DbGFzcyIsInJlbGF0aW9uQ2xhc3MiLCJjb252ZXJ0UmVsYXRpb24iLCJzY2hlbWEiLCJ0aHJvdWdoIiwibW9kaWZ5Iiwic2NvcGUiLCJmaWx0ZXIiLCJudWxsYWJsZSIsIm93bmVyIiwicmVzdCIsInF1ZXJ5IiwiZmluZCIsIm9yaWdNb2RpZnkiLCJhcHBseVNjb3BlIiwiY29udmVydFJlbGF0aW9ucyIsIm93bmVyTW9kZWxDbGFzcyIsInJlbGF0aW9ucyIsImNvbnZlcnRlZCIsIk9iamVjdCIsImVudHJpZXMiLCJlcnIiLCJtZXNzYWdlIiwiYWRkUmVsYXRpb25TY2hlbWFzIiwicmVsYXRpb25JbnN0YW5jZSIsInZhbHVlcyIsImdldFJlbGF0aW9ucyIsInJlbGF0ZWRNb2RlbENsYXNzIiwicmVsYXRpb25EZWZpbml0aW9uIiwiZGVmaW5pdGlvbiIsImlzT25lVG9PbmUiLCIkcmVmIiwiYW55T2YiLCJ0eXBlIiwicmVsYXRlIiwiaXRlbXMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBUUE7O0FBQ0E7O0FBSUEsTUFBTUEsY0FBYyxHQUFHO0FBRXJCQyxFQUFBQSxTQUFTLEVBQUVDLCtCQUZVO0FBR3JCQyxFQUFBQSxNQUFNLEVBQUVDLHlCQUhhO0FBSXJCQyxFQUFBQSxhQUFhLEVBQUVDLGdDQUpNO0FBTXJCQyxFQUFBQSxPQUFPLEVBQUVDLDBCQU5ZO0FBT3JCQyxFQUFBQSxVQUFVLEVBQUVDO0FBUFMsQ0FBdkI7QUFVQSxNQUFNQyxlQUFlLEdBQUc7QUFDdEJULEVBQUFBLG9CQUFvQixFQUFwQkEsK0JBRHNCO0FBRXRCRSxFQUFBQSxjQUFjLEVBQWRBLHlCQUZzQjtBQUd0QkUsRUFBQUEscUJBQXFCLEVBQXJCQSxnQ0FIc0I7QUFJdEJFLEVBQUFBLGVBQWUsRUFBZkEsMEJBSnNCO0FBS3RCRSxFQUFBQSxrQkFBa0IsRUFBbEJBO0FBTHNCLENBQXhCO0FBUUEsTUFBTUUsc0JBQXNCLEdBQUc7QUFDN0JGLEVBQUFBLGtCQUFrQixFQUFsQkEsNkJBRDZCO0FBRTdCSixFQUFBQSxxQkFBcUIsRUFBckJBO0FBRjZCLENBQS9COztBQUtBLE1BQU1PLGNBQU4sQ0FBcUI7QUFD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QUYsS0FEVSxHQUVWQSxLQUFLLENBQUMsQ0FBRCxDQUZUO0FBR0FoRSxJQUFBQSxVQUFVLENBQUN3QixJQUFELENBQVYsR0FBbUJzQyxVQUFVLEdBQ3pCSyxLQUR5QixHQUV6QjtBQUNBRixNQUFBQSxJQUFJLEVBQUUsT0FETjtBQUVBRSxNQUFBQTtBQUZBLEtBRko7QUFNRDs7QUFDRCxTQUFPbkUsVUFBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgUmVsYXRpb24sXG4gIEJlbG9uZ3NUb09uZVJlbGF0aW9uLFxuICBIYXNPbmVSZWxhdGlvbixcbiAgSGFzT25lVGhyb3VnaFJlbGF0aW9uLFxuICBIYXNNYW55UmVsYXRpb24sXG4gIE1hbnlUb01hbnlSZWxhdGlvblxufSBmcm9tICdvYmplY3Rpb24nXG5pbXBvcnQgeyBSZWxhdGlvbkVycm9yIH0gZnJvbSAnQC9lcnJvcnMnXG5pbXBvcnQge1xuICBpc09iamVjdCwgaXNBcnJheSwgaXNTdHJpbmcsIGFzQXJyYXksIGNhcGl0YWxpemUsIGNhbWVsaXplXG59IGZyb20gJ0BkaXRvanMvdXRpbHMnXG5cbmNvbnN0IHJlbGF0aW9uTG9va3VwID0ge1xuICAvLyBvbmU6XG4gIGJlbG9uZ3NUbzogQmVsb25nc1RvT25lUmVsYXRpb24sXG4gIGhhc09uZTogSGFzT25lUmVsYXRpb24sXG4gIGhhc09uZVRocm91Z2g6IEhhc09uZVRocm91Z2hSZWxhdGlvbixcbiAgLy8gbWFueTpcbiAgaGFzTWFueTogSGFzTWFueVJlbGF0aW9uLFxuICBtYW55VG9NYW55OiBNYW55VG9NYW55UmVsYXRpb25cbn1cblxuY29uc3QgcmVsYXRpb25DbGFzc2VzID0ge1xuICBCZWxvbmdzVG9PbmVSZWxhdGlvbixcbiAgSGFzT25lUmVsYXRpb24sXG4gIEhhc09uZVRocm91Z2hSZWxhdGlvbixcbiAgSGFzTWFueVJlbGF0aW9uLFxuICBNYW55VG9NYW55UmVsYXRpb25cbn1cblxuY29uc3QgdGhyb3VnaFJlbGF0aW9uQ2xhc3NlcyA9IHtcbiAgTWFueVRvTWFueVJlbGF0aW9uLFxuICBIYXNPbmVUaHJvdWdoUmVsYXRpb25cbn1cblxuY2xhc3MgTW9kZWxSZWZlcmVuY2Uge1xuICBjb25zdHJ1Y3RvcihyZWZlcmVuY2UsIG1vZGVscywgYWxsb3dVbmtub3duID0gZmFsc2UpIHtcbiAgICB0aGlzLm1vZGVsTmFtZSA9IG51bGxcbiAgICB0aGlzLm1vZGVsQ2xhc3MgPSBudWxsXG4gICAgdGhpcy5wcm9wZXJ0eU5hbWVzID0gW11cbiAgICAvLyBQYXJzZSBhbmQgdmFsaWRhdGUgbW9kZWwga2V5IHJlZmVyZW5jZXNcbiAgICBmb3IgKGNvbnN0IHJlZiBvZiBhc0FycmF5KHJlZmVyZW5jZSkpIHtcbiAgICAgIGNvbnN0IFttb2RlbE5hbWUsIHByb3BlcnR5TmFtZV0gPSByZWY/LnNwbGl0KCcuJykgfHwgW11cbiAgICAgIGNvbnN0IG1vZGVsQ2xhc3MgPSBtb2RlbHNbbW9kZWxOYW1lXVxuICAgICAgaWYgKCFtb2RlbENsYXNzICYmICFhbGxvd1Vua25vd24pIHtcbiAgICAgICAgdGhyb3cgbmV3IFJlbGF0aW9uRXJyb3IoXG4gICAgICAgICAgYFVua25vd24gbW9kZWwgcmVmZXJlbmNlOiAke3JlZn1gKVxuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLm1vZGVsTmFtZSkge1xuICAgICAgICB0aGlzLm1vZGVsTmFtZSA9IG1vZGVsTmFtZVxuICAgICAgICB0aGlzLm1vZGVsQ2xhc3MgPSBtb2RlbENsYXNzXG4gICAgICB9IGVsc2UgaWYgKHRoaXMubW9kZWxOYW1lICE9PSBtb2RlbE5hbWUpIHtcbiAgICAgICAgdGhyb3cgbmV3IFJlbGF0aW9uRXJyb3IoXG4gICAgICAgICAgYENvbXBvc2l0ZSBrZXlzIG5lZWQgdG8gYmUgZGVmaW5lZCBvbiB0aGUgc2FtZSB0YWJsZTogJHtyZWZ9YClcbiAgICAgIH1cbiAgICAgIHRoaXMucHJvcGVydHlOYW1lcy5wdXNoKHByb3BlcnR5TmFtZSlcbiAgICB9XG4gIH1cblxuICBhc1ZhbHVlKHByb3BlcnRpZXMpIHtcbiAgICAvLyBVbnBhY2sgdGhlIHJlZmVyZW5jZSBhcnJheSBpZiBpdCBkb2Vzbid0IGNvbnRhaW4gbXVsdGlwbGUgcHJvcGVydGllcy5cbiAgICByZXR1cm4gcHJvcGVydGllcy5sZW5ndGggPiAxID8gcHJvcGVydGllcyA6IHByb3BlcnRpZXNbMF1cbiAgfVxuXG4gIHRvVmFsdWUoKSB7XG4gICAgcmV0dXJuIHRoaXMuYXNWYWx1ZShcbiAgICAgIHRoaXMucHJvcGVydHlOYW1lcy5tYXAoXG4gICAgICAgIHByb3BOYW1lID0+IGAke3RoaXMubW9kZWxOYW1lfS4ke3Byb3BOYW1lfWBcbiAgICAgIClcbiAgICApXG4gIH1cblxuICB0b1N0cmluZygpIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMudG9WYWx1ZSgpXG4gICAgcmV0dXJuIGlzQXJyYXkodmFsdWUpID8gYFske3ZhbHVlLmpvaW4oJywgJyl9XWAgOiB2YWx1ZVxuICB9XG5cbiAgYnVpbGRUaHJvdWdoKHRvUmVmLCBpbnZlcnNlKSB7XG4gICAgLy8gQXV0by1nZW5lcmF0ZSB0aGUgYHRocm91Z2hgIHNldHRpbmcgYmFzZWQgb24gc2ltcGxlIGNvbnZlbnRpb25zOlxuICAgIC8vIC0gVGhlIGNhbWVsaXplZCB0aHJvdWdoIHRhYmxlIGlzIGNhbGxlZDogYCR7ZnJvbU5hbWV9JHt0b05hbWV9YFxuICAgIC8vIC0gVGhlIGB0aHJvdWdoLmZyb21gIHByb3BlcnR5IGlzIGNhbGxlZDpcbiAgICAvLyAgIGAke2Zyb21Nb2RlbE5hbWUpJHtjYXBpdGFsaXplKGZyb21Qcm9wKX1gXG4gICAgLy8gLSBUaGUgYHRocm91Z2gudG9gIHByb3BlcnR5IGlzIGNhbGxlZDpcbiAgICAvLyAgIGAke3RvTW9kZWxOYW1lKSR7Y2FwaXRhbGl6ZSh0b1Byb3ApfWBcbiAgICAvLyBOT1RFOiBEdWUgdG8gdGhlIHVzZSBvZiBrbmV4U25ha2VDYXNlTWFwcGVycygpLCB0aGVyZSBpcyBubyBuZWVkIHRvXG4gICAgLy8gZ2VuZXJhdGUgYWN0dWFsIHRhYmxlLW5hbWVzIGhlcmUuXG4gICAgY29uc3QgZnJvbU5hbWUgPSB0aGlzLm1vZGVsTmFtZVxuICAgIGNvbnN0IGZyb21Qcm9wZXJ0aWVzID0gdGhpcy5wcm9wZXJ0eU5hbWVzXG4gICAgY29uc3QgdG9OYW1lID0gdG9SZWYubW9kZWxOYW1lXG4gICAgY29uc3QgdG9Qcm9wZXJ0aWVzID0gdG9SZWYucHJvcGVydHlOYW1lc1xuICAgIGlmIChmcm9tUHJvcGVydGllcy5sZW5ndGggIT09IHRvUHJvcGVydGllcy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBSZWxhdGlvbkVycm9yKCdVbmFibGUgdG8gY3JlYXRlIHRocm91Z2ggam9pbiBmb3IgJyArXG4gICAgICAgIGBjb21wb3NpdGUga2V5cyBmcm9tICcke3RoaXN9JyB0byAnJHt0b1JlZn0nYClcbiAgICB9XG4gICAgY29uc3QgZnJvbSA9IFtdXG4gICAgY29uc3QgdG8gPSBbXVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZnJvbVByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGZyb21Qcm9wZXJ0eSA9IGZyb21Qcm9wZXJ0aWVzW2ldXG4gICAgICBjb25zdCB0b1Byb3BlcnR5ID0gdG9Qcm9wZXJ0aWVzW2ldXG4gICAgICBpZiAoZnJvbVByb3BlcnR5ICYmIHRvUHJvcGVydHkpIHtcbiAgICAgICAgY29uc3QgdGhyb3VnaE5hbWUgPSBgJHtmcm9tTmFtZX0ke3RvTmFtZX1gXG4gICAgICAgIGNvbnN0IHRocm91Z2hGcm9tID0gdGhpcy5nZXRUaHJvdWdoUHJvcGVydHkoZnJvbU5hbWUsIGZyb21Qcm9wZXJ0eSlcbiAgICAgICAgY29uc3QgdGhyb3VnaFRvID0gdGhpcy5nZXRUaHJvdWdoUHJvcGVydHkodG9OYW1lLCB0b1Byb3BlcnR5KVxuICAgICAgICBmcm9tLnB1c2goYCR7dGhyb3VnaE5hbWV9LiR7dGhyb3VnaEZyb219YClcbiAgICAgICAgdG8ucHVzaChgJHt0aHJvdWdoTmFtZX0uJHt0aHJvdWdoVG99YClcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBSZWxhdGlvbkVycm9yKFxuICAgICAgICAgIGBVbmFibGUgdG8gY3JlYXRlIHRocm91Z2ggam9pbiBmcm9tICcke3RoaXN9JyB0byAnJHt0b30nYClcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGZyb206IHRoaXMuYXNWYWx1ZShpbnZlcnNlID8gdG8gOiBmcm9tKSxcbiAgICAgIHRvOiB0aGlzLmFzVmFsdWUoaW52ZXJzZSA/IGZyb20gOiB0bylcbiAgICB9XG4gIH1cblxuICBnZXRUaHJvdWdoUHJvcGVydHkobmFtZSwgcHJvcGVydHkpIHtcbiAgICByZXR1cm4gYCR7bmFtZVswXS50b0xvd2VyQ2FzZSgpfSR7bmFtZS5zbGljZSgxKX0ke2NhcGl0YWxpemUocHJvcGVydHkpfWBcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVsYXRpb25DbGFzcyhyZWxhdGlvbikge1xuICByZXR1cm4gaXNTdHJpbmcocmVsYXRpb24pXG4gICAgPyByZWxhdGlvbkxvb2t1cFtjYW1lbGl6ZShyZWxhdGlvbildIHx8IHJlbGF0aW9uQ2xhc3Nlc1tyZWxhdGlvbl1cbiAgICA6IFJlbGF0aW9uLmlzUHJvdG90eXBlT2YocmVsYXRpb24pXG4gICAgICA/IHJlbGF0aW9uXG4gICAgICA6IG51bGxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVGhyb3VnaFJlbGF0aW9uQ2xhc3MocmVsYXRpb25DbGFzcykge1xuICByZXR1cm4gdGhyb3VnaFJlbGF0aW9uQ2xhc3Nlc1tyZWxhdGlvbkNsYXNzLm5hbWVdXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0UmVsYXRpb24oc2NoZW1hLCBtb2RlbHMpIHtcbiAgbGV0IHtcbiAgICByZWxhdGlvbixcbiAgICAvLyBEaXRvLmpzLXN0eWxlIHJlbGF0aW9uIGRlc2NyaXB0aW9uOlxuICAgIGZyb20sIHRvLCB0aHJvdWdoLCBpbnZlcnNlLCBtb2RpZnksIHNjb3BlLFxuICAgIC8vIE9iamVjdGlvbi5qcy1zdHlsZSByZWxhdGlvbiBkZXNjcmlwdGlvbiAoYG1vZGlmeWAgaXMgc2hhcmVkKVxuICAgIGpvaW4sIGZpbHRlcixcbiAgICAvLyBQbHVjayBEaXRvLmpzLXJlbGF0ZWQgcHJvcGVydGllcyB0aGF0IHNob3VsZCBub3QgZW5kIHVwIGluIGByZXN0YDpcbiAgICBudWxsYWJsZSwgb3duZXIsXG4gICAgLi4ucmVzdFxuICB9ID0gc2NoZW1hIHx8IHt9XG4gIGNvbnN0IHJlbGF0aW9uQ2xhc3MgPSBnZXRSZWxhdGlvbkNsYXNzKHJlbGF0aW9uKVxuICBpZiAoIXJlbGF0aW9uQ2xhc3MpIHtcbiAgICB0aHJvdyBuZXcgUmVsYXRpb25FcnJvcihgVW5yZWNvZ25pemVkIHJlbGF0aW9uOiAke3JlbGF0aW9ufWApXG4gIH0gZWxzZSBpZiAoam9pbiAmJiAhaXNTdHJpbmcocmVsYXRpb24pKSB7XG4gICAgLy8gT3JpZ2luYWwgT2JqZWN0aW9uLmpzLXN0eWxlIHJlbGF0aW9uLCBqdXN0IHBhc3MgdGhyb3VnaFxuICAgIHJldHVybiBzY2hlbWFcbiAgfSBlbHNlIHtcbiAgICAvLyBEaXRvLmpzLXN0eWxlIHJlbGF0aW9uLCBlLmcuOlxuICAgIC8vIHtcbiAgICAvLyAgIHJlbGF0aW9uOiAnaGFzTWFueScsXG4gICAgLy8gICBmcm9tOiAnRnJvbU1vZGVsLnByaW1hcnlLZXlQcm9wZXJ0eU5hbWUnLFxuICAgIC8vICAgdG86ICdUb01vZGVsLmZvcmVpZ25LZXlQcm9wZXJ0eU5hbWUnLFxuICAgIC8vICAgc2NvcGU6ICdsYXRlc3QnXG4gICAgLy8gfVxuICAgIGZyb20gPSBuZXcgTW9kZWxSZWZlcmVuY2UoZnJvbSwgbW9kZWxzLCBmYWxzZSlcbiAgICB0byA9IG5ldyBNb2RlbFJlZmVyZW5jZSh0bywgbW9kZWxzLCBmYWxzZSlcbiAgICBpZiAoaXNUaHJvdWdoUmVsYXRpb25DbGFzcyhyZWxhdGlvbkNsYXNzKSkge1xuICAgICAgaWYgKCF0aHJvdWdoKSB7XG4gICAgICAgIC8vIEF1dG8tZ2VuZXJhdGUgdGhlIHRocm91Z2ggc2V0dGluZ3MsIHNlZSBidWlsZFRocm91Z2goKTpcbiAgICAgICAgdGhyb3VnaCA9IGludmVyc2VcbiAgICAgICAgICA/IHRvLmJ1aWxkVGhyb3VnaChmcm9tLCB0cnVlKVxuICAgICAgICAgIDogZnJvbS5idWlsZFRocm91Z2godG8sIGZhbHNlKVxuICAgICAgfSBlbHNlIGlmICh0aHJvdWdoLmZyb20gJiYgdGhyb3VnaC50bykge1xuICAgICAgICAvLyBgdGhyb3VnaC5mcm9tYCBhbmQgYHRocm91Z2gudG9gIG5lZWQgc3BlY2lhbCBwcm9jZXNzaW5nLCB3aGVyZSB0aGV5XG4gICAgICAgIC8vIGNhbiBlaXRoZXIgYmUgbW9kZWwgcmVmZXJlbmNlcyBvciB0YWJsZSByZWZlcmVuY2VzLCBhbmQgaWYgdGhleVxuICAgICAgICAvLyByZWZlcmVuY2UgbW9kZWxzLCB0aGV5IHNob3VsZCBiZSBjb252ZXJ0ZWQgdG8gdGFibGUgcmVmZXJlbmNlcyBhbmRcbiAgICAgICAgLy8gdGhlIG1vZGVsIHNob3VsZCBiZSBleHRyYWN0ZWQgYXV0b21hdGljYWxseS5cbiAgICAgICAgY29uc3QgdGhyb3VnaEZyb20gPSBuZXcgTW9kZWxSZWZlcmVuY2UodGhyb3VnaC5mcm9tLCBtb2RlbHMsIHRydWUpXG4gICAgICAgIGNvbnN0IHRocm91Z2hUbyA9IG5ldyBNb2RlbFJlZmVyZW5jZSh0aHJvdWdoLnRvLCBtb2RlbHMsIHRydWUpXG4gICAgICAgIGlmICh0aHJvdWdoRnJvbS5tb2RlbENsYXNzIHx8IHRocm91Z2hUby5tb2RlbENsYXNzKSB7XG4gICAgICAgICAgaWYgKHRocm91Z2hGcm9tLm1vZGVsQ2xhc3MgPT09IHRocm91Z2hUby5tb2RlbENsYXNzKSB7XG4gICAgICAgICAgICB0aHJvdWdoLm1vZGVsQ2xhc3MgPSB0aHJvdWdoVG8ubW9kZWxDbGFzc1xuICAgICAgICAgICAgdGhyb3VnaC5mcm9tID0gdGhyb3VnaEZyb20udG9WYWx1ZSgpXG4gICAgICAgICAgICB0aHJvdWdoLnRvID0gdGhyb3VnaFRvLnRvVmFsdWUoKVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgUmVsYXRpb25FcnJvcignQm90aCBzaWRlcyBvZiB0aGUgYHRocm91Z2hgIGRlZmluaXRpb24gJyArXG4gICAgICAgICAgICAgICduZWVkIHRvIGJlIG9uIHRoZSBzYW1lIGpvaW4gbW9kZWwnKVxuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBBc3N1bWUgdGhlIHJlZmVyZW5jZXMgYXJlIHRvIGEgam9pbiB0YWJsZSwgYW5kIHVzZSB0aGUgc2V0dGluZ3NcbiAgICAgICAgICAvLyB1bm1vZGlmaWVkLlxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgUmVsYXRpb25FcnJvcignVGhlIHJlbGF0aW9uIG5lZWRzIGEgYHRocm91Z2guZnJvbWAgYW5kICcgK1xuICAgICAgICAgICdgdGhyb3VnaC50b2AgZGVmaW5pdGlvbicpXG4gICAgICB9XG4gICAgfSBlbHNlIGlmICh0aHJvdWdoKSB7XG4gICAgICB0aHJvdyBuZXcgUmVsYXRpb25FcnJvcignVW5zdXBwb3J0ZWQgdGhyb3VnaCBqb2luIGRlZmluaXRpb24nKVxuICAgIH1cbiAgICAvLyBDb21iaW5lIGBtb2RpZnlgIGFuZCBgZmlsdGVyYC4gU2V0dGluZyBib3RoIHRvZ2V0aGVyIGlzIG5vdCBzdXBwb3J0ZWQuXG4gICAgbW9kaWZ5ID0gbW9kaWZ5IHx8IGZpbHRlclxuICAgIGlmIChpc09iamVjdChtb2RpZnkpKSB7XG4gICAgICAvLyBDb252ZXJ0IGEgZmluZC1maWx0ZXIgb2JqZWN0IHRvIGEgZmlsdGVyIGZ1bmN0aW9uLCBzYW1lIGFzIGluIHRoZVxuICAgICAgLy8gaGFuZGxpbmcgb2YgZGVmaW5pdGlvbi5zY29wZXMsIHNlZSBNb2RlbC5qc1xuICAgICAgbW9kaWZ5ID0gcXVlcnkgPT4gcXVlcnkuZmluZChtb2RpZnkpXG4gICAgfVxuICAgIGlmIChzY29wZSkge1xuICAgICAgLy8gQ3JlYXRlIGEgbmV3IG1vZGlmeSBmdW5jdGlvbiB0aGF0IG1lcmdlcyBzY29wZSBhbmQgbW9kaWZ5IHRoZW06XG4gICAgICBjb25zdCBvcmlnTW9kaWZ5ID0gbW9kaWZ5XG4gICAgICBtb2RpZnkgPSBxdWVyeSA9PiB7XG4gICAgICAgIHF1ZXJ5LmFwcGx5U2NvcGUoc2NvcGUpXG4gICAgICAgIGlmIChvcmlnTW9kaWZ5KSB7XG4gICAgICAgICAgcXVlcnkubW9kaWZ5KG9yaWdNb2RpZnkpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlbGF0aW9uOiByZWxhdGlvbkNsYXNzLFxuICAgICAgbW9kZWxDbGFzczogdG8ubW9kZWxDbGFzcyxcbiAgICAgIGpvaW46IHtcbiAgICAgICAgZnJvbTogZnJvbS50b1ZhbHVlKCksXG4gICAgICAgIHRvOiB0by50b1ZhbHVlKCksXG4gICAgICAgIC4uLih0aHJvdWdoICYmIHsgdGhyb3VnaCB9KVxuICAgICAgfSxcbiAgICAgIC4uLihtb2RpZnkgJiYgeyBtb2RpZnkgfSksXG4gICAgICAuLi5yZXN0XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0UmVsYXRpb25zKG93bmVyTW9kZWxDbGFzcywgcmVsYXRpb25zLCBtb2RlbHMpIHtcbiAgY29uc3QgY29udmVydGVkID0ge31cbiAgZm9yIChjb25zdCBbbmFtZSwgcmVsYXRpb25dIG9mIE9iamVjdC5lbnRyaWVzKHJlbGF0aW9ucykpIHtcbiAgICB0cnkge1xuICAgICAgY29udmVydGVkW25hbWVdID0gY29udmVydFJlbGF0aW9uKHJlbGF0aW9uLCBtb2RlbHMpXG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aHJvdyBuZXcgUmVsYXRpb25FcnJvcihcbiAgICAgICAgYCR7b3duZXJNb2RlbENsYXNzLm5hbWV9LnJlbGF0aW9ucy4ke25hbWV9OiAkeyhlcnIubWVzc2FnZSB8fCBlcnIpfWApXG4gICAgfVxuICB9XG4gIHJldHVybiBjb252ZXJ0ZWRcbn1cblxuLyoqXG4gKiBBZGRzIEpTT04gc2NoZW1hIHByb3BlcnRpZXMgZm9yIGVhY2ggb2YgdGhlIG1vZGVsQ2xhc3MnIHJlbGF0aW9ucy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZFJlbGF0aW9uU2NoZW1hcyhtb2RlbENsYXNzLCBwcm9wZXJ0aWVzKSB7XG4gIGZvciAoY29uc3QgcmVsYXRpb25JbnN0YW5jZSBvZiBPYmplY3QudmFsdWVzKG1vZGVsQ2xhc3MuZ2V0UmVsYXRpb25zKCkpKSB7XG4gICAgY29uc3QgeyBuYW1lLCBvd25lck1vZGVsQ2xhc3MsIHJlbGF0ZWRNb2RlbENsYXNzIH0gPSByZWxhdGlvbkluc3RhbmNlXG4gICAgY29uc3QgcmVsYXRpb25EZWZpbml0aW9uID0gb3duZXJNb2RlbENsYXNzLmRlZmluaXRpb24ucmVsYXRpb25zW25hbWVdXG4gICAgY29uc3QgaXNPbmVUb09uZSA9IHJlbGF0aW9uSW5zdGFuY2UuaXNPbmVUb09uZSgpXG4gICAgY29uc3QgeyBvd25lciB9ID0gcmVsYXRpb25EZWZpbml0aW9uXG4gICAgY29uc3QgJHJlZiA9IHJlbGF0ZWRNb2RlbENsYXNzLm5hbWVcbiAgICBjb25zdCBhbnlPZiA9IFtdXG4gICAgaWYgKGlzT25lVG9PbmUpIHtcbiAgICAgIC8vIEFsbG93IG51bGwtdmFsdWUgb24gb25lLXRvLW9uZSByZWxhdGlvbnNcbiAgICAgIGFueU9mLnB1c2goe1xuICAgICAgICB0eXBlOiAnbnVsbCdcbiAgICAgIH0pXG4gICAgfVxuICAgIGlmICghb3duZXIpIHtcbiAgICAgIC8vIEFsbG93IHJlZmVyZW5jZSBvYmplY3RzIGZvciByZWxhdGlvbnMgdGhhdCBkb24ndCBvd24gdGhlaXIgZGF0YS5cbiAgICAgIGFueU9mLnB1c2goe1xuICAgICAgICByZWxhdGU6ICRyZWZcbiAgICAgIH0pXG4gICAgfVxuICAgIC8vIEZpbmFsbHkgdGhlIG1vZGVsIGl0c2VsZlxuICAgIGFueU9mLnB1c2goeyAkcmVmIH0pXG4gICAgY29uc3QgaXRlbXMgPSBhbnlPZi5sZW5ndGggPiAxXG4gICAgICA/IHsgYW55T2YgfVxuICAgICAgOiBhbnlPZlswXVxuICAgIHByb3BlcnRpZXNbbmFtZV0gPSBpc09uZVRvT25lXG4gICAgICA/IGl0ZW1zXG4gICAgICA6IHtcbiAgICAgICAgdHlwZTogJ2FycmF5JyxcbiAgICAgICAgaXRlbXNcbiAgICAgIH1cbiAgfVxuICByZXR1cm4gcHJvcGVydGllc1xufVxuIl19
|
package/lib/services/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 _Service = require("./Service");
|
|
@@ -9,4 +15,4 @@ Object.keys(_Service).forEach(function (key) {
|
|
|
9
15
|
if (key in exports && exports[key] === _Service[key]) return;
|
|
10
16
|
exports[key] = _Service[key];
|
|
11
17
|
});
|
|
12
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vU2VydmljZSdcbiJdfQ==
|
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports.DiskStorage = void 0;
|
|
5
5
|
|
|
6
|
+
require("core-js/modules/es.error.cause.js");
|
|
7
|
+
|
|
8
|
+
require("core-js/modules/esnext.async-iterator.map.js");
|
|
9
|
+
|
|
10
|
+
require("core-js/modules/esnext.iterator.map.js");
|
|
11
|
+
|
|
6
12
|
var _fsExtra = _interopRequireDefault(require("fs-extra"));
|
|
7
13
|
|
|
8
14
|
var _path = _interopRequireDefault(require("path"));
|
|
@@ -116,4 +122,4 @@ class DiskStorage extends _Storage.Storage {
|
|
|
116
122
|
|
|
117
123
|
exports.DiskStorage = DiskStorage;
|
|
118
124
|
DiskStorage.type = 'disk';
|
|
119
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
125
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdG9yYWdlL0Rpc2tTdG9yYWdlLmpzIl0sIm5hbWVzIjpbIkRpc2tTdG9yYWdlIiwiU3RvcmFnZSIsImNvbnN0cnVjdG9yIiwiYXBwIiwiY29uZmlnIiwicGF0aCIsIkVycm9yIiwibmFtZSIsInN0b3JhZ2UiLCJtdWx0ZXIiLCJkaXNrU3RvcmFnZSIsImRlc3RpbmF0aW9uIiwicmVxIiwic3RvcmFnZUZpbGUiLCJjYiIsImtleSIsImdldFVuaXF1ZUtleSIsIm9yaWdpbmFsbmFtZSIsImRpciIsIl9nZXRQYXRoIiwiX2dldE5lc3RlZEZvbGRlciIsImZzIiwiZW5zdXJlRGlyIiwidGhlbiIsImNhdGNoIiwiZmlsZW5hbWUiLCJfZ2V0RmlsZVBhdGgiLCJmaWxlIiwiX2dldEZpbGVVcmwiLCJfZ2V0VXJsIiwiX2FkZEZpbGUiLCJidWZmZXIiLCJmaWxlUGF0aCIsImRpcm5hbWUiLCJ3cml0ZUZpbGUiLCJfcmVtb3ZlRmlsZSIsInVubGluayIsInJlbW92ZUlmRW1wdHkiLCJyZWFkZGlyIiwibGVuZ3RoIiwicm1kaXIiLCJlcnIiLCJjb2RlIiwicGFyZW50RGlyIiwiX3JlYWRGaWxlIiwicmVhZEZpbGUiLCJfbGlzdEtleXMiLCJyZWFkRGlyIiwicGFydHMiLCJ3aXRoRmlsZVR5cGVzIiwiZmlsZXMiLCJsaXN0MSIsIlByb21pc2UiLCJhbGwiLCJtYXAiLCJsZXZlbDEiLCJpc0RpcmVjdG9yeSIsImxpc3QyIiwibGV2ZWwyIiwibmVzdGVkRm9sZGVyIiwic3RhcnRzV2l0aCIsInB1c2giLCJwb3NpeCIsImpvaW4iLCJ0eXBlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBRU8sTUFBTUEsV0FBTixTQUEwQkMsZ0JBQTFCLENBQWtDO0FBR3ZDQyxFQUFBQSxXQUFXLENBQUNDLEdBQUQsRUFBTUMsTUFBTixFQUFjO0FBQ3ZCLFVBQU1ELEdBQU4sRUFBV0MsTUFBWDs7QUFDQSxRQUFJLENBQUMs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LENBQUNXLElBQU4sQ0FBV2xDLElBQVg7QUFDRDtBQUNGO0FBQ0Y7QUFDRixTQVRELENBREksQ0FBTjtBQVlEO0FBQ0YsS0FoQkQsQ0FESSxDQUFOO0FBbUJBLFdBQU91QixLQUFQO0FBQ0Q7O0FBRUQ5QixFQUFBQSxnQkFBZ0IsQ0FBQ0wsR0FBRCxFQUFNK0MsS0FBSyxHQUFHLEtBQWQsRUFBcUI7QUFHbkMsV0FBTyxDQUFDQSxLQUFLLEdBQUd6RCxjQUFLeUQsS0FBUixHQUFnQnpELGFBQXRCLEVBQTRCMEQsSUFBNUIsQ0FBaUNoRCxHQUFHLENBQUMsQ0FBRCxDQUFwQyxFQUF5Q0EsR0FBRyxDQUFDLENBQUQsQ0FBNUMsQ0FBUDtBQUNEOztBQTNHc0M7OztBQUE1QmYsVyxDQUNKZ0UsSSxHQUFPLE0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnMgZnJvbSAnZnMtZXh0cmEnXG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJ1xuaW1wb3J0IG11bHRlciBmcm9tICdAa29hL211bHRlcidcbmltcG9ydCB7IFN0b3JhZ2UgfSBmcm9tICcuL1N0b3JhZ2UnXG5cbmV4cG9ydCBjbGFzcyBEaXNrU3RvcmFnZSBleHRlbmRzIFN0b3JhZ2Uge1xuICBzdGF0aWMgdHlwZSA9ICdkaXNrJ1xuXG4gIGNvbnN0cnVjdG9yKGFwcCwgY29uZmlnKSB7XG4gICAgc3VwZXIoYXBwLCBjb25maWcpXG4gICAgaWYgKCF0aGlzLnBhdGgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTWlzc2luZyBjb25maWd1cmF0aW9uIChwYXRoKSBmb3Igc3RvcmFnZSAke3RoaXMubmFtZX1gKVxuICAgIH1cblxuICAgIHRoaXMuc3RvcmFnZSA9IG11bHRlci5kaXNrU3RvcmFnZSh7XG4gICAgICBkZXN0aW5hdGlvbjogKHJlcSwgc3RvcmFnZUZpbGUsIGNiKSA9PiB7XG4gICAgICAgIC8vIEFkZCBgc3RvcmFnZUZpbGUua2V5YCBwcm9wZXJ0eSB0byBpbnRlcm5hbCBzdG9yYWdlIGZpbGUgb2JqZWN0LlxuICAgICAgICBzdG9yYWdlRmlsZS5rZXkgPSB0aGlzLmdldFVuaXF1ZUtleShzdG9yYWdlRmlsZS5vcmlnaW5hbG5hbWUpXG4gICAgICAgIGNvbnN0IGRpciA9IHRoaXMuX2dldFBhdGgodGhpcy5fZ2V0TmVzdGVkRm9sZGVyKHN0b3JhZ2VGaWxlLmtleSkpXG4gICAgICAgIGZzLmVuc3VyZURpcihkaXIpXG4gICAgICAgICAgLnRoZW4oKCkgPT4gY2IobnVsbCwgZGlyKSlcbiAgICAgICAgICAuY2F0Y2goY2IpXG4gICAgICB9LFxuXG4gICAgICBmaWxlbmFtZTogKHJlcSwgc3RvcmFnZUZpbGUsIGNiKSA9PiB7XG4gICAgICAgIC8vIFVzZSBhZGRlZCBgc3RvcmFnZUZpbGUua2V5YCBwcm9wZXJ0eSBmb3IgbXVsdGVyJ3MgYGZpbGVuYW1lYCBhbHNvLlxuICAgICAgICBjYihudWxsLCBzdG9yYWdlRmlsZS5rZXkpXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIC8vIEBvdmVycmlkZVxuICBfZ2V0RmlsZVBhdGgoZmlsZSkge1xuICAgIHJldHVybiB0aGlzLl9nZXRQYXRoKHRoaXMuX2dldE5lc3RlZEZvbGRlcihmaWxlLmtleSksIGZpbGUua2V5KVxuICB9XG5cbiAgLy8gQG92ZXJyaWRlXG4gIF9nZXRGaWxlVXJsKGZpbGUpIHtcbiAgICByZXR1cm4gdGhpcy5fZ2V0VXJsKHRoaXMuX2dldE5lc3RlZEZvbGRlcihmaWxlLmtleSwgdHJ1ZSksIGZpbGUua2V5KVxuICB9XG5cbiAgLy8gQG92ZXJyaWRlXG4gIGFzeW5jIF9hZGRGaWxlKGZpbGUsIGJ1ZmZlcikge1xuICAgIGNvbnN0IGZpbGVQYXRoID0gdGhpcy5fZ2V0RmlsZVBhdGgoZmlsZSlcbiAgICBjb25zdCBkaXIgPSBwYXRoLmRpcm5hbWUoZmlsZVBhdGgpXG4gICAgYXdhaXQgZnMuZW5zdXJlRGlyKGRpcilcbiAgICBhd2FpdCBmcy53cml0ZUZpbGUoZmlsZVBhdGgsIGJ1ZmZlcilcbiAgICByZXR1cm4gZmlsZVxuICB9XG5cbiAgLy8gQG92ZXJyaWRlXG4gIGFzeW5jIF9yZW1vdmVGaWxlKGZpbGUpIHtcbiAgICBjb25zdCBmaWxlUGF0aCA9IHRoaXMuX2dldEZpbGVQYXRoKGZpbGUpXG4gICAgYXdhaXQgZnMudW5saW5rKGZpbGVQYXRoKVxuICAgIGNvbnN0IHJlbW92ZUlmRW1wdHkgPSBhc3luYyBkaXIgPT4ge1xuICAgICAgaWYgKChhd2FpdCBmcy5yZWFkZGlyKGRpcikpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IGZzLnJtZGlyKGRpcilcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgLy8gVGhlIGRpcmVjdG9yeSBtYXkgYWxyZWFkeSBoYXZlIGJlZW4gZGVsZXRlZCBieSBhbm90aGVyIGFzeW5jIGNhbGwsXG4gICAgICAgICAgLy8gZmFpbCBzaWxlbnRseSBoZXJlIGluIHRoaXMgY2FzZS5cbiAgICAgICAgICBpZiAoZXJyLmNvZGUgIT09ICdFTk9FTlQnKSB7XG4gICAgICAgICAgICB0aHJvdyBlcnJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLy8gQ2xlYW4gdXAgbmVzdGVkIGZvbGRlcnMgY3JlYXRlZCB3aXRoIGZpcnN0IHR3byBjaGFycyBvZiBgZmlsZS5rZXlgIGFsc286XG4gICAgY29uc3QgZGlyID0gcGF0aC5kaXJuYW1lKGZpbGVQYXRoKVxuICAgIGNvbnN0IHBhcmVudERpciA9IHBhdGguZGlybmFtZShkaXIpXG4gICAgYXdhaXQgcmVtb3ZlSWZFbXB0eShkaXIpXG4gICAgYXdhaXQgcmVtb3ZlSWZFbXB0eShwYXJlbnREaXIpXG4gIH1cblxuICAvLyBAb3ZlcnJpZGVcbiAgYXN5bmMgX3JlYWRGaWxlKGZpbGUpIHtcbiAgICByZXR1cm4gZnMucmVhZEZpbGUodGhpcy5fZ2V0RmlsZVBhdGgoZmlsZSkpXG4gIH1cblxuICAvLyBAb3ZlcnJpZGVcbiAgYXN5bmMgX2xpc3RLZXlzKCkge1xuICAgIGNvbnN0IHJlYWREaXIgPSAoLi4ucGFydHMpID0+XG4gICAgICBmcy5yZWFkZGlyKHRoaXMuX2dldFBhdGgoLi4ucGFydHMpLCB7IHdpdGhGaWxlVHlwZXM6IHRydWUgfSlcblxuICAgIGNvbnN0IGZpbGVzID0gW11cbiAgICBjb25zdCBsaXN0MSA9IGF3YWl0IHJlYWREaXIoKVxuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgbGlzdDEubWFwKGFzeW5jIGxldmVsMSA9PiB7XG4gICAgICAgIGlmIChsZXZlbDEuaXNEaXJlY3RvcnkoKSAmJiBsZXZlbDEubmFtZS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICBjb25zdCBsaXN0MiA9IGF3YWl0IHJlYWREaXIobGV2ZWwxLm5hbWUpXG4gICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICBsaXN0Mi5tYXAoYXN5bmMgbGV2ZWwyID0+IHtcbiAgICAgICAgICAgICAgaWYgKGxldmVsMi5pc0RpcmVjdG9yeSgpICYmIGxldmVsMi5uYW1lLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5lc3RlZEZvbGRlciA9IHRoaXMuX2dldFBhdGgobGV2ZWwxLm5hbWUsIGxldmVsMi5uYW1lKVxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBhd2FpdCBmcy5yZWFkZGlyKG5lc3RlZEZvbGRlcikpIHtcbiAgICAgICAgICAgICAgICAgIGlmICghZmlsZS5zdGFydHNXaXRoKCcuJykpIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsZXMucHVzaChmaWxlKVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKVxuICAgIHJldHVybiBmaWxlc1xuICB9XG5cbiAgX2dldE5lc3RlZEZvbGRlcihrZXksIHBvc2l4ID0gZmFsc2UpIHtcbiAgICAvLyBTdG9yZSBmaWxlcyBpbiBuZXN0ZWQgZm9sZGVycyBjcmVhdGVkIHdpdGggdGhlIGZpcnN0IHR3byBjaGFycyBvZiB0aGVcbiAgICAvLyBrZXksIGZvciBmYXN0ZXIgYWNjZXNzICYgbWFuYWdlbWVudCB3aXRoIGxhcmdlIGFtb3VudHMgb2YgZmlsZXMuXG4gICAgcmV0dXJuIChwb3NpeCA/IHBhdGgucG9zaXggOiBwYXRoKS5qb2luKGtleVswXSwga2V5WzFdKVxuICB9XG59XG4iXX0=
|
package/lib/storage/Storage.js
CHANGED
|
@@ -3,6 +3,10 @@
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports.Storage = 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 _path = _interopRequireDefault(require("path"));
|
|
7
11
|
|
|
8
12
|
var _multer = _interopRequireDefault(require("@koa/multer"));
|
|
@@ -202,4 +206,4 @@ class Storage {
|
|
|
202
206
|
}
|
|
203
207
|
|
|
204
208
|
exports.Storage = Storage;
|
|
205
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdG9yYWdlL1N0b3JhZ2UuanMiXSwibmFtZXMiOlsic3RvcmFnZUNsYXNzZXMiLCJTdG9yYWdlIiwiY29uc3RydWN0b3IiLCJhcHAiLCJjb25maWciLCJuYW1lIiwidXJsIiwicGF0aCIsInN0b3JhZ2UiLCJyZWdpc3RlciIsInN0b3JhZ2VDbGFzcyIsInR5cGUiLCJtYXRjaCIsImdldCIsImdldFVwbG9hZFN0b3JhZ2UiLCJPYmplY3QiLCJzZXRQcm90b3R5cGVPZiIsIl9oYW5kbGVGaWxlIiwicmVxIiwiZmlsZSIsImNhbGxiYWNrIiwiX2hhbmRsZVVwbG9hZCIsImVyciIsImdldFVwbG9hZEhhbmRsZXIiLCJhbnkiLCJnZXRVbmlxdWVLZXkiLCJBc3NldEZpbGUiLCJjb252ZXJ0QXNzZXRGaWxlIiwiY29udmVydCIsImNvbnZlcnRTdG9yYWdlRmlsZSIsInN0b3JhZ2VGaWxlIiwia2V5Iiwib3JpZ2luYWxuYW1lIiwibWltZXR5cGUiLCJzaXplIiwiX2dldEZpbGVVcmwiLCJ3aWR0aCIsImhlaWdodCIsImNvbnZlcnRTdG9yYWdlRmlsZXMiLCJzdG9yYWdlRmlsZXMiLCJtYXAiLCJhZGRGaWxlIiwiYnVmZmVyIiwiX2FkZEZpbGUiLCJCdWZmZXIiLCJieXRlTGVuZ3RoIiwicmVtb3ZlRmlsZSIsIl9yZW1vdmVGaWxlIiwicmVhZEZpbGUiLCJfcmVhZEZpbGUiLCJsaXN0S2V5cyIsIl9saXN0S2V5cyIsImdldEZpbGVQYXRoIiwiX2dldEZpbGVQYXRoIiwiZ2V0RmlsZVVybCIsImlzSW1hZ2VGaWxlIiwic3RhcnRzV2l0aCIsIl9nZXRVcmwiLCJwYXJ0cyIsIlVSTCIsInBvc2l4Iiwiam9pbiIsInRvU3RyaW5nIiwidW5kZWZpbmVkIiwiX2dldFBhdGgiLCJfZmlsZSIsIl9idWZmZXIiLCJyZWFkSW1hZ2VTaXplIiwiX2hhbmRsZUltYWdlRmlsZSIsInN0cmVhbSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJjb25maWd1cmFibGUiLCJlbnVtZXJhYmxlIiwidmFsdWUiLCJkYXRhIiwiZG9uZSIsIlBhc3NUaHJvdWdoIiwid3JpdGUiLCJvZmYiLCJvbkRhdGEiLCJvbkVuZCIsInBpcGUiLCJlbWl0IiwiY2h1bmsiLCJjb25jYXQiLCJvbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7OztBQUVBLE1BQU1BLGNBQWMsR0FBRyxFQUF2Qjs7QUFFTyxNQUFNQyxPQUFOLENBQWM7QUFDbkJDLEVBQUFBLFdBQVcsQ0FBQ0MsR0FBRCxFQUFNQyxNQUFOLEVBQWM7QUFDdkIsU0FBS0QsR0FBTCxHQUFXQSxHQUFYO0FBQ0EsU0FBS0MsTUFBTCxHQUFjQSxNQUFkO0FBQ0EsU0FBS0MsSUFBTCxHQUFZRCxNQUFNLENBQUNDLElBQW5CO0FBQ0EsU0FBS0MsR0FBTCxHQUFXRixNQUFNLENBQUNFLEdBQWxCO0FBQ0EsU0FBS0MsSUFBTCxHQUFZSCxNQUFNLENBQUNHLElBQW5CO0FBRUEsU0FBS0MsT0FBTCxHQUFlLElBQWY7QUFDRDs7QUFFYyxTQUFSQyxRQUFRLENBQUNDLFlBQUQsRUFBZTtBQUM1QixVQUFNQyxJQUFJLEdBQ1JELFlBQVksQ0FBQ0MsSUFBYixJQUNBLHNCQUFVRCxZQUFZLENBQUNMLElBQWIsQ0FBa0JPLEtBQWxCLENBQXdCLHFCQUF4QixFQUErQyxDQUEvQyxDQUFWLENBRkY7QUFJQUYsSUFBQUEsWUFBWSxDQUFDQyxJQUFiLEdBQW9CQSxJQUFwQjtBQUNBWCxJQUFBQSxjQUFjLENBQUNXLElBQUQsQ0FBZCxHQUF1QkQsWUFBdkI7QUFDRDs7QUFFUyxTQUFIRyxHQUFHLENBQUNGLElBQUQsRUFBTztBQUNmLFdBQU9YLGNBQWMsQ0FBQ1csSUFBRCxDQUFkLElBQXdCLElBQS9CO0FBQ0Q7O0FBRURHLEVBQUFBLGdCQUFnQixDQUFDVixNQUFELEVBQVM7QUFHdkIsV0FBTyxLQUFLSSxPQUFMLEdBQ0hPLE1BQU0sQ0FBQ0MsY0FBUCxD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QUFBO0FBQVIsU0FBRCxDQUFQO0FBQ0QsT0FSRDs7QUFVQSxZQUFNYyxLQUFLLEdBQUcsTUFBTTtBQUNsQixhQUFLaEYsR0FBTCxDQUFTa0YsSUFBVCxDQUFjLE9BQWQsRUFBdUIsZ0NBQXZCO0FBQ0FQLFFBQUFBLElBQUksQ0FBQyxJQUFELENBQUo7QUFDRCxPQUhEOztBQUtBLFlBQU1JLE1BQU0sR0FBR0ksS0FBSyxJQUFJO0FBQ3RCVCxRQUFBQSxJQUFJLEdBQUdBLElBQUksR0FBR2pDLE1BQU0sQ0FBQzJDLE1BQVAsQ0FBYyxDQUFDVixJQUFELEVBQU9TLEtBQVAsQ0FBZCxDQUFILEdBQWtDQSxLQUE3QztBQUNBLGNBQU1wRCxJQUFJLEdBQUcsd0JBQVUyQyxJQUFWLENBQWI7O0FBQ0EsWUFBSTNDLElBQUosRUFBVTtBQUNSNEMsVUFBQUEsSUFBSSxDQUFDNUMsSUFBRCxDQUFKO0FBQ0Q7QUFDRixPQU5EOztBQVFBZixNQUFBQSxJQUFJLENBQUNrRCxNQUFMLENBQ0dtQixFQURILENBQ00sTUFETixFQUNjTixNQURkLEVBRUdNLEVBRkgsQ0FFTSxLQUZOLEVBRWFMLEtBRmI7QUFHRCxLQTdCOEIsQ0FBL0I7O0FBK0JBLFFBQUlqRCxJQUFKLEVBQVU7QUFDUmYsTUFBQUEsSUFBSSxDQUFDaUIsS0FBTCxHQUFhRixJQUFJLENBQUNFLEtBQWxCO0FBQ0FqQixNQUFBQSxJQUFJLENBQUNrQixNQUFMLEdBQWNILElBQUksQ0FBQ0csTUFBbkI7QUFDRDs7QUFDRCxXQUFPLEtBQUtwQixXQUFMLENBQWlCQyxHQUFqQixFQUFzQkMsSUFBdEIsRUFBNEJrRCxNQUE1QixDQUFQO0FBQ0Q7O0FBbE1rQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gJ3BhdGgnXG5pbXBvcnQgbXVsdGVyIGZyb20gJ0Brb2EvbXVsdGVyJ1xuaW1wb3J0IGltYWdlU2l6ZSBmcm9tICdpbWFnZS1zaXplJ1xuaW1wb3J0IHsgUGFzc1Rocm91Z2ggfSBmcm9tICdzdHJlYW0nXG5pbXBvcnQgeyBVUkwgfSBmcm9tICd1cmwnXG5pbXBvcnQgeyBoeXBoZW5hdGUsIHRvUHJvbWlzZUNhbGxiYWNrIH0gZnJvbSAnQGRpdG9qcy91dGlscydcbmltcG9ydCB7IEFzc2V0RmlsZSB9IGZyb20gJy4vQXNzZXRGaWxlJ1xuXG5jb25zdCBzdG9yYWdlQ2xhc3NlcyA9IHt9XG5cbmV4cG9ydCBjbGFzcyBTdG9yYWdlIHtcbiAgY29uc3RydWN0b3IoYXBwLCBjb25maWcpIHtcbiAgICB0aGlzLmFwcCA9IGFwcFxuICAgIHRoaXMuY29uZmlnID0gY29uZmlnXG4gICAgdGhpcy5uYW1lID0gY29uZmlnLm5hbWVcbiAgICB0aGlzLnVybCA9IGNvbmZpZy51cmxcbiAgICB0aGlzLnBhdGggPSBjb25maWcucGF0aFxuICAgIC8vIFRoZSBhY3R1YWwgbXVsdGVyIHN0b3JhZ2Ugb2JqZWN0LlxuICAgIHRoaXMuc3RvcmFnZSA9IG51bGxcbiAgfVxuXG4gIHN0YXRpYyByZWdpc3RlcihzdG9yYWdlQ2xhc3MpIHtcbiAgICBjb25zdCB0eXBlID0gKFxuICAgICAgc3RvcmFnZUNsYXNzLnR5cGUgfHxcbiAgICAgIGh5cGhlbmF0ZShzdG9yYWdlQ2xhc3MubmFtZS5tYXRjaCgvXiguKj8pKD86U3RvcmFnZXwpJC8pWzFdKVxuICAgIClcbiAgICBzdG9yYWdlQ2xhc3MudHlwZSA9IHR5cGVcbiAgICBzdG9yYWdlQ2xhc3Nlc1t0eXBlXSA9IHN0b3JhZ2VDbGFzc1xuICB9XG5cbiAgc3RhdGljIGdldCh0eXBlKSB7XG4gICAgcmV0dXJuIHN0b3JhZ2VDbGFzc2VzW3R5cGVdIHx8IG51bGxcbiAgfVxuXG4gIGdldFVwbG9hZFN0b3JhZ2UoY29uZmlnKSB7XG4gICAgLy8gUmV0dXJucyBhIHN0b3JhZ2UgdGhhdCBpbmhlcml0cyBmcm9tIHRoaXMuc3RvcmFnZSBidXQgb3ZlcnJpZGVzXG4gICAgLy8gX2hhbmRsZUZpbGUgdG8gcGFzcyBvbiBgY29uZmlnYCB0byB0aGUgY2FsbCBvZiBgaGFuZGxlVXBsb2FkKClgXG4gICAgcmV0dXJuIHRoaXMuc3RvcmFnZVxuICAgICAgPyBPYmplY3Quc2V0UHJvdG90eXBlT2Yoe1xuICAgICAgICBfaGFuZGxlRmlsZTogYXN5bmMgKHJlcSwgZmlsZSwgY2FsbGJhY2spID0+IHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY2FsbGJhY2sobnVsbCwgYXdhaXQgdGhpcy5faGFuZGxlVXBsb2FkKHJlcSwgZmlsZSwgY29uZmlnKSlcbiAgICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICAgIGNhbGxiYWNrKGVycilcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0sIHRoaXMuc3RvcmFnZSlcbiAgICAgIDogbnVsbFxuICB9XG5cbiAgZ2V0VXBsb2FkSGFuZGxlcihjb25maWcpIHtcbiAgICBjb25zdCBzdG9yYWdlID0gdGhpcy5nZXRVcGxvYWRTdG9yYWdlKGNvbmZpZylcbiAgICByZXR1cm4gc3RvcmFnZSA/IG11bHRlcih7IC4uLmNvbmZpZywgc3RvcmFnZSB9KS5hbnkoKSA6IG51bGxcbiAgfVxuXG4gIGdldFVuaXF1ZUtleShuYW1lKSB7XG4gICAgcmV0dXJuIEFzc2V0RmlsZS5nZXRVbmlxdWVLZXkobmFtZSlcbiAgfVxuXG4gIGNvbnZlcnRBc3NldEZpbGUoZmlsZSkge1xuICAgIHJldHVybiBBc3NldEZpbGUuY29udmVydChmaWxlLCB0aGlzKVxuICB9XG5cbiAgY29udmVydFN0b3JhZ2VGaWxlKHN0b3JhZ2VGaWxlKSB7XG4gICAgLy8gQ29udmVydCBtdWx0ZXIgZmlsZSBvYmplY3QgdG8gb3VyIG93biBmaWxlIG9iamVjdCBmb3JtYXQ6XG4gICAgcmV0dXJuIHtcbiAgICAgIGtleTogc3RvcmFnZUZpbGUua2V5LFxuICAgICAgbmFtZTogc3RvcmFnZUZpbGUub3JpZ2luYWxuYW1lLFxuICAgICAgdHlwZTogc3RvcmFnZUZpbGUubWltZXR5cGUsXG4gICAgICBzaXplOiBzdG9yYWdlRmlsZS5zaXplLFxuICAgICAgdXJsOiB0aGlzLl9nZXRGaWxlVXJsKHN0b3JhZ2VGaWxlKSxcbiAgICAgIC8vIEluIGNhc2UgYGNvbmZpZy5yZWFkSW1hZ2VTaXplYCBpcyBzZXQ6XG4gICAgICB3aWR0aDogc3RvcmFnZUZpbGUud2lkdGgsXG4gICAgICBoZWlnaHQ6IHN0b3JhZ2VGaWxlLmhlaWdodFxuICAgIH1cbiAgfVxuXG4gIGNvbnZlcnRTdG9yYWdlRmlsZXMoc3RvcmFnZUZpbGVzKSB7XG4gICAgcmV0dXJuIHN0b3JhZ2VGaWxlcy5tYXAoc3RvcmFnZUZpbGUgPT4gdGhpcy5jb252ZXJ0U3RvcmFnZUZpbGUoc3RvcmFnZUZpbGUpKVxuICB9XG5cbiAgYXN5bmMgYWRkRmlsZShmaWxlLCBidWZmZXIpIHtcbiAgICBjb25zdCBzdG9yYWdlRmlsZSA9IGF3YWl0IHRoaXMuX2FkZEZpbGUoZmlsZSwgYnVmZmVyKVxuICAgIGZpbGUuc2l6ZSA9IEJ1ZmZlci5ieXRlTGVuZ3RoKGJ1ZmZlcilcbiAgICBmaWxlLnVybCA9IHRoaXMuX2dldEZpbGVVcmwoc3RvcmFnZUZpbGUpXG4gICAgLy8gVE9ETzogU3VwcG9ydCBgY29uZmlnLnJlYWRJbWFnZVNpemVgLCBidXQgdGhpcyBjYW4gb25seSBiZSBkb25lIG9uY2VzXG4gICAgLy8gdGhlcmUgYXJlIHNlcGFyYXRlIHN0b3JhZ2UgaW5zdGFuY2VzIHBlciBtb2RlbCBhc3NldHMgY29uZmlnIVxuICAgIHJldHVybiB0aGlzLmNvbnZlcnRBc3NldEZpbGUoZmlsZSlcbiAgfVxuXG4gIGFzeW5jIHJlbW92ZUZpbGUoZmlsZSkge1xuICAgIGF3YWl0IHRoaXMuX3JlbW92ZUZpbGUoZmlsZSlcbiAgfVxuXG4gIGFzeW5jIHJlYWRGaWxlKGZpbGUpIHtcbiAgICByZXR1cm4gdGhpcy5fcmVhZEZpbGUoZmlsZSlcbiAgfVxuXG4gIGFzeW5jIGxpc3RLZXlzKCkge1xuICAgIHJldHVybiB0aGlzLl9saXN0S2V5cygpXG4gIH1cblxuICBnZXRGaWxlUGF0aChmaWxlKSB7XG4gICAgcmV0dXJuIHRoaXMuX2dldEZpbGVQYXRoKGZpbGUpXG4gIH1cblxuICBnZXRGaWxlVXJsKGZpbGUpIHtcbiAgICByZXR1cm4gdGhpcy5fZ2V0RmlsZVVybChmaWxlKVxuICB9XG5cbiAgaXNJbWFnZUZpbGUoZmlsZSkge1xuICAgIHJldHVybiBmaWxlLm1pbWV0eXBlLnN0YXJ0c1dpdGgoJ2ltYWdlLycpXG4gIH1cblxuICBfZ2V0VXJsKC4uLnBhcnRzKSB7XG4gICAgcmV0dXJuIHRoaXMudXJsXG4gICAgICA/IG5ldyBVUkwocGF0aC5wb3NpeC5qb2luKC4uLnBhcnRzKSwgdGhpcy51cmwpLnRvU3RyaW5nKClcbiAgICAgIDogdW5kZWZpbmVkIC8vIFNvIHRoYXQgaXQgZG9lc24ndCBzaG93IHVwIGluIEpTT04gZGF0YS5cbiAgfVxuXG4gIF9nZXRQYXRoKC4uLnBhcnRzKSB7XG4gICAgcmV0dXJuIHRoaXMucGF0aFxuICAgICAgPyBwYXRoLmpvaW4odGhpcy5wYXRoLCAuLi5wYXJ0cylcbiAgICAgIDogdW5kZWZpbmVkIC8vIFNvIHRoYXQgaXQgZG9lc24ndCBzaG93IHVwIGluIEpTT04gZGF0YS5cbiAgfVxuXG4gIC8vIEBvdmVycmlkYWJsZVxuICBfZ2V0RmlsZVBhdGgoX2ZpbGUpIHt9XG5cbiAgLy8gQG92ZXJyaWRhYmxlXG4gIF9nZXRGaWxlVXJsKF9maWxlKSB7fVxuXG4gIC8vIEBvdmVycmlkYWJsZVxuICBhc3luYyBfYWRkRmlsZShfZmlsZSwgX2J1ZmZlcikge31cblxuICAvLyBAb3ZlcnJpZGFibGVcbiAgYXN5bmMgX3JlbW92ZUZpbGUoX2ZpbGUpIHt9XG5cbiAgLy8gQG92ZXJyaWRhYmxlXG4gIGFzeW5jIF9yZWFkRmlsZShfZmlsZSkge31cblxuICAvLyBAb3ZlcnJpZGFibGVcbiAgYXN5bmMgX2xpc3RLZXlzKCkge31cblxuICBhc3luYyBfaGFuZGxlVXBsb2FkKHJlcSwgZmlsZSwgY29uZmlnKSB7XG4gICAgaWYgKGNvbmZpZy5yZWFkSW1hZ2VTaXplICYmIHRoaXMuaXNJbWFnZUZpbGUoZmlsZSkpIHtcbiAgICAgIHJldHVybiB0aGlzLl9oYW5kbGVJbWFnZUZpbGUocmVxLCBmaWxlKVxuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5faGFuZGxlRmlsZShyZXEsIGZpbGUpXG4gICAgfVxuICB9XG5cbiAgX2hhbmRsZUZpbGUocmVxLCBmaWxlLCBzdHJlYW0gPSBudWxsKSB7XG4gICAgLy8gQ2FsbHMgdGhlIG9yaWdpbmFsIGBzdG9yYWdlLl9oYW5kbGVGaWxlKClgLCB3cmFwcGVkIGluIGEgcHJvbWlzZTpcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKHN0cmVhbSkge1xuICAgICAgICAvLyBSZXBsYWNlIHRoZSBvcmlnaW5hbCBgZmlsZS5zdHJlYW1gIHdpdGggdGhlIHBhc3MtdGhyb3VnaCBzdHJlYW06XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShmaWxlLCAnc3RyZWFtJywge1xuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICB2YWx1ZTogc3RyZWFtXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgICB0aGlzLnN0b3JhZ2UuX2hhbmRsZUZpbGUocmVxLCBmaWxlLCB0b1Byb21pc2VDYWxsYmFjayhyZXNvbHZlLCByZWplY3QpKVxuICAgIH0pXG4gIH1cblxuICBhc3luYyBfaGFuZGxlSW1hZ2VGaWxlKHJlcSwgZmlsZSkge1xuICAgIGNvbnN0IHsgc2l6ZSwgc3RyZWFtIH0gPSBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgIGxldCBkYXRhID0gbnVsbFxuXG4gICAgICBjb25zdCBkb25lID0gc2l6ZSA9PiB7XG4gICAgICAgIGNvbnN0IHN0cmVhbSA9IG5ldyBQYXNzVGhyb3VnaCgpXG4gICAgICAgIHN0cmVhbS53cml0ZShkYXRhKVxuICAgICAgICBmaWxlLnN0cmVhbVxuICAgICAgICAgIC5vZmYoJ2RhdGEnLCBvbkRhdGEpXG4gICAgICAgICAgLm9mZignZW5kJywgb25FbmQpXG4gICAgICAgICAgLnBpcGUoc3RyZWFtKVxuICAgICAgICByZXNvbHZlKHsgc2l6ZSwgc3RyZWFtIH0pXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG9uRW5kID0gKCkgPT4ge1xuICAgICAgICB0aGlzLmFwcC5lbWl0KCdlcnJvcicsICdVbmFibGUgdG8gZGV0ZXJtaW5lIGltYWdlIHNpemUnKVxuICAgICAgICBkb25lKG51bGwpXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG9uRGF0YSA9IGNodW5rID0+IHtcbiAgICAgICAgZGF0YSA9IGRhdGEgPyBCdWZmZXIuY29uY2F0KFtkYXRhLCBjaHVua10pIDogY2h1bmtcbiAgICAgICAgY29uc3Qgc2l6ZSA9IGltYWdlU2l6ZShkYXRhKVxuICAgICAgICBpZiAoc2l6ZSkge1xuICAgICAgICAgIGRvbmUoc2l6ZSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBmaWxlLnN0cmVhbVxuICAgICAgICAub24oJ2RhdGEnLCBvbkRhdGEpXG4gICAgICAgIC5vbignZW5kJywgb25FbmQpXG4gICAgfSlcblxuICAgIGlmIChzaXplKSB7XG4gICAgICBmaWxlLndpZHRoID0gc2l6ZS53aWR0aFxuICAgICAgZmlsZS5oZWlnaHQgPSBzaXplLmhlaWdodFxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5faGFuZGxlRmlsZShyZXEsIGZpbGUsIHN0cmVhbSlcbiAgfVxufVxuIl19
|
|
209
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdG9yYWdlL1N0b3JhZ2UuanMiXSwibmFtZXMiOlsic3RvcmFnZUNsYXNzZXMiLCJTdG9yYWdlIiwiY29uc3RydWN0b3IiLCJhcHAiLCJjb25maWciLCJuYW1lIiwidXJsIiwicGF0aCIsInN0b3JhZ2UiLCJyZWdpc3RlciIsInN0b3JhZ2VDbGFzcyIsInR5cGUiLCJtYXRjaCIsImdldCIsImdldFVwbG9hZFN0b3JhZ2UiLCJPYmplY3QiLCJzZXRQcm90b3R5cGVPZiIsIl9oYW5kbGVGaWxlIiwicmVxIiwiZmlsZSIsImNhbGxiYWNrIiwiX2hhbmRsZVVwbG9hZCIsImVyciIsImdldFVwbG9hZEhhbmRsZXIiLCJhbnkiLCJnZXRVbmlxdWVLZXkiLCJBc3NldEZpbGUiLCJjb252ZXJ0QXNzZXRGaWxlIiwiY29udmVydCIsImNvbnZlcnRTdG9yYWdlRmlsZSIsInN0b3JhZ2VGaWxlIiwia2V5Iiwib3JpZ2luYWxuYW1lIiwibWltZXR5cGUiLCJzaXplIiwiX2dldEZpbGVVcmwiLCJ3aWR0aCIsImhlaWdodCIsImNvbnZlcnRTdG9yYWdlRmlsZXMiLCJzdG9yYWdlRmlsZXMiLCJtYXAiLCJhZGRGaWxlIiwiYnVmZmVyIiwiX2FkZEZpbGUiLCJCdWZmZXIiLCJieXRlTGVuZ3RoIiwicmVtb3ZlRmlsZSIsIl9yZW1vdmVGaWxlIiwicmVhZEZpbGUiLCJfcmVhZEZpbGUiLCJsaXN0S2V5cyIsIl9saXN0S2V5cyIsImdldEZpbGVQYXRoIiwiX2dldEZpbGVQYXRoIiwiZ2V0RmlsZVVybCIsImlzSW1hZ2VGaWxlIiwic3RhcnRzV2l0aCIsIl9nZXRVcmwiLCJwYXJ0cyIsIlVSTCIsInBvc2l4Iiwiam9pbiIsInRvU3RyaW5nIiwidW5kZWZpbmVkIiwiX2dldFBhdGgiLCJfZmlsZSIsIl9idWZmZXIiLCJyZWFkSW1hZ2VTaXplIiwiX2hhbmRsZUltYWdlRmlsZSIsInN0cmVhbSIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJjb25maWd1cmFibGUiLCJlbnVtZXJhYmxlIiwidmFsdWUiLCJkYXRhIiwiZG9uZSIsIlBhc3NUaHJvdWdoIiwid3JpdGUiLCJvZmYiLCJvbkRhdGEiLCJvbkVuZCIsInBpcGUiLCJlbWl0IiwiY2h1bmsiLCJjb25jYXQiLCJvbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFFQSxNQUFNQSxjQUFjLEdBQUcsRUFBdkI7O0FBRU8sTUFBTUMsT0FBTixDQUFjO0FBQ25CQyxFQUFBQSxXQUFXLENBQUNDLEdBQUQsRUFBTUMsTUFBTixFQUFjO0FBQ3ZCLFNBQUtELEdBQUwsR0FBV0EsR0FBWDtBQUNBLFNBQUtDLE1BQUwsR0FBY0EsTUFBZDtBQUNBLFNBQUtDLElBQUwsR0FBWUQsTUFBTSxDQUFDQyxJQUFuQjtBQUNBLFNBQUtDLEdBQUwsR0FBV0YsTUFBTSxDQUFDRSxHQUFsQjtBQUNBLFNBQUtDLElBQUwsR0FBWUgsTUFBTSxDQUFDRyxJQUFuQjtBQUVBLFNBQUtDLE9BQUwsR0FBZSxJQUFmO0FBQ0Q7O0FBRWMsU0FBUkMsUUFBUSxDQUFDQyxZQUFELEVBQWU7QUFDNUIsVUFBTUMsSUFBSSxHQUNSRCxZQUFZLENBQUNDLElBQWIsSUFDQSxzQkFBVUQsWUFBWSxDQUFDTCxJQUFiLENBQWtCTyxLQUFsQixDQUF3QixxQkFBeEIsRUFBK0MsQ0FBL0MsQ0FBVixDQUZGO0FBSUFGLElBQUFBLFlBQVksQ0FBQ0MsSUFBYixHQUFvQkEsSUFBcEI7QUFDQVgsSUFBQUEsY0FBYyxDQUFDVyxJQUFELENBQWQsR0FBdUJELFlBQXZCO0FBQ0Q7O0FBRVMsU0FBSEcsR0FBRyxDQUFDRixJQUFELEVBQU87QUFDZixXQUFPWCxjQUFjLENBQUNXLElBQUQsQ0FBZCxJQUF3QixJQUEvQjtBQUNEOztBQUVERyxFQUFBQSxnQkFBZ0IsQ0FBQ1YsTUFBRCxFQUFTO0FBR3ZCLFdBQU8sS0FBS0ksT0FBTCxHQUNITyxNQUFNLENBQUNDLGNB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QyxVQUFBQTtBQUFSLFNBQUQsQ0FBUDtBQUNELE9BUkQ7O0FBVUEsWUFBTWMsS0FBSyxHQUFHLE1BQU07QUFDbEIsYUFBS2hGLEdBQUwsQ0FBU2tGLElBQVQsQ0FBYyxPQUFkLEVBQXVCLGdDQUF2QjtBQUNBUCxRQUFBQSxJQUFJLENBQUMsSUFBRCxDQUFKO0FBQ0QsT0FIRDs7QUFLQSxZQUFNSSxNQUFNLEdBQUdJLEtBQUssSUFBSTtBQUN0QlQsUUFBQUEsSUFBSSxHQUFHQSxJQUFJLEdBQUdqQyxNQUFNLENBQUMyQyxNQUFQLENBQWMsQ0FBQ1YsSUFBRCxFQUFPUyxLQUFQLENBQWQsQ0FBSCxHQUFrQ0EsS0FBN0M7QUFDQSxjQUFNcEQsSUFBSSxHQUFHLHdCQUFVMkMsSUFBVixDQUFiOztBQUNBLFlBQUkzQyxJQUFKLEVBQVU7QUFDUjRDLFVBQUFBLElBQUksQ0FBQzVDLElBQUQsQ0FBSjtBQUNEO0FBQ0YsT0FORDs7QUFRQWYsTUFBQUEsSUFBSSxDQUFDa0QsTUFBTCxDQUNHbUIsRUFESCxDQUNNLE1BRE4sRUFDY04sTUFEZCxFQUVHTSxFQUZILENBRU0sS0FGTixFQUVhTCxLQUZiO0FBR0QsS0E3QjhCLENBQS9COztBQStCQSxRQUFJakQsSUFBSixFQUFVO0FBQ1JmLE1BQUFBLElBQUksQ0FBQ2lCLEtBQUwsR0FBYUYsSUFBSSxDQUFDRSxLQUFsQjtBQUNBakIsTUFBQUEsSUFBSSxDQUFDa0IsTUFBTCxHQUFjSCxJQUFJLENBQUNHLE1BQW5CO0FBQ0Q7O0FBQ0QsV0FBTyxLQUFLcEIsV0FBTCxDQUFpQkMsR0FBakIsRUFBc0JDLElBQXRCLEVBQTRCa0QsTUFBNUIsQ0FBUDtBQUNEOztBQWxNa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tICdwYXRoJ1xuaW1wb3J0IG11bHRlciBmcm9tICdAa29hL211bHRlcidcbmltcG9ydCBpbWFnZVNpemUgZnJvbSAnaW1hZ2Utc2l6ZSdcbmltcG9ydCB7IFBhc3NUaHJvdWdoIH0gZnJvbSAnc3RyZWFtJ1xuaW1wb3J0IHsgVVJMIH0gZnJvbSAndXJsJ1xuaW1wb3J0IHsgaHlwaGVuYXRlLCB0b1Byb21pc2VDYWxsYmFjayB9IGZyb20gJ0BkaXRvanMvdXRpbHMnXG5pbXBvcnQgeyBBc3NldEZpbGUgfSBmcm9tICcuL0Fzc2V0RmlsZSdcblxuY29uc3Qgc3RvcmFnZUNsYXNzZXMgPSB7fVxuXG5leHBvcnQgY2xhc3MgU3RvcmFnZSB7XG4gIGNvbnN0cnVjdG9yKGFwcCwgY29uZmlnKSB7XG4gICAgdGhpcy5hcHAgPSBhcHBcbiAgICB0aGlzLmNvbmZpZyA9IGNvbmZpZ1xuICAgIHRoaXMubmFtZSA9IGNvbmZpZy5uYW1lXG4gICAgdGhpcy51cmwgPSBjb25maWcudXJsXG4gICAgdGhpcy5wYXRoID0gY29uZmlnLnBhdGhcbiAgICAvLyBUaGUgYWN0dWFsIG11bHRlciBzdG9yYWdlIG9iamVjdC5cbiAgICB0aGlzLnN0b3JhZ2UgPSBudWxsXG4gIH1cblxuICBzdGF0aWMgcmVnaXN0ZXIoc3RvcmFnZUNsYXNzKSB7XG4gICAgY29uc3QgdHlwZSA9IChcbiAgICAgIHN0b3JhZ2VDbGFzcy50eXBlIHx8XG4gICAgICBoeXBoZW5hdGUoc3RvcmFnZUNsYXNzLm5hbWUubWF0Y2goL14oLio/KSg/OlN0b3JhZ2V8KSQvKVsxXSlcbiAgICApXG4gICAgc3RvcmFnZUNsYXNzLnR5cGUgPSB0eXBlXG4gICAgc3RvcmFnZUNsYXNzZXNbdHlwZV0gPSBzdG9yYWdlQ2xhc3NcbiAgfVxuXG4gIHN0YXRpYyBnZXQodHlwZSkge1xuICAgIHJldHVybiBzdG9yYWdlQ2xhc3Nlc1t0eXBlXSB8fCBudWxsXG4gIH1cblxuICBnZXRVcGxvYWRTdG9yYWdlKGNvbmZpZykge1xuICAgIC8vIFJldHVybnMgYSBzdG9yYWdlIHRoYXQgaW5oZXJpdHMgZnJvbSB0aGlzLnN0b3JhZ2UgYnV0IG92ZXJyaWRlc1xuICAgIC8vIF9oYW5kbGVGaWxlIHRvIHBhc3Mgb24gYGNvbmZpZ2AgdG8gdGhlIGNhbGwgb2YgYGhhbmRsZVVwbG9hZCgpYFxuICAgIHJldHVybiB0aGlzLnN0b3JhZ2VcbiAgICAgID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKHtcbiAgICAgICAgX2hhbmRsZUZpbGU6IGFzeW5jIChyZXEsIGZpbGUsIGNhbGxiYWNrKSA9PiB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNhbGxiYWNrKG51bGwsIGF3YWl0IHRoaXMuX2hhbmRsZVVwbG9hZChyZXEsIGZpbGUsIGNvbmZpZykpXG4gICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBjYWxsYmFjayhlcnIpXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9LCB0aGlzLnN0b3JhZ2UpXG4gICAgICA6IG51bGxcbiAgfVxuXG4gIGdldFVwbG9hZEhhbmRsZXIoY29uZmlnKSB7XG4gICAgY29uc3Qgc3RvcmFnZSA9IHRoaXMuZ2V0VXBsb2FkU3RvcmFnZShjb25maWcpXG4gICAgcmV0dXJuIHN0b3JhZ2UgPyBtdWx0ZXIoeyAuLi5jb25maWcsIHN0b3JhZ2UgfSkuYW55KCkgOiBudWxsXG4gIH1cblxuICBnZXRVbmlxdWVLZXkobmFtZSkge1xuICAgIHJldHVybiBBc3NldEZpbGUuZ2V0VW5pcXVlS2V5KG5hbWUpXG4gIH1cblxuICBjb252ZXJ0QXNzZXRGaWxlKGZpbGUpIHtcbiAgICByZXR1cm4gQXNzZXRGaWxlLmNvbnZlcnQoZmlsZSwgdGhpcylcbiAgfVxuXG4gIGNvbnZlcnRTdG9yYWdlRmlsZShzdG9yYWdlRmlsZSkge1xuICAgIC8vIENvbnZlcnQgbXVsdGVyIGZpbGUgb2JqZWN0IHRvIG91ciBvd24gZmlsZSBvYmplY3QgZm9ybWF0OlxuICAgIHJldHVybiB7XG4gICAgICBrZXk6IHN0b3JhZ2VGaWxlLmtleSxcbiAgICAgIG5hbWU6IHN0b3JhZ2VGaWxlLm9yaWdpbmFsbmFtZSxcbiAgICAgIHR5cGU6IHN0b3JhZ2VGaWxlLm1pbWV0eXBlLFxuICAgICAgc2l6ZTogc3RvcmFnZUZpbGUuc2l6ZSxcbiAgICAgIHVybDogdGhpcy5fZ2V0RmlsZVVybChzdG9yYWdlRmlsZSksXG4gICAgICAvLyBJbiBjYXNlIGBjb25maWcucmVhZEltYWdlU2l6ZWAgaXMgc2V0OlxuICAgICAgd2lkdGg6IHN0b3JhZ2VGaWxlLndpZHRoLFxuICAgICAgaGVpZ2h0OiBzdG9yYWdlRmlsZS5oZWlnaHRcbiAgICB9XG4gIH1cblxuICBjb252ZXJ0U3RvcmFnZUZpbGVzKHN0b3JhZ2VGaWxlcykge1xuICAgIHJldHVybiBzdG9yYWdlRmlsZXMubWFwKHN0b3JhZ2VGaWxlID0+IHRoaXMuY29udmVydFN0b3JhZ2VGaWxlKHN0b3JhZ2VGaWxlKSlcbiAgfVxuXG4gIGFzeW5jIGFkZEZpbGUoZmlsZSwgYnVmZmVyKSB7XG4gICAgY29uc3Qgc3RvcmFnZUZpbGUgPSBhd2FpdCB0aGlzLl9hZGRGaWxlKGZpbGUsIGJ1ZmZlcilcbiAgICBmaWxlLnNpemUgPSBCdWZmZXIuYnl0ZUxlbmd0aChidWZmZXIpXG4gICAgZmlsZS51cmwgPSB0aGlzLl9nZXRGaWxlVXJsKHN0b3JhZ2VGaWxlKVxuICAgIC8vIFRPRE86IFN1cHBvcnQgYGNvbmZpZy5yZWFkSW1hZ2VTaXplYCwgYnV0IHRoaXMgY2FuIG9ubHkgYmUgZG9uZSBvbmNlc1xuICAgIC8vIHRoZXJlIGFyZSBzZXBhcmF0ZSBzdG9yYWdlIGluc3RhbmNlcyBwZXIgbW9kZWwgYXNzZXRzIGNvbmZpZyFcbiAgICByZXR1cm4gdGhpcy5jb252ZXJ0QXNzZXRGaWxlKGZpbGUpXG4gIH1cblxuICBhc3luYyByZW1vdmVGaWxlKGZpbGUpIHtcbiAgICBhd2FpdCB0aGlzLl9yZW1vdmVGaWxlKGZpbGUpXG4gIH1cblxuICBhc3luYyByZWFkRmlsZShmaWxlKSB7XG4gICAgcmV0dXJuIHRoaXMuX3JlYWRGaWxlKGZpbGUpXG4gIH1cblxuICBhc3luYyBsaXN0S2V5cygpIHtcbiAgICByZXR1cm4gdGhpcy5fbGlzdEtleXMoKVxuICB9XG5cbiAgZ2V0RmlsZVBhdGgoZmlsZSkge1xuICAgIHJldHVybiB0aGlzLl9nZXRGaWxlUGF0aChmaWxlKVxuICB9XG5cbiAgZ2V0RmlsZVVybChmaWxlKSB7XG4gICAgcmV0dXJuIHRoaXMuX2dldEZpbGVVcmwoZmlsZSlcbiAgfVxuXG4gIGlzSW1hZ2VGaWxlKGZpbGUpIHtcbiAgICByZXR1cm4gZmlsZS5taW1ldHlwZS5zdGFydHNXaXRoKCdpbWFnZS8nKVxuICB9XG5cbiAgX2dldFVybCguLi5wYXJ0cykge1xuICAgIHJldHVybiB0aGlzLnVybFxuICAgICAgPyBuZXcgVVJMKHBhdGgucG9zaXguam9pbiguLi5wYXJ0cyksIHRoaXMudXJsKS50b1N0cmluZygpXG4gICAgICA6IHVuZGVmaW5lZCAvLyBTbyB0aGF0IGl0IGRvZXNuJ3Qgc2hvdyB1cCBpbiBKU09OIGRhdGEuXG4gIH1cblxuICBfZ2V0UGF0aCguLi5wYXJ0cykge1xuICAgIHJldHVybiB0aGlzLnBhdGhcbiAgICAgID8gcGF0aC5qb2luKHRoaXMucGF0aCwgLi4ucGFydHMpXG4gICAgICA6IHVuZGVmaW5lZCAvLyBTbyB0aGF0IGl0IGRvZXNuJ3Qgc2hvdyB1cCBpbiBKU09OIGRhdGEuXG4gIH1cblxuICAvLyBAb3ZlcnJpZGFibGVcbiAgX2dldEZpbGVQYXRoKF9maWxlKSB7fVxuXG4gIC8vIEBvdmVycmlkYWJsZVxuICBfZ2V0RmlsZVVybChfZmlsZSkge31cblxuICAvLyBAb3ZlcnJpZGFibGVcbiAgYXN5bmMgX2FkZEZpbGUoX2ZpbGUsIF9idWZmZXIpIHt9XG5cbiAgLy8gQG92ZXJyaWRhYmxlXG4gIGFzeW5jIF9yZW1vdmVGaWxlKF9maWxlKSB7fVxuXG4gIC8vIEBvdmVycmlkYWJsZVxuICBhc3luYyBfcmVhZEZpbGUoX2ZpbGUpIHt9XG5cbiAgLy8gQG92ZXJyaWRhYmxlXG4gIGFzeW5jIF9saXN0S2V5cygpIHt9XG5cbiAgYXN5bmMgX2hhbmRsZVVwbG9hZChyZXEsIGZpbGUsIGNvbmZpZykge1xuICAgIGlmIChjb25maWcucmVhZEltYWdlU2l6ZSAmJiB0aGlzLmlzSW1hZ2VGaWxlKGZpbGUpKSB7XG4gICAgICByZXR1cm4gdGhpcy5faGFuZGxlSW1hZ2VGaWxlKHJlcSwgZmlsZSlcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuX2hhbmRsZUZpbGUocmVxLCBmaWxlKVxuICAgIH1cbiAgfVxuXG4gIF9oYW5kbGVGaWxlKHJlcSwgZmlsZSwgc3RyZWFtID0gbnVsbCkge1xuICAgIC8vIENhbGxzIHRoZSBvcmlnaW5hbCBgc3RvcmFnZS5faGFuZGxlRmlsZSgpYCwgd3JhcHBlZCBpbiBhIHByb21pc2U6XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGlmIChzdHJlYW0pIHtcbiAgICAgICAgLy8gUmVwbGFjZSB0aGUgb3JpZ2luYWwgYGZpbGUuc3RyZWFtYCB3aXRoIHRoZSBwYXNzLXRocm91Z2ggc3RyZWFtOlxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZmlsZSwgJ3N0cmVhbScsIHtcbiAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgdmFsdWU6IHN0cmVhbVxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgdGhpcy5zdG9yYWdlLl9oYW5kbGVGaWxlKHJlcSwgZmlsZSwgdG9Qcm9taXNlQ2FsbGJhY2socmVzb2x2ZSwgcmVqZWN0KSlcbiAgICB9KVxuICB9XG5cbiAgYXN5bmMgX2hhbmRsZUltYWdlRmlsZShyZXEsIGZpbGUpIHtcbiAgICBjb25zdCB7IHNpemUsIHN0cmVhbSB9ID0gYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICBsZXQgZGF0YSA9IG51bGxcblxuICAgICAgY29uc3QgZG9uZSA9IHNpemUgPT4ge1xuICAgICAgICBjb25zdCBzdHJlYW0gPSBuZXcgUGFzc1Rocm91Z2goKVxuICAgICAgICBzdHJlYW0ud3JpdGUoZGF0YSlcbiAgICAgICAgZmlsZS5zdHJlYW1cbiAgICAgICAgICAub2ZmKCdkYXRhJywgb25EYXRhKVxuICAgICAgICAgIC5vZmYoJ2VuZCcsIG9uRW5kKVxuICAgICAgICAgIC5waXBlKHN0cmVhbSlcbiAgICAgICAgcmVzb2x2ZSh7IHNpemUsIHN0cmVhbSB9KVxuICAgICAgfVxuXG4gICAgICBjb25zdCBvbkVuZCA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5hcHAuZW1pdCgnZXJyb3InLCAnVW5hYmxlIHRvIGRldGVybWluZSBpbWFnZSBzaXplJylcbiAgICAgICAgZG9uZShudWxsKVxuICAgICAgfVxuXG4gICAgICBjb25zdCBvbkRhdGEgPSBjaHVuayA9PiB7XG4gICAgICAgIGRhdGEgPSBkYXRhID8gQnVmZmVyLmNvbmNhdChbZGF0YSwgY2h1bmtdKSA6IGNodW5rXG4gICAgICAgIGNvbnN0IHNpemUgPSBpbWFnZVNpemUoZGF0YSlcbiAgICAgICAgaWYgKHNpemUpIHtcbiAgICAgICAgICBkb25lKHNpemUpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZmlsZS5zdHJlYW1cbiAgICAgICAgLm9uKCdkYXRhJywgb25EYXRhKVxuICAgICAgICAub24oJ2VuZCcsIG9uRW5kKVxuICAgIH0pXG5cbiAgICBpZiAoc2l6ZSkge1xuICAgICAgZmlsZS53aWR0aCA9IHNpemUud2lkdGhcbiAgICAgIGZpbGUuaGVpZ2h0ID0gc2l6ZS5oZWlnaHRcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2hhbmRsZUZpbGUocmVxLCBmaWxlLCBzdHJlYW0pXG4gIH1cbn1cbiJdfQ==
|
package/lib/storage/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
|
var _exportNames = {
|
|
5
11
|
Storage: true
|
|
@@ -25,4 +31,4 @@ Object.keys(_AssetFile).forEach(function (key) {
|
|
|
25
31
|
_Storage.Storage.register(_DiskStorage.DiskStorage);
|
|
26
32
|
|
|
27
33
|
_Storage.Storage.register(_S3Storage.S3Storage);
|
|
28
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdG9yYWdlL2luZGV4LmpzIl0sIm5hbWVzIjpbIlN0b3JhZ2UiLCJyZWdpc3RlciIsIkRpc2tTdG9yYWdlIiwiUzNTdG9yYWdlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7QUFDQTs7QUFLQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBSEFBLGlCQUFRQyxRQUFSLENBQWlCQyx3QkFBakI7O0FBQ0FGLGlCQUFRQyxRQUFSLENBQWlCRSxvQkFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdG9yYWdlIH0gZnJvbSAnLi9TdG9yYWdlJ1xuaW1wb3J0IHsgRGlza1N0b3JhZ2UgfSBmcm9tICcuL0Rpc2tTdG9yYWdlJ1xuaW1wb3J0IHsgUzNTdG9yYWdlIH0gZnJvbSAnLi9TM1N0b3JhZ2UnXG5cblN0b3JhZ2UucmVnaXN0ZXIoRGlza1N0b3JhZ2UpXG5TdG9yYWdlLnJlZ2lzdGVyKFMzU3RvcmFnZSlcblxuZXhwb3J0ICogZnJvbSAnLi9Bc3NldEZpbGUnXG5leHBvcnQgeyBTdG9yYWdlIH1cbiJdfQ==
|
package/lib/utils/emitter.js
CHANGED
|
@@ -3,7 +3,11 @@
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports.emitAsync = emitAsync;
|
|
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
|
function emitAsync(emitter, event, ...args) {
|
|
7
11
|
return Promise.all(emitter.listeners(event).map(listener => listener.call(emitter, ...args)));
|
|
8
12
|
}
|
|
9
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9lbWl0dGVyLmpzIl0sIm5hbWVzIjpbImVtaXRBc3luYyIsImVtaXR0ZXIiLCJldmVudCIsImFyZ3MiLCJQcm9taXNlIiwiYWxsIiwibGlzdGVuZXJzIiwibWFwIiwibGlzdGVuZXIiLCJjYWxsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBTyxTQUFTQSxTQUFULENBQW1CQyxPQUFuQixFQUE0QkMsS0FBNUIsRUFBbUMsR0FBR0MsSUFBdEMsRUFBNEM7QUFDakQsU0FBT0MsT0FBTyxDQUFDQyxHQUFSLENBQ0xKLE9BQU8sQ0FBQ0ssU0FBUixDQUFrQkosS0FBbEIsRUFBeUJLLEdBQXpCLENBQ0VDLFFBQVEsSUFBSUEsUUFBUSxDQUFDQyxJQUFULENBQWNSLE9BQWQsRUFBdUIsR0FBR0UsSUFBMUIsQ0FEZCxDQURLLENBQVA7QUFLRCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBlbWl0QXN5bmMoZW1pdHRlciwgZXZlbnQsIC4uLmFyZ3MpIHtcbiAgcmV0dXJuIFByb21pc2UuYWxsKFxuICAgIGVtaXR0ZXIubGlzdGVuZXJzKGV2ZW50KS5tYXAoXG4gICAgICBsaXN0ZW5lciA9PiBsaXN0ZW5lci5jYWxsKGVtaXR0ZXIsIC4uLmFyZ3MpXG4gICAgKVxuICApXG59XG4iXX0=
|
package/lib/utils/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 _decorator = require("./decorator");
|
|
@@ -57,4 +63,4 @@ Object.keys(_scope).forEach(function (key) {
|
|
|
57
63
|
if (key in exports && exports[key] === _scope[key]) return;
|
|
58
64
|
exports[key] = _scope[key];
|
|
59
65
|
});
|
|
60
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9pbmRleC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUE7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFDQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUNBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ0E7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFDQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUNBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQ0E7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGVjb3JhdG9yJ1xuZXhwb3J0ICogZnJvbSAnLi9kZXByZWNhdGUnXG5leHBvcnQgKiBmcm9tICcuL2VtaXR0ZXInXG5leHBvcnQgKiBmcm9tICcuL2Z1bmN0aW9uJ1xuZXhwb3J0ICogZnJvbSAnLi9qc29uJ1xuZXhwb3J0ICogZnJvbSAnLi9vYmplY3QnXG5leHBvcnQgKiBmcm9tICcuL3Njb3BlJ1xuIl19
|
package/lib/utils/object.js
CHANGED
|
@@ -1,14 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
|
+
exports.createLookup = createLookup;
|
|
4
5
|
exports.getAllKeys = getAllKeys;
|
|
5
6
|
exports.getOwnProperty = getOwnProperty;
|
|
6
|
-
exports.
|
|
7
|
+
exports.mergeAsReversedArrays = mergeAsReversedArrays;
|
|
7
8
|
exports.mergeReversed = mergeReversed;
|
|
8
9
|
exports.mergeReversedOrNull = mergeReversedOrNull;
|
|
9
|
-
exports.mergeAsReversedArrays = mergeAsReversedArrays;
|
|
10
10
|
exports.setupPropertyInheritance = setupPropertyInheritance;
|
|
11
11
|
|
|
12
|
+
require("core-js/modules/esnext.async-iterator.reduce.js");
|
|
13
|
+
|
|
14
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
|
15
|
+
|
|
16
|
+
require("core-js/modules/esnext.iterator.reduce.js");
|
|
17
|
+
|
|
12
18
|
var _utils = require("@ditojs/utils");
|
|
13
19
|
|
|
14
20
|
function getAllKeys(object) {
|
|
@@ -83,4 +89,4 @@ function setupPropertyInheritance(object, key, baseValue = null) {
|
|
|
83
89
|
|
|
84
90
|
return object[key];
|
|
85
91
|
}
|
|
86
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
92
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9vYmplY3QuanMiXSwibmFtZXMiOlsiZ2V0QWxsS2V5cyIsIm9iamVjdCIsImtleXMiLCJrZXkiLCJwdXNoIiwiZ2V0T3duUHJvcGVydHkiLCJoYXNPd25Qcm9wZXJ0eSIsInVuZGVmaW5lZCIsImNyZWF0ZUxvb2t1cCIsInJlZHVjZSIsIm9iaiIsIk9iamVjdCIsImNyZWF0ZSIsIm1lcmdlUmV2ZXJzZWQiLCJvYmplY3RzIiwiYXNzaWduIiwicmV2ZXJzZSIsIm1lcmdlUmV2ZXJzZWRPck51bGwiLCJtZXJnZWQiLCJsZW5ndGgiLCJtZXJnZUFzUmV2ZXJzZWRBcnJheXMiLCJyZXMiLCJ2YWx1ZSIsInVuc2hpZnQiLCJzZXR1cFByb3BlcnR5SW5oZXJpdGFuY2UiLCJiYXNlVmFsdWUiLCJjdXJyZW50IiwicHJvdG90eXBlIiwicGFyZW50IiwiZ2V0UHJvdG90eXBlT2YiLCJwYXJlbnRWYWx1ZSIsInNldFByb3RvdHlwZU9mIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUVPLFNBQVNBLFVBQVQsQ0FBb0JDLE1BQXBCLEVBQTRCO0FBRWpDLFFBQU1DLElBQUksR0FBRyxFQUFiOztBQUNBLE9BQUssTUFBTUMsR0FBWCxJQUFrQkYsTUFBbEIsRUFBMEI7QUFDeEJDLElBQUFBLElBQUksQ0FBQ0UsSUFBTCxDQUFVRCxHQUFWO0FBQ0Q7O0FBQ0QsU0FBT0QsSUFBUDtBQUNEOztBQUVNLFNBQVNHLGNBQVQsQ0FBd0JKLE1BQXhCLEVBQWdDRSxHQUFoQyxFQUFxQztBQUMxQyxTQUFPRixNQUFNLENBQUNLLGNBQVAsQ0FBc0JILEdBQXRCLElBQTZCRixNQUFNLENBQUNFLEdBQUQsQ0FBbkMsR0FBMkNJLFNBQWxEO0FBQ0Q7O0FBRU0sU0FBU0MsWUFBVCxDQUFzQk4sSUFBdEIsRUFBNEI7QUFDakMsU0FBTyxvQkFBUUEsSUFBUixFQUFjTyxNQUFkLENBQXFCLENBQUNDLEdBQUQsRUFBTVAsR0FBTixLQUFjO0FBQ3hDTyxJQUFBQSxHQUFHLENBQUNQLEdBQUQsQ0FBSCxHQUFXLElBQVg7QUFDQSxXQUFPTyxHQUFQO0FBQ0QsR0FITSxFQUdKQyxNQUFNLENBQUNDLE1BQVAsQ0FBYyxJQUFkLENBSEksQ0FBUDtBQUlEOztBQUVNLFNBQVNDLGFBQVQsQ0FBdUJDLE9BQXZCLEVBQWdDO0FBQ3JDLFNBQU9ILE1BQU0sQ0FBQ0ksTUFBUCxDQUFjLEVBQWQsRUFBa0IsR0FBRyxDQUFDLEdBQUdELE9BQUosRUFBYUUsT0FBYixFQUFyQixDQUFQO0FBQ0Q7O0FBRU0sU0FBU0MsbUJBQVQsQ0FBNkJILE9BQTdCLEVBQXNDO0FBQzNDLFFBQU1JLE1BQU0sR0FBR0wsYUFBYSxDQUFDQyxPQUFELENBQTVCO0FBQ0EsU0FBT0gsTUFBTSxDQUFDVCxJQUFQLENBQVlnQixNQUFaLEVBQW9CQyxNQUFwQixHQUE2QixDQUE3QixHQUFpQ0QsTUFBakMsR0FBMEMsSUFBakQ7QUFDRDs7QUFFTSxTQUFTRSxxQkFBVCxDQUErQk4sT0FBL0IsRUFBd0M7QUFDN0MsUUFBTU8sR0FBRyxHQUFHLEVBQVo7O0FBQ0EsT0FBSyxNQUFNcEIsTUFBWCxJQUFxQmEsT0FBckIsRUFBOEI7QUFDNUIsU0FBSyxNQUFNWCxHQUFYLElBQWtCRixNQUFsQixFQUEwQjtBQUN4QixZQUFNcUIsS0FBSyxHQUFHckIsTUFBTSxDQUFDRSxHQUFELENBQXBCOztBQUNBLFVBQUlBLEdBQUcsSUFBSWtCLEdBQVgsRUFBZ0I7QUFDZEEsUUFBQUEsR0FBRyxDQUFDbEIsR0FBRCxDQUFILENBQVNvQixPQUFULENBQWlCRCxLQUFqQjtBQUNELE9BRkQsTUFFTztBQUNMRCxRQUFBQSxHQUFHLENBQUNsQixHQUFELENBQUgsR0FBVyxDQUFDbUIsS0FBRCxDQUFYO0FBQ0Q7QUFDRjtBQUNGOztBQUNELFNBQU9ELEdBQVA7QUFDRDs7QUFFTSxTQUFTRyx3QkFBVCxDQUFrQ3ZCLE1BQWxDLEVBQTBDRSxHQUExQyxFQUErQ3NCLFNBQVMsR0FBRyxJQUEzRCxFQUFpRTtBQUl0RSxNQUFJQyxPQUFPLEdBQUd6QixNQUFkOztBQUNBLFNBQU95QixPQUFPLEtBQUtmLE1BQU0sQ0FBQ2dCLFNBQTFCLEVBQXFDO0FBQ25DLFVBQU1DLE1BQU0sR0FBR2pCLE1BQU0sQ0FBQ2tCLGNBQVAsQ0FBc0JILE9BQXRCLENBQWY7O0FBQ0EsUUFBSUEsT0FBTyxDQUFDcEIsY0FBUixDQUF1QkgsR0FBdkIsQ0FBSixFQUFpQztBQUMvQixZQUFNbUIsS0FBSyxHQUFHSSxPQUFPLENBQUN2QixHQUFELENBQXJCO0FBQ0EsWUFBTTJCLFdBQVcsR0FBR0YsTUFBTSxDQUFDekIsR0FBRCxDQUFOLElBQWVzQixTQUFuQzs7QUFDQSxVQUFJSyxXQUFKLEVBQWlCO0FBQ2ZuQixRQUFBQSxNQUFNLENBQUNvQixjQUFQLENBQXNCVCxLQUF0QixFQUE2QlEsV0FBN0I7QUFDRDtBQUNGOztBQUNESixJQUFBQSxPQUFPLEdBQUdFLE1BQVY7QUFDRDs7QUFDRCxNQUFJSCxTQUFTLElBQUksRUFBRXRCLEdBQUcsSUFBSUYsTUFBVCxDQUFqQixFQUFtQztBQUdqQ0EsSUFBQUEsTUFBTSxDQUFDRSxHQUFELENBQU4sR0FBY1EsTUFBTSxDQUFDb0IsY0FBUCxDQUFzQixFQUF0QixFQUEwQk4sU0FBMUIsQ0FBZDtBQUNEOztBQUNELFNBQU94QixNQUFNLENBQUNFLEdBQUQsQ0FBYjtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXNBcnJheSB9IGZyb20gJ0BkaXRvanMvdXRpbHMnXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbGxLZXlzKG9iamVjdCkge1xuICAvLyBVbmxpa2UgYE9iamVjdC5rZXlzKClgLCB0aGlzIHJldHVybnMgYWxsIGVudW1lcmFibGUga2V5cyBub3QganVzdCBvd24gb25lcy5cbiAgY29uc3Qga2V5cyA9IFtdXG4gIGZvciAoY29uc3Qga2V5IGluIG9iamVjdCkge1xuICAgIGtleXMucHVzaChrZXkpXG4gIH1cbiAgcmV0dXJuIGtleXNcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE93blByb3BlcnR5KG9iamVjdCwga2V5KSB7XG4gIHJldHVybiBvYmplY3QuaGFzT3duUHJvcGVydHkoa2V5KSA/IG9iamVjdFtrZXldIDogdW5kZWZpbmVkXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVMb29rdXAoa2V5cykge1xuICByZXR1cm4gYXNBcnJheShrZXlzKS5yZWR1Y2UoKG9iaiwga2V5KSA9PiB7XG4gICAgb2JqW2tleV0gPSB0cnVlXG4gICAgcmV0dXJuIG9ialxuICB9LCBPYmplY3QuY3JlYXRlKG51bGwpKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VSZXZlcnNlZChvYmplY3RzKSB7XG4gIHJldHVybiBPYmplY3QuYXNzaWduKHt9LCAuLi5bLi4ub2JqZWN0c10ucmV2ZXJzZSgpKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VSZXZlcnNlZE9yTnVsbChvYmplY3RzKSB7XG4gIGNvbnN0IG1lcmdlZCA9IG1lcmdlUmV2ZXJzZWQob2JqZWN0cylcbiAgcmV0dXJuIE9iamVjdC5rZXlzKG1lcmdlZCkubGVuZ3RoID4gMCA/IG1lcmdlZCA6IG51bGxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlQXNSZXZlcnNlZEFycmF5cyhvYmplY3RzKSB7XG4gIGNvbnN0IHJlcyA9IHt9XG4gIGZvciAoY29uc3Qgb2JqZWN0IG9mIG9iamVjdHMpIHtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBvYmplY3QpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gb2JqZWN0W2tleV1cbiAgICAgIGlmIChrZXkgaW4gcmVzKSB7XG4gICAgICAgIHJlc1trZXldLnVuc2hpZnQodmFsdWUpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNba2V5XSA9IFt2YWx1ZV1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0dXBQcm9wZXJ0eUluaGVyaXRhbmNlKG9iamVjdCwga2V5LCBiYXNlVmFsdWUgPSBudWxsKSB7XG4gIC8vIExvb3BzIHVwIHRoZSBpbmhlcml0YW5jZSBjaGFpbiBvZiBvYmplY3QgdW50aWwgdGhlIGJhc2Ugb2JqZWN0IGlzIG1ldCxcbiAgLy8gYW5kIHNldHMgdXAgYSByZWxhdGVkIGluaGVyaXRhbmNlIGNoYWluIGZvciB0aGUgZ2l2ZW4gcHJvcGVydHkgYGtleWAuXG4gIC8vIEF0IHRoZSBlbmQsIHRoZSByZXN1bHRpbmcgdmFsdWUgd2l0aCBwcm9wZXIgaW5oZXJpdGFuY2UgaXMgcmV0dXJuZWQuXG4gIGxldCBjdXJyZW50ID0gb2JqZWN0XG4gIHdoaWxlIChjdXJyZW50ICE9PSBPYmplY3QucHJvdG90eXBlKSB7XG4gICAgY29uc3QgcGFyZW50ID0gT2JqZWN0LmdldFByb3RvdHlwZU9mKGN1cnJlbnQpXG4gICAgaWYgKGN1cnJlbnQuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgY29uc3QgdmFsdWUgPSBjdXJyZW50W2tleV1cbiAgICAgIGNvbnN0IHBhcmVudFZhbHVlID0gcGFyZW50W2tleV0gfHwgYmFzZVZhbHVlXG4gICAgICBpZiAocGFyZW50VmFsdWUpIHtcbiAgICAgICAgT2JqZWN0LnNldFByb3RvdHlwZU9mKHZhbHVlLCBwYXJlbnRWYWx1ZSlcbiAgICAgIH1cbiAgICB9XG4gICAgY3VycmVudCA9IHBhcmVudFxuICB9XG4gIGlmIChiYXNlVmFsdWUgJiYgIShrZXkgaW4gb2JqZWN0KSkge1xuICAgIC8vIElmIHRoZXJlIHdhc24ndCBhbnkgb3ZlcnJpZGUgaW4gdGhlIGNoYWluLCBhbmQgd2UgaGF2ZSBhIGJhc2VWYWx1ZSxcbiAgICAvLyBzZXQgdXAgZGlyZWN0IGluaGVyaXRhbmNlIGZyb20gdGhhdCBub3cuXG4gICAgb2JqZWN0W2tleV0gPSBPYmplY3Quc2V0UHJvdG90eXBlT2Yoe30sIGJhc2VWYWx1ZSlcbiAgfVxuICByZXR1cm4gb2JqZWN0W2tleV1cbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ditojs/server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.273.0",
|
|
4
4
|
"description": "Dito.js Server – Dito.js is a declarative and modern web framework, based on Objection.js, Koa.js and Vue.js",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"repository": "https://github.com/ditojs/dito/tree/master/packages/server",
|
|
@@ -25,34 +25,34 @@
|
|
|
25
25
|
"yarn": ">= 1.0.0"
|
|
26
26
|
},
|
|
27
27
|
"browserslist": [
|
|
28
|
-
"node 14"
|
|
28
|
+
"node >= 14"
|
|
29
29
|
],
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@babel/core": "^7.
|
|
32
|
-
"@babel/runtime": "^7.
|
|
33
|
-
"@ditojs/admin": "^0.
|
|
34
|
-
"@ditojs/router": "^0.
|
|
35
|
-
"@ditojs/utils": "^0.
|
|
31
|
+
"@babel/core": "^7.17.5",
|
|
32
|
+
"@babel/runtime": "^7.17.2",
|
|
33
|
+
"@ditojs/admin": "^0.273.0",
|
|
34
|
+
"@ditojs/router": "^0.273.0",
|
|
35
|
+
"@ditojs/utils": "^0.273.0",
|
|
36
36
|
"@koa/cors": "^3.1.0",
|
|
37
37
|
"@koa/multer": "^3.0.0",
|
|
38
|
-
"@vue/cli-service": "^4.5.
|
|
38
|
+
"@vue/cli-service": "^4.5.15",
|
|
39
39
|
"ajv": "^7.2.4",
|
|
40
40
|
"ajv-formats": "^1.6.1",
|
|
41
|
-
"aws-sdk": "^2.
|
|
42
|
-
"axios": "^0.
|
|
41
|
+
"aws-sdk": "^2.1085.0",
|
|
42
|
+
"axios": "^0.26.0",
|
|
43
43
|
"babel-loader": "^8.2.2",
|
|
44
44
|
"bcryptjs": "^2.4.3",
|
|
45
|
-
"bytes": "^3.1.
|
|
45
|
+
"bytes": "^3.1.2",
|
|
46
46
|
"chalk": "^4.1.2",
|
|
47
|
-
"core-js": "^3.
|
|
47
|
+
"core-js": "^3.21.1",
|
|
48
48
|
"data-uri-to-buffer": "^3.0.1",
|
|
49
|
-
"eventemitter2": "^6.4.
|
|
49
|
+
"eventemitter2": "^6.4.5",
|
|
50
50
|
"file-type": "^16.5.3",
|
|
51
|
-
"fs-extra": "^10.0.
|
|
51
|
+
"fs-extra": "^10.0.1",
|
|
52
52
|
"html-webpack-tags-plugin": "^2.0.17",
|
|
53
|
-
"image-size": "^1.0.
|
|
54
|
-
"is-svg": "^4.3.
|
|
55
|
-
"koa": "^2.13.
|
|
53
|
+
"image-size": "^1.0.1",
|
|
54
|
+
"is-svg": "^4.3.2",
|
|
55
|
+
"koa": "^2.13.4",
|
|
56
56
|
"koa-bodyparser": "^4.3.0",
|
|
57
57
|
"koa-compose": "^4.1.0",
|
|
58
58
|
"koa-compress": "^5.1.0",
|
|
@@ -66,14 +66,14 @@
|
|
|
66
66
|
"koa-session": "^6.2.0",
|
|
67
67
|
"koa-static": "^5.0.0",
|
|
68
68
|
"koa-webpack": "^6.0.0",
|
|
69
|
-
"mime-types": "^2.1.
|
|
70
|
-
"multer": "^1.4.
|
|
71
|
-
"multer-s3": "^2.
|
|
72
|
-
"nanoid": "^3.1
|
|
73
|
-
"parse-duration": "^1.0.
|
|
69
|
+
"mime-types": "^2.1.34",
|
|
70
|
+
"multer": "^1.4.4",
|
|
71
|
+
"multer-s3": "^2.10.0",
|
|
72
|
+
"nanoid": "^3.3.1",
|
|
73
|
+
"parse-duration": "^1.0.2",
|
|
74
74
|
"passport-local": "^1.0.0",
|
|
75
75
|
"passthrough-counter": "^1.0.0",
|
|
76
|
-
"pino": "^6.
|
|
76
|
+
"pino": "^6.14.0",
|
|
77
77
|
"pino-pretty": "^6.0.0",
|
|
78
78
|
"pluralize": "^8.0.0",
|
|
79
79
|
"repl": "^0.1.3",
|
|
@@ -89,16 +89,16 @@
|
|
|
89
89
|
"objection": "^2.2.0"
|
|
90
90
|
},
|
|
91
91
|
"devDependencies": {
|
|
92
|
-
"@babel/cli": "^7.
|
|
93
|
-
"@babel/preset-env": "^7.
|
|
94
|
-
"@ditojs/babel-preset": "^0.
|
|
92
|
+
"@babel/cli": "^7.17.6",
|
|
93
|
+
"@babel/preset-env": "^7.16.11",
|
|
94
|
+
"@ditojs/babel-preset": "^0.273.0",
|
|
95
95
|
"babel-plugin-dynamic-import-node": "^2.3.3",
|
|
96
96
|
"babel-plugin-module-resolver": "^4.1.0",
|
|
97
97
|
"knex": "^0.21.21",
|
|
98
|
-
"objection": "^2.2.
|
|
99
|
-
"pg": "^8.7.
|
|
98
|
+
"objection": "^2.2.18",
|
|
99
|
+
"pg": "^8.7.3",
|
|
100
100
|
"rimraf": "^3.0.2",
|
|
101
101
|
"sqlite3": "^5.0.2"
|
|
102
102
|
},
|
|
103
|
-
"gitHead": "
|
|
103
|
+
"gitHead": "ecdd9eee04947c3362c449623b8a685b3e02e0ab"
|
|
104
104
|
}
|
package/src/app/Application.js
CHANGED
|
@@ -24,7 +24,12 @@ import { Service } from '@/services'
|
|
|
24
24
|
import { Storage } from '@/storage'
|
|
25
25
|
import { convertSchema } from '@/schema'
|
|
26
26
|
import { formatJson } from '@/utils'
|
|
27
|
-
import {
|
|
27
|
+
import {
|
|
28
|
+
ResponseError,
|
|
29
|
+
ValidationError,
|
|
30
|
+
DatabaseError,
|
|
31
|
+
AssetError
|
|
32
|
+
} from '@/errors'
|
|
28
33
|
import SessionStore from './SessionStore'
|
|
29
34
|
import { Validator } from './Validator'
|
|
30
35
|
import {
|
|
@@ -473,11 +478,26 @@ export class Application extends Koa {
|
|
|
473
478
|
}
|
|
474
479
|
}
|
|
475
480
|
|
|
476
|
-
createValidationError({ type, message, errors, options }) {
|
|
481
|
+
createValidationError({ type, message, errors, options, json }) {
|
|
477
482
|
return new ValidationError({
|
|
478
483
|
type,
|
|
479
484
|
message,
|
|
480
|
-
errors: this.validator.parseErrors(errors, options)
|
|
485
|
+
errors: this.validator.parseErrors(errors, options),
|
|
486
|
+
// Only include the JSON data in the error if `log.errors.json`is set.
|
|
487
|
+
json: this.config.log.errors?.json ? json : undefined
|
|
488
|
+
})
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
createDatabaseError(error) {
|
|
492
|
+
// Remove knex SQL query and move to separate `sql` property.
|
|
493
|
+
// TODO: Fix this properly in Knex / Objection instead, see:
|
|
494
|
+
// https://gitter.im/Vincit/objection.js?at=5a68728f5a9ebe4f75ca40b0
|
|
495
|
+
const [, sql, message] = error.message.match(/^([\s\S]*) - ([\s\S]*?)$/) ||
|
|
496
|
+
[null, null, error.message]
|
|
497
|
+
return new DatabaseError(error, {
|
|
498
|
+
message,
|
|
499
|
+
// Only include the SQL query in the error if `log.errors.sql`is set.
|
|
500
|
+
sql: this.config.log.errors?.sql ? sql : undefined
|
|
481
501
|
})
|
|
482
502
|
}
|
|
483
503
|
|
|
@@ -60,7 +60,7 @@ export class AdminController extends Controller {
|
|
|
60
60
|
sendDitoObject(ctx) {
|
|
61
61
|
// Send back the global dito object as JavaScript code.
|
|
62
62
|
ctx.type = 'text/javascript'
|
|
63
|
-
ctx.body = `window.dito = ${formatJson(this.getDitoObject()
|
|
63
|
+
ctx.body = `window.dito = ${formatJson(this.getDitoObject())}`
|
|
64
64
|
}
|
|
65
65
|
|
|
66
66
|
middleware() {
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { formatJson } from '@/utils'
|
|
2
1
|
import { isString, isObject, asArray, clone } from '@ditojs/utils'
|
|
3
2
|
|
|
4
3
|
export default class ControllerAction {
|
|
@@ -166,8 +165,9 @@ export default class ControllerAction {
|
|
|
166
165
|
if (errors.length > 0) {
|
|
167
166
|
throw this.createValidationError({
|
|
168
167
|
type: 'ParameterValidation',
|
|
169
|
-
message:
|
|
170
|
-
errors
|
|
168
|
+
message: 'The provided action parameters are not valid',
|
|
169
|
+
errors,
|
|
170
|
+
json: getData()
|
|
171
171
|
})
|
|
172
172
|
}
|
|
173
173
|
}
|
|
@@ -188,17 +188,11 @@ export default class ControllerAction {
|
|
|
188
188
|
await this.returns.validate(data)
|
|
189
189
|
return getResult()
|
|
190
190
|
} catch (error) {
|
|
191
|
-
// Include full JSON result in responses during tests and development,
|
|
192
|
-
// for easier debugging.
|
|
193
|
-
const message =
|
|
194
|
-
process.env.NODE_ENV === 'test' ||
|
|
195
|
-
process.env.NODE_ENV === 'development'
|
|
196
|
-
? `Invalid result of action: ${formatJson(getResult())}`
|
|
197
|
-
: 'Invalid result of action'
|
|
198
191
|
throw this.createValidationError({
|
|
199
192
|
type: 'ResultValidation',
|
|
200
|
-
message,
|
|
201
|
-
errors: error.errors
|
|
193
|
+
message: 'The returned action result is not valid',
|
|
194
|
+
errors: error.errors,
|
|
195
|
+
json: getResult()
|
|
202
196
|
})
|
|
203
197
|
}
|
|
204
198
|
}
|
|
@@ -237,7 +231,7 @@ export default class ControllerAction {
|
|
|
237
231
|
|
|
238
232
|
coerceValue(type, value, modelOptions) {
|
|
239
233
|
// See if param needs additional coercion:
|
|
240
|
-
if (['date', 'datetime', 'timestamp'].includes(type)) {
|
|
234
|
+
if (value && ['date', 'datetime', 'timestamp'].includes(type)) {
|
|
241
235
|
value = new Date(value)
|
|
242
236
|
} else {
|
|
243
237
|
// See if the defined type(s) require coercion to objects:
|