filestack-js 4.1.4 → 4.2.4

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 (70) hide show
  1. package/build/browser/filestack.esm.js +1 -1
  2. package/build/browser/filestack.esm.js.map +1 -1
  3. package/build/browser/filestack.min.js +1 -1
  4. package/build/browser/filestack.min.js.map +1 -1
  5. package/build/browser/filestack.umd.js +1 -1
  6. package/build/browser/filestack.umd.js.map +1 -1
  7. package/build/browser/manifest.json +2 -2
  8. package/build/main/config.js +2 -2
  9. package/build/main/index.d.ts +1 -1
  10. package/build/main/index.js +2 -2
  11. package/build/main/lib/api/store.js +9 -1
  12. package/build/main/lib/api/upload/file_tools.browser.d.ts +1 -1
  13. package/build/main/lib/api/upload/file_tools.browser.js +3 -3
  14. package/build/main/lib/api/upload/file_tools.node.d.ts +1 -1
  15. package/build/main/lib/api/upload/file_tools.node.js +4 -4
  16. package/build/main/lib/api/upload/types.d.ts +8 -1
  17. package/build/main/lib/api/upload/types.js +1 -1
  18. package/build/main/lib/api/upload/upload.d.ts +15 -2
  19. package/build/main/lib/api/upload/upload.js +17 -7
  20. package/build/main/lib/client.js +2 -2
  21. package/build/main/lib/client.spec.js +5 -7
  22. package/build/main/lib/picker.d.ts +5 -0
  23. package/build/main/lib/picker.js +1 -1
  24. package/build/main/lib/utils/index.browser.js +1 -1
  25. package/build/main/lib/utils/index.node.js +1 -1
  26. package/build/main/lib/utils/index.spec.browser.js +1 -1
  27. package/build/main/schema/picker.schema.d.ts +3 -4
  28. package/build/main/schema/picker.schema.js +4 -1
  29. package/build/main/schema/store.schema.d.ts +8 -0
  30. package/build/main/schema/store.schema.js +9 -1
  31. package/build/main/schema/upload.schema.d.ts +0 -4
  32. package/build/main/schema/upload.schema.js +1 -5
  33. package/build/module/config.js +2 -2
  34. package/build/module/index.d.ts +1 -1
  35. package/build/module/index.js +2 -2
  36. package/build/module/lib/api/store.js +9 -1
  37. package/build/module/lib/api/upload/file_tools.browser.d.ts +1 -1
  38. package/build/module/lib/api/upload/file_tools.browser.js +3 -3
  39. package/build/module/lib/api/upload/file_tools.node.d.ts +1 -1
  40. package/build/module/lib/api/upload/file_tools.node.js +4 -4
  41. package/build/module/lib/api/upload/types.d.ts +8 -1
  42. package/build/module/lib/api/upload/types.js +1 -1
  43. package/build/module/lib/api/upload/upload.d.ts +15 -2
  44. package/build/module/lib/api/upload/upload.js +17 -7
  45. package/build/module/lib/client.js +2 -2
  46. package/build/module/lib/client.spec.js +5 -7
  47. package/build/module/lib/picker.d.ts +5 -0
  48. package/build/module/lib/picker.js +1 -1
  49. package/build/module/lib/utils/index.browser.js +1 -1
  50. package/build/module/lib/utils/index.node.js +1 -1
  51. package/build/module/lib/utils/index.spec.browser.js +1 -1
  52. package/build/module/schema/picker.schema.d.ts +3 -4
  53. package/build/module/schema/picker.schema.js +4 -1
  54. package/build/module/schema/store.schema.d.ts +8 -0
  55. package/build/module/schema/store.schema.js +9 -1
  56. package/build/module/schema/upload.schema.d.ts +0 -4
  57. package/build/module/schema/upload.schema.js +1 -5
  58. package/package.json +1 -1
  59. package/src/config.ts +1 -1
  60. package/src/lib/api/store.ts +10 -1
  61. package/src/lib/api/upload/file_tools.browser.ts +2 -2
  62. package/src/lib/api/upload/file_tools.node.ts +3 -3
  63. package/src/lib/api/upload/types.ts +10 -2
  64. package/src/lib/api/upload/upload.ts +37 -6
  65. package/src/lib/client.spec.ts +4 -6
  66. package/src/lib/client.ts +1 -1
  67. package/src/lib/picker.ts +5 -0
  68. package/src/schema/picker.schema.ts +3 -0
  69. package/src/schema/store.schema.ts +8 -0
  70. package/src/schema/upload.schema.ts +0 -4
@@ -5,10 +5,10 @@
5
5
  },
6
6
  "filestack.min.js.map": {
7
7
  "src": "filestack.min.js.map",
8
- "integrity": "sha256-IjVDiVIcGHXMLO7fdSBPUokfTkTBR6MymJIdjFsS7e4= sha384-KJgOeAVcrSs9KaIOSuYaTnAOiz///k7Ebn5Eo47h/7ka+QYCbZ8G6111jmrfSFzM sha512-JlNc7/BRPQ+ZGcFtg6cb9Nph/lgafmFId0/IWVB9O5QoCYTthR6xWZWli1HlGWg/1eI+nhYbRy1w+EgL9jh2Ug=="
8
+ "integrity": "sha256-21QXUfSX8BTCVwsPAgZT8LokaPdd4turtkEdlN0BV6w= sha384-nxhdNs6ymfO58tTx6Bq0d09sQE0rXYA70LxMM6hEkbI9CJ8V+qci3q0DvZ6et70q sha512-jYUEps2GHuXQ6pa0Jc+zYBC7iRCgco1e5DGucCY0MQ6ne+LY6SSNRX0UU+9oLeJZ67FJCSjVgy9o4pOHgKcgTg=="
9
9
  },
10
10
  "main.js": {
11
11
  "src": "filestack.min.js",
12
- "integrity": "sha256-WFa6qhvtSQtZgoZWHix4dL3CHkracXGNFRCBpwDijKQ= sha384-O7Gef6JVzJOPtkzKdoIVdZixtZGQ1RvmlYJ+qaTopJ/D6RXdlE9GfZOuLoKS4C3o sha512-9XpOvSMknbQzrjlYo1ZSFt4KiOes6MgL4l50YsTdovbQXV4i1f+wIo9HKPaVyCMLAGKXrjBem10ZOd06qoR6yQ=="
12
+ "integrity": "sha256-/IPq5/Z7Tfzxp+NOqfKJ8sRTmh/UkMKcgRc4XuSvHOc= sha384-szuSWLhG5B+09067m45vJxQmFaA1X1pyXxq+bTglTYpNCxwp+7u0qvGRS5AYoGOB sha512-3FghNrbUwkGkTtu3QCgFeU5BgmHn2N4syDwPA+01+sLMIht77cKe0HIGm+aiix34UxoO2FfiugB0p9FXftZuBg=="
13
13
  }
14
14
  }
@@ -20,7 +20,7 @@ exports.config = void 0;
20
20
  /**
21
21
  * @private
22
22
  */
23
- var PICKER_VERSION = '4.3.0';
23
+ var PICKER_VERSION = '4.4.0';
24
24
  exports.config = {
25
25
  urls: {
26
26
  processUrl: 'https://process.filestackapi.com',
@@ -32,4 +32,4 @@ exports.config = {
32
32
  },
33
33
  };
34
34
 
35
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRzs7O0FBRUg7O0dBRUc7QUFDSCxJQUFNLGNBQWMsR0FBRyxPQUFPLENBQUM7QUFzQmxCLFFBQUEsTUFBTSxHQUFHO0lBQ3BCLElBQUksRUFBRTtRQUNKLFVBQVUsRUFBRSxrQ0FBa0M7UUFDOUMsVUFBVSxFQUFFLHVDQUF1QztRQUNuRCxZQUFZLEVBQUUsaUNBQWlDO1FBQy9DLFdBQVcsRUFBRSxnQ0FBZ0M7UUFDN0MsTUFBTSxFQUFFLGtDQUFrQztRQUMxQyxTQUFTLEVBQUUsaURBQTBDLGNBQWMsZUFBWTtLQUNoRjtDQUNGLENBQUMiLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOCBieSBGaWxlc3RhY2suXG4gKiBTb21lIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5jb25zdCBQSUNLRVJfVkVSU0lPTiA9ICc0LjMuMCc7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIb3N0cyB7XG4gIFt1cmw6IHN0cmluZ106IHN0cmluZztcbiAgZmlsZUFwaVVybDogc3RyaW5nO1xuICB1cGxvYWRBcGlVcmw6IHN0cmluZztcbiAgY2xvdWRBcGlVcmw6IHN0cmluZztcbiAgY2RuVXJsOiBzdHJpbmc7XG4gIHBpY2tlclVybDogc3RyaW5nO1xuICBwcm9jZXNzVXJsOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25maWcge1xuICB1cmxzOiBIb3N0cztcbn1cblxuZXhwb3J0IGNvbnN0IGNvbmZpZyA9IHtcbiAgdXJsczoge1xuICAgIHByb2Nlc3NVcmw6ICdodHRwczovL3Byb2Nlc3MuZmlsZXN0YWNrYXBpLmNvbScsXG4gICAgZmlsZUFwaVVybDogJ2h0dHBzOi8vd3d3LmZpbGVzdGFja2FwaS5jb20vYXBpL2ZpbGUnLFxuICAgIHVwbG9hZEFwaVVybDogJ2h0dHBzOi8vdXBsb2FkLmZpbGVzdGFja2FwaS5jb20nLFxuICAgIGNsb3VkQXBpVXJsOiAnaHR0cHM6Ly9jbG91ZC5maWxlc3RhY2thcGkuY29tJyxcbiAgICBjZG5Vcmw6ICdodHRwczovL2Nkbi5maWxlc3RhY2tjb250ZW50LmNvbScsXG4gICAgcGlja2VyVXJsOiBgaHR0cHM6Ly9zdGF0aWMuZmlsZXN0YWNrYXBpLmNvbS9waWNrZXIvJHtQSUNLRVJfVkVSU0lPTn0vcGlja2VyLmpzYCxcbiAgfSxcbn07XG4iXX0=
35
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRzs7O0FBRUg7O0dBRUc7QUFDSCxJQUFNLGNBQWMsR0FBRyxPQUFPLENBQUM7QUFzQmxCLFFBQUEsTUFBTSxHQUFHO0lBQ3BCLElBQUksRUFBRTtRQUNKLFVBQVUsRUFBRSxrQ0FBa0M7UUFDOUMsVUFBVSxFQUFFLHVDQUF1QztRQUNuRCxZQUFZLEVBQUUsaUNBQWlDO1FBQy9DLFdBQVcsRUFBRSxnQ0FBZ0M7UUFDN0MsTUFBTSxFQUFFLGtDQUFrQztRQUMxQyxTQUFTLEVBQUUsaURBQTBDLGNBQWMsZUFBWTtLQUNoRjtDQUNGLENBQUMiLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOCBieSBGaWxlc3RhY2suXG4gKiBTb21lIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLyoqXG4gKiBAcHJpdmF0ZVxuICovXG5jb25zdCBQSUNLRVJfVkVSU0lPTiA9ICc0LjQuMCc7XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIb3N0cyB7XG4gIFt1cmw6IHN0cmluZ106IHN0cmluZztcbiAgZmlsZUFwaVVybDogc3RyaW5nO1xuICB1cGxvYWRBcGlVcmw6IHN0cmluZztcbiAgY2xvdWRBcGlVcmw6IHN0cmluZztcbiAgY2RuVXJsOiBzdHJpbmc7XG4gIHBpY2tlclVybDogc3RyaW5nO1xuICBwcm9jZXNzVXJsOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQHByaXZhdGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb25maWcge1xuICB1cmxzOiBIb3N0cztcbn1cblxuZXhwb3J0IGNvbnN0IGNvbmZpZyA9IHtcbiAgdXJsczoge1xuICAgIHByb2Nlc3NVcmw6ICdodHRwczovL3Byb2Nlc3MuZmlsZXN0YWNrYXBpLmNvbScsXG4gICAgZmlsZUFwaVVybDogJ2h0dHBzOi8vd3d3LmZpbGVzdGFja2FwaS5jb20vYXBpL2ZpbGUnLFxuICAgIHVwbG9hZEFwaVVybDogJ2h0dHBzOi8vdXBsb2FkLmZpbGVzdGFja2FwaS5jb20nLFxuICAgIGNsb3VkQXBpVXJsOiAnaHR0cHM6Ly9jbG91ZC5maWxlc3RhY2thcGkuY29tJyxcbiAgICBjZG5Vcmw6ICdodHRwczovL2Nkbi5maWxlc3RhY2tjb250ZW50LmNvbScsXG4gICAgcGlja2VyVXJsOiBgaHR0cHM6Ly9zdGF0aWMuZmlsZXN0YWNrYXBpLmNvbS9waWNrZXIvJHtQSUNLRVJfVkVSU0lPTn0vcGlja2VyLmpzYCxcbiAgfSxcbn07XG4iXX0=
@@ -23,7 +23,7 @@ export declare const init: (apikey: string, options?: ClientOptions) => Client;
23
23
  /**
24
24
  * filestack-js version. Interpolated at build time.
25
25
  */
26
- export declare const version = "4.1.4";
26
+ export declare const version = "4.2.4";
27
27
  export * from './lib/api/transform';
28
28
  export * from './lib/filelink';
29
29
  export * from './filestack_error';
@@ -49,8 +49,8 @@ exports.init = exports.Filestack;
49
49
  /**
50
50
  * filestack-js version. Interpolated at build time.
51
51
  */
52
- exports.version = '4.1.4';
53
- (0, loader_1.registerModule)(loader_1.FILESTACK_MODULES.FILESTACK_SDK, exports.Filestack, { version: '4.1.4' });
52
+ exports.version = '4.2.4';
53
+ (0, loader_1.registerModule)(loader_1.FILESTACK_MODULES.FILESTACK_SDK, exports.Filestack, { version: '4.2.4' });
54
54
  tslib_1.__exportStar(require("./lib/api/transform"), exports);
55
55
  tslib_1.__exportStar(require("./lib/filelink"), exports);
56
56
  tslib_1.__exportStar(require("./filestack_error"), exports);
@@ -45,6 +45,14 @@ var storeURL = function (_a) {
45
45
  session.policy = security && security.policy || session.policy;
46
46
  session.signature = security && security.signature || session.signature;
47
47
  var filelink = new filelink_1.Filelink(url, session.apikey);
48
+ if (url && typeof storeParams === 'object' && storeParams !== null) {
49
+ if (storeParams['mimetype']) {
50
+ delete storeParams['mimetype'];
51
+ }
52
+ if (storeParams['altText']) {
53
+ delete storeParams['altText'];
54
+ }
55
+ }
48
56
  filelink.store(storeParams);
49
57
  if (session.policy && session.signature) {
50
58
  filelink.security({
@@ -86,4 +94,4 @@ var storeURL = function (_a) {
86
94
  };
87
95
  exports.storeURL = storeURL;
88
96
 
89
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpL3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7Ozs7QUFHSCwwQ0FBc0Q7QUFDdEQsMkRBQXlEO0FBQ3pELHlDQUFpRTtBQUNqRSxzQ0FBc0Q7QUFjdEQ7Ozs7Ozs7Ozs7R0FVRztBQUNJLElBQU0sUUFBUSxHQUFHLFVBQUMsRUFTUjtRQVJmLE9BQU8sYUFBQSxFQUNQLEdBQUcsU0FBQSxFQUNILFdBQVcsaUJBQUEsRUFDWCxLQUFLLFdBQUEsRUFDTCxRQUFRLGNBQUEsRUFDUixVQUFVLGdCQUFBLEVBQ1YsT0FBTyxhQUFBLEVBQ1AsV0FBVyxpQkFBQTtJQUVYLElBQUksQ0FBQyxHQUFHLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFO1FBQ25DLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLGdDQUFjLENBQUMsOEJBQThCLENBQUMsQ0FBQyxDQUFDO0tBQzNFO0lBRUQsSUFBTSxXQUFXLEdBQUcsSUFBQSxxQkFBWSxFQUFDLDBCQUFpQixDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFakUsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUM3QixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxnQ0FBYyxDQUFDLHNCQUFzQixFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0tBQ3ZGO0lBRUQsT0FBTyxDQUFDLE1BQU0sR0FBRyxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQy9ELE9BQU8sQ0FBQyxTQUFTLEdBQUcsUUFBUSxJQUFJLFFBQVEsQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUV4RSxJQUFNLFFBQVEsR0FBRyxJQUFJLG1CQUFRLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuRCxRQUFRLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRTVCLElBQUksT0FBTyxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFO1FBQ3ZDLFFBQVEsQ0FBQyxRQUFRLENBQUM7WUFDaEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1lBQ3RCLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztTQUM3QixDQUFDLENBQUM7S0FDSjtJQUVELElBQUksT0FBTyxHQUFRLEVBQUUsQ0FBQztJQUV0QixJQUFJLEtBQUssRUFBRTtRQUNULElBQU0sV0FBVyxHQUFHLElBQUksdUJBQWEsRUFBRSxDQUFDO1FBQ3hDLEtBQUssQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDcEQsT0FBTyxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7S0FDbkM7SUFFRCxJQUFJLE9BQU8sR0FBUSxDQUFFLEdBQUcsQ0FBRSxDQUFDO0lBRTNCLElBQUksT0FBTyxFQUFFO1FBQ1gsT0FBTyxHQUFHLENBQUM7Z0JBQ1QsTUFBTSxFQUFFLEdBQUc7Z0JBQ1gsT0FBTyxTQUFBO2FBQ1IsQ0FBQyxDQUFDO0tBQ0o7SUFFRCxJQUFJLFdBQVcsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUN6QyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0tBQ3ZEO0lBRUQsT0FBTyxtQkFBUyxDQUFDLElBQUksQ0FBQyxVQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxhQUFVLEVBQUU7UUFDMUQsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1FBQ3RCLE9BQU8sU0FBQTtRQUNQLEtBQUssRUFBRSxRQUFRLENBQUMsUUFBUSxFQUFFO1FBQzFCLFdBQVcsRUFBRSxVQUFVO0tBQ3hCLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUMsR0FBRztRQUNuQixJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDL0IsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDeEIsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7Z0JBQzNDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7YUFDN0I7WUFFRCw2Q0FBWSxHQUFHLENBQUMsSUFBSSxLQUFFLFFBQVEsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksSUFBRztTQUNqRDtRQUVELE1BQU0sSUFBSSxnQ0FBYyxDQUFDLGlDQUEwQixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBRSxDQUFDLENBQUM7SUFDakYsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUF2RVcsUUFBQSxRQUFRLFlBdUVuQiIsImZpbGUiOiJsaWIvYXBpL3N0b3JlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOCBieSBGaWxlc3RhY2suXG4gKiBTb21lIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgU2VjdXJpdHksIFNlc3Npb24gfSBmcm9tICcuLi9jbGllbnQnO1xuaW1wb3J0IHsgRmlsZWxpbmssIFN0b3JlUGFyYW1zIH0gZnJvbSAnLi8uLi9maWxlbGluayc7XG5pbXBvcnQgeyBGaWxlc3RhY2tFcnJvciB9IGZyb20gJy4vLi4vLi4vZmlsZXN0YWNrX2Vycm9yJztcbmltcG9ydCB7IGdldFZhbGlkYXRvciwgU3RvcmVQYXJhbXNTY2hlbWEgfSBmcm9tICcuLy4uLy4uL3NjaGVtYSc7XG5pbXBvcnQgeyBGc1JlcXVlc3QsIEZzQ2FuY2VsVG9rZW4gfSBmcm9tICcuLi9yZXF1ZXN0JztcbmltcG9ydCB7IFVwbG9hZFRhZ3MgfSBmcm9tICcuL3VwbG9hZC9maWxlJztcblxuZXhwb3J0IHR5cGUgU3RvcmVVcmxQYXJhbXMgPSB7XG4gIHNlc3Npb246IFNlc3Npb247XG4gIHVybD86IHN0cmluZztcbiAgc3RvcmVQYXJhbXM/OiBTdG9yZVBhcmFtcztcbiAgdG9rZW4/OiBhbnk7XG4gIHNlY3VyaXR5PzogU2VjdXJpdHk7XG4gIHVwbG9hZFRhZ3M/OiBVcGxvYWRUYWdzO1xuICBoZWFkZXJzPzoge1trZXk6IHN0cmluZ106IHN0cmluZ30sXG4gIHdvcmtmbG93SWRzPzogc3RyaW5nW11cbn07XG5cbi8qKlxuICogU3RvcmUgZ2l2ZW4gdXJsIHdpdGggb3B0aW9ucyBhbmRcbiAqXG4gKiBAcGFyYW0gc2Vzc2lvblxuICogQHBhcmFtIHVybFxuICogQHBhcmFtIHN0b3JlT3B0c1xuICogQHBhcmFtIHRva2VuXG4gKiBAcGFyYW0gc2VjdXJpdHlcbiAqIEBwYXJhbSB1cGxvYWRUYWdzXG4gKiBAcGFyYW0gd29ya2Zsb3dJZHNcbiAqL1xuZXhwb3J0IGNvbnN0IHN0b3JlVVJMID0gKHtcbiAgc2Vzc2lvbixcbiAgdXJsLFxuICBzdG9yZVBhcmFtcyxcbiAgdG9rZW4sXG4gIHNlY3VyaXR5LFxuICB1cGxvYWRUYWdzLFxuICBoZWFkZXJzLFxuICB3b3JrZmxvd0lkcyxcbn06IFN0b3JlVXJsUGFyYW1zKTogUHJvbWlzZTxhbnk+ID0+IHtcbiAgaWYgKCF1cmwgfHwgdHlwZW9mIHVybCAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEZpbGVzdGFja0Vycm9yKCd1cmwgaXMgcmVxdWlyZWQgZm9yIHN0b3JlVVJMJykpO1xuICB9XG5cbiAgY29uc3QgdmFsaWRhdGVSZXMgPSBnZXRWYWxpZGF0b3IoU3RvcmVQYXJhbXNTY2hlbWEpKHN0b3JlUGFyYW1zKTtcblxuICBpZiAodmFsaWRhdGVSZXMuZXJyb3JzLmxlbmd0aCkge1xuICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRmlsZXN0YWNrRXJyb3IoYEludmFsaWQgc3RvcmUgcGFyYW1zYCwgdmFsaWRhdGVSZXMuZXJyb3JzKSk7XG4gIH1cblxuICBzZXNzaW9uLnBvbGljeSA9IHNlY3VyaXR5ICYmIHNlY3VyaXR5LnBvbGljeSB8fCBzZXNzaW9uLnBvbGljeTtcbiAgc2Vzc2lvbi5zaWduYXR1cmUgPSBzZWN1cml0eSAmJiBzZWN1cml0eS5zaWduYXR1cmUgfHwgc2Vzc2lvbi5zaWduYXR1cmU7XG5cbiAgY29uc3QgZmlsZWxpbmsgPSBuZXcgRmlsZWxpbmsodXJsLCBzZXNzaW9uLmFwaWtleSk7XG4gIGZpbGVsaW5rLnN0b3JlKHN0b3JlUGFyYW1zKTtcblxuICBpZiAoc2Vzc2lvbi5wb2xpY3kgJiYgc2Vzc2lvbi5zaWduYXR1cmUpIHtcbiAgICBmaWxlbGluay5zZWN1cml0eSh7XG4gICAgICBwb2xpY3k6IHNlc3Npb24ucG9saWN5LFxuICAgICAgc2lnbmF0dXJlOiBzZXNzaW9uLnNpZ25hdHVyZSxcbiAgICB9KTtcbiAgfVxuXG4gIGxldCBvcHRpb25zOiBhbnkgPSB7fTtcblxuICBpZiAodG9rZW4pIHtcbiAgICBjb25zdCBjYW5jZWxUb2tlbiA9IG5ldyBGc0NhbmNlbFRva2VuKCk7XG4gICAgdG9rZW4uY2FuY2VsID0gY2FuY2VsVG9rZW4uY2FuY2VsLmJpbmQoY2FuY2VsVG9rZW4pO1xuICAgIG9wdGlvbnMuY2FuY2VsVG9rZW4gPSBjYW5jZWxUb2tlbjtcbiAgfVxuXG4gIGxldCBzb3VyY2VzOiBhbnkgPSBbIHVybCBdO1xuXG4gIGlmIChoZWFkZXJzKSB7XG4gICAgc291cmNlcyA9IFt7XG4gICAgICBzb3VyY2U6IHVybCxcbiAgICAgIGhlYWRlcnMsXG4gICAgfV07XG4gIH1cblxuICBpZiAod29ya2Zsb3dJZHMgJiYgd29ya2Zsb3dJZHMubGVuZ3RoID4gMCkge1xuICAgIGZpbGVsaW5rLmFkZFRhc2soJ3N0b3JlJywgeyB3b3JrZmxvd3M6IHdvcmtmbG93SWRzIH0pO1xuICB9XG5cbiAgcmV0dXJuIEZzUmVxdWVzdC5wb3N0KGAke3Nlc3Npb24udXJscy5wcm9jZXNzVXJsfS9wcm9jZXNzYCwge1xuICAgIGFwaWtleTogc2Vzc2lvbi5hcGlrZXksXG4gICAgc291cmNlcyxcbiAgICB0YXNrczogZmlsZWxpbmsuZ2V0VGFza3MoKSxcbiAgICB1cGxvYWRfdGFnczogdXBsb2FkVGFncyxcbiAgfSwgb3B0aW9ucykudGhlbigocmVzKSA9PiB7XG4gICAgaWYgKHJlcy5kYXRhICYmIHJlcy5kYXRhLmhhbmRsZSkge1xuICAgICAgaWYgKHJlcy5kYXRhLnVwbG9hZF90YWdzKSB7XG4gICAgICAgIHJlcy5kYXRhLnVwbG9hZFRhZ3MgPSByZXMuZGF0YS51cGxvYWRfdGFncztcbiAgICAgICAgZGVsZXRlIHJlcy5kYXRhLnVwbG9hZF90YWdzO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4geyAuLi5yZXMuZGF0YSwgbWltZXR5cGU6IHJlcy5kYXRhLnR5cGUgfTtcbiAgICB9XG5cbiAgICB0aHJvdyBuZXcgRmlsZXN0YWNrRXJyb3IoYEludmFsaWQgc3RvcmUgcmVzcG9uc2UgJHtKU09OLnN0cmluZ2lmeShyZXMuZGF0YSl9YCk7XG4gIH0pO1xufTtcbiJdfQ==
97
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpL3N0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7Ozs7QUFHSCwwQ0FBc0Q7QUFDdEQsMkRBQXlEO0FBQ3pELHlDQUFpRTtBQUNqRSxzQ0FBc0Q7QUFjdEQ7Ozs7Ozs7Ozs7R0FVRztBQUNJLElBQU0sUUFBUSxHQUFHLFVBQUMsRUFTUjtRQVJmLE9BQU8sYUFBQSxFQUNQLEdBQUcsU0FBQSxFQUNILFdBQVcsaUJBQUEsRUFDWCxLQUFLLFdBQUEsRUFDTCxRQUFRLGNBQUEsRUFDUixVQUFVLGdCQUFBLEVBQ1YsT0FBTyxhQUFBLEVBQ1AsV0FBVyxpQkFBQTtJQUVYLElBQUksQ0FBQyxHQUFHLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFO1FBQ25DLE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLGdDQUFjLENBQUMsOEJBQThCLENBQUMsQ0FBQyxDQUFDO0tBQzNFO0lBRUQsSUFBTSxXQUFXLEdBQUcsSUFBQSxxQkFBWSxFQUFDLDBCQUFpQixDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7SUFFakUsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUM3QixPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxnQ0FBYyxDQUFDLHNCQUFzQixFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0tBQ3ZGO0lBRUQsT0FBTyxDQUFDLE1BQU0sR0FBRyxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQy9ELE9BQU8sQ0FBQyxTQUFTLEdBQUcsUUFBUSxJQUFJLFFBQVEsQ0FBQyxTQUFTLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUV4RSxJQUFNLFFBQVEsR0FBRyxJQUFJLG1CQUFRLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVuRCxJQUFJLEdBQUcsSUFBSSxPQUFPLFdBQVcsS0FBSyxRQUFRLElBQUksV0FBVyxLQUFLLElBQUksRUFBQztRQUNqRSxJQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUMzQixPQUFPLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUNoQztRQUNELElBQUksV0FBVyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQzFCLE9BQU8sV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQy9CO0tBQ0Y7SUFFRCxRQUFRLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBRTVCLElBQUksT0FBTyxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsU0FBUyxFQUFFO1FBQ3ZDLFFBQVEsQ0FBQyxRQUFRLENBQUM7WUFDaEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1lBQ3RCLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBUztTQUM3QixDQUFDLENBQUM7S0FDSjtJQUVELElBQUksT0FBTyxHQUFRLEVBQUUsQ0FBQztJQUV0QixJQUFJLEtBQUssRUFBRTtRQUNULElBQU0sV0FBVyxHQUFHLElBQUksdUJBQWEsRUFBRSxDQUFDO1FBQ3hDLEtBQUssQ0FBQyxNQUFNLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDcEQsT0FBTyxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7S0FDbkM7SUFFRCxJQUFJLE9BQU8sR0FBUSxDQUFFLEdBQUcsQ0FBRSxDQUFDO0lBRTNCLElBQUksT0FBTyxFQUFFO1FBQ1gsT0FBTyxHQUFHLENBQUM7Z0JBQ1QsTUFBTSxFQUFFLEdBQUc7Z0JBQ1gsT0FBTyxTQUFBO2FBQ1IsQ0FBQyxDQUFDO0tBQ0o7SUFDRCxJQUFJLFdBQVcsSUFBSSxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtRQUN6QyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0tBQ3ZEO0lBRUQsT0FBTyxtQkFBUyxDQUFDLElBQUksQ0FBQyxVQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxhQUFVLEVBQUU7UUFDMUQsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1FBQ3RCLE9BQU8sU0FBQTtRQUNQLEtBQUssRUFBRSxRQUFRLENBQUMsUUFBUSxFQUFFO1FBQzFCLFdBQVcsRUFBRSxVQUFVO0tBQ3hCLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUMsR0FBRztRQUNuQixJQUFJLEdBQUcsQ0FBQyxJQUFJLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDL0IsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDeEIsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7Z0JBQzNDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7YUFDN0I7WUFFRCw2Q0FBWSxHQUFHLENBQUMsSUFBSSxLQUFFLFFBQVEsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksSUFBRztTQUNqRDtRQUVELE1BQU0sSUFBSSxnQ0FBYyxDQUFDLGlDQUEwQixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBRSxDQUFDLENBQUM7SUFDakYsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUM7QUFoRlcsUUFBQSxRQUFRLFlBZ0ZuQiIsImZpbGUiOiJsaWIvYXBpL3N0b3JlLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOCBieSBGaWxlc3RhY2suXG4gKiBTb21lIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgU2VjdXJpdHksIFNlc3Npb24gfSBmcm9tICcuLi9jbGllbnQnO1xuaW1wb3J0IHsgRmlsZWxpbmssIFN0b3JlUGFyYW1zIH0gZnJvbSAnLi8uLi9maWxlbGluayc7XG5pbXBvcnQgeyBGaWxlc3RhY2tFcnJvciB9IGZyb20gJy4vLi4vLi4vZmlsZXN0YWNrX2Vycm9yJztcbmltcG9ydCB7IGdldFZhbGlkYXRvciwgU3RvcmVQYXJhbXNTY2hlbWEgfSBmcm9tICcuLy4uLy4uL3NjaGVtYSc7XG5pbXBvcnQgeyBGc1JlcXVlc3QsIEZzQ2FuY2VsVG9rZW4gfSBmcm9tICcuLi9yZXF1ZXN0JztcbmltcG9ydCB7IFVwbG9hZFRhZ3MgfSBmcm9tICcuL3VwbG9hZC9maWxlJztcblxuZXhwb3J0IHR5cGUgU3RvcmVVcmxQYXJhbXMgPSB7XG4gIHNlc3Npb246IFNlc3Npb247XG4gIHVybD86IHN0cmluZztcbiAgc3RvcmVQYXJhbXM/OiBTdG9yZVBhcmFtcztcbiAgdG9rZW4/OiBhbnk7XG4gIHNlY3VyaXR5PzogU2VjdXJpdHk7XG4gIHVwbG9hZFRhZ3M/OiBVcGxvYWRUYWdzO1xuICBoZWFkZXJzPzoge1trZXk6IHN0cmluZ106IHN0cmluZ30sXG4gIHdvcmtmbG93SWRzPzogc3RyaW5nW11cbn07XG5cbi8qKlxuICogU3RvcmUgZ2l2ZW4gdXJsIHdpdGggb3B0aW9ucyBhbmRcbiAqXG4gKiBAcGFyYW0gc2Vzc2lvblxuICogQHBhcmFtIHVybFxuICogQHBhcmFtIHN0b3JlT3B0c1xuICogQHBhcmFtIHRva2VuXG4gKiBAcGFyYW0gc2VjdXJpdHlcbiAqIEBwYXJhbSB1cGxvYWRUYWdzXG4gKiBAcGFyYW0gd29ya2Zsb3dJZHNcbiAqL1xuZXhwb3J0IGNvbnN0IHN0b3JlVVJMID0gKHtcbiAgc2Vzc2lvbixcbiAgdXJsLFxuICBzdG9yZVBhcmFtcyxcbiAgdG9rZW4sXG4gIHNlY3VyaXR5LFxuICB1cGxvYWRUYWdzLFxuICBoZWFkZXJzLFxuICB3b3JrZmxvd0lkcyxcbn06IFN0b3JlVXJsUGFyYW1zKTogUHJvbWlzZTxhbnk+ID0+IHtcbiAgaWYgKCF1cmwgfHwgdHlwZW9mIHVybCAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEZpbGVzdGFja0Vycm9yKCd1cmwgaXMgcmVxdWlyZWQgZm9yIHN0b3JlVVJMJykpO1xuICB9XG5cbiAgY29uc3QgdmFsaWRhdGVSZXMgPSBnZXRWYWxpZGF0b3IoU3RvcmVQYXJhbXNTY2hlbWEpKHN0b3JlUGFyYW1zKTtcblxuICBpZiAodmFsaWRhdGVSZXMuZXJyb3JzLmxlbmd0aCkge1xuICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRmlsZXN0YWNrRXJyb3IoYEludmFsaWQgc3RvcmUgcGFyYW1zYCwgdmFsaWRhdGVSZXMuZXJyb3JzKSk7XG4gIH1cblxuICBzZXNzaW9uLnBvbGljeSA9IHNlY3VyaXR5ICYmIHNlY3VyaXR5LnBvbGljeSB8fCBzZXNzaW9uLnBvbGljeTtcbiAgc2Vzc2lvbi5zaWduYXR1cmUgPSBzZWN1cml0eSAmJiBzZWN1cml0eS5zaWduYXR1cmUgfHwgc2Vzc2lvbi5zaWduYXR1cmU7XG5cbiAgY29uc3QgZmlsZWxpbmsgPSBuZXcgRmlsZWxpbmsodXJsLCBzZXNzaW9uLmFwaWtleSk7XG5cbiAgaWYgKHVybCAmJiB0eXBlb2Ygc3RvcmVQYXJhbXMgPT09ICdvYmplY3QnICYmIHN0b3JlUGFyYW1zICE9PSBudWxsKXtcbiAgICBpZiAoc3RvcmVQYXJhbXNbJ21pbWV0eXBlJ10pIHtcbiAgICAgIGRlbGV0ZSBzdG9yZVBhcmFtc1snbWltZXR5cGUnXTtcbiAgICB9XG4gICAgaWYgKHN0b3JlUGFyYW1zWydhbHRUZXh0J10pIHtcbiAgICAgIGRlbGV0ZSBzdG9yZVBhcmFtc1snYWx0VGV4dCddO1xuICAgIH1cbiAgfVxuXG4gIGZpbGVsaW5rLnN0b3JlKHN0b3JlUGFyYW1zKTtcblxuICBpZiAoc2Vzc2lvbi5wb2xpY3kgJiYgc2Vzc2lvbi5zaWduYXR1cmUpIHtcbiAgICBmaWxlbGluay5zZWN1cml0eSh7XG4gICAgICBwb2xpY3k6IHNlc3Npb24ucG9saWN5LFxuICAgICAgc2lnbmF0dXJlOiBzZXNzaW9uLnNpZ25hdHVyZSxcbiAgICB9KTtcbiAgfVxuXG4gIGxldCBvcHRpb25zOiBhbnkgPSB7fTtcblxuICBpZiAodG9rZW4pIHtcbiAgICBjb25zdCBjYW5jZWxUb2tlbiA9IG5ldyBGc0NhbmNlbFRva2VuKCk7XG4gICAgdG9rZW4uY2FuY2VsID0gY2FuY2VsVG9rZW4uY2FuY2VsLmJpbmQoY2FuY2VsVG9rZW4pO1xuICAgIG9wdGlvbnMuY2FuY2VsVG9rZW4gPSBjYW5jZWxUb2tlbjtcbiAgfVxuXG4gIGxldCBzb3VyY2VzOiBhbnkgPSBbIHVybCBdO1xuXG4gIGlmIChoZWFkZXJzKSB7XG4gICAgc291cmNlcyA9IFt7XG4gICAgICBzb3VyY2U6IHVybCxcbiAgICAgIGhlYWRlcnMsXG4gICAgfV07XG4gIH1cbiAgaWYgKHdvcmtmbG93SWRzICYmIHdvcmtmbG93SWRzLmxlbmd0aCA+IDApIHtcbiAgICBmaWxlbGluay5hZGRUYXNrKCdzdG9yZScsIHsgd29ya2Zsb3dzOiB3b3JrZmxvd0lkcyB9KTtcbiAgfVxuXG4gIHJldHVybiBGc1JlcXVlc3QucG9zdChgJHtzZXNzaW9uLnVybHMucHJvY2Vzc1VybH0vcHJvY2Vzc2AsIHtcbiAgICBhcGlrZXk6IHNlc3Npb24uYXBpa2V5LFxuICAgIHNvdXJjZXMsXG4gICAgdGFza3M6IGZpbGVsaW5rLmdldFRhc2tzKCksXG4gICAgdXBsb2FkX3RhZ3M6IHVwbG9hZFRhZ3MsXG4gIH0sIG9wdGlvbnMpLnRoZW4oKHJlcykgPT4ge1xuICAgIGlmIChyZXMuZGF0YSAmJiByZXMuZGF0YS5oYW5kbGUpIHtcbiAgICAgIGlmIChyZXMuZGF0YS51cGxvYWRfdGFncykge1xuICAgICAgICByZXMuZGF0YS51cGxvYWRUYWdzID0gcmVzLmRhdGEudXBsb2FkX3RhZ3M7XG4gICAgICAgIGRlbGV0ZSByZXMuZGF0YS51cGxvYWRfdGFncztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHsgLi4ucmVzLmRhdGEsIG1pbWV0eXBlOiByZXMuZGF0YS50eXBlIH07XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEZpbGVzdGFja0Vycm9yKGBJbnZhbGlkIHN0b3JlIHJlc3BvbnNlICR7SlNPTi5zdHJpbmdpZnkocmVzLmRhdGEpfWApO1xuICB9KTtcbn07XG4iXX0=
@@ -14,5 +14,5 @@ type InputFile = RawFile | NamedInputFile;
14
14
  * @param {*} fileOrString
15
15
  * @returns {Promise<File>}
16
16
  */
17
- export declare const getFile: (input: InputFile, sanitizeOptions?: SanitizeOptions) => Promise<FsFile>;
17
+ export declare const getFile: (input: InputFile, sanitizeOptions?: SanitizeOptions, mimetype?: string) => Promise<FsFile>;
18
18
  export {};
@@ -136,7 +136,7 @@ var readPart = function (start, end, file) {
136
136
  * @param {*} fileOrString
137
137
  * @returns {Promise<File>}
138
138
  */
139
- var getFile = function (input, sanitizeOptions) {
139
+ var getFile = function (input, sanitizeOptions, mimetype) {
140
140
  var filename;
141
141
  var file;
142
142
  if (isFileNamed(input)) {
@@ -173,7 +173,7 @@ var getFile = function (input, sanitizeOptions) {
173
173
  case 3: return [2 /*return*/, new file_1.File({
174
174
  name: filename,
175
175
  size: file.size,
176
- type: mime,
176
+ type: mimetype || mime,
177
177
  slice: res.slice,
178
178
  release: res.release,
179
179
  }, sanitizeOptions)];
@@ -183,4 +183,4 @@ var getFile = function (input, sanitizeOptions) {
183
183
  };
184
184
  exports.getFile = getFile;
185
185
 
186
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpL3VwbG9hZC9maWxlX3Rvb2xzLmJyb3dzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILCtCQUF3QztBQUN4Qyx1Q0FBNkQ7QUFDN0QsOERBQTREO0FBVTVELElBQU0sWUFBWSxHQUFHLDhDQUE4QyxDQUFDO0FBRXBFOzs7R0FHRztBQUNILElBQU0sVUFBVSxHQUFHLFVBQUMsS0FBZ0IsSUFBb0IsT0FBQSxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssZUFBZSxFQUFwQyxDQUFvQyxDQUFDO0FBRTdGOzs7OztHQUtHO0FBQ0gsSUFBTSxhQUFhLEdBQUcsVUFBQyxLQUFnQixJQUFvQixPQUFBLEtBQUssWUFBWSxJQUFJLEVBQXJCLENBQXFCLENBQUM7QUFFakY7Ozs7R0FJRztBQUNILElBQU0sVUFBVSxHQUFHLFVBQUMsS0FBZ0I7SUFDbEMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDN0IsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtRQUNoQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztLQUN6QztJQUVELElBQUk7UUFDRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUM7S0FDcEM7SUFBQyxPQUFPLEdBQUcsRUFBRTtRQUNaLDBCQUEwQjtRQUMxQixPQUFPLEtBQUssQ0FBQztLQUNkO0FBQ0gsQ0FBQyxDQUFDO0FBRUY7Ozs7R0FJRztBQUNILElBQU0sV0FBVyxHQUFHLFVBQUMsS0FBZ0IsSUFBOEIsT0FBQSxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBdkMsQ0FBdUMsQ0FB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LElBQUksV0FBTSxDQUNmO3dCQUNFLElBQUksRUFBRSxRQUFRO3dCQUNkLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTt3QkFDZixJQUFJLEVBQUUsSUFBSTt3QkFDVixLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUs7d0JBQ2hCLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTztxQkFDckIsRUFDRCxlQUFlLENBQ2hCLEVBQUM7OztTQUNILENBQ0YsQ0FBQztBQUNKLENBQUMsQ0FBQztBQXhDVyxRQUFBLE9BQU8sV0F3Q2xCIiwiZmlsZSI6ImxpYi9hcGkvdXBsb2FkL2ZpbGVfdG9vbHMuYnJvd3Nlci5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTkgYnkgRmlsZXN0YWNrLlxuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBGaWxlIGFzIEZzRmlsZSB9IGZyb20gJy4vZmlsZSc7XG5pbXBvcnQgeyBTYW5pdGl6ZU9wdGlvbnMsIGdldE1pbWV0eXBlIH0gZnJvbSAnLi8uLi8uLi91dGlscyc7XG5pbXBvcnQgeyBGaWxlc3RhY2tFcnJvciB9IGZyb20gJy4vLi4vLi4vLi4vZmlsZXN0YWNrX2Vycm9yJztcblxuZXhwb3J0IHR5cGUgUmF3RmlsZSA9IEJsb2IgfCBCdWZmZXIgfCBGaWxlIHwgc3RyaW5nO1xuZXhwb3J0IHR5cGUgTmFtZWRJbnB1dEZpbGUgPSB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGZpbGU6IFJhd0ZpbGU7XG59O1xuXG50eXBlIElucHV0RmlsZSA9IFJhd0ZpbGUgfCBOYW1lZElucHV0RmlsZTtcblxuY29uc3QgYmFzZTY0UmVnZXhwID0gL2RhdGE6KFthLXpBLVpdKlxcL1thLXpBLVpdKik7YmFzZTY0LChbXlxcXCJdKikvaTtcblxuLyoqXG4gKiBDaGVjayBpZiBmaWxlIGlzIGJsb2JcbiAqIEBwYXJhbSBpbnB1dFxuICovXG5jb25zdCBpc0ZpbGVCbG9iID0gKGlucHV0OiBJbnB1dEZpbGUpOiBpbnB1dCBpcyBCbG9iID0+IGlucHV0LnRvU3RyaW5nKCkgPT09ICdbb2JqZWN0IEJsb2JdJztcblxuLyoqXG4gKiBDaGVjayBpZiBpbnB1dCBpcyBpbnN0YW5jZSBvZiBicm93c2VyIGZpbGVcbiAqXG4gKiBAYnJvd3NlclxuICogQHBhcmFtIGlucHV0XG4gKi9cbmNvbnN0IGlzRmlsZUJyb3dzZXIgPSAoaW5wdXQ6IElucHV0RmlsZSk6IGlucHV0IGlzIEZpbGUgPT4gaW5wdXQgaW5zdGFuY2VvZiBGaWxlO1xuXG4vKipcbiAqIENoZWNrIGlmIGZpbGUgaXMgYmFzZTY0IHN0cmluZ1xuICpcbiAqIEBwYXJhbSBpbnB1dFxuICovXG5jb25zdCBpc0ZpbGVCYXNlID0gKGlucHV0OiBJbnB1dEZpbGUpOiBpbnB1dCBpcyBzdHJpbmcgPT4ge1xuICBpZiAodHlwZW9mIGlucHV0ICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChpbnB1dC5pbmRleE9mKCdiYXNlNjQnKSA+IC0xKSB7XG4gICAgaW5wdXQgPSBpbnB1dC5tYXRjaChiYXNlNjRSZWdleHApLnBvcCgpO1xuICB9XG5cbiAgdHJ5IHtcbiAgICByZXR1cm4gYnRvYShhdG9iKGlucHV0KSkgPT09IGlucHV0O1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufTtcblxuLyoqXG4gKiBDaGVjayBpZiBmaWxlIGlzIGluc3RhbmNlIG9mIG5hbWVkIGludGVyZmFjZVxuICpcbiAqIEBwYXJhbSBpbnB1dFxuICovXG5jb25zdCBpc0ZpbGVOYW1lZCA9IChpbnB1dDogSW5wdXRGaWxlKTogaW5wdXQgaXMgTmFtZWRJbnB1dEZpbGUgPT4gaW5wdXQgJiYgaW5wdXRbJ2ZpbGUnXSAmJiBpbnB1dFsnbmFtZSddO1xuXG4vKipcbiAqIENvbnZlcnQgZW5jb2RlZCBiYXNlNjQgc3RyaW5nIG9yIGRhdGFVUkkgdG8gYmxvYlxuICpcbiAqIEBicm93c2VyXG4gKiBAcGFyYW0gYjY0ZGF0YSAgICAgU3RyaW5nIHRvIGRlY29kZVxuICogQHBhcmFtIHNsaWNlU2l6ZSAgIEJ5dGUgcXVhbnRpdHkgdG8gc3BsaXQgZGF0YSBpbnRvXG4gKiBAcHJpdmF0ZVxuICogQHJldHVybnMge0Jsb2J9XG4gKi9cbmNvbnN0IGI2NHRvQmxvYiA9IChiNjREYXRhOiBzdHJpbmcsIHNsaWNlU2l6ZSA9IDUxMik6IEJsb2IgPT4ge1xuICBsZXQgY29udGVudFR5cGUgPSAnJztcblxuICBpZiAoYjY0RGF0YS5pbmRleE9mKCdiYXNlNjQnKSA+IC0xKSB7XG4gICAgY29uc3QgbWF0Y2hlcyA9IGI2NERhdGEubWF0Y2goYmFzZTY0UmVnZXhwKTtcbiAgICBiNjREYXRhID0gbWF0Y2hlcy5wb3AoKTtcbiAgICBjb250ZW50VHlwZSA9IG1hdGNoZXNbMV07XG4gIH1cblxuICBjb25zdCBieXRlQ2hhcmFjdGVycyA9IGF0b2IoYjY0RGF0YSk7XG4gIGNvbnN0IGJ5dGVBcnJheXM6IGFueVtdID0gW107XG5cbiAgZm9yIChsZXQgb2Zmc2V0ID0gMDsgb2Zmc2V0IDwgYnl0ZUNoYXJhY3RlcnMubGVuZ3RoOyBvZmZzZXQgKz0gc2xpY2VTaXplKSB7XG4gICAgY29uc3Qgc2xpY2UgPSBieXRlQ2hhcmFjdGVycy5zbGljZShvZmZzZXQsIG9mZnNldCArIHNsaWNlU2l6ZSk7XG4gICAgY29uc3QgYnl0ZU51bWJlcnMgPSBuZXcgQXJyYXkoc2xpY2UubGVuZ3RoKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNsaWNlLmxlbmd0aDsgaSArPSAxKSB7XG4gICAgICBieXRlTnVtYmVyc1tpXSA9IHNsaWNlLmNoYXJDb2RlQXQoaSk7XG4gICAgfVxuXG4gICAgYnl0ZUFycmF5cy5wdXNoKG5ldyBVaW50OEFycmF5KGJ5dGVOdW1iZXJzKSk7XG4gIH1cblxuICByZXR1cm4gbmV3IEJsb2IoYnl0ZUFycmF5cywgeyB0eXBlOiBjb250ZW50VHlwZSB9KTtcbn07XG5cbi8qKlxuICogUmVhZCBmaWxlIGFzIGFycmF5IGJ1ZmZlclxuICpcbiAqIEBicm93c2VyXG4gKiBAcHJpdmF0ZVxuICogQHBhcmFtIGJsb2JcbiAqIEByZXR1cm5zIHtCb29sZWFufVxuICovXG5jb25zdCByZWFkRmlsZSA9IGFzeW5jIChmaWxlKTogUHJvbWlzZTxhbnk+ID0+IHtcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgaWYgKCFGaWxlIHx8ICFGaWxlUmVhZGVyIHx8ICFCbG9iKSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBGaWxlc3RhY2tFcnJvcignVGhlIEZpbGUgQVBJcyBhcmUgbm90IGZ1bGx5IHN1cHBvcnRlZCBieSB5b3VyIGJyb3dzZXInKSk7XG4gIH1cblxuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICBzbGljZTogZnVuY3Rpb24oc3RhcnQ6IG51bWJlciwgZW5kOiBudW1iZXIpIHtcbiAgICAgIHJldHVybiByZWFkUGFydChzdGFydCwgZW5kLCBmaWxlKTtcbiAgICB9LFxuICAgIHJlbGVhc2U6ICgpID0+IHtcbiAgICAgIGZpbGUgPSBudWxsO1xuICAgIH0sXG4gIH0pO1xufTtcblxuLyoqXG4gKiBSZWFkIGZpbGUgcGFyIGluc3RlYWQgb2Ygd2hvbGUgZmlsZSB0byBhdm9pZCBicm93c2VyIGNyYXNoaW5nXG4gKlxuICogQHBhcmFtIHN0YXJ0IC0gc3RhciBieXRlXG4gKiBAcGFyYW0gZW5kICAtIGVuZCBieXRlXG4gKiBAcGFyYW0gZmlsZSAtIGZpbGUgdG8gc2xpY2VcbiAqL1xuY29uc3QgcmVhZFBhcnQgPSAoc3RhcnQ6IG51bWJlciwgZW5kOiBudW1iZXIsIGZpbGUpOiBQcm9taXNlPGFueT4gPT4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IHIgPSBuZXcgRmlsZVJlYWRlcigpO1xuXG4gICAgY29uc3QgYmxvYiA9IGZpbGUuc2xpY2Uoc3RhcnQsIGVuZCk7XG4gICAgci5vbmxvYWQgPSAoKSA9PiByZXNvbHZlKHIucmVzdWx0KTtcbiAgICByLm9uZXJyb3IgPSByZWplY3Q7XG4gICAgci5yZWFkQXNBcnJheUJ1ZmZlcihibG9iKTtcbiAgfSk7XG59O1xuXG4vKipcbiAqIEFjY2VwdHMgYjY0c3RyaW5nIG9yIGJsb2IgZmlsZVxuICpcbiAqIEBicm93c2VyXG4gKiBAcGFyYW0geyp9IGZpbGVPclN0cmluZ1xuICogQHJldHVybnMge1Byb21pc2U8RmlsZT59XG4gKi9cbmV4cG9ydCBjb25zdCBnZXRGaWxlID0gKGlucHV0OiBJbnB1dEZpbGUsIHNhbml0aXplT3B0aW9ucz86IFNhbml0aXplT3B0aW9ucyk6IFByb21pc2U8RnNGaWxlPiA9PiB7XG4gIGxldCBmaWxlbmFtZTtcbiAgbGV0IGZpbGU6IEJsb2I7XG5cbiAgaWYgKGlzRmlsZU5hbWVkKGlucHV0KSkge1xuICAgIGZpbGVuYW1lID0gaW5wdXQubmFtZTtcbiAgICBpbnB1dCA9IGlucHV0LmZpbGU7XG4gIH1cblxuICBpZiAoaXNGaWxlQnJvd3NlcihpbnB1dCkpIHtcbiAgICBmaWxlID0gaW5wdXQ7XG4gICAgZmlsZW5hbWUgPSBpbnB1dC5uYW1lO1xuICB9IGVsc2UgaWYgKGlzRmlsZUJhc2UoaW5wdXQpKSB7XG4gICAgZmlsZSA9IGI2NHRvQmxvYihpbnB1dCk7XG4gIH0gZWxzZSBpZiAoaXNGaWxlQmxvYihpbnB1dCkpIHtcbiAgICBmaWxlID0gaW5wdXQ7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIFByb21pc2UucmVqZWN0KG5ldyBGaWxlc3RhY2tFcnJvcignVW5zdXBwb3J0ZWQgaW5wdXQgZmlsZSB0eXBlJykpO1xuICB9XG5cbiAgcmV0dXJuIHJlYWRGaWxlKGZpbGUpLnRoZW4oXG4gICAgYXN5bmMgcmVzID0+IHtcbiAgICAgIGxldCBtaW1lID0gZmlsZS50eXBlO1xuICAgICAgbGV0IG1pbmltdW1CeXRlcyA9IDQxMDA7XG4gICAgICBpZiAoIWZpbGUudHlwZSAgfHwgZmlsZS50eXBlLmxlbmd0aCA9PT0gMCB8fCBmaWxlLnR5cGUgPT09ICd0ZXh0L3BsYWluJykge1xuICAgICAgICBtaW1lID0gYXdhaXQgZ2V0TWltZXR5cGUoYXdhaXQgcmVzLnNsaWNlKDAsIG1pbmltdW1CeXRlcyksIGZpbGVuYW1lKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG5ldyBGc0ZpbGUoXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBmaWxlbmFtZSxcbiAgICAgICAgICBzaXplOiBmaWxlLnNpemUsXG4gICAgICAgICAgdHlwZTogbWltZSxcbiAgICAgICAgICBzbGljZTogcmVzLnNsaWNlLFxuICAgICAgICAgIHJlbGVhc2U6IHJlcy5yZWxlYXNlLFxuICAgICAgICB9LFxuICAgICAgICBzYW5pdGl6ZU9wdGlvbnNcbiAgICAgICk7XG4gICAgfVxuICApO1xufTtcbiJdfQ==
186
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpL3VwbG9hZC9maWxlX3Rvb2xzLmJyb3dzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILCtCQUF3QztBQUN4Qyx1Q0FBNkQ7QUFDN0QsOERBQTREO0FBVTVELElBQU0sWUFBWSxHQUFHLDhDQUE4QyxDQUFDO0FBRXBFOzs7R0FHRztBQUNILElBQU0sVUFBVSxHQUFHLFVBQUMsS0FBZ0IsSUFBb0IsT0FBQSxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssZUFBZSxFQUFwQyxDQUFvQyxDQUFDO0FBRTdGOzs7OztHQUtHO0FBQ0gsSUFBTSxhQUFhLEdBQUcsVUFBQyxLQUFnQixJQUFvQixPQUFBLEtBQUssWUFBWSxJQUFJLEVBQXJCLENBQXFCLENBQUM7QUFFakY7Ozs7R0FJRztBQUNILElBQU0sVUFBVSxHQUFHLFVBQUMsS0FBZ0I7SUFDbEMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDN0IsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtRQUNoQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztLQUN6QztJQUVELElBQUk7UUFDRixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUM7S0FDcEM7SUFBQyxPQUFPLEdBQUcsRUFBRTtRQUNaLDBCQUEwQjtRQUMxQixPQUFPLEtBQUssQ0FBQztLQUNkO0FBQ0gsQ0FBQyxDQUFDO0FBRUY7Ozs7R0FJRztBQUNILElBQU0sV0FBVyxHQUFHLFVBQUMsS0FBZ0IsSUFBOEIsT0FBQSxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBdkMsQ0FBdUMsQ0FBQztBQUUzRzs7Ozs7Ozs7R0FRRztBQUNILElBQU0sU0FBUyxHQUFHLFVBQUMsT0FBZSxFQUFFLFNBQWU7SUFBZiwwQkFBQSxFQUFBLGVBQWU7SUFDakQsSUFBSSxXQUFXLEdBQUcsRUFBRSxDQUFDO0lBRXJCLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtRQUNsQyxJQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzVDLE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDeEIsV0FBVyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztLQUMxQjtJQUVELElBQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQyxJQUFNLFVBQVUsR0FBVSxFQUFFLENBQUM7SUFFN0IsS0FBSyxJQUFJLE1BQU0sR0FBRyxDQUFDLEVBQUUsTUFBTSxHQUFHLGNBQWMsQ0FBQyxNQUFNLEVBQUUsTUFBTSxJQUFJLFNBQVMsRUFBRTtRQUN4RSxJQUFNLEtBQUssR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsU0FBUyxDQUFDLENBQUM7UUFDL0QsSUFBTSxXQUFXLEdBQUcsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDeEMsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdEM7UUFFRCxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7S0FDOUM7SUFFRCxPQUFPLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0FBQ3JELENBQUMsQ0FBQztBQUVGOzs7Ozs7O0dBT0c7QUFDSCxJQUFNLFFBQVEsR0FBRyxVQUFPLElBQUk7O1FBQzFCLDBCQUEwQjtRQUMxQixJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2pDLHNCQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxnQ0FBYyxDQUFDLHVEQUF1RCxDQUFDLENBQUMsRUFBQztTQUNwRztRQUVELHNCQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUM7Z0JBQ3JCLEtBQUssRUFBRSxVQUFTLEtBQWEsRUFBRSxHQUFXO29CQUN4QyxPQUFPLFFBQVEsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUNwQyxDQUFDO2dCQUNELE9BQU8sRUFBRTtvQkFDUCxJQUFJLEdBQUcsSUFBSSxDQUFDO2dCQUNkLENBQUM7YUFDRixDQUFDLEVBQUM7O0tBQ0osQ0FBQztBQUVGOzs7Ozs7R0FNRztBQUNILElBQU0sUUFBUSxHQUFHLFVBQUMsS0FBYSxFQUFFLEdBQVcsRUFBRSxJQUFJO0lBQ2hELE9BQU8sSUFBSSxPQUFPLENBQUMsVUFBQyxPQUFPLEVBQUUsTUFBTTtRQUNqQyxJQUFNLENBQUMsR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBRTNCLElBQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxNQUFNLEdBQUcsY0FBTSxPQUFBLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQWpCLENBQWlCLENBQUM7UUFDbkMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDbkIsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVCLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDO0FBRUY7Ozs7OztHQU1HO0FBQ0ksSUFBTSxPQUFPLEdBQUcsVUFBQyxLQUFnQixFQUFFLGVBQWlDLEVBQUUsUUFBaUI7SUFDNUYsSUFBSSxRQUFRLENBQUM7SUFDYixJQUFJLElBQVUsQ0FBQztJQUVmLElBQUksV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ3RCLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ3RCLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO0tBQ3BCO0lBRUQsSUFBSSxhQUFhLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDeEIsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNiLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO0tBQ3ZCO1NBQU0sSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDNUIsSUFBSSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUN6QjtTQUFNLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQzVCLElBQUksR0FBRyxLQUFLLENBQUM7S0FDZDtTQUFNO1FBQ0wsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksZ0NBQWMsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDLENBQUM7S0FDMUU7SUFFRCxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQ3hCLFVBQU0sR0FBRzs7Ozs7b0JBQ0gsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7b0JBQ2pCLFlBQVksR0FBRyxJQUFJLENBQUM7eUJBQ3BCLENBQUEsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQSxFQUFuRSx3QkFBbUU7b0JBQ3hELEtBQUEsbUJBQVcsQ0FBQTtvQkFBQyxxQkFBTSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxZQUFZLENBQUMsRUFBQTt3QkFBbEQscUJBQU0sa0JBQVksU0FBZ0MsRUFBRSxRQUFRLEVBQUMsRUFBQTs7b0JBQXBFLElBQUksR0FBRyxTQUE2RCxDQUFDOzt3QkFHdkUsc0JBQU8sSUFBSSxXQUFNLENBQ2Y7d0JBQ0UsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO3dCQUNmLElBQUksRUFBRSxRQUFRLElBQUksSUFBSTt3QkFDdEIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLO3dCQUNoQixPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU87cUJBQ3JCLEVBQ0QsZUFBZSxDQUNoQixFQUFDOzs7U0FDSCxDQUNGLENBQUM7QUFDSixDQUFDLENBQUM7QUF4Q1csUUFBQSxPQUFPLFdBd0NsQiIsImZpbGUiOiJsaWIvYXBpL3VwbG9hZC9maWxlX3Rvb2xzLmJyb3dzZXIuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE5IGJ5IEZpbGVzdGFjay5cbiAqIFNvbWUgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgRmlsZSBhcyBGc0ZpbGUgfSBmcm9tICcuL2ZpbGUnO1xuaW1wb3J0IHsgU2FuaXRpemVPcHRpb25zLCBnZXRNaW1ldHlwZSB9IGZyb20gJy4vLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHsgRmlsZXN0YWNrRXJyb3IgfSBmcm9tICcuLy4uLy4uLy4uL2ZpbGVzdGFja19lcnJvcic7XG5cbmV4cG9ydCB0eXBlIFJhd0ZpbGUgPSBCbG9iIHwgQnVmZmVyIHwgRmlsZSB8IHN0cmluZztcbmV4cG9ydCB0eXBlIE5hbWVkSW5wdXRGaWxlID0ge1xuICBuYW1lPzogc3RyaW5nO1xuICBmaWxlOiBSYXdGaWxlO1xufTtcblxudHlwZSBJbnB1dEZpbGUgPSBSYXdGaWxlIHwgTmFtZWRJbnB1dEZpbGU7XG5cbmNvbnN0IGJhc2U2NFJlZ2V4cCA9IC9kYXRhOihbYS16QS1aXSpcXC9bYS16QS1aXSopO2Jhc2U2NCwoW15cXFwiXSopL2k7XG5cbi8qKlxuICogQ2hlY2sgaWYgZmlsZSBpcyBibG9iXG4gKiBAcGFyYW0gaW5wdXRcbiAqL1xuY29uc3QgaXNGaWxlQmxvYiA9IChpbnB1dDogSW5wdXRGaWxlKTogaW5wdXQgaXMgQmxvYiA9PiBpbnB1dC50b1N0cmluZygpID09PSAnW29iamVjdCBCbG9iXSc7XG5cbi8qKlxuICogQ2hlY2sgaWYgaW5wdXQgaXMgaW5zdGFuY2Ugb2YgYnJvd3NlciBmaWxlXG4gKlxuICogQGJyb3dzZXJcbiAqIEBwYXJhbSBpbnB1dFxuICovXG5jb25zdCBpc0ZpbGVCcm93c2VyID0gKGlucHV0OiBJbnB1dEZpbGUpOiBpbnB1dCBpcyBGaWxlID0+IGlucHV0IGluc3RhbmNlb2YgRmlsZTtcblxuLyoqXG4gKiBDaGVjayBpZiBmaWxlIGlzIGJhc2U2NCBzdHJpbmdcbiAqXG4gKiBAcGFyYW0gaW5wdXRcbiAqL1xuY29uc3QgaXNGaWxlQmFzZSA9IChpbnB1dDogSW5wdXRGaWxlKTogaW5wdXQgaXMgc3RyaW5nID0+IHtcbiAgaWYgKHR5cGVvZiBpbnB1dCAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBpZiAoaW5wdXQuaW5kZXhPZignYmFzZTY0JykgPiAtMSkge1xuICAgIGlucHV0ID0gaW5wdXQubWF0Y2goYmFzZTY0UmVnZXhwKS5wb3AoKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgcmV0dXJuIGJ0b2EoYXRvYihpbnB1dCkpID09PSBpbnB1dDtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn07XG5cbi8qKlxuICogQ2hlY2sgaWYgZmlsZSBpcyBpbnN0YW5jZSBvZiBuYW1lZCBpbnRlcmZhY2VcbiAqXG4gKiBAcGFyYW0gaW5wdXRcbiAqL1xuY29uc3QgaXNGaWxlTmFtZWQgPSAoaW5wdXQ6IElucHV0RmlsZSk6IGlucHV0IGlzIE5hbWVkSW5wdXRGaWxlID0+IGlucHV0ICYmIGlucHV0WydmaWxlJ10gJiYgaW5wdXRbJ25hbWUnXTtcblxuLyoqXG4gKiBDb252ZXJ0IGVuY29kZWQgYmFzZTY0IHN0cmluZyBvciBkYXRhVVJJIHRvIGJsb2JcbiAqXG4gKiBAYnJvd3NlclxuICogQHBhcmFtIGI2NGRhdGEgICAgIFN0cmluZyB0byBkZWNvZGVcbiAqIEBwYXJhbSBzbGljZVNpemUgICBCeXRlIHF1YW50aXR5IHRvIHNwbGl0IGRhdGEgaW50b1xuICogQHByaXZhdGVcbiAqIEByZXR1cm5zIHtCbG9ifVxuICovXG5jb25zdCBiNjR0b0Jsb2IgPSAoYjY0RGF0YTogc3RyaW5nLCBzbGljZVNpemUgPSA1MTIpOiBCbG9iID0+IHtcbiAgbGV0IGNvbnRlbnRUeXBlID0gJyc7XG5cbiAgaWYgKGI2NERhdGEuaW5kZXhPZignYmFzZTY0JykgPiAtMSkge1xuICAgIGNvbnN0IG1hdGNoZXMgPSBiNjREYXRhLm1hdGNoKGJhc2U2NFJlZ2V4cCk7XG4gICAgYjY0RGF0YSA9IG1hdGNoZXMucG9wKCk7XG4gICAgY29udGVudFR5cGUgPSBtYXRjaGVzWzFdO1xuICB9XG5cbiAgY29uc3QgYnl0ZUNoYXJhY3RlcnMgPSBhdG9iKGI2NERhdGEpO1xuICBjb25zdCBieXRlQXJyYXlzOiBhbnlbXSA9IFtdO1xuXG4gIGZvciAobGV0IG9mZnNldCA9IDA7IG9mZnNldCA8IGJ5dGVDaGFyYWN0ZXJzLmxlbmd0aDsgb2Zmc2V0ICs9IHNsaWNlU2l6ZSkge1xuICAgIGNvbnN0IHNsaWNlID0gYnl0ZUNoYXJhY3RlcnMuc2xpY2Uob2Zmc2V0LCBvZmZzZXQgKyBzbGljZVNpemUpO1xuICAgIGNvbnN0IGJ5dGVOdW1iZXJzID0gbmV3IEFycmF5KHNsaWNlLmxlbmd0aCk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzbGljZS5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgYnl0ZU51bWJlcnNbaV0gPSBzbGljZS5jaGFyQ29kZUF0KGkpO1xuICAgIH1cblxuICAgIGJ5dGVBcnJheXMucHVzaChuZXcgVWludDhBcnJheShieXRlTnVtYmVycykpO1xuICB9XG5cbiAgcmV0dXJuIG5ldyBCbG9iKGJ5dGVBcnJheXMsIHsgdHlwZTogY29udGVudFR5cGUgfSk7XG59O1xuXG4vKipcbiAqIFJlYWQgZmlsZSBhcyBhcnJheSBidWZmZXJcbiAqXG4gKiBAYnJvd3NlclxuICogQHByaXZhdGVcbiAqIEBwYXJhbSBibG9iXG4gKiBAcmV0dXJucyB7Qm9vbGVhbn1cbiAqL1xuY29uc3QgcmVhZEZpbGUgPSBhc3luYyAoZmlsZSk6IFByb21pc2U8YW55PiA9PiB7XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIGlmICghRmlsZSB8fCAhRmlsZVJlYWRlciB8fCAhQmxvYikge1xuICAgIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRmlsZXN0YWNrRXJyb3IoJ1RoZSBGaWxlIEFQSXMgYXJlIG5vdCBmdWxseSBzdXBwb3J0ZWQgYnkgeW91ciBicm93c2VyJykpO1xuICB9XG5cbiAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7XG4gICAgc2xpY2U6IGZ1bmN0aW9uKHN0YXJ0OiBudW1iZXIsIGVuZDogbnVtYmVyKSB7XG4gICAgICByZXR1cm4gcmVhZFBhcnQoc3RhcnQsIGVuZCwgZmlsZSk7XG4gICAgfSxcbiAgICByZWxlYXNlOiAoKSA9PiB7XG4gICAgICBmaWxlID0gbnVsbDtcbiAgICB9LFxuICB9KTtcbn07XG5cbi8qKlxuICogUmVhZCBmaWxlIHBhciBpbnN0ZWFkIG9mIHdob2xlIGZpbGUgdG8gYXZvaWQgYnJvd3NlciBjcmFzaGluZ1xuICpcbiAqIEBwYXJhbSBzdGFydCAtIHN0YXIgYnl0ZVxuICogQHBhcmFtIGVuZCAgLSBlbmQgYnl0ZVxuICogQHBhcmFtIGZpbGUgLSBmaWxlIHRvIHNsaWNlXG4gKi9cbmNvbnN0IHJlYWRQYXJ0ID0gKHN0YXJ0OiBudW1iZXIsIGVuZDogbnVtYmVyLCBmaWxlKTogUHJvbWlzZTxhbnk+ID0+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICBjb25zdCByID0gbmV3IEZpbGVSZWFkZXIoKTtcblxuICAgIGNvbnN0IGJsb2IgPSBmaWxlLnNsaWNlKHN0YXJ0LCBlbmQpO1xuICAgIHIub25sb2FkID0gKCkgPT4gcmVzb2x2ZShyLnJlc3VsdCk7XG4gICAgci5vbmVycm9yID0gcmVqZWN0O1xuICAgIHIucmVhZEFzQXJyYXlCdWZmZXIoYmxvYik7XG4gIH0pO1xufTtcblxuLyoqXG4gKiBBY2NlcHRzIGI2NHN0cmluZyBvciBibG9iIGZpbGVcbiAqXG4gKiBAYnJvd3NlclxuICogQHBhcmFtIHsqfSBmaWxlT3JTdHJpbmdcbiAqIEByZXR1cm5zIHtQcm9taXNlPEZpbGU+fVxuICovXG5leHBvcnQgY29uc3QgZ2V0RmlsZSA9IChpbnB1dDogSW5wdXRGaWxlLCBzYW5pdGl6ZU9wdGlvbnM/OiBTYW5pdGl6ZU9wdGlvbnMsIG1pbWV0eXBlPzogc3RyaW5nKTogUHJvbWlzZTxGc0ZpbGU+ID0+IHtcbiAgbGV0IGZpbGVuYW1lO1xuICBsZXQgZmlsZTogQmxvYjtcblxuICBpZiAoaXNGaWxlTmFtZWQoaW5wdXQpKSB7XG4gICAgZmlsZW5hbWUgPSBpbnB1dC5uYW1lO1xuICAgIGlucHV0ID0gaW5wdXQuZmlsZTtcbiAgfVxuXG4gIGlmIChpc0ZpbGVCcm93c2VyKGlucHV0KSkge1xuICAgIGZpbGUgPSBpbnB1dDtcbiAgICBmaWxlbmFtZSA9IGlucHV0Lm5hbWU7XG4gIH0gZWxzZSBpZiAoaXNGaWxlQmFzZShpbnB1dCkpIHtcbiAgICBmaWxlID0gYjY0dG9CbG9iKGlucHV0KTtcbiAgfSBlbHNlIGlmIChpc0ZpbGVCbG9iKGlucHV0KSkge1xuICAgIGZpbGUgPSBpbnB1dDtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEZpbGVzdGFja0Vycm9yKCdVbnN1cHBvcnRlZCBpbnB1dCBmaWxlIHR5cGUnKSk7XG4gIH1cblxuICByZXR1cm4gcmVhZEZpbGUoZmlsZSkudGhlbihcbiAgICBhc3luYyByZXMgPT4ge1xuICAgICAgbGV0IG1pbWUgPSBmaWxlLnR5cGU7XG4gICAgICBsZXQgbWluaW11bUJ5dGVzID0gNDEwMDtcbiAgICAgIGlmICghZmlsZS50eXBlICB8fCBmaWxlLnR5cGUubGVuZ3RoID09PSAwIHx8IGZpbGUudHlwZSA9PT0gJ3RleHQvcGxhaW4nKSB7XG4gICAgICAgIG1pbWUgPSBhd2FpdCBnZXRNaW1ldHlwZShhd2FpdCByZXMuc2xpY2UoMCwgbWluaW11bUJ5dGVzKSwgZmlsZW5hbWUpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbmV3IEZzRmlsZShcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6IGZpbGVuYW1lLFxuICAgICAgICAgIHNpemU6IGZpbGUuc2l6ZSxcbiAgICAgICAgICB0eXBlOiBtaW1ldHlwZSB8fCBtaW1lLFxuICAgICAgICAgIHNsaWNlOiByZXMuc2xpY2UsXG4gICAgICAgICAgcmVsZWFzZTogcmVzLnJlbGVhc2UsXG4gICAgICAgIH0sXG4gICAgICAgIHNhbml0aXplT3B0aW9uc1xuICAgICAgKTtcbiAgICB9XG4gICk7XG59O1xuIl19
@@ -8,4 +8,4 @@ import { InputFile } from './file_tools';
8
8
  * @param {*} inputFile
9
9
  * @returns {Promise<File>}
10
10
  */
11
- export declare const getFile: (input: InputFile, sanitizeOptions?: SanitizeOptions) => Promise<FsFile>;
11
+ export declare const getFile: (input: InputFile, sanitizeOptions?: SanitizeOptions, mimetype?: string) => Promise<FsFile>;
@@ -60,7 +60,7 @@ var isFileBase = function (input) {
60
60
  * @param {*} inputFile
61
61
  * @returns {Promise<File>}
62
62
  */
63
- var getFile = function (input, sanitizeOptions) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
63
+ var getFile = function (input, sanitizeOptions, mimetype) { return tslib_1.__awaiter(void 0, void 0, void 0, function () {
64
64
  var filename, path_1, matches, mime_1;
65
65
  return tslib_1.__generator(this, function (_a) {
66
66
  switch (_a.label) {
@@ -89,7 +89,7 @@ var getFile = function (input, sanitizeOptions) { return tslib_1.__awaiter(void
89
89
  return [2 /*return*/, resolve(new file_1.File({
90
90
  name: filename,
91
91
  size: buffer.byteLength,
92
- type: mime,
92
+ type: mimetype || mime,
93
93
  slice: function (start, end) { return Promise.resolve(buffer.slice(start, end)); },
94
94
  }, sanitizeOptions))];
95
95
  }
@@ -113,7 +113,7 @@ var getFile = function (input, sanitizeOptions) { return tslib_1.__awaiter(void
113
113
  return [2 /*return*/, Promise.resolve(new file_1.File({
114
114
  name: filename,
115
115
  size: input.byteLength,
116
- type: mime_1,
116
+ type: mimetype || mime_1,
117
117
  // @ts-ignore
118
118
  slice: function (start, end) { return Promise.resolve(input.slice(start, end)); },
119
119
  }, sanitizeOptions))];
@@ -123,4 +123,4 @@ var getFile = function (input, sanitizeOptions) { return tslib_1.__awaiter(void
123
123
  }); };
124
124
  exports.getFile = getFile;
125
125
 
126
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpL3VwbG9hZC9maWxlX3Rvb2xzLm5vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILCtCQUF3QztBQUN4Qyx1Q0FBNkQ7QUFDN0QsOERBQTREO0FBQzVELDJDQUFvRTtBQUVwRTs7Ozs7R0FLRztBQUNILElBQU0sWUFBWSxHQUFHLFVBQUMsS0FBZ0IsSUFBc0IsT0FBQSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUF0QixDQUFzQixDQUFDO0FBRW5GOzs7OztHQUtHO0FBQ0gsSUFBTSxVQUFVLEdBQUcsVUFBQyxLQUFnQixJQUFzQixPQUFBLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQS9CLENBQStCLENBQUM7QUFFMUY7Ozs7R0FJRztBQUNILElBQU0sVUFBVSxHQUFHLFVBQUMsS0FBZ0I7SUFDbEMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDN0IsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSx5QkFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUM1RCxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyx5QkFBWSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7S0FDekM7SUFFRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxLQUFLLEVBQUU7UUFDN0QsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyxDQUFDO0FBRUY7Ozs7OztHQU1HO0FBQ0ksSUFBTSxPQUFPLEdBQUcsVUFBTSxLQUFnQixFQUFFLGVBQWlDOzs7OztnQkFHOUUsSUFBSSxJQUFBLHdCQUFXLEVBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQ3RCLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO29CQUN0QixLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQztpQkFDcEI7Z0JBRUQsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQ2pCLFNBQU8sS0FBSyxDQUFDO29CQUNqQixzQkFBTyxJQUFJLE9BQU8sQ0FBQyxVQUFDLE9BQU8sRUFBRSxNQUFNOzRCQUNqQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQUksRUFBRSxVQUFNLEdBQUcsRUFBRSxNQUFNOzs7Ozs0Q0FDNUMsSUFBSSxHQUFHLEVBQUU7Z0RBQ1Asc0JBQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFDOzZDQUNwQjs0Q0FFRCxJQUFJLENBQUMsUUFBUSxFQUFFO2dEQUNiLFFBQVEsR0FBRyxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFJLENBQUMsQ0FBQzs2Q0FDdEQ7NENBQ1UscUJBQU0sSUFBQSxtQkFBVyxFQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsRUFBQTs7NENBQTFDLElBQUksR0FBRyxTQUFtQzs0Q0FDOUMsc0JBQU8sT0FBTyxDQUNaLElBQUksV0FBTSxDQUNSO29EQUNFLElBQUksRUFBRSxRQUFRO29EQUNkLElBQUksRUFBRSxNQUFNLENBQUMsVUFBVTtvREFDdkIsSUFBSSxFQUFFLElBQUk7b0RBQ1YsS0FBSyxFQUFFLFVBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSyxPQUFBLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBekMsQ0FBeUM7aURBQ2pFLEVBQ0QsZUFBZSxDQUNoQixDQUNGLEVBQUM7OztpQ0FDSCxDQUFDLENBQUM7d0JBQ0wsQ0FBQyxDQUFDLEVBQUM7aUJBQ0o7Z0JBRUQsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQ2YsT0FBTyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMseUJBQVksQ0FBQyxDQUFDO29CQUMxQyxJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTt3QkFDbkMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDO3FCQUMzQzt5QkFBTTt3QkFDTCxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7cUJBQ3RDO2lCQUNGO3FCQUVHLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBbkIsd0JBQW1CO2dCQUNWLHFCQUFNLElBQUEsbUJBQVcsRUFBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLEVBQUE7O2dCQUF6QyxTQUFPLFNBQWtDO2dCQUM3QyxzQkFBTyxPQUFPLENBQUMsT0FBTyxDQUNwQixJQUFJLFdBQU0sQ0FDUjt3QkFDRSxJQUFJLEVBQUUsUUFBUTt3QkFDZCxJQUFJLEVBQUUsS0FBSyxDQUFDLFVBQVU7d0JBQ3RCLElBQUksRUFBRSxNQUFJO3dCQUNWLGFBQWE7d0JBQ2IsS0FBSyxFQUFFLFVBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSyxPQUFBLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBeEMsQ0FBd0M7cUJBQ2hFLEVBQ0QsZUFBZSxDQUNoQixDQUNGLEVBQUM7b0JBR0osc0JBQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLGdDQUFjLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxFQUFDOzs7S0FDMUUsQ0FBQztBQTdEVyxRQUFBLE9BQU8sV0E2RGxCIiwiZmlsZSI6ImxpYi9hcGkvdXBsb2FkL2ZpbGVfdG9vbHMubm9kZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTkgYnkgRmlsZXN0YWNrLlxuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBGaWxlIGFzIEZzRmlsZSB9IGZyb20gJy4vZmlsZSc7XG5pbXBvcnQgeyBTYW5pdGl6ZU9wdGlvbnMsIGdldE1pbWV0eXBlIH0gZnJvbSAnLi8uLi8uLi91dGlscyc7XG5pbXBvcnQgeyBGaWxlc3RhY2tFcnJvciB9IGZyb20gJy4vLi4vLi4vLi4vZmlsZXN0YWNrX2Vycm9yJztcbmltcG9ydCB7IElucHV0RmlsZSwgYmFzZTY0UmVnZXhwLCBpc0ZpbGVOYW1lZCB9IGZyb20gJy4vZmlsZV90b29scyc7XG5cbi8qKlxuICogQ2hlY2sgaWYgZmlsZSBpcyBidWZmZXJcbiAqXG4gKiBAbm9kZVxuICogQHBhcmFtIGlucHV0XG4gKi9cbmNvbnN0IGlzRmlsZUJ1ZmZlciA9IChpbnB1dDogSW5wdXRGaWxlKTogaW5wdXQgaXMgQnVmZmVyID0+IEJ1ZmZlci5pc0J1ZmZlcihpbnB1dCk7XG5cbi8qKlxuICogQ2hlY2sgaWYgaW5wdXQgaXMgYSB2YWxpZCBmaWxlIHBhdGhcbiAqXG4gKiBAbm9kZVxuICogQHBhcmFtIGlucHV0XG4gKi9cbmNvbnN0IGlzRmlsZVBhdGggPSAoaW5wdXQ6IElucHV0RmlsZSk6IGlucHV0IGlzIHN0cmluZyA9PiByZXF1aXJlKCdmcycpLmV4aXN0c1N5bmMoaW5wdXQpO1xuXG4vKipcbiAqIENoZWNrIGlmIGZpbGUgaXMgYmFzZTY0IHN0cmluZ1xuICpcbiAqIEBwYXJhbSBpbnB1dFxuICovXG5jb25zdCBpc0ZpbGVCYXNlID0gKGlucHV0OiBJbnB1dEZpbGUpOiBpbnB1dCBpcyBzdHJpbmcgPT4ge1xuICBpZiAodHlwZW9mIGlucHV0ICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChpbnB1dC5pbmRleE9mKCdiYXNlNjQnKSA+IC0xICYmIGJhc2U2NFJlZ2V4cC50ZXN0KGlucHV0KSkge1xuICAgIGlucHV0ID0gaW5wdXQubWF0Y2goYmFzZTY0UmVnZXhwKS5wb3AoKTtcbiAgfVxuXG4gIGlmIChCdWZmZXIuZnJvbShpbnB1dCwgJ2Jhc2U2NCcpLnRvU3RyaW5nKCdiYXNlNjQnKSA9PT0gaW5wdXQpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn07XG5cbi8qKlxuICogQWNjZXB0cyBCdWZmZXIgb3IgZmlsZXBhdGggb3IgYmFzZTY0IHN0cmluZ1xuICpcbiAqIEBub2RlXG4gKiBAcGFyYW0geyp9IGlucHV0RmlsZVxuICogQHJldHVybnMge1Byb21pc2U8RmlsZT59XG4gKi9cbmV4cG9ydCBjb25zdCBnZXRGaWxlID0gYXN5bmMoaW5wdXQ6IElucHV0RmlsZSwgc2FuaXRpemVPcHRpb25zPzogU2FuaXRpemVPcHRpb25zKTogUHJvbWlzZTxGc0ZpbGU+ID0+IHtcbiAgbGV0IGZpbGVuYW1lO1xuXG4gIGlmIChpc0ZpbGVOYW1lZChpbnB1dCkpIHtcbiAgICBmaWxlbmFtZSA9IGlucHV0Lm5hbWU7XG4gICAgaW5wdXQgPSBpbnB1dC5maWxlO1xuICB9XG5cbiAgaWYgKGlzRmlsZVBhdGgoaW5wdXQpKSB7XG4gICAgbGV0IHBhdGggPSBpbnB1dDtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgcmVxdWlyZSgnZnMnKS5yZWFkRmlsZShwYXRoLCBhc3luYyhlcnIsIGJ1ZmZlcikgPT4ge1xuICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgcmV0dXJuIHJlamVjdChlcnIpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFmaWxlbmFtZSkge1xuICAgICAgICAgIGZpbGVuYW1lID0gcmVxdWlyZSAmJiByZXF1aXJlKCdwYXRoJykuYmFzZW5hbWUocGF0aCk7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IG1pbWUgPSBhd2FpdCBnZXRNaW1ldHlwZShidWZmZXIsIGZpbGVuYW1lKTtcbiAgICAgICAgcmV0dXJuIHJlc29sdmUoXG4gICAgICAgICAgbmV3IEZzRmlsZShcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogZmlsZW5hbWUsXG4gICAgICAgICAgICAgIHNpemU6IGJ1ZmZlci5ieXRlTGVuZ3RoLFxuICAgICAgICAgICAgICB0eXBlOiBtaW1lLFxuICAgICAgICAgICAgICBzbGljZTogKHN0YXJ0LCBlbmQpID0+IFByb21pc2UucmVzb2x2ZShidWZmZXIuc2xpY2Uoc3RhcnQsIGVuZCkpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHNhbml0aXplT3B0aW9uc1xuICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgaWYgKGlzRmlsZUJhc2UoaW5wdXQpKSB7XG4gICAgY29uc3QgbWF0Y2hlcyA9IGlucHV0Lm1hdGNoKGJhc2U2NFJlZ2V4cCk7XG4gICAgaWYgKG1hdGNoZXMgJiYgbWF0Y2hlcy5sZW5ndGggPT09IDIpIHtcbiAgICAgIGlucHV0ID0gQnVmZmVyLmZyb20obWF0Y2hlc1syXSwgJ2Jhc2U2NCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpbnB1dCA9IEJ1ZmZlci5mcm9tKGlucHV0LCAnYmFzZTY0Jyk7XG4gICAgfVxuICB9XG5cbiAgaWYgKGlzRmlsZUJ1ZmZlcihpbnB1dCkpIHtcbiAgICBsZXQgbWltZSA9IGF3YWl0IGdldE1pbWV0eXBlKGlucHV0LCBmaWxlbmFtZSk7XG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShcbiAgICAgIG5ldyBGc0ZpbGUoXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiBmaWxlbmFtZSxcbiAgICAgICAgICBzaXplOiBpbnB1dC5ieXRlTGVuZ3RoLFxuICAgICAgICAgIHR5cGU6IG1pbWUsXG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIHNsaWNlOiAoc3RhcnQsIGVuZCkgPT4gUHJvbWlzZS5yZXNvbHZlKGlucHV0LnNsaWNlKHN0YXJ0LCBlbmQpKSxcbiAgICAgICAgfSxcbiAgICAgICAgc2FuaXRpemVPcHRpb25zXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBQcm9taXNlLnJlamVjdChuZXcgRmlsZXN0YWNrRXJyb3IoJ1Vuc3VwcG9ydGVkIGlucHV0IGZpbGUgdHlwZScpKTtcbn07XG4iXX0=
126
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpL3VwbG9hZC9maWxlX3Rvb2xzLm5vZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILCtCQUF3QztBQUN4Qyx1Q0FBNkQ7QUFDN0QsOERBQTREO0FBQzVELDJDQUFvRTtBQUVwRTs7Ozs7R0FLRztBQUNILElBQU0sWUFBWSxHQUFHLFVBQUMsS0FBZ0IsSUFBc0IsT0FBQSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUF0QixDQUFzQixDQUFDO0FBRW5GOzs7OztHQUtHO0FBQ0gsSUFBTSxVQUFVLEdBQUcsVUFBQyxLQUFnQixJQUFzQixPQUFBLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQS9CLENBQStCLENBQUM7QUFFMUY7Ozs7R0FJRztBQUNILElBQU0sVUFBVSxHQUFHLFVBQUMsS0FBZ0I7SUFDbEMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUU7UUFDN0IsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSx5QkFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUM1RCxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyx5QkFBWSxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7S0FDekM7SUFFRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxLQUFLLEVBQUU7UUFDN0QsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyxDQUFDO0FBRUY7Ozs7OztHQU1HO0FBQ0ksSUFBTSxPQUFPLEdBQUcsVUFBTSxLQUFnQixFQUFFLGVBQWlDLEVBQUUsUUFBaUI7Ozs7O2dCQUdqRyxJQUFJLElBQUEsd0JBQVcsRUFBQyxLQUFLLENBQUMsRUFBRTtvQkFDdEIsUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7b0JBQ3RCLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO2lCQUNwQjtnQkFFRCxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRTtvQkFDakIsU0FBTyxLQUFLLENBQUM7b0JBQ2pCLHNCQUFPLElBQUksT0FBTyxDQUFDLFVBQUMsT0FBTyxFQUFFLE1BQU07NEJBQ2pDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBSSxFQUFFLFVBQU0sR0FBRyxFQUFFLE1BQU07Ozs7OzRDQUM1QyxJQUFJLEdBQUcsRUFBRTtnREFDUCxzQkFBTyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUM7NkNBQ3BCOzRDQUVELElBQUksQ0FBQyxRQUFRLEVBQUU7Z0RBQ2IsUUFBUSxHQUFHLE9BQU8sSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQUksQ0FBQyxDQUFDOzZDQUN0RDs0Q0FDVSxxQkFBTSxJQUFBLG1CQUFXLEVBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFBOzs0Q0FBMUMsSUFBSSxHQUFHLFNBQW1DOzRDQUM5QyxzQkFBTyxPQUFPLENBQ1osSUFBSSxXQUFNLENBQ1I7b0RBQ0UsSUFBSSxFQUFFLFFBQVE7b0RBQ2QsSUFBSSxFQUFFLE1BQU0sQ0FBQyxVQUFVO29EQUN2QixJQUFJLEVBQUUsUUFBUSxJQUFJLElBQUk7b0RBQ3RCLEtBQUssRUFBRSxVQUFDLEtBQUssRUFBRSxHQUFHLElBQUssT0FBQSxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQXpDLENBQXlDO2lEQUNqRSxFQUNELGVBQWUsQ0FDaEIsQ0FDRixFQUFDOzs7aUNBQ0gsQ0FBQyxDQUFDO3dCQUNMLENBQUMsQ0FBQyxFQUFDO2lCQUNKO2dCQUVELElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFO29CQUNmLE9BQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLHlCQUFZLENBQUMsQ0FBQztvQkFDMUMsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7d0JBQ25DLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztxQkFDM0M7eUJBQU07d0JBQ0wsS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO3FCQUN0QztpQkFDRjtxQkFFRyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQW5CLHdCQUFtQjtnQkFDVixxQkFBTSxJQUFBLG1CQUFXLEVBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxFQUFBOztnQkFBekMsU0FBTyxTQUFrQztnQkFDN0Msc0JBQU8sT0FBTyxDQUFDLE9BQU8sQ0FDcEIsSUFBSSxXQUFNLENBQ1I7d0JBQ0UsSUFBSSxFQUFFLFFBQVE7d0JBQ2QsSUFBSSxFQUFFLEtBQUssQ0FBQyxVQUFVO3dCQUN0QixJQUFJLEVBQUUsUUFBUSxJQUFJLE1BQUk7d0JBQ3RCLGFBQWE7d0JBQ2IsS0FBSyxFQUFFLFVBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSyxPQUFBLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBeEMsQ0FBd0M7cUJBQ2hFLEVBQ0QsZUFBZSxDQUNoQixDQUNGLEVBQUM7b0JBR0osc0JBQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLGdDQUFjLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxFQUFDOzs7S0FDMUUsQ0FBQztBQTdEVyxRQUFBLE9BQU8sV0E2RGxCIiwiZmlsZSI6ImxpYi9hcGkvdXBsb2FkL2ZpbGVfdG9vbHMubm9kZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTkgYnkgRmlsZXN0YWNrLlxuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBGaWxlIGFzIEZzRmlsZSB9IGZyb20gJy4vZmlsZSc7XG5pbXBvcnQgeyBTYW5pdGl6ZU9wdGlvbnMsIGdldE1pbWV0eXBlIH0gZnJvbSAnLi8uLi8uLi91dGlscyc7XG5pbXBvcnQgeyBGaWxlc3RhY2tFcnJvciB9IGZyb20gJy4vLi4vLi4vLi4vZmlsZXN0YWNrX2Vycm9yJztcbmltcG9ydCB7IElucHV0RmlsZSwgYmFzZTY0UmVnZXhwLCBpc0ZpbGVOYW1lZCB9IGZyb20gJy4vZmlsZV90b29scyc7XG5cbi8qKlxuICogQ2hlY2sgaWYgZmlsZSBpcyBidWZmZXJcbiAqXG4gKiBAbm9kZVxuICogQHBhcmFtIGlucHV0XG4gKi9cbmNvbnN0IGlzRmlsZUJ1ZmZlciA9IChpbnB1dDogSW5wdXRGaWxlKTogaW5wdXQgaXMgQnVmZmVyID0+IEJ1ZmZlci5pc0J1ZmZlcihpbnB1dCk7XG5cbi8qKlxuICogQ2hlY2sgaWYgaW5wdXQgaXMgYSB2YWxpZCBmaWxlIHBhdGhcbiAqXG4gKiBAbm9kZVxuICogQHBhcmFtIGlucHV0XG4gKi9cbmNvbnN0IGlzRmlsZVBhdGggPSAoaW5wdXQ6IElucHV0RmlsZSk6IGlucHV0IGlzIHN0cmluZyA9PiByZXF1aXJlKCdmcycpLmV4aXN0c1N5bmMoaW5wdXQpO1xuXG4vKipcbiAqIENoZWNrIGlmIGZpbGUgaXMgYmFzZTY0IHN0cmluZ1xuICpcbiAqIEBwYXJhbSBpbnB1dFxuICovXG5jb25zdCBpc0ZpbGVCYXNlID0gKGlucHV0OiBJbnB1dEZpbGUpOiBpbnB1dCBpcyBzdHJpbmcgPT4ge1xuICBpZiAodHlwZW9mIGlucHV0ICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlmIChpbnB1dC5pbmRleE9mKCdiYXNlNjQnKSA+IC0xICYmIGJhc2U2NFJlZ2V4cC50ZXN0KGlucHV0KSkge1xuICAgIGlucHV0ID0gaW5wdXQubWF0Y2goYmFzZTY0UmVnZXhwKS5wb3AoKTtcbiAgfVxuXG4gIGlmIChCdWZmZXIuZnJvbShpbnB1dCwgJ2Jhc2U2NCcpLnRvU3RyaW5nKCdiYXNlNjQnKSA9PT0gaW5wdXQpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn07XG5cbi8qKlxuICogQWNjZXB0cyBCdWZmZXIgb3IgZmlsZXBhdGggb3IgYmFzZTY0IHN0cmluZ1xuICpcbiAqIEBub2RlXG4gKiBAcGFyYW0geyp9IGlucHV0RmlsZVxuICogQHJldHVybnMge1Byb21pc2U8RmlsZT59XG4gKi9cbmV4cG9ydCBjb25zdCBnZXRGaWxlID0gYXN5bmMoaW5wdXQ6IElucHV0RmlsZSwgc2FuaXRpemVPcHRpb25zPzogU2FuaXRpemVPcHRpb25zLCBtaW1ldHlwZT86IHN0cmluZyk6IFByb21pc2U8RnNGaWxlPiA9PiB7XG4gIGxldCBmaWxlbmFtZTtcblxuICBpZiAoaXNGaWxlTmFtZWQoaW5wdXQpKSB7XG4gICAgZmlsZW5hbWUgPSBpbnB1dC5uYW1lO1xuICAgIGlucHV0ID0gaW5wdXQuZmlsZTtcbiAgfVxuXG4gIGlmIChpc0ZpbGVQYXRoKGlucHV0KSkge1xuICAgIGxldCBwYXRoID0gaW5wdXQ7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHJlcXVpcmUoJ2ZzJykucmVhZEZpbGUocGF0aCwgYXN5bmMoZXJyLCBidWZmZXIpID0+IHtcbiAgICAgICAgaWYgKGVycikge1xuICAgICAgICAgIHJldHVybiByZWplY3QoZXJyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghZmlsZW5hbWUpIHtcbiAgICAgICAgICBmaWxlbmFtZSA9IHJlcXVpcmUgJiYgcmVxdWlyZSgncGF0aCcpLmJhc2VuYW1lKHBhdGgpO1xuICAgICAgICB9XG4gICAgICAgIGxldCBtaW1lID0gYXdhaXQgZ2V0TWltZXR5cGUoYnVmZmVyLCBmaWxlbmFtZSk7XG4gICAgICAgIHJldHVybiByZXNvbHZlKFxuICAgICAgICAgIG5ldyBGc0ZpbGUoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6IGZpbGVuYW1lLFxuICAgICAgICAgICAgICBzaXplOiBidWZmZXIuYnl0ZUxlbmd0aCxcbiAgICAgICAgICAgICAgdHlwZTogbWltZXR5cGUgfHwgbWltZSxcbiAgICAgICAgICAgICAgc2xpY2U6IChzdGFydCwgZW5kKSA9PiBQcm9taXNlLnJlc29sdmUoYnVmZmVyLnNsaWNlKHN0YXJ0LCBlbmQpKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzYW5pdGl6ZU9wdGlvbnNcbiAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIGlmIChpc0ZpbGVCYXNlKGlucHV0KSkge1xuICAgIGNvbnN0IG1hdGNoZXMgPSBpbnB1dC5tYXRjaChiYXNlNjRSZWdleHApO1xuICAgIGlmIChtYXRjaGVzICYmIG1hdGNoZXMubGVuZ3RoID09PSAyKSB7XG4gICAgICBpbnB1dCA9IEJ1ZmZlci5mcm9tKG1hdGNoZXNbMl0sICdiYXNlNjQnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaW5wdXQgPSBCdWZmZXIuZnJvbShpbnB1dCwgJ2Jhc2U2NCcpO1xuICAgIH1cbiAgfVxuXG4gIGlmIChpc0ZpbGVCdWZmZXIoaW5wdXQpKSB7XG4gICAgbGV0IG1pbWUgPSBhd2FpdCBnZXRNaW1ldHlwZShpbnB1dCwgZmlsZW5hbWUpO1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoXG4gICAgICBuZXcgRnNGaWxlKFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogZmlsZW5hbWUsXG4gICAgICAgICAgc2l6ZTogaW5wdXQuYnl0ZUxlbmd0aCxcbiAgICAgICAgICB0eXBlOiBtaW1ldHlwZSB8fCBtaW1lLFxuICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICBzbGljZTogKHN0YXJ0LCBlbmQpID0+IFByb21pc2UucmVzb2x2ZShpbnB1dC5zbGljZShzdGFydCwgZW5kKSksXG4gICAgICAgIH0sXG4gICAgICAgIHNhbml0aXplT3B0aW9uc1xuICAgICAgKVxuICAgICk7XG4gIH1cblxuICByZXR1cm4gUHJvbWlzZS5yZWplY3QobmV3IEZpbGVzdGFja0Vycm9yKCdVbnN1cHBvcnRlZCBpbnB1dCBmaWxlIHR5cGUnKSk7XG59O1xuIl19
@@ -61,13 +61,20 @@ export interface UploadOptions {
61
61
  * @memberof UploadOptions
62
62
  */
63
63
  tags?: UploadTags;
64
- altText?: string;
65
64
  }
66
65
  export type StoreUploadOptions = StoreBaseParams & {
67
66
  /**
68
67
  * Filename or function that returns custom filename for stored file
69
68
  */
70
69
  filename?: ((file: File) => string) | string;
70
+ /**
71
+ * Mimetype of the stored file
72
+ */
73
+ mimetype?: string;
74
+ /**
75
+ * Alt text of the stored file
76
+ */
77
+ altText?: string;
71
78
  /**
72
79
  * Workflows ids to run after upload
73
80
  */
@@ -17,4 +17,4 @@
17
17
  */
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
19
 
20
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpL3VwbG9hZC90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHIiwiZmlsZSI6ImxpYi9hcGkvdXBsb2FkL3R5cGVzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOCBieSBGaWxlc3RhY2suXG4gKiBTb21lIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgU3RvcmVCYXNlUGFyYW1zIH0gZnJvbSAnLi8uLi8uLi9maWxlbGluayc7XG5pbXBvcnQgeyBVcGxvYWRUYWdzIH0gZnJvbSAnLi9maWxlJztcbmltcG9ydCB7IFNhbml0aXplT3B0aW9ucyB9IGZyb20gJy4vLi4vLi4vdXRpbHMvaW5kZXgnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVwbG9hZE9wdGlvbnMge1xuICAvKipcbiAgICogTWF4aW11bSBzaXplIGZvciBmaWxlIHNsaWNlcy4gSXMgb3ZlcnJpZGRlbiB3aGVuIGludGVsbGlnZW50PXRydWUuIERlZmF1bHQgaXMgYDYgKiAxMDI0ICogMTAyNGAgKDZNQikuXG4gICAqL1xuICBwYXJ0U2l6ZT86IG51bWJlcjtcbiAgLyoqXG4gICAqIE1heGltdW0gYW1vdW50IG9mIHBhcnQgam9icyB0byBydW4gY29uY3VycmVudGx5LiBEZWZhdWx0IGlzIDMuXG4gICAqL1xuICBjb25jdXJyZW5jeT86IG51bWJlcjtcbiAgLyoqXG4gICAqIENhbGxiYWNrIGZvciBwcm9ncmVzcyBldmVudHMuXG4gICAqL1xuICBvblByb2dyZXNzPzogKGV2dDogRlNQcm9ncmVzc0V2ZW50KSA9PiB2b2lkO1xuICAvKipcbiAgICogSG93IG9mdGVuIHRvIHJlcG9ydCBwcm9ncmVzcy4gRGVmYXVsdCBpcyAxMDAwIChpbiBtaWxsaXNlY29uZHMpLlxuICAgKi9cbiAgcHJvZ3Jlc3NJbnRlcnZhbD86IG51bWJlcjtcbiAgLyoqXG4gICAqIENhbGxiYWNrIGZvciByZXRyeSBldmVudHMuXG4gICAqL1xuICBvblJldHJ5PzogKCkgPT4gdm9pZDtcbiAgLyoqXG4gICAqIFJldHJ5IGxpbWl0LiBEZWZhdWx0IGlzIDEwLlxuICAgKi9cbiAgcmV0cnk/OiBudW1iZXI7IC8vIFJldHJ5IGxpbWl0XG4gIC8qKlxuICAgKiBGYWN0b3IgZm9yIGV4cG9uZW50aWFsIGJhY2tvZmYgb24gc2VydmVyIGVycm9ycy4gRGVmYXVsdCBpcyAyLlxuICAgKi9cbiAgcmV0cnlGYWN0b3I/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBVcHBlciBib3VuZCBmb3IgZXhwb25lbnRpYWwgYmFja29mZi4gRGVmYXVsdCBpcyAxNTAwMC5cbiAgICovXG4gIHJldHJ5TWF4VGltZT86IG51bWJlcjtcbiAgLyoqXG4gICAqIFRpbWVvdXQgZm9yIG5ldHdvcmsgcmVxdWVzdHMuIERlZmF1bHQgaXMgMTIwMDAwLlxuICAgKi9cbiAgdGltZW91dD86IG51bWJlcjtcbiAgLyoqXG4gICAqIEVuYWJsZS9kaXNhYmxlIGludGVsbGlnZW50IGluZ2VzdGlvbi5cbiAgICogSWYgdHJ1dGh5IHRoZW4gaW50ZWxsaWdlbnQgaW5nZXN0aW9uIG11c3QgYmUgZW5hYmxlZCBpbiB5b3VyIEZpbGVzdGFjayBhcHBsaWNhdGlvbi5cbiAgICogUGFzc2luZyB0cnVlL2ZhbHNlIHRvZ2dsZXMgdGhlIGdsb2JhbCBpbnRlbGxpZ2VudCBmbG93IChhbGwgcGFydHMgYXJlIGNodW5rZWQgYW5kIGNvbW1pdHRlZCkuXG4gICAqIFBhc3NpbmcgYCdmYWxsYmFjaydgIHdpbGwgb25seSB1c2UgRklJIHdoZW4gbmV0d29yayBjb25kaXRpb25zIG1heSByZXF1aXJlIGl0IChvbmx5IGZhaWxpbmcgcGFydHMgd2lsbCBiZSBjaHVua2VkKS5cbiAgICovXG4gIGludGVsbGlnZW50PzogYm9vbGVhbiB8ICdmYWxsYmFjayc7XG4gIC8qKlxuICAgKiBTZXQgdGhlIGRlZmF1bHQgaW50aWlhbCBjaHVuayBzaXplIGZvciBJbnRlbGxpZ2VudCBJbmdlc3Rpb24uIERlZmF1bHRzIHRvIDhNQiBvbiBkZXNrdG9wIGFuZCAxTUIgb24gbW9iaWxlLlxuICAgKi9cbiAgaW50ZWxsaWdlbnRDaHVua1NpemU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIERpc2FibGUgY2hlY2tpbmcgaW50ZWdyaXR5IG9mIHVwbG9hZGVkIGZpbGVzLlxuICAgKiBPbiBzbG93ZXIgZGV2aWNlcyBpdCBjYW4gYm9vc3QgdXBsb2FkIHBlcmZvcm1hbmNlIChkaXNhYmxlIGNvdW50aW5nIG1kNSBmcm9tIGZpbGUgcGFydHMpXG4gICAqL1xuICBkaXNhYmxlSW50ZWdyaXR5Q2hlY2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEZWZpbmUgdXBsb2FkIHRhZ3MgdG8gYmUgcGFzc2VkIHRvIHdlYmhvb2tcbiAgICpcbiAgICogQHR5cGUge1RhZ3N9XG4gICAqIEBtZW1iZXJvZiBVcGxvYWRPcHRpb25zXG4gICAqL1xuICB0YWdzPzogVXBsb2FkVGFncztcblxuICBhbHRUZXh0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBTdG9yZVVwbG9hZE9wdGlvbnMgPSBTdG9yZUJhc2VQYXJhbXMgJiB7XG4gIC8qKlxuICAgKiBGaWxlbmFtZSBvciBmdW5jdGlvbiB0aGF0IHJldHVybnMgY3VzdG9tIGZpbGVuYW1lIGZvciBzdG9yZWQgZmlsZVxuICAgKi9cbiAgZmlsZW5hbWU/OiAoKGZpbGU6IEZpbGUpID0+IHN0cmluZykgfCBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdvcmtmbG93cyBpZHMgdG8gcnVuIGFmdGVyIHVwbG9hZFxuICAgKi9cbiAgd29ya2Zsb3dzPzogKHN0cmluZyB8IFdvcmtmbG93Q29uZmlnKVtdO1xuXG4gIC8qKlxuICAgKiBGaWVsbmFtZSBzYW5pdGl6ZXIgZm9yIGNsZWFudXAgIGJlZm9yZSB1cGxvYWRcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L2Rldi9Vc2luZ01ldGFkYXRhLmh0bWxcbiAgICogQGRlZmF1bHQge1xuICAgKiAgIGV4Y2x1ZGU6IFsnXFxcXCcsICd7JywgJ30nLCd8JywgJyUnLCAnYCcsICdcIicsIFwiJ1wiLCAnficsICdbJywgJ10nLCAnIycsICd8JywgJ14nLCAnPCcsICc+J11cbiAgICogICByZXBsYWNlbWVudDogJy0nXG4gICAqIH1cbiAgICogQHR5cGUgeygoYm9vbGVhbiB8IHtcbiAgICogICAgIGV4Y2x1ZGU6IHN0cmluZ1tdLFxuICAgKiAgICAgcmVwbGFjZW1lbnQ6IHN0cmluZyxcbiAgICogICB9KSl9XG4gICAqL1xuICBzYW5pdGl6ZXI/OiBTYW5pdGl6ZU9wdGlvbnNcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgV29ya2Zsb3dDb25maWcge1xuICBpZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZTUHJvZ3Jlc3NFdmVudCB7XG4gIHRvdGFsUGVyY2VudDogbnVtYmVyO1xuICB0b3RhbEJ5dGVzOiBudW1iZXI7XG59XG4iXX0=
20
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpL3VwbG9hZC90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHIiwiZmlsZSI6ImxpYi9hcGkvdXBsb2FkL3R5cGVzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOCBieSBGaWxlc3RhY2suXG4gKiBTb21lIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgU3RvcmVCYXNlUGFyYW1zIH0gZnJvbSAnLi8uLi8uLi9maWxlbGluayc7XG5pbXBvcnQgeyBVcGxvYWRUYWdzIH0gZnJvbSAnLi9maWxlJztcbmltcG9ydCB7IFNhbml0aXplT3B0aW9ucyB9IGZyb20gJy4vLi4vLi4vdXRpbHMvaW5kZXgnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVwbG9hZE9wdGlvbnMge1xuICAvKipcbiAgICogTWF4aW11bSBzaXplIGZvciBmaWxlIHNsaWNlcy4gSXMgb3ZlcnJpZGRlbiB3aGVuIGludGVsbGlnZW50PXRydWUuIERlZmF1bHQgaXMgYDYgKiAxMDI0ICogMTAyNGAgKDZNQikuXG4gICAqL1xuICBwYXJ0U2l6ZT86IG51bWJlcjtcbiAgLyoqXG4gICAqIE1heGltdW0gYW1vdW50IG9mIHBhcnQgam9icyB0byBydW4gY29uY3VycmVudGx5LiBEZWZhdWx0IGlzIDMuXG4gICAqL1xuICBjb25jdXJyZW5jeT86IG51bWJlcjtcbiAgLyoqXG4gICAqIENhbGxiYWNrIGZvciBwcm9ncmVzcyBldmVudHMuXG4gICAqL1xuICBvblByb2dyZXNzPzogKGV2dDogRlNQcm9ncmVzc0V2ZW50KSA9PiB2b2lkO1xuICAvKipcbiAgICogSG93IG9mdGVuIHRvIHJlcG9ydCBwcm9ncmVzcy4gRGVmYXVsdCBpcyAxMDAwIChpbiBtaWxsaXNlY29uZHMpLlxuICAgKi9cbiAgcHJvZ3Jlc3NJbnRlcnZhbD86IG51bWJlcjtcbiAgLyoqXG4gICAqIENhbGxiYWNrIGZvciByZXRyeSBldmVudHMuXG4gICAqL1xuICBvblJldHJ5PzogKCkgPT4gdm9pZDtcbiAgLyoqXG4gICAqIFJldHJ5IGxpbWl0LiBEZWZhdWx0IGlzIDEwLlxuICAgKi9cbiAgcmV0cnk/OiBudW1iZXI7IC8vIFJldHJ5IGxpbWl0XG4gIC8qKlxuICAgKiBGYWN0b3IgZm9yIGV4cG9uZW50aWFsIGJhY2tvZmYgb24gc2VydmVyIGVycm9ycy4gRGVmYXVsdCBpcyAyLlxuICAgKi9cbiAgcmV0cnlGYWN0b3I/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBVcHBlciBib3VuZCBmb3IgZXhwb25lbnRpYWwgYmFja29mZi4gRGVmYXVsdCBpcyAxNTAwMC5cbiAgICovXG4gIHJldHJ5TWF4VGltZT86IG51bWJlcjtcbiAgLyoqXG4gICAqIFRpbWVvdXQgZm9yIG5ldHdvcmsgcmVxdWVzdHMuIERlZmF1bHQgaXMgMTIwMDAwLlxuICAgKi9cbiAgdGltZW91dD86IG51bWJlcjtcbiAgLyoqXG4gICAqIEVuYWJsZS9kaXNhYmxlIGludGVsbGlnZW50IGluZ2VzdGlvbi5cbiAgICogSWYgdHJ1dGh5IHRoZW4gaW50ZWxsaWdlbnQgaW5nZXN0aW9uIG11c3QgYmUgZW5hYmxlZCBpbiB5b3VyIEZpbGVzdGFjayBhcHBsaWNhdGlvbi5cbiAgICogUGFzc2luZyB0cnVlL2ZhbHNlIHRvZ2dsZXMgdGhlIGdsb2JhbCBpbnRlbGxpZ2VudCBmbG93IChhbGwgcGFydHMgYXJlIGNodW5rZWQgYW5kIGNvbW1pdHRlZCkuXG4gICAqIFBhc3NpbmcgYCdmYWxsYmFjaydgIHdpbGwgb25seSB1c2UgRklJIHdoZW4gbmV0d29yayBjb25kaXRpb25zIG1heSByZXF1aXJlIGl0IChvbmx5IGZhaWxpbmcgcGFydHMgd2lsbCBiZSBjaHVua2VkKS5cbiAgICovXG4gIGludGVsbGlnZW50PzogYm9vbGVhbiB8ICdmYWxsYmFjayc7XG4gIC8qKlxuICAgKiBTZXQgdGhlIGRlZmF1bHQgaW50aWlhbCBjaHVuayBzaXplIGZvciBJbnRlbGxpZ2VudCBJbmdlc3Rpb24uIERlZmF1bHRzIHRvIDhNQiBvbiBkZXNrdG9wIGFuZCAxTUIgb24gbW9iaWxlLlxuICAgKi9cbiAgaW50ZWxsaWdlbnRDaHVua1NpemU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIERpc2FibGUgY2hlY2tpbmcgaW50ZWdyaXR5IG9mIHVwbG9hZGVkIGZpbGVzLlxuICAgKiBPbiBzbG93ZXIgZGV2aWNlcyBpdCBjYW4gYm9vc3QgdXBsb2FkIHBlcmZvcm1hbmNlIChkaXNhYmxlIGNvdW50aW5nIG1kNSBmcm9tIGZpbGUgcGFydHMpXG4gICAqL1xuICBkaXNhYmxlSW50ZWdyaXR5Q2hlY2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEZWZpbmUgdXBsb2FkIHRhZ3MgdG8gYmUgcGFzc2VkIHRvIHdlYmhvb2tcbiAgICpcbiAgICogQHR5cGUge1RhZ3N9XG4gICAqIEBtZW1iZXJvZiBVcGxvYWRPcHRpb25zXG4gICAqL1xuICB0YWdzPzogVXBsb2FkVGFncztcbn1cblxuZXhwb3J0IHR5cGUgU3RvcmVVcGxvYWRPcHRpb25zID0gU3RvcmVCYXNlUGFyYW1zICYge1xuICAvKipcbiAgICogRmlsZW5hbWUgb3IgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGN1c3RvbSBmaWxlbmFtZSBmb3Igc3RvcmVkIGZpbGVcbiAgICovXG4gIGZpbGVuYW1lPzogKChmaWxlOiBGaWxlKSA9PiBzdHJpbmcpIHwgc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBNaW1ldHlwZSBvZiB0aGUgc3RvcmVkIGZpbGVcbiAgICovXG4gIG1pbWV0eXBlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBbHQgdGV4dCBvZiB0aGUgc3RvcmVkIGZpbGVcbiAgICovXG4gIGFsdFRleHQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdvcmtmbG93cyBpZHMgdG8gcnVuIGFmdGVyIHVwbG9hZFxuICAgKi9cbiAgd29ya2Zsb3dzPzogKHN0cmluZyB8IFdvcmtmbG93Q29uZmlnKVtdO1xuXG4gIC8qKlxuICAgKiBGaWVsbmFtZSBzYW5pdGl6ZXIgZm9yIGNsZWFudXAgIGJlZm9yZSB1cGxvYWRcbiAgICpcbiAgICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUzMvbGF0ZXN0L2Rldi9Vc2luZ01ldGFkYXRhLmh0bWxcbiAgICogQGRlZmF1bHQge1xuICAgKiAgIGV4Y2x1ZGU6IFsnXFxcXCcsICd7JywgJ30nLCd8JywgJyUnLCAnYCcsICdcIicsIFwiJ1wiLCAnficsICdbJywgJ10nLCAnIycsICd8JywgJ14nLCAnPCcsICc+J11cbiAgICogICByZXBsYWNlbWVudDogJy0nXG4gICAqIH1cbiAgICogQHR5cGUgeygoYm9vbGVhbiB8IHtcbiAgICogICAgIGV4Y2x1ZGU6IHN0cmluZ1tdLFxuICAgKiAgICAgcmVwbGFjZW1lbnQ6IHN0cmluZyxcbiAgICogICB9KSl9XG4gICAqL1xuICBzYW5pdGl6ZXI/OiBTYW5pdGl6ZU9wdGlvbnNcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgV29ya2Zsb3dDb25maWcge1xuICBpZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZTUHJvZ3Jlc3NFdmVudCB7XG4gIHRvdGFsUGVyY2VudDogbnVtYmVyO1xuICB0b3RhbEJ5dGVzOiBudW1iZXI7XG59XG4iXX0=
@@ -34,6 +34,20 @@ export declare class Upload extends EventEmitter {
34
34
  * @memberof Upload
35
35
  */
36
36
  private overrideFileName;
37
+ /**
38
+ * Mimetype of the file
39
+ *
40
+ * @private
41
+ * @memberof Upload
42
+ */
43
+ private mimetype;
44
+ /**
45
+ * Alt Text of the file
46
+ *
47
+ * @private
48
+ * @memberof Upload
49
+ */
50
+ private altText;
37
51
  private lastProgress;
38
52
  private progressIntervalHandler;
39
53
  private sanitizerOptions;
@@ -72,11 +86,10 @@ export declare class Upload extends EventEmitter {
72
86
  * Upload single file
73
87
  *
74
88
  * @param {(InputFile)} file
75
- * @param {(string)} altText
76
89
  * @returns {Promise<any>}
77
90
  * @memberof Upload
78
91
  */
79
- upload(input: InputFile, altText?: string): Promise<any>;
92
+ upload(input: InputFile): Promise<any>;
80
93
  /**
81
94
  * Upload multiple files at once
82
95
  *
@@ -65,6 +65,14 @@ var Upload = /** @class */ (function (_super) {
65
65
  _this.sanitizerOptions = _this.storeOptions.sanitizer;
66
66
  delete _this.storeOptions.sanitizer;
67
67
  }
68
+ if (storeOptions.altText) {
69
+ _this.altText = storeOptions.altText;
70
+ delete _this.storeOptions.altText;
71
+ }
72
+ if (storeOptions.mimetype) {
73
+ _this.mimetype = storeOptions.mimetype;
74
+ delete _this.storeOptions.mimetype;
75
+ }
68
76
  _this.uploader = new s3_1.S3Uploader(_this.storeOptions, options.concurrency);
69
77
  _this.uploader.setRetryConfig({
70
78
  retry: options.retry || 10,
@@ -147,21 +155,20 @@ var Upload = /** @class */ (function (_super) {
147
155
  * Upload single file
148
156
  *
149
157
  * @param {(InputFile)} file
150
- * @param {(string)} altText
151
158
  * @returns {Promise<any>}
152
159
  * @memberof Upload
153
160
  */
154
- Upload.prototype.upload = function (input, altText) {
161
+ Upload.prototype.upload = function (input) {
155
162
  return tslib_1.__awaiter(this, void 0, void 0, function () {
156
163
  var f, res;
157
164
  return tslib_1.__generator(this, function (_a) {
158
165
  switch (_a.label) {
159
- case 0: return [4 /*yield*/, (0, file_tools_1.getFile)(input, this.sanitizerOptions)];
166
+ case 0: return [4 /*yield*/, (0, file_tools_1.getFile)(input, this.sanitizerOptions, this.mimetype)];
160
167
  case 1:
161
168
  f = _a.sent();
162
169
  f.customName = this.overrideFileName;
163
- if (altText) {
164
- f.alt = altText;
170
+ if (this.altText) {
171
+ f.alt = this.altText;
165
172
  }
166
173
  this.uploader.addFile(f);
167
174
  this.startProgressInterval();
@@ -206,10 +213,13 @@ var Upload = /** @class */ (function (_super) {
206
213
  if (!input.hasOwnProperty(i)) {
207
214
  return [3 /*break*/, 3];
208
215
  }
209
- return [4 /*yield*/, (0, file_tools_1.getFile)(input[i], this.sanitizerOptions)];
216
+ return [4 /*yield*/, (0, file_tools_1.getFile)(input[i], this.sanitizerOptions, this.mimetype)];
210
217
  case 2:
211
218
  f = _d.sent();
212
219
  f.customName = this.overrideFileName;
220
+ if (this.altText) {
221
+ f.alt = this.altText;
222
+ }
213
223
  this.uploader.addFile(f);
214
224
  _d.label = 3;
215
225
  case 3:
@@ -276,4 +286,4 @@ var Upload = /** @class */ (function (_super) {
276
286
  }(eventemitter3_1.EventEmitter));
277
287
  exports.Upload = Upload;
278
288
 
279
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpL3VwbG9hZC91cGxvYWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRzs7OztBQUVILCtDQUE2QztBQUU3QyxxQ0FBNEM7QUFDNUMsOERBQWdGO0FBSWhGLDJDQUFrRDtBQUdsRCw0Q0FBd0Y7QUFReEYsSUFBTSx5QkFBeUIsR0FBRyxJQUFJLENBQUM7QUFFdkMsSUFBTSxpQkFBaUIsR0FBRyxVQUFDLE9BQU8sRUFBRSxJQUFJO0lBQ3RDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuRSxPQUFPLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFekUsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyxDQUFDO0FBRUY7Ozs7O0dBS0c7QUFDSDtJQUE0QixrQ0FBWTtJQTJCdEMsZ0JBQTZCLE9BQTJCLEVBQVUsWUFBcUM7UUFBMUUsd0JBQUEsRUFBQSxZQUEyQjtRQUFVLDZCQUFBLEVBQUEsaUJBQXFDO1FBQXZHLFlBQ0UsaUJBQU8sU0EwRFI7UUEzRDRCLGFBQU8sR0FBUCxPQUFPLENBQW9CO1FBQVUsa0JBQVksR0FBWixZQUFZLENBQXlCO1FBUi9GLGtCQUFZLEdBQWtCO1lBQ3BDLFVBQVUsRUFBRSxDQUFDO1lBQ2IsWUFBWSxFQUFFLENBQUM7U0FDaEIsQ0FBQztRQVFBLHlFQUF5RTtRQUN6RSxLQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRXBELElBQU0sV0FBVyxHQUFHLElBQUEscUJBQVksRUFBQywyQkFBa0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTlELElBQUksV0FBVyxDQUFD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Q0FBQztJQUVEOzs7Ozs7T0FNRztJQUNLLCtCQUFjLEdBQXRCLFVBQXVCLFFBQXVCO1FBQzVDLGtFQUFrRTtRQUNsRSxRQUFRLEdBQUcsaUJBQWlCLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUUxRCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFO1lBQzNCLEtBQUssSUFBSSxDQUFDLElBQUksUUFBUSxDQUFDLEtBQUssRUFBRTtnQkFDNUIsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtvQkFDOUIsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3RGO2FBQ0Y7U0FDRjtRQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDO0lBQy9CLENBQUM7SUFDSCxhQUFDO0FBQUQsQ0FoUUEsQUFnUUMsQ0FoUTJCLDRCQUFZLEdBZ1F2QztBQWhRWSx3QkFBTSIsImZpbGUiOiJsaWIvYXBpL3VwbG9hZC91cGxvYWQuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE5IGJ5IEZpbGVzdGFjay5cbiAqIFNvbWUgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdldmVudGVtaXR0ZXIzJztcbmltcG9ydCB7IFNlc3Npb24sIFNlY3VyaXR5IH0gZnJvbSAnLi4vLi4vY2xpZW50JztcbmltcG9ydCB7IFMzVXBsb2FkZXIgfSBmcm9tICcuL3VwbG9hZGVycy9zMyc7XG5pbXBvcnQgeyBGaWxlc3RhY2tFcnJvciwgRmlsZXN0YWNrRXJyb3JUeXBlIH0gZnJvbSAnLi8uLi8uLi8uLi9maWxlc3RhY2tfZXJyb3InO1xuaW1wb3J0IHsgU2FuaXRpemVPcHRpb25zIH0gZnJvbSAnLi8uLi8uLi91dGlscyc7XG5cbmltcG9ydCB7IFVwbG9hZE9wdGlvbnMsIFN0b3JlVXBsb2FkT3B0aW9ucyB9IGZyb20gJy4uL3VwbG9hZC90eXBlcyc7XG5pbXBvcnQgeyBnZXRGaWxlLCBJbnB1dEZpbGUgfSBmcm9tICcuL2ZpbGVfdG9vbHMnO1xuaW1wb3J0IHsgRmlsZVN0YXRlLCBVcGxvYWRUYWdzIH0gZnJvbSAnLi9maWxlJztcbmltcG9ydCB7IFVwbG9hZE1vZGUgfSBmcm9tICcuL3VwbG9hZGVycy9hYnN0cmFjdCc7XG5pbXBvcnQgeyBnZXRWYWxpZGF0b3IsIFVwbG9hZFBhcmFtc1NjaGVtYSwgU3RvcmVQYXJhbXNTY2hlbWEgfSBmcm9tICcuLy4uLy4uLy4uL3NjaGVtYSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZ3Jlc3NFdmVudCB7XG4gIHRvdGFsUGVyY2VudDogbnVtYmVyO1xuICB0b3RhbEJ5dGVzOiBudW1iZXI7XG4gIGZpbGVzPzogeyAoa2V5OiBzdHJpbmcpOiBQcm9ncmVzc0V2ZW50IH07XG59XG5cbmNvbnN0IERFRkFVTFRfUFJPR1JFU1NfSU5URVJWQUwgPSAxMDAwO1xuXG5jb25zdCBub3JtYWxpemVQcm9ncmVzcyA9IChjdXJyZW50LCBsYXN0KSA9PiB7XG4gIGN1cnJlbnQudG90YWxCeXRlcyA9IE1hdGgubWF4KGN1cnJlbnQudG90YWxCeXRlcywgbGFzdC50b3RhbEJ5dGVzKTtcbiAgY3VycmVudC50b3RhbFBlcmNlbnQgPSBNYXRoLm1heChjdXJyZW50LnRvdGFsUGVyY2VudCwgbGFzdC50b3RhbFBlcmNlbnQpO1xuXG4gIHJldHVybiBjdXJyZW50O1xufTtcblxuLyoqXG4gKiBVcGxvYWRlciBtYWluIGNsYXNzIGZvciBub3cgaXRzIHN1cHBvcnRpbmcgb25seSBzMyB1cGxvYWQgdHlwZVxuICpcbiAqIEBleHBvcnRcbiAqIEBjbGFzcyBVcGxvYWRcbiAqL1xuZXhwb3J0IGNsYXNzIFVwbG9hZCBleHRlbmRzIEV2ZW50RW1pdHRlciB7XG5cbiAgLyoqXG4gICAqIFVwbG9hZGVyIGluc3RhbmNlXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEB0eXBlIHtTM1VwbG9hZGVyfVxuICAgKiBAbWVtYmVyb2YgVXBsb2FkXG4gICAqL1xuICBwcml2YXRlIHVwbG9hZGVyOiBTM1VwbG9hZGVyO1xuXG4gIC8qKlxuICAgKiBTaG91bGQgd2Ugb3ZlcndyaXRlIGZpbGUgbmFtZVxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKiBAbWVtYmVyb2YgVXBsb2FkXG4gICAqL1xuICBwcml2YXRlIG92ZXJyaWRlRmlsZU5hbWU7XG5cbiAgcHJpdmF0ZSBsYXN0UHJvZ3Jlc3M6IFByb2dyZXNzRXZlbnQgPSB7XG4gICAgdG90YWxCeXRlczogMCxcbiAgICB0b3RhbFBlcmNlbnQ6IDAsXG4gIH07XG5cbiAgcHJpdmF0ZSBwcm9ncmVzc0ludGVydmFsSGFuZGxlcjtcbiAgcHJpdmF0ZSBzYW5pdGl6ZXJPcHRpb25zOiBTYW5pdGl6ZU9wdGlvbnM7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBVcGxvYWRPcHRpb25zID0ge30sIHByaXZhdGUgc3RvcmVPcHRpb25zOiBTdG9yZVVwbG9hZE9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKCk7XG5cbiAgICAvLyBkbyBub3QgZGVsZXRlIGZpbGVuYW1lIGZyb20gb3JpZ2luYWwgb3B0aW9ucyByZWZlcmVuY2UgLSBjb3B5IGl0IGZpcnN0XG4gICAgdGhpcy5zdG9yZU9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCBzdG9yZU9wdGlvbnMpO1xuXG4gICAgY29uc3QgdmFsaWRhdGVSZXMgPSBnZXRWYWxpZGF0b3IoVXBsb2FkUGFyYW1zU2NoZW1hKShvcHRpb25zKTtcblxuICAgIGlmICh2YWxpZGF0ZVJlcy5lcnJvcnMubGVuZ3RoKSB7XG4gICAgICB0aHJvdyBuZXcgRmlsZXN0YWNrRXJyb3IoYEludmFsaWQgdXBsb2FkIHBhcmFtc2AsIHZhbGlkYXRlUmVzLmVycm9ycywgRmlsZXN0YWNrRXJyb3JUeXBlLlZBTElEQVRJT04pO1xuICAgIH1cblxuICAgIGNvbnN0IHN0b3JlVmFsaWRhdGVSZXMgPSBnZXRWYWxpZGF0b3IoU3RvcmVQYXJhbXNTY2hlbWEpKHN0b3JlT3B0aW9ucyk7XG4gICAgaWYgKHN0b3JlVmFsaWRhdGVSZXMuZXJyb3JzLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEZpbGVzdGFja0Vycm9yKGBJbnZhbGlkIHN0b3JlIHVwbG9hZCBwYXJhbXNgLCBzdG9yZVZhbGlkYXRlUmVzLmVycm9ycywgRmlsZXN0YWNrRXJyb3JUeXBlLlZBTElEQVRJT04pO1xuICAgIH1cblxuICAgIGlmIChzdG9yZU9wdGlvbnMuZmlsZW5hbWUpIHtcbiAgICAgIHRoaXMub3ZlcnJpZGVGaWxlTmFtZSA9IHN0b3JlT3B0aW9ucy5maWxlbmFtZTtcbiAgICAgIGRlbGV0ZSB0aGlzLnN0b3JlT3B0aW9ucy5maWxlbmFtZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zdG9yZU9wdGlvbnMuc2FuaXRpemVyKSB7XG4gICAgICB0aGlzLnNhbml0aXplck9wdGlvbnMgPSB0aGlzLnN0b3JlT3B0aW9ucy5zYW5pdGl6ZXI7XG4gICAgICBkZWxldGUgdGhpcy5zdG9yZU9wdGlvbnMuc2FuaXRpemVyO1xuICAgIH1cblxuICAgIHRoaXMudXBsb2FkZXIgPSBuZXcgUzNVcGxvYWRlcih0aGlzLnN0b3JlT3B0aW9ucywgb3B0aW9ucy5jb25jdXJyZW5jeSk7XG5cbiAgICB0aGlzLnVwbG9hZGVyLnNldFJldHJ5Q29uZmlnKHtcbiAgICAgIHJldHJ5OiBvcHRpb25zLnJldHJ5IHx8IDEwLFxuICAgICAgb25SZXRyeTogb3B0aW9ucy5vblJldHJ5LCAvLyBAdG9kbyBiaW5kIGZpbGUgdG8gcmV0cnkgaW4gczMgdXBsb2FkZXJcbiAgICAgIHJldHJ5RmFjdG9yOiBvcHRpb25zLnJldHJ5RmFjdG9yIHx8IDIsXG4gICAgICByZXRyeU1heFRpbWU6IG9wdGlvbnMucmV0cnlNYXhUaW1lIHx8IDE1MDAwLFxuICAgIH0pO1xuXG4gICAgdGhpcy51cGxvYWRlci5zZXRUaW1lb3V0KG9wdGlvbnMudGltZW91dCB8fCAxMjAwMDApO1xuXG4gICAgaWYgKG9wdGlvbnMucGFydFNpemUpIHtcbiAgICAgIHRoaXMudXBsb2FkZXIuc2V0UGFydFNpemUob3B0aW9ucy5wYXJ0U2l6ZSk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuaW50ZWxsaWdlbnRDaHVua1NpemUpIHtcbiAgICAgIHRoaXMudXBsb2FkZXIuc2V0SW50ZWxsaWdlbnRDaHVua1NpemUob3B0aW9ucy5pbnRlbGxpZ2VudENodW5rU2l6ZSk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuZGlzYWJsZUludGVncml0eUNoZWNrKSB7XG4gICAgICB0aGlzLnVwbG9hZGVyLnNldEludGVncml0eUNoZWNrKGZhbHNlKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9ucy5pbnRlbGxpZ2VudCkge1xuICAgICAgdGhpcy51cGxvYWRlci5zZXRVcGxvYWRNb2RlKG9wdGlvbnMuaW50ZWxsaWdlbnQgPT09ICdmYWxsYmFjaycgPyBVcGxvYWRNb2RlLkZBTExCQUNLIDogVXBsb2FkTW9kZS5JTlRFTExJR0VOVCk7XG4gICAgfVxuXG4gICAgdGhpcy51cGxvYWRlci5zZXRVcGxvYWRUYWdzKG9wdGlvbnMudGFncyk7XG5cbiAgICB0aGlzLnVwbG9hZGVyLm9uKCdzdGFydCcsICgpID0+IHRoaXMuZW1pdCgnc3RhcnQnKSk7XG4gICAgdGhpcy51cGxvYWRlci5vbignZXJyb3InLCAoZSkgPT4gdGhpcy5lbWl0KCdlcnJvcicsIGUpKTtcbiAgICB0aGlzLnVwbG9hZGVyLm9uKCdwcm9ncmVzcycsIHRoaXMuaGFuZGxlUHJvZ3Jlc3MuYmluZCh0aGlzKSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHNlc3Npb24gb2JqZWN0IHRvIHVwbG9hZGVyXG4gICAqXG4gICAqIEBkZXByZWNhdGVkXG4gICAqIEBwYXJhbSB7U2Vzc2lvbn0gc2Vzc2lvblxuICAgKiBAbWVtYmVyb2YgVXBsb2FkXG4gICAqL1xuICBzZXRTZXNzaW9uKHNlc3Npb246IFNlc3Npb24pIHtcbiAgICB0aGlzLnVwbG9hZGVyLnNldEFwaWtleShzZXNzaW9uLmFwaWtleSk7XG5cbiAgICBpZiAoc2Vzc2lvbi5wb2xpY3kgJiYgc2Vzc2lvbi5zaWduYXR1cmUpIHtcbiAgICAgIHRoaXMudXBsb2FkZXIuc2V0U2VjdXJpdHkoe1xuICAgICAgICBwb2xpY3k6IHNlc3Npb24ucG9saWN5LFxuICAgICAgICBzaWduYXR1cmU6IHNlc3Npb24uc2lnbmF0dXJlLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy51cGxvYWRlci5zZXRVcmwoc2Vzc2lvbi51cmxzLnVwbG9hZEFwaVVybCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGNhbmNlbCB0b2tlbiB0byBjb250cm9sbCB1cGxvYWQgZmxvd1xuICAgKlxuICAgKiBAcGFyYW0geyp9IHRva2VuXG4gICAqIEByZXR1cm5zXG4gICAqIEBtZW1iZXJvZiBVcGxvYWRcbiAgICovXG4gIHB1YmxpYyBzZXRUb2tlbih0b2tlbjogYW55KSB7XG4gICAgaWYgKCF0b2tlbiB8fCB0b2tlbiAhPT0gT2JqZWN0KHRva2VuKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbmNvcnJlY3QgdXBsb2FkIHRva2VuLiBNdXN0IGJlIGluc3RhbmNlIG9mIG9iamVjdCcpO1xuICAgIH1cblxuICAgIHRva2VuLnBhdXNlID0gKCkgPT4gdGhpcy51cGxvYWRlci5wYXVzZSgpO1xuICAgIHRva2VuLnJlc3VtZSA9ICgpID0+IHRoaXMudXBsb2FkZXIucmVzdW1lKCk7XG4gICAgdG9rZW4uY2FuY2VsID0gKCkgPT4gdGhpcy51cGxvYWRlci5hYm9ydCgpO1xuXG4gICAgcmV0dXJuIHRva2VuO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgc2VjdXJpdHkgdG8gdXBsb2FkZXIgaW5zdGFuY2VcbiAgICpcbiAgICogQHBhcmFtIHtTZWN1cml0eX0gc2VjdXJpdHlcbiAgICogQG1lbWJlcm9mIFVwbG9hZFxuICAgKi9cbiAgcHVibGljIHNldFNlY3VyaXR5KHNlY3VyaXR5OiBTZWN1cml0eSkge1xuICAgIHRoaXMudXBsb2FkZXIuc2V0U2VjdXJpdHkoc2VjdXJpdHkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB1cGxvYWQgdGFnc1xuICAgKlxuICAgKiBAcGFyYW0ge1RhZ3N9IHRhZ3NcbiAgICogQG1lbWJlcm9mIFVwbG9hZFxuICAgKi9cbiAgcHVibGljIHNldFVwbG9hZFRhZ3ModGFnczogVXBsb2FkVGFncykge1xuICAgIHRoaXMudXBsb2FkZXIuc2V0VXBsb2FkVGFncyh0YWdzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGxvYWQgc2luZ2xlIGZpbGVcbiAgICpcbiAgICogQHBhcmFtIHsoSW5wdXRGaWxlKX0gZmlsZVxuICAgKiBAcGFyYW0geyhzdHJpbmcpfSBhbHRUZXh0XG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGFueT59XG4gICAqIEBtZW1iZXJvZiBVcGxvYWRcbiAgICovXG4gIGFzeW5jIHVwbG9hZChpbnB1dDogSW5wdXRGaWxlLCBhbHRUZXh0Pzogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcblxuICAgIGNvbnN0IGYgPSBhd2FpdCBnZXRGaWxlKGlucHV0LCB0aGlzLnNhbml0aXplck9wdGlvbnMpO1xuICAgIGYuY3VzdG9tTmFtZSA9IHRoaXMub3ZlcnJpZGVGaWxlTmFtZTtcbiAgICBpZiAoYWx0VGV4dCkge1xuICAgICAgZi5hbHQgPSBhbHRUZXh0O1xuICAgIH1cblxuICAgIHRoaXMudXBsb2FkZXIuYWRkRmlsZShmKTtcblxuICAgIHRoaXMuc3RhcnRQcm9ncmVzc0ludGVydmFsKCk7XG4gICAgY29uc3QgcmVzID0gKGF3YWl0IHRoaXMudXBsb2FkZXIuZXhlY3V0ZSgpKS5zaGlmdCgpO1xuICAgIHRoaXMuc3RvcFByb2dyZXNzSW50ZXJ2YWwoKTtcblxuICAgIHRoaXMudXBsb2FkZXIucmVtb3ZlQWxsTGlzdGVuZXJzKCk7XG5cbiAgICBpZiAocmVzLnN0YXR1cyA9PT0gRmlsZVN0YXRlLkZBSUxFRCkge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KHJlcyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwbG9hZCBtdWx0aXBsZSBmaWxlcyBhdCBvbmNlXG4gICAqXG4gICAqIEBwYXJhbSB7KElucHV0RmlsZVtdKX0gaW5wdXRcbiAgICogQHJldHVybnMge1Byb21pc2U8YW55Pn1cbiAgICogQG1lbWJlcm9mIFVwbG9hZFxuICAgKi9cbiAgYXN5bmMgbXVsdGl1cGxvYWQoaW5wdXQ6IElucHV0RmlsZVtdKTogUHJvbWlzZTxhbnk+IHtcbiAgICBmb3IgKGxldCBpIGluIGlucHV0KSB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgaWYgKCFpbnB1dC5oYXNPd25Qcm9wZXJ0eShpKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZiA9IGF3YWl0IGdldEZpbGUoaW5wdXRbaV0sIHRoaXMuc2FuaXRpemVyT3B0aW9ucyk7XG4gICAgICBmLmN1c3RvbU5hbWUgPSB0aGlzLm92ZXJyaWRlRmlsZU5hbWU7XG4gICAgICB0aGlzLnVwbG9hZGVyLmFkZEZpbGUoZik7XG4gICAgfVxuXG4gICAgdGhpcy5zdGFydFByb2dyZXNzSW50ZXJ2YWwoKTtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLnVwbG9hZGVyLmV4ZWN1dGUoKTtcbiAgICB0aGlzLnN0b3BQcm9ncmVzc0ludGVydmFsKCk7XG5cbiAgICB0aGlzLnVwbG9hZGVyLnJlbW92ZUFsbExpc3RlbmVycygpO1xuXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJVbiBwcm9ncmVzcyB3aXRoIHVzZXJkZWZpbmVkIGludGVydmFsXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEByZXR1cm5zXG4gICAqIEBtZW1iZXJvZiBVcGxvYWRcbiAgICovXG4gIHByaXZhdGUgc3RhcnRQcm9ncmVzc0ludGVydmFsKCkge1xuICAgIGlmICh0eXBlb2YgdGhpcy5vcHRpb25zLm9uUHJvZ3Jlc3MgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnByb2dyZXNzSW50ZXJ2YWxIYW5kbGVyID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgdGhpcy5vcHRpb25zLm9uUHJvZ3Jlc3ModGhpcy5sYXN0UHJvZ3Jlc3MpO1xuICAgIH0sIHRoaXMub3B0aW9ucy5wcm9ncmVzc0ludGVydmFsIHx8IERFRkFVTFRfUFJPR1JFU1NfSU5URVJWQUwpO1xuXG4gICAgdGhpcy5vcHRpb25zLm9uUHJvZ3Jlc3ModGhpcy5sYXN0UHJvZ3Jlc3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0b3AgcHJvZ3Jlc3MgaW50ZXJ2YWwgYWZ0ZXIgdXBsb2FkXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBtZW1iZXJvZiBVcGxvYWRcbiAgICovXG4gIHByaXZhdGUgc3RvcFByb2dyZXNzSW50ZXJ2YWwoKSB7XG4gICAgY2xlYXJJbnRlcnZhbCh0aGlzLnByb2dyZXNzSW50ZXJ2YWxIYW5kbGVyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgdXBsb2FkIGludGVydmFsIGFuZCBub3JtYWxpemUgdmFsdWVzXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBwYXJhbSB7UHJvZ3Jlc3NFdmVudH0gcHJvZ3Jlc3NcbiAgICogQG1lbWJlcm9mIFVwbG9hZFxuICAgKi9cbiAgcHJpdmF0ZSBoYW5kbGVQcm9ncmVzcyhwcm9ncmVzczogUHJvZ3Jlc3NFdmVudCkge1xuICAgIC8vIGdldCBtYXggcHJvZ3Jlc3MgZGF0YSB0byBhdm9pZCBwcm9ncmVzcyBqdW1wcyBvbiBhbnkgcGFydCBlcnJvclxuICAgIHByb2dyZXNzID0gbm9ybWFsaXplUHJvZ3Jlc3MocHJvZ3Jlc3MsIHRoaXMubGFzdFByb2dyZXNzKTtcblxuICAgIGlmICh0aGlzLmxhc3RQcm9ncmVzcy5maWxlcykge1xuICAgICAgZm9yIChsZXQgaSBpbiBwcm9ncmVzcy5maWxlcykge1xuICAgICAgICBpZiAodGhpcy5sYXN0UHJvZ3Jlc3MuZmlsZXNbaV0pIHtcbiAgICAgICAgICBwcm9ncmVzcy5maWxlc1tpXSA9IG5vcm1hbGl6ZVByb2dyZXNzKHByb2dyZXNzLmZpbGVzW2ldLCB0aGlzLmxhc3RQcm9ncmVzcy5maWxlc1tpXSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmxhc3RQcm9ncmVzcyA9IHByb2dyZXNzO1xuICB9XG59XG4iXX0=
289
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvYXBpL3VwbG9hZC91cGxvYWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7Ozs7R0FlRzs7OztBQUVILCtDQUE2QztBQUU3QyxxQ0FBNEM7QUFDNUMsOERBQWdGO0FBSWhGLDJDQUFrRDtBQUdsRCw0Q0FBd0Y7QUFReEYsSUFBTSx5QkFBeUIsR0FBRyxJQUFJLENBQUM7QUFFdkMsSUFBTSxpQkFBaUIsR0FBRyxVQUFDLE9BQU8sRUFBRSxJQUFJO0lBQ3RDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuRSxPQUFPLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFFekUsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyxDQUFDO0FBRUY7Ozs7O0dBS0c7QUFDSDtJQUE0QixrQ0FBWTtJQTJDdEMsZ0JBQTZCLE9BQTJCLEVBQVUsWUFBcUM7UUFBMUUsd0JBQUEsRUFBQSxZQUEyQjtRQUFVLDZCQUFBLEVBQUEsaUJBQXFDO1FBQXZHLFlBQ0UsaUJBQU8sU0FvRVI7UUFyRTRCLGFBQU8sR0FBUCxPQUFPLENBQW9CO1FBQVUsa0JBQVksR0FBWixZQUFZLENBQXlCO1FBUi9GLGtCQUFZLEdBQWtCO1lBQ3BDLFVBQVUsRUFBRSxDQUFDO1lBQ2IsWUFBWSxFQUFFLENBQUM7U0FDaEIsQ0FBQztRQVFBLHlFQUF5RTtRQUN6RSxLQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRXBELElBQU0sV0FBVyxHQUFHLElBQUEscUJBQVksRUFBQywyQkFBa0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTlELElBQUksV0FBVyxDQUFD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L1JZLHdCQUFNIiwiZmlsZSI6ImxpYi9hcGkvdXBsb2FkL3VwbG9hZC5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTkgYnkgRmlsZXN0YWNrLlxuICogU29tZSByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ2V2ZW50ZW1pdHRlcjMnO1xuaW1wb3J0IHsgU2Vzc2lvbiwgU2VjdXJpdHkgfSBmcm9tICcuLi8uLi9jbGllbnQnO1xuaW1wb3J0IHsgUzNVcGxvYWRlciB9IGZyb20gJy4vdXBsb2FkZXJzL3MzJztcbmltcG9ydCB7IEZpbGVzdGFja0Vycm9yLCBGaWxlc3RhY2tFcnJvclR5cGUgfSBmcm9tICcuLy4uLy4uLy4uL2ZpbGVzdGFja19lcnJvcic7XG5pbXBvcnQgeyBTYW5pdGl6ZU9wdGlvbnMgfSBmcm9tICcuLy4uLy4uL3V0aWxzJztcblxuaW1wb3J0IHsgVXBsb2FkT3B0aW9ucywgU3RvcmVVcGxvYWRPcHRpb25zIH0gZnJvbSAnLi4vdXBsb2FkL3R5cGVzJztcbmltcG9ydCB7IGdldEZpbGUsIElucHV0RmlsZSB9IGZyb20gJy4vZmlsZV90b29scyc7XG5pbXBvcnQgeyBGaWxlU3RhdGUsIFVwbG9hZFRhZ3MgfSBmcm9tICcuL2ZpbGUnO1xuaW1wb3J0IHsgVXBsb2FkTW9kZSB9IGZyb20gJy4vdXBsb2FkZXJzL2Fic3RyYWN0JztcbmltcG9ydCB7IGdldFZhbGlkYXRvciwgVXBsb2FkUGFyYW1zU2NoZW1hLCBTdG9yZVBhcmFtc1NjaGVtYSB9IGZyb20gJy4vLi4vLi4vLi4vc2NoZW1hJztcblxuZXhwb3J0IGludGVyZmFjZSBQcm9ncmVzc0V2ZW50IHtcbiAgdG90YWxQZXJjZW50OiBudW1iZXI7XG4gIHRvdGFsQnl0ZXM6IG51bWJlcjtcbiAgZmlsZXM/OiB7IChrZXk6IHN0cmluZyk6IFByb2dyZXNzRXZlbnQgfTtcbn1cblxuY29uc3QgREVGQVVMVF9QUk9HUkVTU19JTlRFUlZBTCA9IDEwMDA7XG5cbmNvbnN0IG5vcm1hbGl6ZVByb2dyZXNzID0gKGN1cnJlbnQsIGxhc3QpID0+IHtcbiAgY3VycmVudC50b3RhbEJ5dGVzID0gTWF0aC5tYXgoY3VycmVudC50b3RhbEJ5dGVzLCBsYXN0LnRvdGFsQnl0ZXMpO1xuICBjdXJyZW50LnRvdGFsUGVyY2VudCA9IE1hdGgubWF4KGN1cnJlbnQudG90YWxQZXJjZW50LCBsYXN0LnRvdGFsUGVyY2VudCk7XG5cbiAgcmV0dXJuIGN1cnJlbnQ7XG59O1xuXG4vKipcbiAqIFVwbG9hZGVyIG1haW4gY2xhc3MgZm9yIG5vdyBpdHMgc3VwcG9ydGluZyBvbmx5IHMzIHVwbG9hZCB0eXBlXG4gKlxuICogQGV4cG9ydFxuICogQGNsYXNzIFVwbG9hZFxuICovXG5leHBvcnQgY2xhc3MgVXBsb2FkIGV4dGVuZHMgRXZlbnRFbWl0dGVyIHtcblxuICAvKipcbiAgICogVXBsb2FkZXIgaW5zdGFuY2VcbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHR5cGUge1MzVXBsb2FkZXJ9XG4gICAqIEBtZW1iZXJvZiBVcGxvYWRcbiAgICovXG4gIHByaXZhdGUgdXBsb2FkZXI6IFMzVXBsb2FkZXI7XG5cbiAgLyoqXG4gICAqIFNob3VsZCB3ZSBvdmVyd3JpdGUgZmlsZSBuYW1lXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqIEBtZW1iZXJvZiBVcGxvYWRcbiAgICovXG4gIHByaXZhdGUgb3ZlcnJpZGVGaWxlTmFtZTtcblxuICAvKipcbiAgICogTWltZXR5cGUgb2YgdGhlIGZpbGVcbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQG1lbWJlcm9mIFVwbG9hZFxuICAgKi9cbiAgcHJpdmF0ZSBtaW1ldHlwZTtcblxuICAvKipcbiAgICogQWx0IFRleHQgb2YgdGhlIGZpbGVcbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQG1lbWJlcm9mIFVwbG9hZFxuICAgKi9cbiAgcHJpdmF0ZSBhbHRUZXh0O1xuXG4gIHByaXZhdGUgbGFzdFByb2dyZXNzOiBQcm9ncmVzc0V2ZW50ID0ge1xuICAgIHRvdGFsQnl0ZXM6IDAsXG4gICAgdG90YWxQZXJjZW50OiAwLFxuICB9O1xuXG4gIHByaXZhdGUgcHJvZ3Jlc3NJbnRlcnZhbEhhbmRsZXI7XG4gIHByaXZhdGUgc2FuaXRpemVyT3B0aW9uczogU2FuaXRpemVPcHRpb25zO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogVXBsb2FkT3B0aW9ucyA9IHt9LCBwcml2YXRlIHN0b3JlT3B0aW9uczogU3RvcmVVcGxvYWRPcHRpb25zID0ge30pIHtcbiAgICBzdXBlcigpO1xuXG4gICAgLy8gZG8gbm90IGRlbGV0ZSBmaWxlbmFtZSBmcm9tIG9yaWdpbmFsIG9wdGlvbnMgcmVmZXJlbmNlIC0gY29weSBpdCBmaXJzdFxuICAgIHRoaXMuc3RvcmVPcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgc3RvcmVPcHRpb25zKTtcblxuICAgIGNvbnN0IHZhbGlkYXRlUmVzID0gZ2V0VmFsaWRhdG9yKFVwbG9hZFBhcmFtc1NjaGVtYSkob3B0aW9ucyk7XG5cbiAgICBpZiAodmFsaWRhdGVSZXMuZXJyb3JzLmxlbmd0aCkge1xuICAgICAgdGhyb3cgbmV3IEZpbGVzdGFja0Vycm9yKGBJbnZhbGlkIHVwbG9hZCBwYXJhbXNgLCB2YWxpZGF0ZVJlcy5lcnJvcnMsIEZpbGVzdGFja0Vycm9yVHlwZS5WQUxJREFUSU9OKTtcbiAgICB9XG5cbiAgICBjb25zdCBzdG9yZVZhbGlkYXRlUmVzID0gZ2V0VmFsaWRhdG9yKFN0b3JlUGFyYW1zU2NoZW1hKShzdG9yZU9wdGlvbnMpO1xuICAgIGlmIChzdG9yZVZhbGlkYXRlUmVzLmVycm9ycy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBGaWxlc3RhY2tFcnJvcihgSW52YWxpZCBzdG9yZSB1cGxvYWQgcGFyYW1zYCwgc3RvcmVWYWxpZGF0ZVJlcy5lcnJvcnMsIEZpbGVzdGFja0Vycm9yVHlwZS5WQUxJREFUSU9OKTtcbiAgICB9XG5cbiAgICBpZiAoc3RvcmVPcHRpb25zLmZpbGVuYW1lKSB7XG4gICAgICB0aGlzLm92ZXJyaWRlRmlsZU5hbWUgPSBzdG9yZU9wdGlvbnMuZmlsZW5hbWU7XG4gICAgICBkZWxldGUgdGhpcy5zdG9yZU9wdGlvbnMuZmlsZW5hbWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc3RvcmVPcHRpb25zLnNhbml0aXplcikge1xuICAgICAgdGhpcy5zYW5pdGl6ZXJPcHRpb25zID0gdGhpcy5zdG9yZU9wdGlvbnMuc2FuaXRpemVyO1xuICAgICAgZGVsZXRlIHRoaXMuc3RvcmVPcHRpb25zLnNhbml0aXplcjtcbiAgICB9XG5cbiAgICBpZiAoc3RvcmVPcHRpb25zLmFsdFRleHQpIHtcbiAgICAgIHRoaXMuYWx0VGV4dCA9IHN0b3JlT3B0aW9ucy5hbHRUZXh0O1xuICAgICAgZGVsZXRlIHRoaXMuc3RvcmVPcHRpb25zLmFsdFRleHQ7XG4gICAgfVxuXG4gICAgaWYgKHN0b3JlT3B0aW9ucy5taW1ldHlwZSkge1xuICAgICAgdGhpcy5taW1ldHlwZSA9IHN0b3JlT3B0aW9ucy5taW1ldHlwZTtcbiAgICAgIGRlbGV0ZSB0aGlzLnN0b3JlT3B0aW9ucy5taW1ldHlwZTtcbiAgICB9XG5cbiAgICB0aGlzLnVwbG9hZGVyID0gbmV3IFMzVXBsb2FkZXIodGhpcy5zdG9yZU9wdGlvbnMsIG9wdGlvbnMuY29uY3VycmVuY3kpO1xuXG4gICAgdGhpcy51cGxvYWRlci5zZXRSZXRyeUNvbmZpZyh7XG4gICAgICByZXRyeTogb3B0aW9ucy5yZXRyeSB8fCAxMCxcbiAgICAgIG9uUmV0cnk6IG9wdGlvbnMub25SZXRyeSwgLy8gQHRvZG8gYmluZCBmaWxlIHRvIHJldHJ5IGluIHMzIHVwbG9hZGVyXG4gICAgICByZXRyeUZhY3Rvcjogb3B0aW9ucy5yZXRyeUZhY3RvciB8fCAyLFxuICAgICAgcmV0cnlNYXhUaW1lOiBvcHRpb25zLnJldHJ5TWF4VGltZSB8fCAxNTAwMCxcbiAgICB9KTtcblxuICAgIHRoaXMudXBsb2FkZXIuc2V0VGltZW91dChvcHRpb25zLnRpbWVvdXQgfHwgMTIwMDAwKTtcblxuICAgIGlmIChvcHRpb25zLnBhcnRTaXplKSB7XG4gICAgICB0aGlzLnVwbG9hZGVyLnNldFBhcnRTaXplKG9wdGlvbnMucGFydFNpemUpO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmludGVsbGlnZW50Q2h1bmtTaXplKSB7XG4gICAgICB0aGlzLnVwbG9hZGVyLnNldEludGVsbGlnZW50Q2h1bmtTaXplKG9wdGlvbnMuaW50ZWxsaWdlbnRDaHVua1NpemUpO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmRpc2FibGVJbnRlZ3JpdHlDaGVjaykge1xuICAgICAgdGhpcy51cGxvYWRlci5zZXRJbnRlZ3JpdHlDaGVjayhmYWxzZSk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuaW50ZWxsaWdlbnQpIHtcbiAgICAgIHRoaXMudXBsb2FkZXIuc2V0VXBsb2FkTW9kZShvcHRpb25zLmludGVsbGlnZW50ID09PSAnZmFsbGJhY2snID8gVXBsb2FkTW9kZS5GQUxMQkFDSyA6IFVwbG9hZE1vZGUuSU5URUxMSUdFTlQpO1xuICAgIH1cblxuICAgIHRoaXMudXBsb2FkZXIuc2V0VXBsb2FkVGFncyhvcHRpb25zLnRhZ3MpO1xuXG4gICAgdGhpcy51cGxvYWRlci5vbignc3RhcnQnLCAoKSA9PiB0aGlzLmVtaXQoJ3N0YXJ0JykpO1xuICAgIHRoaXMudXBsb2FkZXIub24oJ2Vycm9yJywgKGUpID0+IHRoaXMuZW1pdCgnZXJyb3InLCBlKSk7XG4gICAgdGhpcy51cGxvYWRlci5vbigncHJvZ3Jlc3MnLCB0aGlzLmhhbmRsZVByb2dyZXNzLmJpbmQodGhpcykpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBzZXNzaW9uIG9iamVjdCB0byB1cGxvYWRlclxuICAgKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKiBAcGFyYW0ge1Nlc3Npb259IHNlc3Npb25cbiAgICogQG1lbWJlcm9mIFVwbG9hZFxuICAgKi9cbiAgc2V0U2Vzc2lvbihzZXNzaW9uOiBTZXNzaW9uKSB7XG4gICAgdGhpcy51cGxvYWRlci5zZXRBcGlrZXkoc2Vzc2lvbi5hcGlrZXkpO1xuXG4gICAgaWYgKHNlc3Npb24ucG9saWN5ICYmIHNlc3Npb24uc2lnbmF0dXJlKSB7XG4gICAgICB0aGlzLnVwbG9hZGVyLnNldFNlY3VyaXR5KHtcbiAgICAgICAgcG9saWN5OiBzZXNzaW9uLnBvbGljeSxcbiAgICAgICAgc2lnbmF0dXJlOiBzZXNzaW9uLnNpZ25hdHVyZSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMudXBsb2FkZXIuc2V0VXJsKHNlc3Npb24udXJscy51cGxvYWRBcGlVcmwpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCBjYW5jZWwgdG9rZW4gdG8gY29udHJvbGwgdXBsb2FkIGZsb3dcbiAgICpcbiAgICogQHBhcmFtIHsqfSB0b2tlblxuICAgKiBAcmV0dXJuc1xuICAgKiBAbWVtYmVyb2YgVXBsb2FkXG4gICAqL1xuICBwdWJsaWMgc2V0VG9rZW4odG9rZW46IGFueSkge1xuICAgIGlmICghdG9rZW4gfHwgdG9rZW4gIT09IE9iamVjdCh0b2tlbikpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSW5jb3JyZWN0IHVwbG9hZCB0b2tlbi4gTXVzdCBiZSBpbnN0YW5jZSBvZiBvYmplY3QnKTtcbiAgICB9XG5cbiAgICB0b2tlbi5wYXVzZSA9ICgpID0+IHRoaXMudXBsb2FkZXIucGF1c2UoKTtcbiAgICB0b2tlbi5yZXN1bWUgPSAoKSA9PiB0aGlzLnVwbG9hZGVyLnJlc3VtZSgpO1xuICAgIHRva2VuLmNhbmNlbCA9ICgpID0+IHRoaXMudXBsb2FkZXIuYWJvcnQoKTtcblxuICAgIHJldHVybiB0b2tlbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHNlY3VyaXR5IHRvIHVwbG9hZGVyIGluc3RhbmNlXG4gICAqXG4gICAqIEBwYXJhbSB7U2VjdXJpdHl9IHNlY3VyaXR5XG4gICAqIEBtZW1iZXJvZiBVcGxvYWRcbiAgICovXG4gIHB1YmxpYyBzZXRTZWN1cml0eShzZWN1cml0eTogU2VjdXJpdHkpIHtcbiAgICB0aGlzLnVwbG9hZGVyLnNldFNlY3VyaXR5KHNlY3VyaXR5KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXQgdXBsb2FkIHRhZ3NcbiAgICpcbiAgICogQHBhcmFtIHtUYWdzfSB0YWdzXG4gICAqIEBtZW1iZXJvZiBVcGxvYWRcbiAgICovXG4gIHB1YmxpYyBzZXRVcGxvYWRUYWdzKHRhZ3M6IFVwbG9hZFRhZ3MpIHtcbiAgICB0aGlzLnVwbG9hZGVyLnNldFVwbG9hZFRhZ3ModGFncyk7XG4gIH1cblxuICAvKipcbiAgICogVXBsb2FkIHNpbmdsZSBmaWxlXG4gICAqXG4gICAqIEBwYXJhbSB7KElucHV0RmlsZSl9IGZpbGVcbiAgICogQHJldHVybnMge1Byb21pc2U8YW55Pn1cbiAgICogQG1lbWJlcm9mIFVwbG9hZFxuICAgKi9cbiAgYXN5bmMgdXBsb2FkKGlucHV0OiBJbnB1dEZpbGUpOiBQcm9taXNlPGFueT4ge1xuXG4gICAgY29uc3QgZiA9IGF3YWl0IGdldEZpbGUoaW5wdXQsIHRoaXMuc2FuaXRpemVyT3B0aW9ucywgdGhpcy5taW1ldHlwZSk7XG4gICAgZi5jdXN0b21OYW1lID0gdGhpcy5vdmVycmlkZUZpbGVOYW1lO1xuXG4gICAgaWYgKHRoaXMuYWx0VGV4dCkge1xuICAgICAgZi5hbHQgPSB0aGlzLmFsdFRleHRcbiAgICB9XG5cbiAgICB0aGlzLnVwbG9hZGVyLmFkZEZpbGUoZik7XG5cbiAgICB0aGlzLnN0YXJ0UHJvZ3Jlc3NJbnRlcnZhbCgpO1xuICAgIGNvbnN0IHJlcyA9IChhd2FpdCB0aGlzLnVwbG9hZGVyLmV4ZWN1dGUoKSkuc2hpZnQoKTtcbiAgICB0aGlzLnN0b3BQcm9ncmVzc0ludGVydmFsKCk7XG5cbiAgICB0aGlzLnVwbG9hZGVyLnJlbW92ZUFsbExpc3RlbmVycygpO1xuXG4gICAgaWYgKHJlcy5zdGF0dXMgPT09IEZpbGVTdGF0ZS5GQUlMRUQpIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdChyZXMpO1xuICAgIH1cblxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocmVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGxvYWQgbXVsdGlwbGUgZmlsZXMgYXQgb25jZVxuICAgKlxuICAgKiBAcGFyYW0geyhJbnB1dEZpbGVbXSl9IGlucHV0XG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGFueT59XG4gICAqIEBtZW1iZXJvZiBVcGxvYWRcbiAgICovXG4gIGFzeW5jIG11bHRpdXBsb2FkKGlucHV0OiBJbnB1dEZpbGVbXSk6IFByb21pc2U8YW55PiB7XG4gICAgZm9yIChsZXQgaSBpbiBpbnB1dCkge1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgIGlmICghaW5wdXQuaGFzT3duUHJvcGVydHkoaSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGYgPSBhd2FpdCBnZXRGaWxlKGlucHV0W2ldLCB0aGlzLnNhbml0aXplck9wdGlvbnMsIHRoaXMubWltZXR5cGUpO1xuICAgICAgZi5jdXN0b21OYW1lID0gdGhpcy5vdmVycmlkZUZpbGVOYW1lO1xuXG4gICAgICBpZiAodGhpcy5hbHRUZXh0KSB7XG4gICAgICAgIGYuYWx0ID0gdGhpcy5hbHRUZXh0XG4gICAgICB9XG5cbiAgICAgIHRoaXMudXBsb2FkZXIuYWRkRmlsZShmKTtcbiAgICB9XG5cbiAgICB0aGlzLnN0YXJ0UHJvZ3Jlc3NJbnRlcnZhbCgpO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMudXBsb2FkZXIuZXhlY3V0ZSgpO1xuICAgIHRoaXMuc3RvcFByb2dyZXNzSW50ZXJ2YWwoKTtcblxuICAgIHRoaXMudXBsb2FkZXIucmVtb3ZlQWxsTGlzdGVuZXJzKCk7XG5cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlcyk7XG4gIH1cblxuICAvKipcbiAgICogUlVuIHByb2dyZXNzIHdpdGggdXNlcmRlZmluZWQgaW50ZXJ2YWxcbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHJldHVybnNcbiAgICogQG1lbWJlcm9mIFVwbG9hZFxuICAgKi9cbiAgcHJpdmF0ZSBzdGFydFByb2dyZXNzSW50ZXJ2YWwoKSB7XG4gICAgaWYgKHR5cGVvZiB0aGlzLm9wdGlvbnMub25Qcm9ncmVzcyAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucHJvZ3Jlc3NJbnRlcnZhbEhhbmRsZXIgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICB0aGlzLm9wdGlvbnMub25Qcm9ncmVzcyh0aGlzLmxhc3RQcm9ncmVzcyk7XG4gICAgfSwgdGhpcy5vcHRpb25zLnByb2dyZXNzSW50ZXJ2YWwgfHwgREVGQVVMVF9QUk9HUkVTU19JTlRFUlZBTCk7XG5cbiAgICB0aGlzLm9wdGlvbnMub25Qcm9ncmVzcyh0aGlzLmxhc3RQcm9ncmVzcyk7XG4gIH1cblxuICAvKipcbiAgICogU3RvcCBwcm9ncmVzcyBpbnRlcnZhbCBhZnRlciB1cGxvYWRcbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQG1lbWJlcm9mIFVwbG9hZFxuICAgKi9cbiAgcHJpdmF0ZSBzdG9wUHJvZ3Jlc3NJbnRlcnZhbCgpIHtcbiAgICBjbGVhckludGVydmFsKHRoaXMucHJvZ3Jlc3NJbnRlcnZhbEhhbmRsZXIpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSB1cGxvYWQgaW50ZXJ2YWwgYW5kIG5vcm1hbGl6ZSB2YWx1ZXNcbiAgICpcbiAgICogQHByaXZhdGVcbiAgICogQHBhcmFtIHtQcm9ncmVzc0V2ZW50fSBwcm9ncmVzc1xuICAgKiBAbWVtYmVyb2YgVXBsb2FkXG4gICAqL1xuICBwcml2YXRlIGhhbmRsZVByb2dyZXNzKHByb2dyZXNzOiBQcm9ncmVzc0V2ZW50KSB7XG4gICAgLy8gZ2V0IG1heCBwcm9ncmVzcyBkYXRhIHRvIGF2b2lkIHByb2dyZXNzIGp1bXBzIG9uIGFueSBwYXJ0IGVycm9yXG4gICAgcHJvZ3Jlc3MgPSBub3JtYWxpemVQcm9ncmVzcyhwcm9ncmVzcywgdGhpcy5sYXN0UHJvZ3Jlc3MpO1xuXG4gICAgaWYgKHRoaXMubGFzdFByb2dyZXNzLmZpbGVzKSB7XG4gICAgICBmb3IgKGxldCBpIGluIHByb2dyZXNzLmZpbGVzKSB7XG4gICAgICAgIGlmICh0aGlzLmxhc3RQcm9ncmVzcy5maWxlc1tpXSkge1xuICAgICAgICAgIHByb2dyZXNzLmZpbGVzW2ldID0gbm9ybWFsaXplUHJvZ3Jlc3MocHJvZ3Jlc3MuZmlsZXNbaV0sIHRoaXMubGFzdFByb2dyZXNzLmZpbGVzW2ldKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMubGFzdFByb2dyZXNzID0gcHJvZ3Jlc3M7XG4gIH1cbn1cbiJdfQ==