@bigbinary/neeto-image-uploader-frontend 2.3.0 → 2.3.2

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 (57) hide show
  1. package/app/javascript/src/translations/en.json +2 -2
  2. package/dist/AssetLibrary.js +53 -32
  3. package/dist/AssetLibrary.js.map +1 -1
  4. package/dist/BasicImageUploader.js +3 -3
  5. package/dist/ImageUploader.js +34 -16
  6. package/dist/ImageUploader.js.map +1 -1
  7. package/dist/{ImageWithFallback-a45f3f4a.js → ImageWithFallback-1d3c6c16.js} +3 -3
  8. package/dist/{ImageWithFallback-a45f3f4a.js.map → ImageWithFallback-1d3c6c16.js.map} +1 -1
  9. package/dist/{ImageWithFallback-aacc383b.js → ImageWithFallback-da061171.js} +3 -3
  10. package/dist/{ImageWithFallback-aacc383b.js.map → ImageWithFallback-da061171.js.map} +1 -1
  11. package/dist/cjs/AssetLibrary.js +60 -39
  12. package/dist/cjs/AssetLibrary.js.map +1 -1
  13. package/dist/cjs/BasicImageUploader.js +3 -3
  14. package/dist/cjs/ImageUploader.js +34 -16
  15. package/dist/cjs/ImageUploader.js.map +1 -1
  16. package/dist/cjs/hooks.js +4 -3
  17. package/dist/cjs/hooks.js.map +1 -1
  18. package/dist/cjs/index.js +8 -5
  19. package/dist/cjs/index.js.map +1 -1
  20. package/dist/cjs/utils.js +14 -0
  21. package/dist/cjs/utils.js.map +1 -0
  22. package/dist/hooks.js +4 -3
  23. package/dist/hooks.js.map +1 -1
  24. package/dist/{index-7f064861.js → index-69559a7a.js} +3 -1
  25. package/dist/index-69559a7a.js.map +1 -0
  26. package/dist/{index-b9963255.js → index-c128d963.js} +3 -2
  27. package/dist/index-c128d963.js.map +1 -0
  28. package/dist/index.js +7 -5
  29. package/dist/index.js.map +1 -1
  30. package/dist/query-3c31bf92.js +14 -0
  31. package/dist/query-3c31bf92.js.map +1 -0
  32. package/dist/query-dcc7b81b.js +10 -0
  33. package/dist/query-dcc7b81b.js.map +1 -0
  34. package/dist/{useImageUploader-550a5fdc.js → useImageUploader-b78deb18.js} +74 -58
  35. package/dist/useImageUploader-b78deb18.js.map +1 -0
  36. package/dist/{useImageUploader-36a03350.js → useImageUploader-b93adc31.js} +74 -55
  37. package/dist/useImageUploader-b93adc31.js.map +1 -0
  38. package/dist/{useProfileImageUpload-837e76b8.js → useProfileImageUpload-085576e5.js} +4 -4
  39. package/dist/useProfileImageUpload-085576e5.js.map +1 -0
  40. package/dist/{useProfileImageUpload-f0088c2a.js → useProfileImageUpload-51ab47be.js} +4 -4
  41. package/dist/useProfileImageUpload-51ab47be.js.map +1 -0
  42. package/dist/{utils-88cce499.js → utils-2fc0a9dc.js} +5 -4
  43. package/dist/utils-2fc0a9dc.js.map +1 -0
  44. package/dist/{utils-96eacd77.js → utils-46caa3d3.js} +5 -4
  45. package/dist/utils-46caa3d3.js.map +1 -0
  46. package/dist/utils.js +10 -0
  47. package/dist/utils.js.map +1 -0
  48. package/package.json +29 -29
  49. package/types.d.ts +3 -0
  50. package/dist/index-7f064861.js.map +0 -1
  51. package/dist/index-b9963255.js.map +0 -1
  52. package/dist/useImageUploader-36a03350.js.map +0 -1
  53. package/dist/useImageUploader-550a5fdc.js.map +0 -1
  54. package/dist/useProfileImageUpload-837e76b8.js.map +0 -1
  55. package/dist/useProfileImageUpload-f0088c2a.js.map +0 -1
  56. package/dist/utils-88cce499.js.map +0 -1
  57. package/dist/utils-96eacd77.js.map +0 -1
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ var QUERY_KEYS = {
4
+ ASSETS_LIST: "neeto-image-uploader-images-list",
5
+ UNSPLASH_LIST: "neeto-image-uploader-unsplash-list"
6
+ };
7
+ var ASSETS_STALE_TIME = 900000; // 15 mins
8
+
9
+ var UNSPLASH_STALE_TIME = 900000;
10
+
11
+ exports.ASSETS_STALE_TIME = ASSETS_STALE_TIME;
12
+ exports.QUERY_KEYS = QUERY_KEYS;
13
+ exports.UNSPLASH_STALE_TIME = UNSPLASH_STALE_TIME;
14
+ //# sourceMappingURL=query-3c31bf92.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-3c31bf92.js","sources":["../app/javascript/src/constants/query.js"],"sourcesContent":["export const QUERY_KEYS = {\n ASSETS_LIST: \"neeto-image-uploader-images-list\",\n UNSPLASH_LIST: \"neeto-image-uploader-unsplash-list\",\n};\n\nexport const ASSETS_STALE_TIME = 900_000; // 15 mins\n\nexport const UNSPLASH_STALE_TIME = 900_000;\n"],"names":["QUERY_KEYS","ASSETS_LIST","UNSPLASH_LIST","ASSETS_STALE_TIME","UNSPLASH_STALE_TIME"],"mappings":";;AAAO,IAAMA,UAAU,GAAG;AACxBC,EAAAA,WAAW,EAAE,kCAAkC;AAC/CC,EAAAA,aAAa,EAAE,oCAAA;AACjB,EAAC;AAEYC,IAAAA,iBAAiB,GAAG,OAAQ;;AAElC,IAAMC,mBAAmB,GAAG;;;;;;"}
@@ -0,0 +1,10 @@
1
+ var QUERY_KEYS = {
2
+ ASSETS_LIST: "neeto-image-uploader-images-list",
3
+ UNSPLASH_LIST: "neeto-image-uploader-unsplash-list"
4
+ };
5
+ var ASSETS_STALE_TIME = 900000; // 15 mins
6
+
7
+ var UNSPLASH_STALE_TIME = 900000;
8
+
9
+ export { ASSETS_STALE_TIME as A, QUERY_KEYS as Q, UNSPLASH_STALE_TIME as U };
10
+ //# sourceMappingURL=query-dcc7b81b.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-dcc7b81b.js","sources":["../app/javascript/src/constants/query.js"],"sourcesContent":["export const QUERY_KEYS = {\n ASSETS_LIST: \"neeto-image-uploader-images-list\",\n UNSPLASH_LIST: \"neeto-image-uploader-unsplash-list\",\n};\n\nexport const ASSETS_STALE_TIME = 900_000; // 15 mins\n\nexport const UNSPLASH_STALE_TIME = 900_000;\n"],"names":["QUERY_KEYS","ASSETS_LIST","UNSPLASH_LIST","ASSETS_STALE_TIME","UNSPLASH_STALE_TIME"],"mappings":"AAAO,IAAMA,UAAU,GAAG;AACxBC,EAAAA,WAAW,EAAE,kCAAkC;AAC/CC,EAAAA,aAAa,EAAE,oCAAA;AACjB,EAAC;AAEYC,IAAAA,iBAAiB,GAAG,OAAQ;;AAElC,IAAMC,mBAAmB,GAAG;;;;"}
@@ -1,8 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var index = require('./index-7f064861.js');
4
- require('@tanstack/react-query');
3
+ var index = require('./index-69559a7a.js');
4
+ var reactQuery = require('@tanstack/react-query');
5
5
  var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
6
+ var query = require('./query-3c31bf92.js');
6
7
  var activestorage = require('@rails/activestorage');
7
8
  var neetoCist = require('@bigbinary/neeto-cist');
8
9
  var initializers = require('@bigbinary/neeto-commons-frontend/initializers');
@@ -15,7 +16,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
15
16
  var Toastr__default = /*#__PURE__*/_interopDefaultLegacy(Toastr);
16
17
  var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
17
18
 
18
- var create = function create(payload) {
19
+ var create$1 = function create(payload) {
19
20
  return axios__default["default"].post("/api/direct_uploads", {
20
21
  blob: payload
21
22
  }, {
@@ -32,23 +33,15 @@ var update = function update(_ref) {
32
33
  });
33
34
  };
34
35
  var directUploadsApi = {
35
- create: create,
36
+ create: create$1,
36
37
  update: update
37
38
  };
38
39
 
39
- var QUERY_KEYS = {
40
- ASSETS_LIST: "neeto-image-uploader-images-list",
41
- UNSPLASH_LIST: "neeto-image-uploader-unsplash-list"
42
- };
43
- var ASSETS_STALE_TIME = 900000; // 15 mins
44
-
45
- var UNSPLASH_STALE_TIME = 900000;
46
-
47
40
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
48
41
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { index._defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
49
42
  var useCreateBlob = function useCreateBlob(options) {
50
43
  return reactUtils.useMutationWithInvalidation(directUploadsApi.create, _objectSpread({
51
- keysToInvalidate: [QUERY_KEYS.ASSETS_LIST]
44
+ keysToInvalidate: [query.QUERY_KEYS.ASSETS_LIST]
52
45
  }, options));
53
46
  };
54
47
 
@@ -463,8 +456,34 @@ try {
463
456
 
464
457
  var _regeneratorRuntime = /*@__PURE__*/getDefaultExportFromCjs(regenerator);
465
458
 
459
+ var create = function create(_ref) {
460
+ var formData = _ref.formData,
461
+ setUploadProgress = _ref.setUploadProgress;
462
+ return axios__default["default"].post("https://api.cloudflare.com/client/v4/accounts/".concat(initializers.globalProps.cloudFlareImage.accountId, "/images/v1"), formData, {
463
+ headers: {
464
+ // eslint-disable-next-line @bigbinary/neeto/hard-coded-strings-should-be-localized
465
+ Authorization: "Bearer ".concat(initializers.globalProps.cloudFlareImage.tokenId),
466
+ "Content-Type": "multipart/form-data"
467
+ },
468
+ onUploadProgress: function onUploadProgress(event) {
469
+ var percentComplete = Math.round(event.loaded / event.total * 100);
470
+ setUploadProgress(percentComplete);
471
+ },
472
+ transformRequestCase: false
473
+ });
474
+ };
475
+ var cloudflareImageApi = {
476
+ create: create
477
+ };
478
+
479
+ var useCloudFlareImage = function useCloudFlareImage() {
480
+ return reactQuery.useMutation({
481
+ mutationFn: cloudflareImageApi.create
482
+ });
483
+ };
484
+
466
485
  var generateASCIIFileName = function generateASCIIFileName(originalFileName) {
467
- if (/^[ -~]*$/.test(originalFileName)) {
486
+ if (/^[A-Za-z0-9-_.~]*$/.test(originalFileName)) {
468
487
  return originalFileName;
469
488
  }
470
489
  var extension = originalFileName.split(".").pop();
@@ -477,6 +496,8 @@ var useImageUploader = function useImageUploader(_ref) {
477
496
  _ref$setIsUploading = _ref.setIsUploading,
478
497
  setIsUploading = _ref$setIsUploading === void 0 ? neetoCist.noop : _ref$setIsUploading;
479
498
  var authenticationEndpoint = "".concat(window.location.origin, "/neeto_image_uploader_engine/imagekit/auth");
499
+ var _useCloudFlareImage = useCloudFlareImage(),
500
+ cloudFlareImage = _useCloudFlareImage.mutate;
480
501
  var handleUploadProgress = function handleUploadProgress(e, fileSize, setUploadProgress) {
481
502
  if (e.loaded <= fileSize) {
482
503
  var percent = Math.round(e.loaded / fileSize * 100);
@@ -508,16 +529,17 @@ var useImageUploader = function useImageUploader(_ref) {
508
529
  }
509
530
  };
510
531
  directUploadsApi.update(payload);
511
- onUploadComplete(ramda.mergeRight(neetoCist.keysToCamelCase(blob), {
532
+ var result = ramda.mergeRight(neetoCist.keysToCamelCase(blob), {
512
533
  url: blob.blob_url
513
- }));
534
+ });
535
+ onUploadComplete(result);
514
536
  setIsUploading(false);
515
537
  });
516
538
  } catch (error) {
517
539
  Toastr__default["default"].error(error);
518
540
  }
519
541
  };
520
- var productionUpload = /*#__PURE__*/function () {
542
+ var imageKitUpload = /*#__PURE__*/function () {
521
543
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(file, XHRProgress) {
522
544
  var imagekit, result;
523
545
  return _regeneratorRuntime.wrap(function _callee$(_context) {
@@ -555,55 +577,49 @@ var useImageUploader = function useImageUploader(_ref) {
555
577
  }
556
578
  }, _callee, null, [[0, 10]]);
557
579
  }));
558
- return function productionUpload(_x, _x2) {
580
+ return function imageKitUpload(_x, _x2) {
559
581
  return _ref2.apply(this, arguments);
560
582
  };
561
583
  }();
562
- var uploadFile = /*#__PURE__*/function () {
563
- var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(file, setUploadProgress) {
564
- var fileSize, XHRProgress;
565
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
566
- while (1) switch (_context2.prev = _context2.next) {
567
- case 0:
568
- if (!ramda.isNil(file)) {
569
- _context2.next = 2;
570
- break;
571
- }
572
- return _context2.abrupt("return");
573
- case 2:
574
- fileSize = file.size;
575
- XHRProgress = new XMLHttpRequest();
576
- XHRProgress.upload.addEventListener("progress", function (e) {
577
- handleUploadProgress(e, fileSize, setUploadProgress);
578
- });
579
- if (!index.IS_DEVELOPMENT_OR_HEROKU_ENV) {
580
- _context2.next = 9;
581
- break;
582
- }
583
- developmentUpload(file, setUploadProgress);
584
- _context2.next = 11;
585
- break;
586
- case 9:
587
- _context2.next = 11;
588
- return productionUpload(file, XHRProgress);
589
- case 11:
590
- case "end":
591
- return _context2.stop();
592
- }
593
- }, _callee2);
594
- }));
595
- return function uploadFile(_x3, _x4) {
596
- return _ref3.apply(this, arguments);
584
+ var cloudFlareImageUpload = function cloudFlareImageUpload(file, setUploadProgress) {
585
+ var metadata = {
586
+ organizationKey: initializers.globalProps.organization.publicApiKey,
587
+ appName: initializers.globalProps.appName
597
588
  };
598
- }();
589
+ var formData = new FormData();
590
+ formData.append("file", file);
591
+ formData.append("metadata", JSON.stringify(metadata));
592
+ setIsUploading(true);
593
+ cloudFlareImage({
594
+ formData: formData,
595
+ setUploadProgress: setUploadProgress
596
+ }, {
597
+ onSuccess: function onSuccess(_ref3) {
598
+ var result = _ref3.result;
599
+ return onUploadComplete(result, file);
600
+ },
601
+ onSettled: function onSettled() {
602
+ return setIsUploading(false);
603
+ }
604
+ });
605
+ };
606
+ var uploadFile = function uploadFile(file, setUploadProgress) {
607
+ if (ramda.isNil(file)) return;
608
+ var fileSize = file.size;
609
+ var XHRProgress = new XMLHttpRequest();
610
+ XHRProgress.upload.addEventListener("progress", function (e) {
611
+ handleUploadProgress(e, fileSize, setUploadProgress);
612
+ });
613
+ var productionUpload = function productionUpload() {
614
+ return initializers.globalProps.assetsUploaderService === index.CLOUD_FLARE ? cloudFlareImageUpload(file, setUploadProgress) : imageKitUpload(file, XHRProgress);
615
+ };
616
+ index.IS_DEVELOPMENT_OR_HEROKU_ENV ? developmentUpload(file, setUploadProgress) : productionUpload();
617
+ };
599
618
  return {
600
619
  uploadFile: uploadFile
601
620
  };
602
621
  };
603
622
 
604
- exports.ASSETS_STALE_TIME = ASSETS_STALE_TIME;
605
- exports.QUERY_KEYS = QUERY_KEYS;
606
- exports.UNSPLASH_STALE_TIME = UNSPLASH_STALE_TIME;
607
623
  exports._asyncToGenerator = _asyncToGenerator;
608
624
  exports._regeneratorRuntime = _regeneratorRuntime;
609
625
  exports.commonjsGlobal = commonjsGlobal;
@@ -613,4 +629,4 @@ exports.getAugmentedNamespace = getAugmentedNamespace;
613
629
  exports.getDefaultExportFromCjs = getDefaultExportFromCjs;
614
630
  exports.useCreateBlob = useCreateBlob;
615
631
  exports.useImageUploader = useImageUploader;
616
- //# sourceMappingURL=useImageUploader-550a5fdc.js.map
632
+ //# sourceMappingURL=useImageUploader-b78deb18.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useImageUploader-b78deb18.js","sources":["../app/javascript/src/apis/direct_uploads.js","../app/javascript/src/hooks/useDirectUploads.js","../node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/@babel/runtime/helpers/regeneratorRuntime.js","../node_modules/@babel/runtime/regenerator/index.js","../app/javascript/src/apis/cloudflare_image.js","../app/javascript/src/hooks/useCloudFlareImageApi.js","../app/javascript/src/hooks/utils.js","../app/javascript/src/hooks/useImageUploader.js"],"sourcesContent":["import axios from \"axios\";\n\nconst create = payload =>\n axios.post(\n \"/api/direct_uploads\",\n { blob: payload },\n { transformRequestCase: false }\n );\n\nconst update = ({ id, payload }) =>\n axios.put(\n `neeto_image_uploader_engine/api/direct_uploads/${id}`,\n { blob: payload },\n { transformRequestCase: false }\n );\nconst directUploadsApi = { create, update };\n\nexport default directUploadsApi;\n","import { useMutation } from \"@tanstack/react-query\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\n\nimport directUploadsApi from \"apis/direct_uploads\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nconst useCreateBlob = options =>\n useMutationWithInvalidation(directUploadsApi.create, {\n keysToInvalidate: [QUERY_KEYS.ASSETS_LIST],\n ...options,\n });\n\nconst useUpdateBlob = options =>\n useMutation({ mutationFn: directUploadsApi.update, ...options });\n\nexport { useCreateBlob, useUpdateBlob };\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n _next(undefined);\n });\n };\n}","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw new Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw new Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","import axios from \"axios\";\nimport { globalProps } from \"neetocommons/initializers\";\n\nconst create = ({ formData, setUploadProgress }) =>\n axios.post(\n `https://api.cloudflare.com/client/v4/accounts/${globalProps.cloudFlareImage.accountId}/images/v1`,\n formData,\n {\n headers: {\n // eslint-disable-next-line @bigbinary/neeto/hard-coded-strings-should-be-localized\n Authorization: `Bearer ${globalProps.cloudFlareImage.tokenId}`,\n \"Content-Type\": \"multipart/form-data\",\n },\n onUploadProgress: event => {\n const percentComplete = Math.round((event.loaded / event.total) * 100);\n setUploadProgress(percentComplete);\n },\n transformRequestCase: false,\n }\n );\n\nconst cloudflareImageApi = { create };\n\nexport default cloudflareImageApi;\n","import { useMutation } from \"@tanstack/react-query\";\n\nimport cloudflareImageApi from \"apis/cloudflare_image\";\n\nexport const useCloudFlareImage = () =>\n useMutation({ mutationFn: cloudflareImageApi.create });\n","export const generateASCIIFileName = originalFileName => {\n if (/^[A-Za-z0-9-_.~]*$/.test(originalFileName)) {\n return originalFileName;\n }\n\n const extension = originalFileName.split(\".\").pop();\n\n return `image.${extension}`;\n};\n","import { DirectUpload } from \"@rails/activestorage\";\nimport ImageKit from \"imagekit-javascript\";\nimport { keysToCamelCase, noop } from \"neetocist\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { Toastr } from \"neetoui\";\nimport { equals, isNil, mergeRight } from \"ramda\";\n\nimport directUploadsApi from \"apis/direct_uploads\";\nimport { CLOUD_FLARE, IS_DEVELOPMENT_OR_HEROKU_ENV } from \"src/constants\";\n\nimport { useCloudFlareImage } from \"./useCloudFlareImageApi\";\nimport { generateASCIIFileName } from \"./utils\";\n\nconst useImageUploader = ({\n onUploadComplete = noop,\n setIsUploading = noop,\n}) => {\n const authenticationEndpoint = `${window.location.origin}/neeto_image_uploader_engine/imagekit/auth`;\n\n const { mutate: cloudFlareImage } = useCloudFlareImage();\n\n const handleUploadProgress = (e, fileSize, setUploadProgress) => {\n if (e.loaded <= fileSize) {\n const percent = Math.round((e.loaded / fileSize) * 100);\n setUploadProgress(percent);\n }\n equals(e.loaded, e.total) && setUploadProgress(100);\n };\n\n const developmentUpload = (file, setUploadProgress) => {\n try {\n setIsUploading(true);\n const upload = new DirectUpload(file, \"/api/direct_uploads\", {\n directUploadWillStoreFileWithXHR: xhr => {\n xhr.upload.addEventListener(\"progress\", event => {\n const percentComplete = Math.round(\n (event.loaded / event.total) * 100\n );\n setUploadProgress(percentComplete);\n });\n },\n });\n\n upload.create((_, blob) => {\n const payload = {\n id: blob.signed_id,\n payload: {\n metadata: {\n organizationKey: globalProps.organization.publicApiKey,\n url: blob.blob_url,\n height: 200,\n width: 200,\n },\n },\n };\n directUploadsApi.update(payload);\n\n const result = mergeRight(keysToCamelCase(blob), {\n url: blob.blob_url,\n });\n\n onUploadComplete(result);\n setIsUploading(false);\n });\n } catch (error) {\n Toastr.error(error);\n }\n };\n\n const imageKitUpload = async (file, XHRProgress) => {\n try {\n const imagekit = new ImageKit(\n mergeRight(globalProps.imagekit, { authenticationEndpoint })\n );\n setIsUploading(true);\n const result = await imagekit.upload({\n xhr: XHRProgress,\n file,\n fileName: generateASCIIFileName(file.name),\n folder: globalProps.imagekit.folder,\n customMetadata: {\n organizationKey: globalProps.organization.publicApiKey,\n appName: globalProps.appName,\n },\n });\n\n onUploadComplete(result);\n setIsUploading(false);\n } catch (error) {\n Toastr.error(error);\n }\n };\n\n const cloudFlareImageUpload = (file, setUploadProgress) => {\n const metadata = {\n organizationKey: globalProps.organization.publicApiKey,\n appName: globalProps.appName,\n };\n\n const formData = new FormData();\n formData.append(\"file\", file);\n formData.append(\"metadata\", JSON.stringify(metadata));\n\n setIsUploading(true);\n\n cloudFlareImage(\n { formData, setUploadProgress },\n {\n onSuccess: ({ result }) => onUploadComplete(result, file),\n onSettled: () => setIsUploading(false),\n }\n );\n };\n\n const uploadFile = (file, setUploadProgress) => {\n if (isNil(file)) return;\n\n const fileSize = file.size;\n const XHRProgress = new XMLHttpRequest();\n XHRProgress.upload.addEventListener(\"progress\", e => {\n handleUploadProgress(e, fileSize, setUploadProgress);\n });\n\n const productionUpload = () =>\n globalProps.assetsUploaderService === CLOUD_FLARE\n ? cloudFlareImageUpload(file, setUploadProgress)\n : imageKitUpload(file, XHRProgress);\n\n IS_DEVELOPMENT_OR_HEROKU_ENV\n ? developmentUpload(file, setUploadProgress)\n : productionUpload();\n };\n\n return { uploadFile };\n};\n\nexport default useImageUploader;\n"],"names":["create","payload","axios","post","blob","transformRequestCase","update","_ref","id","put","concat","directUploadsApi","useCreateBlob","options","useMutationWithInvalidation","_objectSpread","keysToInvalidate","QUERY_KEYS","ASSETS_LIST","require$$0","formData","setUploadProgress","globalProps","cloudFlareImage","accountId","headers","Authorization","tokenId","onUploadProgress","event","percentComplete","Math","round","loaded","total","cloudflareImageApi","useCloudFlareImage","useMutation","mutationFn","generateASCIIFileName","originalFileName","test","extension","split","pop","useImageUploader","_ref$onUploadComplete","onUploadComplete","noop","_ref$setIsUploading","setIsUploading","authenticationEndpoint","window","location","origin","_useCloudFlareImage","mutate","handleUploadProgress","e","fileSize","percent","equals","developmentUpload","file","upload","DirectUpload","directUploadWillStoreFileWithXHR","xhr","addEventListener","_","signed_id","metadata","organizationKey","organization","publicApiKey","url","blob_url","height","width","result","mergeRight","keysToCamelCase","error","Toastr","imageKitUpload","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","XHRProgress","imagekit","wrap","_callee$","_context","prev","next","ImageKit","fileName","name","folder","customMetadata","appName","sent","t0","stop","_x","_x2","apply","arguments","cloudFlareImageUpload","FormData","append","JSON","stringify","onSuccess","_ref3","onSettled","uploadFile","isNil","size","XMLHttpRequest","productionUpload","assetsUploaderService","CLOUD_FLARE","IS_DEVELOPMENT_OR_HEROKU_ENV"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
- import { _ as _defineProperty, I as IS_DEVELOPMENT_OR_HEROKU_ENV, b as ImageKit } from './index-b9963255.js';
2
- import '@tanstack/react-query';
1
+ import { _ as _defineProperty, I as IS_DEVELOPMENT_OR_HEROKU_ENV, C as CLOUD_FLARE, b as ImageKit } from './index-c128d963.js';
2
+ import { useMutation } from '@tanstack/react-query';
3
3
  import { useMutationWithInvalidation } from '@bigbinary/neeto-commons-frontend/react-utils';
4
+ import { Q as QUERY_KEYS } from './query-dcc7b81b.js';
4
5
  import { DirectUpload } from '@rails/activestorage';
5
6
  import { keysToCamelCase, noop } from '@bigbinary/neeto-cist';
6
7
  import { globalProps } from '@bigbinary/neeto-commons-frontend/initializers';
@@ -8,7 +9,7 @@ import Toastr from '@bigbinary/neetoui/Toastr';
8
9
  import { isNil, equals, mergeRight } from 'ramda';
9
10
  import axios from 'axios';
10
11
 
11
- var create = function create(payload) {
12
+ var create$1 = function create(payload) {
12
13
  return axios.post("/api/direct_uploads", {
13
14
  blob: payload
14
15
  }, {
@@ -25,18 +26,10 @@ var update = function update(_ref) {
25
26
  });
26
27
  };
27
28
  var directUploadsApi = {
28
- create: create,
29
+ create: create$1,
29
30
  update: update
30
31
  };
31
32
 
32
- var QUERY_KEYS = {
33
- ASSETS_LIST: "neeto-image-uploader-images-list",
34
- UNSPLASH_LIST: "neeto-image-uploader-unsplash-list"
35
- };
36
- var ASSETS_STALE_TIME = 900000; // 15 mins
37
-
38
- var UNSPLASH_STALE_TIME = 900000;
39
-
40
33
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
41
34
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
42
35
  var useCreateBlob = function useCreateBlob(options) {
@@ -456,8 +449,34 @@ try {
456
449
 
457
450
  var _regeneratorRuntime = /*@__PURE__*/getDefaultExportFromCjs(regenerator);
458
451
 
452
+ var create = function create(_ref) {
453
+ var formData = _ref.formData,
454
+ setUploadProgress = _ref.setUploadProgress;
455
+ return axios.post("https://api.cloudflare.com/client/v4/accounts/".concat(globalProps.cloudFlareImage.accountId, "/images/v1"), formData, {
456
+ headers: {
457
+ // eslint-disable-next-line @bigbinary/neeto/hard-coded-strings-should-be-localized
458
+ Authorization: "Bearer ".concat(globalProps.cloudFlareImage.tokenId),
459
+ "Content-Type": "multipart/form-data"
460
+ },
461
+ onUploadProgress: function onUploadProgress(event) {
462
+ var percentComplete = Math.round(event.loaded / event.total * 100);
463
+ setUploadProgress(percentComplete);
464
+ },
465
+ transformRequestCase: false
466
+ });
467
+ };
468
+ var cloudflareImageApi = {
469
+ create: create
470
+ };
471
+
472
+ var useCloudFlareImage = function useCloudFlareImage() {
473
+ return useMutation({
474
+ mutationFn: cloudflareImageApi.create
475
+ });
476
+ };
477
+
459
478
  var generateASCIIFileName = function generateASCIIFileName(originalFileName) {
460
- if (/^[ -~]*$/.test(originalFileName)) {
479
+ if (/^[A-Za-z0-9-_.~]*$/.test(originalFileName)) {
461
480
  return originalFileName;
462
481
  }
463
482
  var extension = originalFileName.split(".").pop();
@@ -470,6 +489,8 @@ var useImageUploader = function useImageUploader(_ref) {
470
489
  _ref$setIsUploading = _ref.setIsUploading,
471
490
  setIsUploading = _ref$setIsUploading === void 0 ? noop : _ref$setIsUploading;
472
491
  var authenticationEndpoint = "".concat(window.location.origin, "/neeto_image_uploader_engine/imagekit/auth");
492
+ var _useCloudFlareImage = useCloudFlareImage(),
493
+ cloudFlareImage = _useCloudFlareImage.mutate;
473
494
  var handleUploadProgress = function handleUploadProgress(e, fileSize, setUploadProgress) {
474
495
  if (e.loaded <= fileSize) {
475
496
  var percent = Math.round(e.loaded / fileSize * 100);
@@ -501,16 +522,17 @@ var useImageUploader = function useImageUploader(_ref) {
501
522
  }
502
523
  };
503
524
  directUploadsApi.update(payload);
504
- onUploadComplete(mergeRight(keysToCamelCase(blob), {
525
+ var result = mergeRight(keysToCamelCase(blob), {
505
526
  url: blob.blob_url
506
- }));
527
+ });
528
+ onUploadComplete(result);
507
529
  setIsUploading(false);
508
530
  });
509
531
  } catch (error) {
510
532
  Toastr.error(error);
511
533
  }
512
534
  };
513
- var productionUpload = /*#__PURE__*/function () {
535
+ var imageKitUpload = /*#__PURE__*/function () {
514
536
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(file, XHRProgress) {
515
537
  var imagekit, result;
516
538
  return _regeneratorRuntime.wrap(function _callee$(_context) {
@@ -548,51 +570,48 @@ var useImageUploader = function useImageUploader(_ref) {
548
570
  }
549
571
  }, _callee, null, [[0, 10]]);
550
572
  }));
551
- return function productionUpload(_x, _x2) {
573
+ return function imageKitUpload(_x, _x2) {
552
574
  return _ref2.apply(this, arguments);
553
575
  };
554
576
  }();
555
- var uploadFile = /*#__PURE__*/function () {
556
- var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(file, setUploadProgress) {
557
- var fileSize, XHRProgress;
558
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
559
- while (1) switch (_context2.prev = _context2.next) {
560
- case 0:
561
- if (!isNil(file)) {
562
- _context2.next = 2;
563
- break;
564
- }
565
- return _context2.abrupt("return");
566
- case 2:
567
- fileSize = file.size;
568
- XHRProgress = new XMLHttpRequest();
569
- XHRProgress.upload.addEventListener("progress", function (e) {
570
- handleUploadProgress(e, fileSize, setUploadProgress);
571
- });
572
- if (!IS_DEVELOPMENT_OR_HEROKU_ENV) {
573
- _context2.next = 9;
574
- break;
575
- }
576
- developmentUpload(file, setUploadProgress);
577
- _context2.next = 11;
578
- break;
579
- case 9:
580
- _context2.next = 11;
581
- return productionUpload(file, XHRProgress);
582
- case 11:
583
- case "end":
584
- return _context2.stop();
585
- }
586
- }, _callee2);
587
- }));
588
- return function uploadFile(_x3, _x4) {
589
- return _ref3.apply(this, arguments);
577
+ var cloudFlareImageUpload = function cloudFlareImageUpload(file, setUploadProgress) {
578
+ var metadata = {
579
+ organizationKey: globalProps.organization.publicApiKey,
580
+ appName: globalProps.appName
590
581
  };
591
- }();
582
+ var formData = new FormData();
583
+ formData.append("file", file);
584
+ formData.append("metadata", JSON.stringify(metadata));
585
+ setIsUploading(true);
586
+ cloudFlareImage({
587
+ formData: formData,
588
+ setUploadProgress: setUploadProgress
589
+ }, {
590
+ onSuccess: function onSuccess(_ref3) {
591
+ var result = _ref3.result;
592
+ return onUploadComplete(result, file);
593
+ },
594
+ onSettled: function onSettled() {
595
+ return setIsUploading(false);
596
+ }
597
+ });
598
+ };
599
+ var uploadFile = function uploadFile(file, setUploadProgress) {
600
+ if (isNil(file)) return;
601
+ var fileSize = file.size;
602
+ var XHRProgress = new XMLHttpRequest();
603
+ XHRProgress.upload.addEventListener("progress", function (e) {
604
+ handleUploadProgress(e, fileSize, setUploadProgress);
605
+ });
606
+ var productionUpload = function productionUpload() {
607
+ return globalProps.assetsUploaderService === CLOUD_FLARE ? cloudFlareImageUpload(file, setUploadProgress) : imageKitUpload(file, XHRProgress);
608
+ };
609
+ IS_DEVELOPMENT_OR_HEROKU_ENV ? developmentUpload(file, setUploadProgress) : productionUpload();
610
+ };
592
611
  return {
593
612
  uploadFile: uploadFile
594
613
  };
595
614
  };
596
615
 
597
- export { ASSETS_STALE_TIME as A, QUERY_KEYS as Q, UNSPLASH_STALE_TIME as U, _asyncToGenerator as _, getAugmentedNamespace as a, _regeneratorRuntime as b, commonjsGlobal as c, directUploadsApi as d, useImageUploader as e, generateASCIIFileName as f, getDefaultExportFromCjs as g, useCreateBlob as u };
598
- //# sourceMappingURL=useImageUploader-36a03350.js.map
616
+ export { _asyncToGenerator as _, getAugmentedNamespace as a, _regeneratorRuntime as b, commonjsGlobal as c, directUploadsApi as d, useImageUploader as e, generateASCIIFileName as f, getDefaultExportFromCjs as g, useCreateBlob as u };
617
+ //# sourceMappingURL=useImageUploader-b93adc31.js.map