@ditojs/server 0.275.0 → 1.0.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/package.json +25 -43
- package/src/app/Application.js +105 -111
- package/src/app/Validator.js +6 -3
- package/src/app/index.js +2 -2
- package/src/cli/db/createMigration.js +1 -1
- package/src/cli/db/index.js +7 -7
- package/src/cli/db/listAssetConfig.js +1 -1
- package/src/cli/db/reset.js +1 -1
- package/src/cli/index.js +14 -5
- package/src/controllers/AdminController.js +181 -158
- package/src/controllers/CollectionController.js +8 -29
- package/src/controllers/Controller.js +71 -76
- package/src/controllers/ControllerAction.js +39 -17
- package/src/controllers/MemberAction.js +2 -2
- package/src/controllers/ModelController.js +4 -4
- package/src/controllers/RelationController.js +3 -3
- package/src/controllers/{UserController.js → UsersController.js} +8 -13
- package/src/controllers/index.js +5 -5
- package/src/decorators/action.js +3 -3
- package/src/decorators/authorize.js +1 -1
- package/src/decorators/index.js +6 -6
- package/src/decorators/parameters.js +1 -1
- package/src/decorators/returns.js +1 -1
- package/src/decorators/scope.js +1 -1
- package/src/decorators/transacted.js +1 -1
- package/src/errors/AssetError.js +1 -1
- package/src/errors/AuthenticationError.js +1 -1
- package/src/errors/AuthorizationError.js +1 -1
- package/src/errors/ControllerError.js +1 -1
- package/src/errors/DatabaseError.js +12 -3
- package/src/errors/GraphError.js +1 -1
- package/src/errors/ModelError.js +1 -1
- package/src/errors/NotFoundError.js +1 -1
- package/src/errors/NotImplementedError.js +1 -1
- package/src/errors/QueryBuilderError.js +1 -1
- package/src/errors/RelationError.js +1 -1
- package/src/errors/ValidationError.js +1 -1
- package/src/errors/WrappedError.js +1 -1
- package/src/errors/index.js +14 -14
- package/src/graph/DitoGraphProcessor.js +2 -1
- package/src/graph/graph.js +1 -1
- package/src/graph/index.js +3 -3
- package/src/index.js +11 -9
- package/src/lib/index.js +2 -2
- package/src/middleware/createTransaction.js +1 -1
- package/src/middleware/findRoute.js +3 -2
- package/src/middleware/handleConnectMiddleware.js +88 -0
- package/src/middleware/handleError.js +1 -1
- package/src/middleware/handleRoute.js +3 -3
- package/src/middleware/index.js +8 -7
- package/src/mixins/AssetMixin.js +1 -1
- package/src/mixins/UserMixin.js +1 -1
- package/src/mixins/index.js +4 -4
- package/src/models/AssetModel.js +2 -2
- package/src/models/Model.js +16 -12
- package/src/models/RelationAccessor.js +1 -1
- package/src/models/SessionModel.js +2 -2
- package/src/models/TimeStampedModel.js +2 -2
- package/src/models/UserModel.js +2 -2
- package/src/models/definitions/assets.js +1 -1
- package/src/models/definitions/filters.js +57 -44
- package/src/models/definitions/hooks.js +1 -1
- package/src/models/definitions/index.js +9 -9
- package/src/models/definitions/modifiers.js +1 -1
- package/src/models/definitions/options.js +1 -1
- package/src/models/definitions/properties.js +2 -2
- package/src/models/definitions/relations.js +1 -1
- package/src/models/definitions/schema.js +1 -1
- package/src/models/definitions/scopes.js +2 -2
- package/src/models/index.js +5 -5
- package/src/query/QueryBuilder.js +5 -5
- package/src/query/QueryFilters.js +50 -50
- package/src/query/QueryParameters.js +2 -2
- package/src/query/index.js +3 -3
- package/src/schema/formats/index.js +2 -2
- package/src/schema/index.js +4 -4
- package/src/schema/keywords/_relate.js +1 -1
- package/src/schema/keywords/index.js +12 -12
- package/src/schema/properties.test.js +1 -1
- package/src/schema/relations.js +1 -1
- package/src/schema/relations.test.js +2 -2
- package/src/services/index.js +1 -1
- package/src/storage/DiskStorage.js +1 -1
- package/src/storage/S3Storage.js +4 -4
- package/src/storage/Storage.js +1 -1
- package/src/storage/index.js +4 -4
- package/src/utils/function.test.js +1 -1
- package/src/utils/handler.js +17 -0
- package/src/utils/index.js +8 -7
- package/src/utils/object.test.js +1 -1
- package/lib/app/Application.js +0 -961
- package/lib/app/SessionStore.js +0 -40
- package/lib/app/Validator.js +0 -355
- package/lib/app/index.js +0 -26
- package/lib/cli/console.js +0 -175
- package/lib/cli/db/createMigration.js +0 -237
- package/lib/cli/db/index.js +0 -66
- package/lib/cli/db/listAssetConfig.js +0 -16
- package/lib/cli/db/migrate.js +0 -15
- package/lib/cli/db/reset.js +0 -27
- package/lib/cli/db/rollback.js +0 -15
- package/lib/cli/db/seed.js +0 -104
- package/lib/cli/db/unlock.js +0 -15
- package/lib/cli/index.js +0 -90
- package/lib/controllers/AdminController.js +0 -258
- package/lib/controllers/CollectionController.js +0 -263
- package/lib/controllers/Controller.js +0 -462
- package/lib/controllers/ControllerAction.js +0 -276
- package/lib/controllers/MemberAction.js +0 -22
- package/lib/controllers/ModelController.js +0 -64
- package/lib/controllers/RelationController.js +0 -82
- package/lib/controllers/UserController.js +0 -98
- package/lib/controllers/index.js +0 -50
- package/lib/decorators/action.js +0 -14
- package/lib/decorators/authorize.js +0 -13
- package/lib/decorators/index.js +0 -58
- package/lib/decorators/parameters.js +0 -35
- package/lib/decorators/returns.js +0 -26
- package/lib/decorators/scope.js +0 -14
- package/lib/decorators/transacted.js +0 -12
- package/lib/errors/AssetError.js +0 -19
- package/lib/errors/AuthenticationError.js +0 -19
- package/lib/errors/AuthorizationError.js +0 -19
- package/lib/errors/ControllerError.js +0 -24
- package/lib/errors/DatabaseError.js +0 -27
- package/lib/errors/GraphError.js +0 -19
- package/lib/errors/ModelError.js +0 -24
- package/lib/errors/NotFoundError.js +0 -19
- package/lib/errors/NotImplementedError.js +0 -19
- package/lib/errors/QueryBuilderError.js +0 -19
- package/lib/errors/RelationError.js +0 -36
- package/lib/errors/ResponseError.js +0 -46
- package/lib/errors/ValidationError.js +0 -19
- package/lib/errors/WrappedError.js +0 -24
- package/lib/errors/index.js +0 -122
- package/lib/graph/DitoGraphProcessor.js +0 -185
- package/lib/graph/expression.js +0 -76
- package/lib/graph/graph.js +0 -300
- package/lib/graph/index.js +0 -34
- package/lib/index.js +0 -82
- package/lib/lib/EventEmitter.js +0 -76
- package/lib/lib/KnexHelper.js +0 -40
- package/lib/lib/index.js +0 -26
- package/lib/middleware/attachLogger.js +0 -16
- package/lib/middleware/createTransaction.js +0 -36
- package/lib/middleware/findRoute.js +0 -35
- package/lib/middleware/handleError.js +0 -26
- package/lib/middleware/handleRoute.js +0 -29
- package/lib/middleware/handleUser.js +0 -36
- package/lib/middleware/index.js +0 -66
- package/lib/middleware/logRequests.js +0 -122
- package/lib/mixins/AssetMixin.js +0 -81
- package/lib/mixins/SessionMixin.js +0 -22
- package/lib/mixins/TimeStampedMixin.js +0 -47
- package/lib/mixins/UserMixin.js +0 -151
- package/lib/mixins/index.js +0 -42
- package/lib/models/AssetModel.js +0 -12
- package/lib/models/Model.js +0 -953
- package/lib/models/RelationAccessor.js +0 -41
- package/lib/models/SessionModel.js +0 -12
- package/lib/models/TimeStampedModel.js +0 -12
- package/lib/models/UserModel.js +0 -12
- package/lib/models/definitions/assets.js +0 -11
- package/lib/models/definitions/filters.js +0 -101
- package/lib/models/definitions/hooks.js +0 -11
- package/lib/models/definitions/index.js +0 -38
- package/lib/models/definitions/modifiers.js +0 -11
- package/lib/models/definitions/options.js +0 -11
- package/lib/models/definitions/properties.js +0 -87
- package/lib/models/definitions/relations.js +0 -11
- package/lib/models/definitions/schema.js +0 -11
- package/lib/models/definitions/scopes.js +0 -51
- package/lib/models/index.js +0 -50
- package/lib/query/QueryBuilder.js +0 -745
- package/lib/query/QueryFilters.js +0 -82
- package/lib/query/QueryParameters.js +0 -77
- package/lib/query/Registry.js +0 -40
- package/lib/query/index.js +0 -34
- package/lib/schema/formats/_empty.js +0 -10
- package/lib/schema/formats/_required.js +0 -10
- package/lib/schema/formats/index.js +0 -26
- package/lib/schema/index.js +0 -49
- package/lib/schema/keywords/_computed.js +0 -11
- package/lib/schema/keywords/_foreign.js +0 -11
- package/lib/schema/keywords/_hidden.js +0 -11
- package/lib/schema/keywords/_index.js +0 -11
- package/lib/schema/keywords/_instanceof.js +0 -49
- package/lib/schema/keywords/_primary.js +0 -11
- package/lib/schema/keywords/_range.js +0 -26
- package/lib/schema/keywords/_relate.js +0 -19
- package/lib/schema/keywords/_specificType.js +0 -11
- package/lib/schema/keywords/_unique.js +0 -11
- package/lib/schema/keywords/_unsigned.js +0 -11
- package/lib/schema/keywords/_validate.js +0 -80
- package/lib/schema/keywords/index.js +0 -106
- package/lib/schema/properties.js +0 -227
- package/lib/schema/properties.test.js +0 -573
- package/lib/schema/relations.js +0 -274
- package/lib/schema/relations.test.js +0 -155
- package/lib/services/Service.js +0 -34
- package/lib/services/index.js +0 -18
- package/lib/storage/AssetFile.js +0 -97
- package/lib/storage/DiskStorage.js +0 -125
- package/lib/storage/S3Storage.js +0 -171
- package/lib/storage/Storage.js +0 -209
- package/lib/storage/index.js +0 -34
- package/lib/utils/decorator.js +0 -16
- package/lib/utils/deprecate.js +0 -46
- package/lib/utils/emitter.js +0 -13
- package/lib/utils/function.js +0 -14
- package/lib/utils/function.test.js +0 -49
- package/lib/utils/index.js +0 -66
- package/lib/utils/json.js +0 -9
- package/lib/utils/object.js +0 -92
- package/lib/utils/object.test.js +0 -65
- package/lib/utils/scope.js +0 -14
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.DiskStorage = void 0;
|
|
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
|
-
|
|
12
|
-
var _fsExtra = _interopRequireDefault(require("fs-extra"));
|
|
13
|
-
|
|
14
|
-
var _path = _interopRequireDefault(require("path"));
|
|
15
|
-
|
|
16
|
-
var _multer = _interopRequireDefault(require("@koa/multer"));
|
|
17
|
-
|
|
18
|
-
var _Storage = require("./Storage");
|
|
19
|
-
|
|
20
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
21
|
-
|
|
22
|
-
class DiskStorage extends _Storage.Storage {
|
|
23
|
-
constructor(app, config) {
|
|
24
|
-
super(app, config);
|
|
25
|
-
|
|
26
|
-
if (!this.path) {
|
|
27
|
-
throw new Error(`Missing configuration (path) for storage ${this.name}`);
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
this.storage = _multer.default.diskStorage({
|
|
31
|
-
destination: (req, storageFile, cb) => {
|
|
32
|
-
storageFile.key = this.getUniqueKey(storageFile.originalname);
|
|
33
|
-
|
|
34
|
-
const dir = this._getPath(this._getNestedFolder(storageFile.key));
|
|
35
|
-
|
|
36
|
-
_fsExtra.default.ensureDir(dir).then(() => cb(null, dir)).catch(cb);
|
|
37
|
-
},
|
|
38
|
-
filename: (req, storageFile, cb) => {
|
|
39
|
-
cb(null, storageFile.key);
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
_getFilePath(file) {
|
|
45
|
-
return this._getPath(this._getNestedFolder(file.key), file.key);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
_getFileUrl(file) {
|
|
49
|
-
return this._getUrl(this._getNestedFolder(file.key, true), file.key);
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
async _addFile(file, buffer) {
|
|
53
|
-
const filePath = this._getFilePath(file);
|
|
54
|
-
|
|
55
|
-
const dir = _path.default.dirname(filePath);
|
|
56
|
-
|
|
57
|
-
await _fsExtra.default.ensureDir(dir);
|
|
58
|
-
await _fsExtra.default.writeFile(filePath, buffer);
|
|
59
|
-
return file;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
async _removeFile(file) {
|
|
63
|
-
const filePath = this._getFilePath(file);
|
|
64
|
-
|
|
65
|
-
await _fsExtra.default.unlink(filePath);
|
|
66
|
-
|
|
67
|
-
const removeIfEmpty = async dir => {
|
|
68
|
-
if ((await _fsExtra.default.readdir(dir)).length === 0) {
|
|
69
|
-
try {
|
|
70
|
-
await _fsExtra.default.rmdir(dir);
|
|
71
|
-
} catch (err) {
|
|
72
|
-
if (err.code !== 'ENOENT') {
|
|
73
|
-
throw err;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
const dir = _path.default.dirname(filePath);
|
|
80
|
-
|
|
81
|
-
const parentDir = _path.default.dirname(dir);
|
|
82
|
-
|
|
83
|
-
await removeIfEmpty(dir);
|
|
84
|
-
await removeIfEmpty(parentDir);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
async _readFile(file) {
|
|
88
|
-
return _fsExtra.default.readFile(this._getFilePath(file));
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
async _listKeys() {
|
|
92
|
-
const readDir = (...parts) => _fsExtra.default.readdir(this._getPath(...parts), {
|
|
93
|
-
withFileTypes: true
|
|
94
|
-
});
|
|
95
|
-
|
|
96
|
-
const files = [];
|
|
97
|
-
const list1 = await readDir();
|
|
98
|
-
await Promise.all(list1.map(async level1 => {
|
|
99
|
-
if (level1.isDirectory() && level1.name.length === 1) {
|
|
100
|
-
const list2 = await readDir(level1.name);
|
|
101
|
-
await Promise.all(list2.map(async level2 => {
|
|
102
|
-
if (level2.isDirectory() && level2.name.length === 1) {
|
|
103
|
-
const nestedFolder = this._getPath(level1.name, level2.name);
|
|
104
|
-
|
|
105
|
-
for (const file of await _fsExtra.default.readdir(nestedFolder)) {
|
|
106
|
-
if (!file.startsWith('.')) {
|
|
107
|
-
files.push(file);
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}));
|
|
112
|
-
}
|
|
113
|
-
}));
|
|
114
|
-
return files;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
_getNestedFolder(key, posix = false) {
|
|
118
|
-
return (posix ? _path.default.posix : _path.default).join(key[0], key[1]);
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
exports.DiskStorage = DiskStorage;
|
|
124
|
-
DiskStorage.type = 'disk';
|
|
125
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdG9yYWdlL0Rpc2tTdG9yYWdlLmpzIl0sIm5hbWVzIjpbIkRpc2tTdG9yYWdlIiwiU3RvcmFnZSIsImNvbnN0cnVjdG9yIiwiYXBwIiwiY29uZmlnIiwicGF0aCIsIkVycm9yIiwibmFtZSIsInN0b3JhZ2UiLCJtdWx0ZXIiLCJkaXNrU3RvcmFnZSIsImRlc3RpbmF0aW9uIiwicmVxIiwic3RvcmFnZUZpbGUiLCJjYiIsImtleSIsImdldFVuaXF1ZUtleSIsIm9yaWdpbmFsbmFtZSIsImRpciIsIl9nZXRQYXRoIiwiX2dldE5lc3RlZEZvbGRlciIsImZzIiwiZW5zdXJlRGlyIiwidGhlbiIsImNhdGNoIiwiZmlsZW5hbWUiLCJfZ2V0RmlsZVBhdGgiLCJmaWxlIiwiX2dldEZpbGVVcmwiLCJfZ2V0VXJsIiwiX2FkZEZpbGUiLCJidWZmZXIiLCJmaWxlUGF0aCIsImRpcm5hbWUiLCJ3cml0ZUZpbGUiLCJfcmVtb3ZlRmlsZSIsInVubGluayIsInJlbW92ZUlmRW1wdHkiLCJyZWFkZGlyIiwibGVuZ3RoIiwicm1kaXIiLCJlcnIiLCJjb2RlIiwicGFyZW50RGlyIiwiX3JlYWRGaWxlIiwicmVhZEZpbGUiLCJfbGlzdEtleXMiLCJyZWFkRGlyIiwicGFydHMiLCJ3aXRoRmlsZVR5cGVzIiwiZmlsZXMiLCJsaXN0MSIsIlByb21pc2UiLCJhbGwiLCJtYXAiLCJsZXZlbDEiLCJpc0RpcmVjdG9yeSIsImxpc3QyIiwibGV2ZWwyIiwibmVzdGVkRm9sZGVyIiwic3RhcnRzV2l0aCIsInB1c2giLCJwb3NpeCIsImpvaW4iLCJ0eXBlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBRU8sTUFBTUEsV0FBTixTQUEwQkMsZ0JBQTFCLENBQWtDO0FBR3ZDQyxFQUFBQSxXQUFXLENBQUNDLEdBQUQsRUFBTUMsTUFBTixFQUFjO0FBQ3ZCLFVBQU1ELEdBQU4sRUFBV0MsTUFBWDs7QUFDQSxRQUFJLENBQUMs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LENBQUNXLElBQU4sQ0FBV2xDLElBQVg7QUFDRDtBQUNGO0FBQ0Y7QUFDRixTQVRELENBREksQ0FBTjtBQVlEO0FBQ0YsS0FoQkQsQ0FESSxDQUFOO0FBbUJBLFdBQU91QixLQUFQO0FBQ0Q7O0FBRUQ5QixFQUFBQSxnQkFBZ0IsQ0FBQ0wsR0FBRCxFQUFNK0MsS0FBSyxHQUFHLEtBQWQsRUFBcUI7QUFHbkMsV0FBTyxDQUFDQSxLQUFLLEdBQUd6RCxjQUFLeUQsS0FBUixHQUFnQnpELGFBQXRCLEVBQTRCMEQsSUFBNUIsQ0FBaUNoRCxHQUFHLENBQUMsQ0FBRCxDQUFwQyxFQUF5Q0EsR0FBRyxDQUFDLENBQUQsQ0FBNUMsQ0FBUDtBQUNEOztBQTNHc0M7OztBQUE1QmYsVyxDQUNKZ0UsSSxHQUFPLE0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnMgZnJvbSAnZnMtZXh0cmEnXG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJ1xuaW1wb3J0IG11bHRlciBmcm9tICdAa29hL211bHRlcidcbmltcG9ydCB7IFN0b3JhZ2UgfSBmcm9tICcuL1N0b3JhZ2UnXG5cbmV4cG9ydCBjbGFzcyBEaXNrU3RvcmFnZSBleHRlbmRzIFN0b3JhZ2Uge1xuICBzdGF0aWMgdHlwZSA9ICdkaXNrJ1xuXG4gIGNvbnN0cnVjdG9yKGFwcCwgY29uZmlnKSB7XG4gICAgc3VwZXIoYXBwLCBjb25maWcpXG4gICAgaWYgKCF0aGlzLnBhdGgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTWlzc2luZyBjb25maWd1cmF0aW9uIChwYXRoKSBmb3Igc3RvcmFnZSAke3RoaXMubmFtZX1gKVxuICAgIH1cblxuICAgIHRoaXMuc3RvcmFnZSA9IG11bHRlci5kaXNrU3RvcmFnZSh7XG4gICAgICBkZXN0aW5hdGlvbjogKHJlcSwgc3RvcmFnZUZpbGUsIGNiKSA9PiB7XG4gICAgICAgIC8vIEFkZCBgc3RvcmFnZUZpbGUua2V5YCBwcm9wZXJ0eSB0byBpbnRlcm5hbCBzdG9yYWdlIGZpbGUgb2JqZWN0LlxuICAgICAgICBzdG9yYWdlRmlsZS5rZXkgPSB0aGlzLmdldFVuaXF1ZUtleShzdG9yYWdlRmlsZS5vcmlnaW5hbG5hbWUpXG4gICAgICAgIGNvbnN0IGRpciA9IHRoaXMuX2dldFBhdGgodGhpcy5fZ2V0TmVzdGVkRm9sZGVyKHN0b3JhZ2VGaWxlLmtleSkpXG4gICAgICAgIGZzLmVuc3VyZURpcihkaXIpXG4gICAgICAgICAgLnRoZW4oKCkgPT4gY2IobnVsbCwgZGlyKSlcbiAgICAgICAgICAuY2F0Y2goY2IpXG4gICAgICB9LFxuXG4gICAgICBmaWxlbmFtZTogKHJlcSwgc3RvcmFnZUZpbGUsIGNiKSA9PiB7XG4gICAgICAgIC8vIFVzZSBhZGRlZCBgc3RvcmFnZUZpbGUua2V5YCBwcm9wZXJ0eSBmb3IgbXVsdGVyJ3MgYGZpbGVuYW1lYCBhbHNvLlxuICAgICAgICBjYihudWxsLCBzdG9yYWdlRmlsZS5rZXkpXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIC8vIEBvdmVycmlkZVxuICBfZ2V0RmlsZVBhdGgoZmlsZSkge1xuICAgIHJldHVybiB0aGlzLl9nZXRQYXRoKHRoaXMuX2dldE5lc3RlZEZvbGRlcihmaWxlLmtleSksIGZpbGUua2V5KVxuICB9XG5cbiAgLy8gQG92ZXJyaWRlXG4gIF9nZXRGaWxlVXJsKGZpbGUpIHtcbiAgICByZXR1cm4gdGhpcy5fZ2V0VXJsKHRoaXMuX2dldE5lc3RlZEZvbGRlcihmaWxlLmtleSwgdHJ1ZSksIGZpbGUua2V5KVxuICB9XG5cbiAgLy8gQG92ZXJyaWRlXG4gIGFzeW5jIF9hZGRGaWxlKGZpbGUsIGJ1ZmZlcikge1xuICAgIGNvbnN0IGZpbGVQYXRoID0gdGhpcy5fZ2V0RmlsZVBhdGgoZmlsZSlcbiAgICBjb25zdCBkaXIgPSBwYXRoLmRpcm5hbWUoZmlsZVBhdGgpXG4gICAgYXdhaXQgZnMuZW5zdXJlRGlyKGRpcilcbiAgICBhd2FpdCBmcy53cml0ZUZpbGUoZmlsZVBhdGgsIGJ1ZmZlcilcbiAgICByZXR1cm4gZmlsZVxuICB9XG5cbiAgLy8gQG92ZXJyaWRlXG4gIGFzeW5jIF9yZW1vdmVGaWxlKGZpbGUpIHtcbiAgICBjb25zdCBmaWxlUGF0aCA9IHRoaXMuX2dldEZpbGVQYXRoKGZpbGUpXG4gICAgYXdhaXQgZnMudW5saW5rKGZpbGVQYXRoKVxuICAgIGNvbnN0IHJlbW92ZUlmRW1wdHkgPSBhc3luYyBkaXIgPT4ge1xuICAgICAgaWYgKChhd2FpdCBmcy5yZWFkZGlyKGRpcikpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IGZzLnJtZGlyKGRpcilcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgLy8gVGhlIGRpcmVjdG9yeSBtYXkgYWxyZWFkeSBoYXZlIGJlZW4gZGVsZXRlZCBieSBhbm90aGVyIGFzeW5jIGNhbGwsXG4gICAgICAgICAgLy8gZmFpbCBzaWxlbnRseSBoZXJlIGluIHRoaXMgY2FzZS5cbiAgICAgICAgICBpZiAoZXJyLmNvZGUgIT09ICdFTk9FTlQnKSB7XG4gICAgICAgICAgICB0aHJvdyBlcnJcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgLy8gQ2xlYW4gdXAgbmVzdGVkIGZvbGRlcnMgY3JlYXRlZCB3aXRoIGZpcnN0IHR3byBjaGFycyBvZiBgZmlsZS5rZXlgIGFsc286XG4gICAgY29uc3QgZGlyID0gcGF0aC5kaXJuYW1lKGZpbGVQYXRoKVxuICAgIGNvbnN0IHBhcmVudERpciA9IHBhdGguZGlybmFtZShkaXIpXG4gICAgYXdhaXQgcmVtb3ZlSWZFbXB0eShkaXIpXG4gICAgYXdhaXQgcmVtb3ZlSWZFbXB0eShwYXJlbnREaXIpXG4gIH1cblxuICAvLyBAb3ZlcnJpZGVcbiAgYXN5bmMgX3JlYWRGaWxlKGZpbGUpIHtcbiAgICByZXR1cm4gZnMucmVhZEZpbGUodGhpcy5fZ2V0RmlsZVBhdGgoZmlsZSkpXG4gIH1cblxuICAvLyBAb3ZlcnJpZGVcbiAgYXN5bmMgX2xpc3RLZXlzKCkge1xuICAgIGNvbnN0IHJlYWREaXIgPSAoLi4ucGFydHMpID0+XG4gICAgICBmcy5yZWFkZGlyKHRoaXMuX2dldFBhdGgoLi4ucGFydHMpLCB7IHdpdGhGaWxlVHlwZXM6IHRydWUgfSlcblxuICAgIGNvbnN0IGZpbGVzID0gW11cbiAgICBjb25zdCBsaXN0MSA9IGF3YWl0IHJlYWREaXIoKVxuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgbGlzdDEubWFwKGFzeW5jIGxldmVsMSA9PiB7XG4gICAgICAgIGlmIChsZXZlbDEuaXNEaXJlY3RvcnkoKSAmJiBsZXZlbDEubmFtZS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICBjb25zdCBsaXN0MiA9IGF3YWl0IHJlYWREaXIobGV2ZWwxLm5hbWUpXG4gICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICBsaXN0Mi5tYXAoYXN5bmMgbGV2ZWwyID0+IHtcbiAgICAgICAgICAgICAgaWYgKGxldmVsMi5pc0RpcmVjdG9yeSgpICYmIGxldmVsMi5uYW1lLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5lc3RlZEZvbGRlciA9IHRoaXMuX2dldFBhdGgobGV2ZWwxLm5hbWUsIGxldmVsMi5uYW1lKVxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBhd2FpdCBmcy5yZWFkZGlyKG5lc3RlZEZvbGRlcikpIHtcbiAgICAgICAgICAgICAgICAgIGlmICghZmlsZS5zdGFydHNXaXRoKCcuJykpIHtcbiAgICAgICAgICAgICAgICAgICAgZmlsZXMucHVzaChmaWxlKVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKVxuICAgIHJldHVybiBmaWxlc1xuICB9XG5cbiAgX2dldE5lc3RlZEZvbGRlcihrZXksIHBvc2l4ID0gZmFsc2UpIHtcbiAgICAvLyBTdG9yZSBmaWxlcyBpbiBuZXN0ZWQgZm9sZGVycyBjcmVhdGVkIHdpdGggdGhlIGZpcnN0IHR3byBjaGFycyBvZiB0aGVcbiAgICAvLyBrZXksIGZvciBmYXN0ZXIgYWNjZXNzICYgbWFuYWdlbWVudCB3aXRoIGxhcmdlIGFtb3VudHMgb2YgZmlsZXMuXG4gICAgcmV0dXJuIChwb3NpeCA/IHBhdGgucG9zaXggOiBwYXRoKS5qb2luKGtleVswXSwga2V5WzFdKVxuICB9XG59XG4iXX0=
|
package/lib/storage/S3Storage.js
DELETED
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.S3Storage = void 0;
|
|
5
|
-
|
|
6
|
-
var _awsSdk = _interopRequireDefault(require("aws-sdk"));
|
|
7
|
-
|
|
8
|
-
var _multerS = _interopRequireDefault(require("multer-s3"));
|
|
9
|
-
|
|
10
|
-
var _fileType = _interopRequireDefault(require("file-type"));
|
|
11
|
-
|
|
12
|
-
var _isSvg = _interopRequireDefault(require("is-svg"));
|
|
13
|
-
|
|
14
|
-
var _Storage = require("./Storage");
|
|
15
|
-
|
|
16
|
-
var _stream = require("stream");
|
|
17
|
-
|
|
18
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
19
|
-
|
|
20
|
-
class S3Storage extends _Storage.Storage {
|
|
21
|
-
constructor(app, config) {
|
|
22
|
-
super(app, config);
|
|
23
|
-
const {
|
|
24
|
-
name,
|
|
25
|
-
s3,
|
|
26
|
-
acl,
|
|
27
|
-
bucket,
|
|
28
|
-
...options
|
|
29
|
-
} = config;
|
|
30
|
-
this.s3 = new _awsSdk.default.S3(s3);
|
|
31
|
-
this.acl = acl;
|
|
32
|
-
this.bucket = bucket;
|
|
33
|
-
this.storage = (0, _multerS.default)({
|
|
34
|
-
s3: this.s3,
|
|
35
|
-
acl,
|
|
36
|
-
bucket,
|
|
37
|
-
...options,
|
|
38
|
-
key: (req, file, cb) => {
|
|
39
|
-
cb(null, this.getUniqueKey(file.originalname));
|
|
40
|
-
},
|
|
41
|
-
contentType: (req, file, cb) => {
|
|
42
|
-
const {
|
|
43
|
-
mimetype,
|
|
44
|
-
stream
|
|
45
|
-
} = file;
|
|
46
|
-
|
|
47
|
-
if (mimetype) {
|
|
48
|
-
cb(null, mimetype);
|
|
49
|
-
} else {
|
|
50
|
-
let data = null;
|
|
51
|
-
|
|
52
|
-
const done = type => {
|
|
53
|
-
const outStream = new _stream.PassThrough();
|
|
54
|
-
outStream.write(data);
|
|
55
|
-
stream.pipe(outStream);
|
|
56
|
-
cb(null, type, outStream);
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
const onData = chunk => {
|
|
60
|
-
if (!data) {
|
|
61
|
-
var _FileType$fromBuffer;
|
|
62
|
-
|
|
63
|
-
const type = (_FileType$fromBuffer = _fileType.default.fromBuffer(chunk)) == null ? void 0 : _FileType$fromBuffer.mime;
|
|
64
|
-
|
|
65
|
-
if (type) {
|
|
66
|
-
stream.off('data', onData);
|
|
67
|
-
done(type);
|
|
68
|
-
} else {
|
|
69
|
-
stream.once('end', () => {
|
|
70
|
-
var _FileType$fromBuffer2;
|
|
71
|
-
|
|
72
|
-
const type = ((_FileType$fromBuffer2 = _fileType.default.fromBuffer(data)) == null ? void 0 : _FileType$fromBuffer2.mime) || ((0, _isSvg.default)(data) ? 'image/svg+xml' : 'application/octet-stream');
|
|
73
|
-
done(type);
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
data = data ? Buffer.concat([data, chunk]) : chunk;
|
|
79
|
-
};
|
|
80
|
-
|
|
81
|
-
stream.on('data', onData);
|
|
82
|
-
}
|
|
83
|
-
},
|
|
84
|
-
metadata: (req, file, cb) => {
|
|
85
|
-
const {
|
|
86
|
-
width,
|
|
87
|
-
height
|
|
88
|
-
} = file;
|
|
89
|
-
|
|
90
|
-
if (width != null || height != null) {
|
|
91
|
-
cb(null, {
|
|
92
|
-
width: `${width}`,
|
|
93
|
-
height: `${height}`
|
|
94
|
-
});
|
|
95
|
-
} else {
|
|
96
|
-
cb(null, {});
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
_getFilePath(_file) {
|
|
103
|
-
return undefined;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
_getFileUrl(file) {
|
|
107
|
-
var _this$_getUrl;
|
|
108
|
-
|
|
109
|
-
return (_this$_getUrl = this._getUrl(file.key)) != null ? _this$_getUrl : file.url;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
async _addFile(file, buffer) {
|
|
113
|
-
const data = await this.s3.upload({
|
|
114
|
-
Bucket: this.bucket,
|
|
115
|
-
ACL: this.acl,
|
|
116
|
-
Key: file.key,
|
|
117
|
-
ContentType: file.type,
|
|
118
|
-
Body: buffer
|
|
119
|
-
}).promise();
|
|
120
|
-
return { ...file,
|
|
121
|
-
location: data.Location
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
async _removeFile(file) {
|
|
126
|
-
await this.s3.deleteObject({
|
|
127
|
-
Bucket: this.bucket,
|
|
128
|
-
Key: file.key
|
|
129
|
-
}).promise();
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
async _readFile(file) {
|
|
133
|
-
const {
|
|
134
|
-
ContentType: type,
|
|
135
|
-
Body: data
|
|
136
|
-
} = await this.s3.getObject({
|
|
137
|
-
Bucket: this.bucket,
|
|
138
|
-
Key: file.key
|
|
139
|
-
}).promise();
|
|
140
|
-
const buffer = Buffer.isBuffer(data) ? data : Buffer.from(data);
|
|
141
|
-
buffer.type = type;
|
|
142
|
-
return buffer;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
async _listKeys() {
|
|
146
|
-
const files = [];
|
|
147
|
-
const params = {
|
|
148
|
-
Bucket: this.bucket
|
|
149
|
-
};
|
|
150
|
-
let result;
|
|
151
|
-
|
|
152
|
-
do {
|
|
153
|
-
result = await this.s3.listObjectsV2(params).promise();
|
|
154
|
-
|
|
155
|
-
for (const {
|
|
156
|
-
Key: key
|
|
157
|
-
} of result.Contents) {
|
|
158
|
-
files.push(key);
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
params.ContinuationToken = result.NextContinuationToken;
|
|
162
|
-
} while (result.IsTruncated);
|
|
163
|
-
|
|
164
|
-
return files;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
exports.S3Storage = S3Storage;
|
|
170
|
-
S3Storage.type = 's3';
|
|
171
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdG9yYWdlL1MzU3RvcmFnZS5qcyJdLCJuYW1lcyI6WyJTM1N0b3JhZ2UiLCJTdG9yYWdlIiwiY29uc3RydWN0b3IiLCJhcHAiLCJjb25maWciLCJuYW1lIiwiczMiLCJhY2wiLCJidWNrZXQiLCJvcHRpb25zIiwiYXdzIiwiUzMiLCJzdG9yYWdlIiwia2V5IiwicmVxIiwiZmlsZSIsImNiIiwiZ2V0VW5pcXVlS2V5Iiwib3JpZ2luYWxuYW1lIiwiY29udGVudFR5cGUiLCJtaW1ldHlwZSIsInN0cmVhbSIsImRhdGEiLCJkb25lIiwidHlwZSIsIm91dFN0cmVhbSIsIlBhc3NUaHJvdWdoIiwid3JpdGUiLCJwaXBlIiwib25EYXRhIiwiY2h1bmsiLCJGaWxlVHlwZSIsImZyb21CdWZmZXIiLCJtaW1lIiwib2ZmIiwib25jZSIsIkJ1ZmZlciIsImNvbmNhdCIsIm9uIiwibWV0YWRhdGEiLCJ3aWR0aCIsImhlaWdodCIsIl9nZXRGaWxlUGF0aCIsIl9maWxlIiwidW5kZWZpbmVkIiwiX2dldEZpbGVVcmwiLCJfZ2V0VXJsIiwidXJsIiwiX2FkZEZpbGUiLCJidWZmZXIiLCJ1cGxvYWQiLCJCdWNrZXQiLCJBQ0wiLCJLZXkiLCJDb250ZW50VHlwZSIsIkJvZHkiLCJwcm9taXNlIiwibG9jYXRpb24iLCJMb2NhdGlvbiIsIl9yZW1vdmVGaWxlIiwiZGVsZXRlT2JqZWN0IiwiX3JlYWRGaWxlIiwiZ2V0T2JqZWN0IiwiaXNCdWZmZXIiLCJmcm9tIiwiX2xpc3RLZXlzIiwiZmlsZXMiLCJwYXJhbXMiLCJyZXN1bHQiLCJsaXN0T2JqZWN0c1YyIiwiQ29udGVudHMiLCJwdXNoIiwiQ29udGludWF0aW9uVG9rZW4iLCJOZXh0Q29udGludWF0aW9uVG9rZW4iLCJJc1RydW5jYXRlZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7OztBQUVPLE1BQU1BLFNBQU4sU0FBd0JDLGdCQUF4QixDQUFnQztB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Q0FBQ0ssaUJBQVAsR0FBMkJKLE1BQU0sQ0FBQ0sscUJBQWxDO0FBQ0QsS0FQRCxRQU9TTCxNQUFNLENBQUNNLFdBUGhCOztBQVFBLFdBQU9SLEtBQVA7QUFDRDs7QUFySm9DOzs7QUFBMUJsRSxTLENBQ0p3QixJLEdBQU8sSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhd3MgZnJvbSAnYXdzLXNkaydcbmltcG9ydCBtdWx0ZXJTMyBmcm9tICdtdWx0ZXItczMnXG5pbXBvcnQgRmlsZVR5cGUgZnJvbSAnZmlsZS10eXBlJ1xuaW1wb3J0IGlzU3ZnIGZyb20gJ2lzLXN2ZydcbmltcG9ydCB7IFN0b3JhZ2UgfSBmcm9tICcuL1N0b3JhZ2UnXG5pbXBvcnQgeyBQYXNzVGhyb3VnaCB9IGZyb20gJ3N0cmVhbSdcblxuZXhwb3J0IGNsYXNzIFMzU3RvcmFnZSBleHRlbmRzIFN0b3JhZ2Uge1xuICBzdGF0aWMgdHlwZSA9ICdzMydcblxuICBjb25zdHJ1Y3RvcihhcHAsIGNvbmZpZykge1xuICAgIHN1cGVyKGFwcCwgY29uZmlnKVxuICAgIGNvbnN0IHtcbiAgICAgIG5hbWUsXG4gICAgICBzMyxcbiAgICAgIGFjbCxcbiAgICAgIGJ1Y2tldCxcbiAgICAgIC4uLm9wdGlvbnNcbiAgICB9ID0gY29uZmlnXG4gICAgdGhpcy5zMyA9IG5ldyBhd3MuUzMoczMpXG4gICAgdGhpcy5hY2wgPSBhY2xcbiAgICB0aGlzLmJ1Y2tldCA9IGJ1Y2tldFxuXG4gICAgdGhpcy5zdG9yYWdlID0gbXVsdGVyUzMoe1xuICAgICAgczM6IHRoaXMuczMsXG4gICAgICBhY2wsXG4gICAgICBidWNrZXQsXG4gICAgICAuLi5vcHRpb25zLFxuXG4gICAgICBrZXk6IChyZXEsIGZpbGUsIGNiKSA9PiB7XG4gICAgICAgIGNiKG51bGwsIHRoaXMuZ2V0VW5pcXVlS2V5KGZpbGUub3JpZ2luYWxuYW1lKSlcbiAgICAgIH0sXG5cbiAgICAgIGNvbnRlbnRUeXBlOiAocmVxLCBmaWxlLCBjYikgPT4ge1xuICAgICAgICBjb25zdCB7IG1pbWV0eXBlLCBzdHJlYW0gfSA9IGZpbGVcbiAgICAgICAgaWYgKG1pbWV0eXBlKSB7XG4gICAgICAgICAgLy8gMS4gVHJ1c3QgZmlsZS5taW1ldHlwZSBpZiBwcm92aWRlZC5cbiAgICAgICAgICBjYihudWxsLCBtaW1ldHlwZSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsZXQgZGF0YSA9IG51bGxcblxuICAgICAgICAgIGNvbnN0IGRvbmUgPSB0eXBlID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG91dFN0cmVhbSA9IG5ldyBQYXNzVGhyb3VnaCgpXG4gICAgICAgICAgICBvdXRTdHJlYW0ud3JpdGUoZGF0YSlcbiAgICAgICAgICAgIHN0cmVhbS5waXBlKG91dFN0cmVhbSlcbiAgICAgICAgICAgIGNiKG51bGwsIHR5cGUsIG91dFN0cmVhbSlcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBvbkRhdGEgPSBjaHVuayA9PiB7XG4gICAgICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgICAgLy8gMi4gVHJ5IHJlYWRpbmcgdGhlIG1pbWV0eXBlIGZyb20gdGhlIGZpcnN0IGNodW5rLlxuICAgICAgICAgICAgICBjb25zdCB0eXBlID0gRmlsZVR5cGUuZnJvbUJ1ZmZlcihjaHVuayk/Lm1pbWVcbiAgICAgICAgICAgICAgaWYgKHR5cGUpIHtcbiAgICAgICAgICAgICAgICBzdHJlYW0ub2ZmKCdkYXRhJywgb25EYXRhKVxuICAgICAgICAgICAgICAgIGRvbmUodHlwZSlcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyAzLiBJZiB0aGF0IGZhaWxzLCBrZWVwIGNvbGxlY3RpbmcgYWxsIGNodW5rcyBhbmQgZGV0ZXJtaW5lXG4gICAgICAgICAgICAgICAgLy8gICAgdGhlIG1pbWV0eXBlIHVzaW5nIHRoZSBmdWxsIGRhdGEuXG4gICAgICAgICAgICAgICAgc3RyZWFtLm9uY2UoJ2VuZCcsICgpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHR5cGUgPSAoXG4gICAgICAgICAgICAgICAgICAgIEZpbGVUeXBlLmZyb21CdWZmZXIoZGF0YSk/Lm1pbWUgfHxcbiAgICAgICAgICAgICAgICAgICAgKGlzU3ZnKGRhdGEpID8gJ2ltYWdlL3N2Zyt4bWwnIDogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScpXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICBkb25lKHR5cGUpXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGF0YSA9IGRhdGEgPyBCdWZmZXIuY29uY2F0KFtkYXRhLCBjaHVua10pIDogY2h1bmtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBzdHJlYW0ub24oJ2RhdGEnLCBvbkRhdGEpXG4gICAgICAgIH1cbiAgICAgIH0sXG5cbiAgICAgIG1ldGFkYXRhOiAocmVxLCBmaWxlLCBjYikgPT4ge1xuICAgICAgICAvLyBTdG9yZSB0aGUgZGV0ZXJtaW5lZCB3aWR0aCBhbmQgaGVpZ2h0IGFzIG1ldGEtZGF0YSBvbiB0aGUgczMgb2JqZWN0XG4gICAgICAgIC8vIGFzIHdlbGwuIFlvdSBuZXZlciBrbm93LCBpdCBtYXkgYmVjb21lIHVzZWZ1bCA6KVxuICAgICAgICBjb25zdCB7IHdpZHRoLCBoZWlnaHQgfSA9IGZpbGVcbiAgICAgICAgaWYgKHdpZHRoICE9IG51bGwgfHwgaGVpZ2h0ICE9IG51bGwpIHtcbiAgICAgICAgICBjYihudWxsLCB7XG4gICAgICAgICAgICB3aWR0aDogYCR7d2lkdGh9YCxcbiAgICAgICAgICAgIGhlaWdodDogYCR7aGVpZ2h0fWBcbiAgICAgICAgICB9KVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNiKG51bGwsIHt9KVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIC8vIEBvdmVycmlkZVxuICBfZ2V0RmlsZVBhdGgoX2ZpbGUpIHtcbiAgICAvLyBUaGVyZSBpcyBubyBcImxvY2FsXCIgZmlsZS1wYXRoIHRvIGZpbGVzIG9uIFMzLlxuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfVxuXG4gIC8vIEBvdmVycmlkZVxuICBfZ2V0RmlsZVVybChmaWxlKSB7XG4gICAgcmV0dXJuIHRoaXMuX2dldFVybChmaWxlLmtleSkgPz8gZmlsZS51cmxcbiAgfVxuXG4gIC8vIEBvdmVycmlkZVxuICBhc3luYyBfYWRkRmlsZShmaWxlLCBidWZmZXIpIHtcbiAgICBjb25zdCBkYXRhID0gYXdhaXQgdGhpcy5zMy51cGxvYWQoe1xuICAgICAgQnVja2V0OiB0aGlzLmJ1Y2tldCxcbiAgICAgIEFDTDogdGhpcy5hY2wsXG4gICAgICBLZXk6IGZpbGUua2V5LFxuICAgICAgQ29udGVudFR5cGU6IGZpbGUudHlwZSxcbiAgICAgIEJvZHk6IGJ1ZmZlclxuICAgIH0pLnByb21pc2UoKVxuICAgIC8vIFwiQ29udmVydFwiIGBmaWxlYCB0byBzb21ldGhpbmcgbG9va2luZyBtb3JlIGxpa2UgYSBTMyBgc3RvcmFnZUZpbGVgLlxuICAgIC8vIEZvciBub3csIG9ubHkgdGhlIGBsb2NhdGlvbmAgcHJvcGVydHkgaXMgb2YgaW50ZXJlc3Q6XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmZpbGUsXG4gICAgICBsb2NhdGlvbjogZGF0YS5Mb2NhdGlvblxuICAgIH1cbiAgfVxuXG4gIC8vIEBvdmVycmlkZVxuICBhc3luYyBfcmVtb3ZlRmlsZShmaWxlKSB7XG4gICAgYXdhaXQgdGhpcy5zMy5kZWxldGVPYmplY3Qoe1xuICAgICAgQnVja2V0OiB0aGlzLmJ1Y2tldCxcbiAgICAgIEtleTogZmlsZS5rZXlcbiAgICB9KS5wcm9taXNlKClcbiAgICAvLyBUT0RPOiBDaGVjayBmb3IgZXJyb3JzIGFuZCB0aHJvdz9cbiAgfVxuXG4gIC8vIEBvdmVycmlkZVxuICBhc3luYyBfcmVhZEZpbGUoZmlsZSkge1xuICAgIGNvbnN0IHtcbiAgICAgIENvbnRlbnRUeXBlOiB0eXBlLFxuICAgICAgQm9keTogZGF0YVxuICAgIH0gPSBhd2FpdCB0aGlzLnMzLmdldE9iamVjdCh7XG4gICAgICBCdWNrZXQ6IHRoaXMuYnVja2V0LFxuICAgICAgS2V5OiBmaWxlLmtleVxuICAgIH0pLnByb21pc2UoKVxuICAgIGNvbnN0IGJ1ZmZlciA9IEJ1ZmZlci5pc0J1ZmZlcihkYXRhKSA/IGRhdGEgOiBCdWZmZXIuZnJvbShkYXRhKVxuICAgIC8vIFNlZSBgQXNzZXRGaWxlLmRhdGFgIHNldHRlcjpcbiAgICBidWZmZXIudHlwZSA9IHR5cGVcbiAgICByZXR1cm4gYnVmZmVyXG4gIH1cblxuICAvLyBAb3ZlcnJpZGVcbiAgYXN5bmMgX2xpc3RLZXlzKCkge1xuICAgIGNvbnN0IGZpbGVzID0gW11cbiAgICBjb25zdCBwYXJhbXMgPSB7IEJ1Y2tldDogdGhpcy5idWNrZXQgfVxuICAgIGxldCByZXN1bHRcbiAgICBkbyB7XG4gICAgICByZXN1bHQgPSBhd2FpdCB0aGlzLnMzLmxpc3RPYmplY3RzVjIocGFyYW1zKS5wcm9taXNlKClcbiAgICAgIGZvciAoY29uc3QgeyBLZXk6IGtleSB9IG9mIHJlc3VsdC5Db250ZW50cykge1xuICAgICAgICBmaWxlcy5wdXNoKGtleSlcbiAgICAgIH1cbiAgICAgIC8vIENvbnRpbnVlIGl0IGlmIHJlc3VsdHMgYXJlIHRydW5jYXRlZC5cbiAgICAgIHBhcmFtcy5Db250aW51YXRpb25Ub2tlbiA9IHJlc3VsdC5OZXh0Q29udGludWF0aW9uVG9rZW5cbiAgICB9IHdoaWxlIChyZXN1bHQuSXNUcnVuY2F0ZWQpXG4gICAgcmV0dXJuIGZpbGVzXG4gIH1cbn1cbiJdfQ==
|
package/lib/storage/Storage.js
DELETED
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.Storage = void 0;
|
|
5
|
-
|
|
6
|
-
require("core-js/modules/esnext.async-iterator.map.js");
|
|
7
|
-
|
|
8
|
-
require("core-js/modules/esnext.iterator.map.js");
|
|
9
|
-
|
|
10
|
-
var _path = _interopRequireDefault(require("path"));
|
|
11
|
-
|
|
12
|
-
var _multer = _interopRequireDefault(require("@koa/multer"));
|
|
13
|
-
|
|
14
|
-
var _imageSize = _interopRequireDefault(require("image-size"));
|
|
15
|
-
|
|
16
|
-
var _stream = require("stream");
|
|
17
|
-
|
|
18
|
-
var _url = require("url");
|
|
19
|
-
|
|
20
|
-
var _utils = require("@ditojs/utils");
|
|
21
|
-
|
|
22
|
-
var _AssetFile = require("./AssetFile");
|
|
23
|
-
|
|
24
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
25
|
-
|
|
26
|
-
const storageClasses = {};
|
|
27
|
-
|
|
28
|
-
class Storage {
|
|
29
|
-
constructor(app, config) {
|
|
30
|
-
this.app = app;
|
|
31
|
-
this.config = config;
|
|
32
|
-
this.name = config.name;
|
|
33
|
-
this.url = config.url;
|
|
34
|
-
this.path = config.path;
|
|
35
|
-
this.storage = null;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
static register(storageClass) {
|
|
39
|
-
const type = storageClass.type || (0, _utils.hyphenate)(storageClass.name.match(/^(.*?)(?:Storage|)$/)[1]);
|
|
40
|
-
storageClass.type = type;
|
|
41
|
-
storageClasses[type] = storageClass;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
static get(type) {
|
|
45
|
-
return storageClasses[type] || null;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
getUploadStorage(config) {
|
|
49
|
-
return this.storage ? Object.setPrototypeOf({
|
|
50
|
-
_handleFile: async (req, file, callback) => {
|
|
51
|
-
try {
|
|
52
|
-
callback(null, await this._handleUpload(req, file, config));
|
|
53
|
-
} catch (err) {
|
|
54
|
-
callback(err);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}, this.storage) : null;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
getUploadHandler(config) {
|
|
61
|
-
const storage = this.getUploadStorage(config);
|
|
62
|
-
return storage ? (0, _multer.default)({ ...config,
|
|
63
|
-
storage
|
|
64
|
-
}).any() : null;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
getUniqueKey(name) {
|
|
68
|
-
return _AssetFile.AssetFile.getUniqueKey(name);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
convertAssetFile(file) {
|
|
72
|
-
return _AssetFile.AssetFile.convert(file, this);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
convertStorageFile(storageFile) {
|
|
76
|
-
return {
|
|
77
|
-
key: storageFile.key,
|
|
78
|
-
name: storageFile.originalname,
|
|
79
|
-
type: storageFile.mimetype,
|
|
80
|
-
size: storageFile.size,
|
|
81
|
-
url: this._getFileUrl(storageFile),
|
|
82
|
-
width: storageFile.width,
|
|
83
|
-
height: storageFile.height
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
convertStorageFiles(storageFiles) {
|
|
88
|
-
return storageFiles.map(storageFile => this.convertStorageFile(storageFile));
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
async addFile(file, buffer) {
|
|
92
|
-
const storageFile = await this._addFile(file, buffer);
|
|
93
|
-
file.size = Buffer.byteLength(buffer);
|
|
94
|
-
file.url = this._getFileUrl(storageFile);
|
|
95
|
-
return this.convertAssetFile(file);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
async removeFile(file) {
|
|
99
|
-
await this._removeFile(file);
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
async readFile(file) {
|
|
103
|
-
return this._readFile(file);
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
async listKeys() {
|
|
107
|
-
return this._listKeys();
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
getFilePath(file) {
|
|
111
|
-
return this._getFilePath(file);
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
getFileUrl(file) {
|
|
115
|
-
return this._getFileUrl(file);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
isImageFile(file) {
|
|
119
|
-
return file.mimetype.startsWith('image/');
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
_getUrl(...parts) {
|
|
123
|
-
return this.url ? new _url.URL(_path.default.posix.join(...parts), this.url).toString() : undefined;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
_getPath(...parts) {
|
|
127
|
-
return this.path ? _path.default.join(this.path, ...parts) : undefined;
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
_getFilePath(_file) {}
|
|
131
|
-
|
|
132
|
-
_getFileUrl(_file) {}
|
|
133
|
-
|
|
134
|
-
async _addFile(_file, _buffer) {}
|
|
135
|
-
|
|
136
|
-
async _removeFile(_file) {}
|
|
137
|
-
|
|
138
|
-
async _readFile(_file) {}
|
|
139
|
-
|
|
140
|
-
async _listKeys() {}
|
|
141
|
-
|
|
142
|
-
async _handleUpload(req, file, config) {
|
|
143
|
-
if (config.readImageSize && this.isImageFile(file)) {
|
|
144
|
-
return this._handleImageFile(req, file);
|
|
145
|
-
} else {
|
|
146
|
-
return this._handleFile(req, file);
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
_handleFile(req, file, stream = null) {
|
|
151
|
-
return new Promise((resolve, reject) => {
|
|
152
|
-
if (stream) {
|
|
153
|
-
Object.defineProperty(file, 'stream', {
|
|
154
|
-
configurable: true,
|
|
155
|
-
enumerable: false,
|
|
156
|
-
value: stream
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
this.storage._handleFile(req, file, (0, _utils.toPromiseCallback)(resolve, reject));
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
async _handleImageFile(req, file) {
|
|
165
|
-
const {
|
|
166
|
-
size,
|
|
167
|
-
stream
|
|
168
|
-
} = await new Promise(resolve => {
|
|
169
|
-
let data = null;
|
|
170
|
-
|
|
171
|
-
const done = size => {
|
|
172
|
-
const stream = new _stream.PassThrough();
|
|
173
|
-
stream.write(data);
|
|
174
|
-
file.stream.off('data', onData).off('end', onEnd).pipe(stream);
|
|
175
|
-
resolve({
|
|
176
|
-
size,
|
|
177
|
-
stream
|
|
178
|
-
});
|
|
179
|
-
};
|
|
180
|
-
|
|
181
|
-
const onEnd = () => {
|
|
182
|
-
this.app.emit('error', 'Unable to determine image size');
|
|
183
|
-
done(null);
|
|
184
|
-
};
|
|
185
|
-
|
|
186
|
-
const onData = chunk => {
|
|
187
|
-
data = data ? Buffer.concat([data, chunk]) : chunk;
|
|
188
|
-
const size = (0, _imageSize.default)(data);
|
|
189
|
-
|
|
190
|
-
if (size) {
|
|
191
|
-
done(size);
|
|
192
|
-
}
|
|
193
|
-
};
|
|
194
|
-
|
|
195
|
-
file.stream.on('data', onData).on('end', onEnd);
|
|
196
|
-
});
|
|
197
|
-
|
|
198
|
-
if (size) {
|
|
199
|
-
file.width = size.width;
|
|
200
|
-
file.height = size.height;
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
return this._handleFile(req, file, stream);
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
exports.Storage = Storage;
|
|
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
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
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
|
-
|
|
9
|
-
exports.__esModule = true;
|
|
10
|
-
var _exportNames = {
|
|
11
|
-
Storage: true
|
|
12
|
-
};
|
|
13
|
-
|
|
14
|
-
var _Storage = require("./Storage");
|
|
15
|
-
|
|
16
|
-
exports.Storage = _Storage.Storage;
|
|
17
|
-
|
|
18
|
-
var _DiskStorage = require("./DiskStorage");
|
|
19
|
-
|
|
20
|
-
var _S3Storage = require("./S3Storage");
|
|
21
|
-
|
|
22
|
-
var _AssetFile = require("./AssetFile");
|
|
23
|
-
|
|
24
|
-
Object.keys(_AssetFile).forEach(function (key) {
|
|
25
|
-
if (key === "default" || key === "__esModule") return;
|
|
26
|
-
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
27
|
-
if (key in exports && exports[key] === _AssetFile[key]) return;
|
|
28
|
-
exports[key] = _AssetFile[key];
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
_Storage.Storage.register(_DiskStorage.DiskStorage);
|
|
32
|
-
|
|
33
|
-
_Storage.Storage.register(_S3Storage.S3Storage);
|
|
34
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdG9yYWdlL2luZGV4LmpzIl0sIm5hbWVzIjpbIlN0b3JhZ2UiLCJyZWdpc3RlciIsIkRpc2tTdG9yYWdlIiwiUzNTdG9yYWdlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7Ozs7QUFDQTs7QUFDQTs7QUFLQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBSEFBLGlCQUFRQyxRQUFSLENBQWlCQyx3QkFBakI7O0FBQ0FGLGlCQUFRQyxRQUFSLENBQWlCRSxvQkFBakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdG9yYWdlIH0gZnJvbSAnLi9TdG9yYWdlJ1xuaW1wb3J0IHsgRGlza1N0b3JhZ2UgfSBmcm9tICcuL0Rpc2tTdG9yYWdlJ1xuaW1wb3J0IHsgUzNTdG9yYWdlIH0gZnJvbSAnLi9TM1N0b3JhZ2UnXG5cblN0b3JhZ2UucmVnaXN0ZXIoRGlza1N0b3JhZ2UpXG5TdG9yYWdlLnJlZ2lzdGVyKFMzU3RvcmFnZSlcblxuZXhwb3J0ICogZnJvbSAnLi9Bc3NldEZpbGUnXG5leHBvcnQgeyBTdG9yYWdlIH1cbiJdfQ==
|
package/lib/utils/decorator.js
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.createDecorator = createDecorator;
|
|
5
|
-
|
|
6
|
-
function createDecorator(handler) {
|
|
7
|
-
return (target, key, descriptor) => {
|
|
8
|
-
if (descriptor.initializer) {
|
|
9
|
-
descriptor.value = descriptor.initializer();
|
|
10
|
-
delete descriptor.initializer;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
handler(descriptor.value);
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9kZWNvcmF0b3IuanMiXSwibmFtZXMiOlsiY3JlYXRlRGVjb3JhdG9yIiwiaGFuZGxlciIsInRhcmdldCIsImtleSIsImRlc2NyaXB0b3IiLCJpbml0aWFsaXplciIsInZhbHVlIl0sIm1hcHBpbmdzIjoiOzs7OztBQUFPLFNBQVNBLGVBQVQsQ0FBeUJDLE9BQXpCLEVBQWtDO0FBQ3ZDLFNBQU8sQ0FBQ0MsTUFBRCxFQUFTQyxHQUFULEVBQWNDLFVBQWQsS0FBNkI7QUFFbEMsUUFBSUEsVUFBVSxDQUFDQyxXQUFmLEVBQTRCO0FBQzFCRCxNQUFBQSxVQUFVLENBQUNFLEtBQVgsR0FBbUJGLFVBQVUsQ0FBQ0MsV0FBWCxFQUFuQjtBQUNBLGFBQU9ELFVBQVUsQ0FBQ0MsV0FBbEI7QUFDRDs7QUFDREosSUFBQUEsT0FBTyxDQUFDRyxVQUFVLENBQUNFLEtBQVosQ0FBUDtBQUNELEdBUEQ7QUFRRCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEZWNvcmF0b3IoaGFuZGxlcikge1xuICByZXR1cm4gKHRhcmdldCwga2V5LCBkZXNjcmlwdG9yKSA9PiB7XG4gICAgLy8gQ29udmVydCBgZGVzY3JpcHRvci5pbml0aWFsaXplcigpYCB0byBgZGVzY3JpcHRvci52YWx1ZWA6XG4gICAgaWYgKGRlc2NyaXB0b3IuaW5pdGlhbGl6ZXIpIHtcbiAgICAgIGRlc2NyaXB0b3IudmFsdWUgPSBkZXNjcmlwdG9yLmluaXRpYWxpemVyKClcbiAgICAgIGRlbGV0ZSBkZXNjcmlwdG9yLmluaXRpYWxpemVyXG4gICAgfVxuICAgIGhhbmRsZXIoZGVzY3JpcHRvci52YWx1ZSlcbiAgfVxufVxuIl19
|
package/lib/utils/deprecate.js
DELETED
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.deprecate = deprecate;
|
|
5
|
-
|
|
6
|
-
require("core-js/modules/esnext.set.add-all.js");
|
|
7
|
-
|
|
8
|
-
require("core-js/modules/esnext.set.delete-all.js");
|
|
9
|
-
|
|
10
|
-
require("core-js/modules/esnext.set.difference.js");
|
|
11
|
-
|
|
12
|
-
require("core-js/modules/esnext.set.every.js");
|
|
13
|
-
|
|
14
|
-
require("core-js/modules/esnext.set.filter.js");
|
|
15
|
-
|
|
16
|
-
require("core-js/modules/esnext.set.find.js");
|
|
17
|
-
|
|
18
|
-
require("core-js/modules/esnext.set.intersection.js");
|
|
19
|
-
|
|
20
|
-
require("core-js/modules/esnext.set.is-disjoint-from.js");
|
|
21
|
-
|
|
22
|
-
require("core-js/modules/esnext.set.is-subset-of.js");
|
|
23
|
-
|
|
24
|
-
require("core-js/modules/esnext.set.is-superset-of.js");
|
|
25
|
-
|
|
26
|
-
require("core-js/modules/esnext.set.join.js");
|
|
27
|
-
|
|
28
|
-
require("core-js/modules/esnext.set.map.js");
|
|
29
|
-
|
|
30
|
-
require("core-js/modules/esnext.set.reduce.js");
|
|
31
|
-
|
|
32
|
-
require("core-js/modules/esnext.set.some.js");
|
|
33
|
-
|
|
34
|
-
require("core-js/modules/esnext.set.symmetric-difference.js");
|
|
35
|
-
|
|
36
|
-
require("core-js/modules/esnext.set.union.js");
|
|
37
|
-
|
|
38
|
-
const loggedDeprecations = new Set();
|
|
39
|
-
|
|
40
|
-
function deprecate(message) {
|
|
41
|
-
if (!loggedDeprecations.has(message)) {
|
|
42
|
-
loggedDeprecations.add(message);
|
|
43
|
-
console.warn(message);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9kZXByZWNhdGUuanMiXSwibmFtZXMiOlsibG9nZ2VkRGVwcmVjYXRpb25zIiwiU2V0IiwiZGVwcmVjYXRlIiwibWVzc2FnZSIsImhhcyIsImFkZCIsImNvbnNvbGUiLCJ3YXJuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsTUFBTUEsa0JBQWtCLEdBQUcsSUFBSUMsR0FBSixFQUEzQjs7QUFFTyxTQUFTQyxTQUFULENBQW1CQyxPQUFuQixFQUE0QjtBQUVqQyxNQUFJLENBQUNILGtCQUFrQixDQUFDSSxHQUFuQixDQUF1QkQsT0FBdkIsQ0FBTCxFQUFzQztBQUNwQ0gsSUFBQUEsa0JBQWtCLENBQUNLLEdBQW5CLENBQXVCRixPQUF2QjtBQUNBRyxJQUFBQSxPQUFPLENBQUNDLElBQVIsQ0FBYUosT0FBYjtBQUNEO0FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBsb2dnZWREZXByZWNhdGlvbnMgPSBuZXcgU2V0KClcblxuZXhwb3J0IGZ1bmN0aW9uIGRlcHJlY2F0ZShtZXNzYWdlKSB7XG4gIC8vIE9ubHkgbG9nIGRlcHJlY2F0aW9uIG1lc3NhZ2VzIG9uY2UuXG4gIGlmICghbG9nZ2VkRGVwcmVjYXRpb25zLmhhcyhtZXNzYWdlKSkge1xuICAgIGxvZ2dlZERlcHJlY2F0aW9ucy5hZGQobWVzc2FnZSlcbiAgICBjb25zb2xlLndhcm4obWVzc2FnZSlcbiAgfVxufVxuIl19
|