@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.
Files changed (216) hide show
  1. package/package.json +25 -43
  2. package/src/app/Application.js +105 -111
  3. package/src/app/Validator.js +6 -3
  4. package/src/app/index.js +2 -2
  5. package/src/cli/db/createMigration.js +1 -1
  6. package/src/cli/db/index.js +7 -7
  7. package/src/cli/db/listAssetConfig.js +1 -1
  8. package/src/cli/db/reset.js +1 -1
  9. package/src/cli/index.js +14 -5
  10. package/src/controllers/AdminController.js +181 -158
  11. package/src/controllers/CollectionController.js +8 -29
  12. package/src/controllers/Controller.js +71 -76
  13. package/src/controllers/ControllerAction.js +39 -17
  14. package/src/controllers/MemberAction.js +2 -2
  15. package/src/controllers/ModelController.js +4 -4
  16. package/src/controllers/RelationController.js +3 -3
  17. package/src/controllers/{UserController.js → UsersController.js} +8 -13
  18. package/src/controllers/index.js +5 -5
  19. package/src/decorators/action.js +3 -3
  20. package/src/decorators/authorize.js +1 -1
  21. package/src/decorators/index.js +6 -6
  22. package/src/decorators/parameters.js +1 -1
  23. package/src/decorators/returns.js +1 -1
  24. package/src/decorators/scope.js +1 -1
  25. package/src/decorators/transacted.js +1 -1
  26. package/src/errors/AssetError.js +1 -1
  27. package/src/errors/AuthenticationError.js +1 -1
  28. package/src/errors/AuthorizationError.js +1 -1
  29. package/src/errors/ControllerError.js +1 -1
  30. package/src/errors/DatabaseError.js +12 -3
  31. package/src/errors/GraphError.js +1 -1
  32. package/src/errors/ModelError.js +1 -1
  33. package/src/errors/NotFoundError.js +1 -1
  34. package/src/errors/NotImplementedError.js +1 -1
  35. package/src/errors/QueryBuilderError.js +1 -1
  36. package/src/errors/RelationError.js +1 -1
  37. package/src/errors/ValidationError.js +1 -1
  38. package/src/errors/WrappedError.js +1 -1
  39. package/src/errors/index.js +14 -14
  40. package/src/graph/DitoGraphProcessor.js +2 -1
  41. package/src/graph/graph.js +1 -1
  42. package/src/graph/index.js +3 -3
  43. package/src/index.js +11 -9
  44. package/src/lib/index.js +2 -2
  45. package/src/middleware/createTransaction.js +1 -1
  46. package/src/middleware/findRoute.js +3 -2
  47. package/src/middleware/handleConnectMiddleware.js +88 -0
  48. package/src/middleware/handleError.js +1 -1
  49. package/src/middleware/handleRoute.js +3 -3
  50. package/src/middleware/index.js +8 -7
  51. package/src/mixins/AssetMixin.js +1 -1
  52. package/src/mixins/UserMixin.js +1 -1
  53. package/src/mixins/index.js +4 -4
  54. package/src/models/AssetModel.js +2 -2
  55. package/src/models/Model.js +16 -12
  56. package/src/models/RelationAccessor.js +1 -1
  57. package/src/models/SessionModel.js +2 -2
  58. package/src/models/TimeStampedModel.js +2 -2
  59. package/src/models/UserModel.js +2 -2
  60. package/src/models/definitions/assets.js +1 -1
  61. package/src/models/definitions/filters.js +57 -44
  62. package/src/models/definitions/hooks.js +1 -1
  63. package/src/models/definitions/index.js +9 -9
  64. package/src/models/definitions/modifiers.js +1 -1
  65. package/src/models/definitions/options.js +1 -1
  66. package/src/models/definitions/properties.js +2 -2
  67. package/src/models/definitions/relations.js +1 -1
  68. package/src/models/definitions/schema.js +1 -1
  69. package/src/models/definitions/scopes.js +2 -2
  70. package/src/models/index.js +5 -5
  71. package/src/query/QueryBuilder.js +5 -5
  72. package/src/query/QueryFilters.js +50 -50
  73. package/src/query/QueryParameters.js +2 -2
  74. package/src/query/index.js +3 -3
  75. package/src/schema/formats/index.js +2 -2
  76. package/src/schema/index.js +4 -4
  77. package/src/schema/keywords/_relate.js +1 -1
  78. package/src/schema/keywords/index.js +12 -12
  79. package/src/schema/properties.test.js +1 -1
  80. package/src/schema/relations.js +1 -1
  81. package/src/schema/relations.test.js +2 -2
  82. package/src/services/index.js +1 -1
  83. package/src/storage/DiskStorage.js +1 -1
  84. package/src/storage/S3Storage.js +4 -4
  85. package/src/storage/Storage.js +1 -1
  86. package/src/storage/index.js +4 -4
  87. package/src/utils/function.test.js +1 -1
  88. package/src/utils/handler.js +17 -0
  89. package/src/utils/index.js +8 -7
  90. package/src/utils/object.test.js +1 -1
  91. package/lib/app/Application.js +0 -961
  92. package/lib/app/SessionStore.js +0 -40
  93. package/lib/app/Validator.js +0 -355
  94. package/lib/app/index.js +0 -26
  95. package/lib/cli/console.js +0 -175
  96. package/lib/cli/db/createMigration.js +0 -237
  97. package/lib/cli/db/index.js +0 -66
  98. package/lib/cli/db/listAssetConfig.js +0 -16
  99. package/lib/cli/db/migrate.js +0 -15
  100. package/lib/cli/db/reset.js +0 -27
  101. package/lib/cli/db/rollback.js +0 -15
  102. package/lib/cli/db/seed.js +0 -104
  103. package/lib/cli/db/unlock.js +0 -15
  104. package/lib/cli/index.js +0 -90
  105. package/lib/controllers/AdminController.js +0 -258
  106. package/lib/controllers/CollectionController.js +0 -263
  107. package/lib/controllers/Controller.js +0 -462
  108. package/lib/controllers/ControllerAction.js +0 -276
  109. package/lib/controllers/MemberAction.js +0 -22
  110. package/lib/controllers/ModelController.js +0 -64
  111. package/lib/controllers/RelationController.js +0 -82
  112. package/lib/controllers/UserController.js +0 -98
  113. package/lib/controllers/index.js +0 -50
  114. package/lib/decorators/action.js +0 -14
  115. package/lib/decorators/authorize.js +0 -13
  116. package/lib/decorators/index.js +0 -58
  117. package/lib/decorators/parameters.js +0 -35
  118. package/lib/decorators/returns.js +0 -26
  119. package/lib/decorators/scope.js +0 -14
  120. package/lib/decorators/transacted.js +0 -12
  121. package/lib/errors/AssetError.js +0 -19
  122. package/lib/errors/AuthenticationError.js +0 -19
  123. package/lib/errors/AuthorizationError.js +0 -19
  124. package/lib/errors/ControllerError.js +0 -24
  125. package/lib/errors/DatabaseError.js +0 -27
  126. package/lib/errors/GraphError.js +0 -19
  127. package/lib/errors/ModelError.js +0 -24
  128. package/lib/errors/NotFoundError.js +0 -19
  129. package/lib/errors/NotImplementedError.js +0 -19
  130. package/lib/errors/QueryBuilderError.js +0 -19
  131. package/lib/errors/RelationError.js +0 -36
  132. package/lib/errors/ResponseError.js +0 -46
  133. package/lib/errors/ValidationError.js +0 -19
  134. package/lib/errors/WrappedError.js +0 -24
  135. package/lib/errors/index.js +0 -122
  136. package/lib/graph/DitoGraphProcessor.js +0 -185
  137. package/lib/graph/expression.js +0 -76
  138. package/lib/graph/graph.js +0 -300
  139. package/lib/graph/index.js +0 -34
  140. package/lib/index.js +0 -82
  141. package/lib/lib/EventEmitter.js +0 -76
  142. package/lib/lib/KnexHelper.js +0 -40
  143. package/lib/lib/index.js +0 -26
  144. package/lib/middleware/attachLogger.js +0 -16
  145. package/lib/middleware/createTransaction.js +0 -36
  146. package/lib/middleware/findRoute.js +0 -35
  147. package/lib/middleware/handleError.js +0 -26
  148. package/lib/middleware/handleRoute.js +0 -29
  149. package/lib/middleware/handleUser.js +0 -36
  150. package/lib/middleware/index.js +0 -66
  151. package/lib/middleware/logRequests.js +0 -122
  152. package/lib/mixins/AssetMixin.js +0 -81
  153. package/lib/mixins/SessionMixin.js +0 -22
  154. package/lib/mixins/TimeStampedMixin.js +0 -47
  155. package/lib/mixins/UserMixin.js +0 -151
  156. package/lib/mixins/index.js +0 -42
  157. package/lib/models/AssetModel.js +0 -12
  158. package/lib/models/Model.js +0 -953
  159. package/lib/models/RelationAccessor.js +0 -41
  160. package/lib/models/SessionModel.js +0 -12
  161. package/lib/models/TimeStampedModel.js +0 -12
  162. package/lib/models/UserModel.js +0 -12
  163. package/lib/models/definitions/assets.js +0 -11
  164. package/lib/models/definitions/filters.js +0 -101
  165. package/lib/models/definitions/hooks.js +0 -11
  166. package/lib/models/definitions/index.js +0 -38
  167. package/lib/models/definitions/modifiers.js +0 -11
  168. package/lib/models/definitions/options.js +0 -11
  169. package/lib/models/definitions/properties.js +0 -87
  170. package/lib/models/definitions/relations.js +0 -11
  171. package/lib/models/definitions/schema.js +0 -11
  172. package/lib/models/definitions/scopes.js +0 -51
  173. package/lib/models/index.js +0 -50
  174. package/lib/query/QueryBuilder.js +0 -745
  175. package/lib/query/QueryFilters.js +0 -82
  176. package/lib/query/QueryParameters.js +0 -77
  177. package/lib/query/Registry.js +0 -40
  178. package/lib/query/index.js +0 -34
  179. package/lib/schema/formats/_empty.js +0 -10
  180. package/lib/schema/formats/_required.js +0 -10
  181. package/lib/schema/formats/index.js +0 -26
  182. package/lib/schema/index.js +0 -49
  183. package/lib/schema/keywords/_computed.js +0 -11
  184. package/lib/schema/keywords/_foreign.js +0 -11
  185. package/lib/schema/keywords/_hidden.js +0 -11
  186. package/lib/schema/keywords/_index.js +0 -11
  187. package/lib/schema/keywords/_instanceof.js +0 -49
  188. package/lib/schema/keywords/_primary.js +0 -11
  189. package/lib/schema/keywords/_range.js +0 -26
  190. package/lib/schema/keywords/_relate.js +0 -19
  191. package/lib/schema/keywords/_specificType.js +0 -11
  192. package/lib/schema/keywords/_unique.js +0 -11
  193. package/lib/schema/keywords/_unsigned.js +0 -11
  194. package/lib/schema/keywords/_validate.js +0 -80
  195. package/lib/schema/keywords/index.js +0 -106
  196. package/lib/schema/properties.js +0 -227
  197. package/lib/schema/properties.test.js +0 -573
  198. package/lib/schema/relations.js +0 -274
  199. package/lib/schema/relations.test.js +0 -155
  200. package/lib/services/Service.js +0 -34
  201. package/lib/services/index.js +0 -18
  202. package/lib/storage/AssetFile.js +0 -97
  203. package/lib/storage/DiskStorage.js +0 -125
  204. package/lib/storage/S3Storage.js +0 -171
  205. package/lib/storage/Storage.js +0 -209
  206. package/lib/storage/index.js +0 -34
  207. package/lib/utils/decorator.js +0 -16
  208. package/lib/utils/deprecate.js +0 -46
  209. package/lib/utils/emitter.js +0 -13
  210. package/lib/utils/function.js +0 -14
  211. package/lib/utils/function.test.js +0 -49
  212. package/lib/utils/index.js +0 -66
  213. package/lib/utils/json.js +0 -9
  214. package/lib/utils/object.js +0 -92
  215. package/lib/utils/object.test.js +0 -65
  216. 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=
@@ -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==
@@ -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==
@@ -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==
@@ -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
@@ -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