@bigbinary/neeto-image-uploader-frontend 2.3.3 → 2.3.6

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 (51) hide show
  1. package/dist/AssetLibrary.js +237 -8520
  2. package/dist/AssetLibrary.js.map +1 -1
  3. package/dist/BasicImageUploader.js +12 -9
  4. package/dist/BasicImageUploader.js.map +1 -1
  5. package/dist/ImageUploader.js +17 -57
  6. package/dist/ImageUploader.js.map +1 -1
  7. package/dist/{ImageWithFallback-1d3c6c16.js → ImageWithFallback-8d240931.js} +5 -3
  8. package/dist/{ImageWithFallback-1d3c6c16.js.map → ImageWithFallback-8d240931.js.map} +1 -1
  9. package/dist/{ImageWithFallback-da061171.js → ImageWithFallback-edf8eba8.js} +15 -10
  10. package/dist/{ImageWithFallback-da061171.js.map → ImageWithFallback-edf8eba8.js.map} +1 -1
  11. package/dist/cjs/AssetLibrary.js +277 -8608
  12. package/dist/cjs/AssetLibrary.js.map +1 -1
  13. package/dist/cjs/BasicImageUploader.js +17 -12
  14. package/dist/cjs/BasicImageUploader.js.map +1 -1
  15. package/dist/cjs/ImageUploader.js +24 -61
  16. package/dist/cjs/ImageUploader.js.map +1 -1
  17. package/dist/cjs/hooks.js +7 -3
  18. package/dist/cjs/hooks.js.map +1 -1
  19. package/dist/cjs/index.js +18 -57
  20. package/dist/cjs/index.js.map +1 -1
  21. package/dist/hooks.js +7 -3
  22. package/dist/hooks.js.map +1 -1
  23. package/dist/{index-c128d963.js → index-8605e11c.js} +2 -98
  24. package/dist/index-8605e11c.js.map +1 -0
  25. package/dist/{index-69559a7a.js → index-cf7e4b89.js} +1 -99
  26. package/dist/index-cf7e4b89.js.map +1 -0
  27. package/dist/index.js +18 -57
  28. package/dist/index.js.map +1 -1
  29. package/dist/useImageUploader-1c60ac64.js +252 -0
  30. package/dist/useImageUploader-1c60ac64.js.map +1 -0
  31. package/dist/useImageUploader-3de58fe2.js +265 -0
  32. package/dist/useImageUploader-3de58fe2.js.map +1 -0
  33. package/dist/{useProfileImageUpload-0861cfca.js → useProfileImageUpload-69bf6ee9.js} +21 -15
  34. package/dist/useProfileImageUpload-69bf6ee9.js.map +1 -0
  35. package/dist/{useProfileImageUpload-0fd0e56b.js → useProfileImageUpload-cad1ed36.js} +10 -7
  36. package/dist/useProfileImageUpload-cad1ed36.js.map +1 -0
  37. package/dist/{utils-2fc0a9dc.js → utils-ede1695e.js} +43 -35
  38. package/dist/utils-ede1695e.js.map +1 -0
  39. package/dist/{utils-46caa3d3.js → utils-fa0fa918.js} +40 -33
  40. package/dist/utils-fa0fa918.js.map +1 -0
  41. package/package.json +102 -83
  42. package/dist/index-69559a7a.js.map +0 -1
  43. package/dist/index-c128d963.js.map +0 -1
  44. package/dist/useImageUploader-9faaa8e5.js +0 -643
  45. package/dist/useImageUploader-9faaa8e5.js.map +0 -1
  46. package/dist/useImageUploader-a53cf673.js +0 -658
  47. package/dist/useImageUploader-a53cf673.js.map +0 -1
  48. package/dist/useProfileImageUpload-0861cfca.js.map +0 -1
  49. package/dist/useProfileImageUpload-0fd0e56b.js.map +0 -1
  50. package/dist/utils-2fc0a9dc.js.map +0 -1
  51. package/dist/utils-46caa3d3.js.map +0 -1
@@ -0,0 +1,252 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import { useMutation } from '@tanstack/react-query';
3
+ import { useMutationWithInvalidation } from '@bigbinary/neeto-commons-frontend/react-utils';
4
+ import { Q as QUERY_KEYS } from './query-dcc7b81b.js';
5
+ import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
6
+ import _regeneratorRuntime from '@babel/runtime/regenerator';
7
+ import { DirectUpload } from '@rails/activestorage';
8
+ import { I as IS_DEVELOPMENT_OR_HEROKU_ENV, C as CLOUD_FLARE, a as ImageKit } from './index-8605e11c.js';
9
+ import { keysToCamelCase, noop } from '@bigbinary/neeto-cist';
10
+ import { globalProps } from '@bigbinary/neeto-commons-frontend/initializers';
11
+ import Toastr from '@bigbinary/neetoui/Toastr';
12
+ import { isNil, equals, mergeRight } from 'ramda';
13
+ import axios from 'axios';
14
+
15
+ var create = function create(payload) {
16
+ return axios.post("/api/direct_uploads", {
17
+ blob: payload
18
+ }, {
19
+ transformRequestCase: false
20
+ });
21
+ };
22
+ var update = function update(_ref) {
23
+ var id = _ref.id,
24
+ payload = _ref.payload;
25
+ return axios.put("neeto_image_uploader_engine/api/direct_uploads/".concat(id), {
26
+ blob: payload
27
+ }, {
28
+ transformRequestCase: false
29
+ });
30
+ };
31
+ var directUploadsApi = {
32
+ create: create,
33
+ update: update
34
+ };
35
+
36
+ function ownKeys$1(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; }
37
+ function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
38
+ var useCreateBlob = function useCreateBlob(options) {
39
+ return useMutationWithInvalidation(directUploadsApi.create, _objectSpread$1({
40
+ keysToInvalidate: [QUERY_KEYS.ASSETS_LIST]
41
+ }, options));
42
+ };
43
+
44
+ var generate = function generate() {
45
+ return axios.post("neeto_image_uploader_engine/cloudflare_images");
46
+ };
47
+ var upload = function upload(_ref) {
48
+ var url = _ref.url,
49
+ formData = _ref.formData,
50
+ setUploadProgress = _ref.setUploadProgress;
51
+ return axios.post(url, formData, {
52
+ headers: {
53
+ "Content-Type": "multipart/form-data"
54
+ },
55
+ onUploadProgress: function onUploadProgress(event) {
56
+ var percentComplete = Math.round(event.loaded / event.total * 100);
57
+ setUploadProgress(percentComplete);
58
+ },
59
+ transformRequestCase: false
60
+ });
61
+ };
62
+ var cloudflareImageApi = {
63
+ generate: generate,
64
+ upload: upload
65
+ };
66
+
67
+ var useCloudFlareImageUpload = function useCloudFlareImageUpload() {
68
+ return useMutation({
69
+ mutationFn: cloudflareImageApi.upload
70
+ });
71
+ };
72
+
73
+ var generateASCIIFileName = function generateASCIIFileName(originalFileName) {
74
+ var sanitizedFileName = originalFileName.replace(/[\u00A0\u202F]/g, " ");
75
+ if (/^[A-Za-z0-9-_.~ ]*$/.test(sanitizedFileName)) {
76
+ return originalFileName;
77
+ }
78
+ var extension = originalFileName.split(".").pop();
79
+ return "image.".concat(extension);
80
+ };
81
+
82
+ 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; }
83
+ 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; }
84
+ var useImageUploader = function useImageUploader(_ref) {
85
+ var _ref$onUploadComplete = _ref.onUploadComplete,
86
+ onUploadComplete = _ref$onUploadComplete === void 0 ? noop : _ref$onUploadComplete,
87
+ _ref$setIsUploading = _ref.setIsUploading,
88
+ setIsUploading = _ref$setIsUploading === void 0 ? noop : _ref$setIsUploading;
89
+ var authenticationEndpoint = "".concat(window.location.origin, "/neeto_image_uploader_engine/imagekit/auth");
90
+ var _useCloudFlareImageUp = useCloudFlareImageUpload(),
91
+ cloudFlareImage = _useCloudFlareImageUp.mutate;
92
+ var handleUploadProgress = function handleUploadProgress(e, fileSize, setUploadProgress) {
93
+ if (e.loaded <= fileSize) {
94
+ var percent = Math.round(e.loaded / fileSize * 100);
95
+ setUploadProgress(percent);
96
+ }
97
+ equals(e.loaded, e.total) && setUploadProgress(100);
98
+ };
99
+ var developmentUpload = function developmentUpload(file, setUploadProgress) {
100
+ try {
101
+ setIsUploading(true);
102
+ var upload = new DirectUpload(file, "/api/direct_uploads", {
103
+ directUploadWillStoreFileWithXHR: function directUploadWillStoreFileWithXHR(xhr) {
104
+ xhr.upload.addEventListener("progress", function (event) {
105
+ var percentComplete = Math.round(event.loaded / event.total * 100);
106
+ setUploadProgress(percentComplete);
107
+ });
108
+ }
109
+ });
110
+ upload.create(function (_, blob) {
111
+ var payload = {
112
+ id: blob.signed_id,
113
+ payload: {
114
+ metadata: {
115
+ organizationKey: globalProps.organization.publicApiKey,
116
+ url: blob.blob_url,
117
+ height: 200,
118
+ width: 200
119
+ }
120
+ }
121
+ };
122
+ directUploadsApi.update(payload);
123
+ var result = mergeRight(keysToCamelCase(blob), {
124
+ url: blob.blob_url
125
+ });
126
+ onUploadComplete(result);
127
+ });
128
+ } catch (error) {
129
+ Toastr.error(error);
130
+ } finally {
131
+ setIsUploading(false);
132
+ }
133
+ };
134
+ var imageKitUpload = /*#__PURE__*/function () {
135
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(file, XHRProgress) {
136
+ var imagekit, result;
137
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
138
+ while (1) switch (_context.prev = _context.next) {
139
+ case 0:
140
+ _context.prev = 0;
141
+ imagekit = new ImageKit(mergeRight(globalProps.imagekit, {
142
+ authenticationEndpoint: authenticationEndpoint
143
+ }));
144
+ setIsUploading(true);
145
+ _context.next = 5;
146
+ return imagekit.upload({
147
+ xhr: XHRProgress,
148
+ file: file,
149
+ fileName: generateASCIIFileName(file.name),
150
+ folder: globalProps.imagekit.folder,
151
+ customMetadata: {
152
+ organizationKey: globalProps.organization.publicApiKey,
153
+ appName: globalProps.appName
154
+ }
155
+ });
156
+ case 5:
157
+ result = _context.sent;
158
+ onUploadComplete(result);
159
+ _context.next = 12;
160
+ break;
161
+ case 9:
162
+ _context.prev = 9;
163
+ _context.t0 = _context["catch"](0);
164
+ Toastr.error(_context.t0);
165
+ case 12:
166
+ _context.prev = 12;
167
+ setIsUploading(false);
168
+ return _context.finish(12);
169
+ case 15:
170
+ case "end":
171
+ return _context.stop();
172
+ }
173
+ }, _callee, null, [[0, 9, 12, 15]]);
174
+ }));
175
+ return function imageKitUpload(_x, _x2) {
176
+ return _ref2.apply(this, arguments);
177
+ };
178
+ }();
179
+ var cloudFlareImageUpload = function cloudFlareImageUpload(file, setUploadProgress) {
180
+ var img = new Image();
181
+ img.src = URL.createObjectURL(file);
182
+ var formData = new FormData();
183
+ formData.append("file", file);
184
+ img.onload = /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
185
+ var width, height, _yield$cloudflareImag, result;
186
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
187
+ while (1) switch (_context2.prev = _context2.next) {
188
+ case 0:
189
+ width = img.width, height = img.height;
190
+ URL.revokeObjectURL(img.src);
191
+ setIsUploading(true);
192
+ _context2.prev = 3;
193
+ _context2.next = 6;
194
+ return cloudflareImageApi.generate();
195
+ case 6:
196
+ _yield$cloudflareImag = _context2.sent;
197
+ result = _yield$cloudflareImag.result;
198
+ cloudFlareImage({
199
+ url: result.uploadURL,
200
+ formData: formData,
201
+ setUploadProgress: setUploadProgress
202
+ }, {
203
+ onSuccess: function onSuccess(_ref4) {
204
+ var result = _ref4.result;
205
+ var uploadData = _objectSpread(_objectSpread({}, result), {}, {
206
+ contentType: file.type,
207
+ metadata: _objectSpread(_objectSpread({}, result), {}, {
208
+ width: width,
209
+ height: height
210
+ }),
211
+ url: result.variants[0],
212
+ byteSize: file.size,
213
+ checksum: result.id
214
+ });
215
+ onUploadComplete(uploadData);
216
+ setIsUploading(false);
217
+ }
218
+ });
219
+ _context2.next = 15;
220
+ break;
221
+ case 11:
222
+ _context2.prev = 11;
223
+ _context2.t0 = _context2["catch"](3);
224
+ Toastr.error(_context2.t0);
225
+ setIsUploading(false);
226
+ case 15:
227
+ case "end":
228
+ return _context2.stop();
229
+ }
230
+ }, _callee2, null, [[3, 11]]);
231
+ }));
232
+ };
233
+ var uploadFile = function uploadFile(file) {
234
+ var setUploadProgress = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;
235
+ if (isNil(file)) return;
236
+ var fileSize = file.size;
237
+ var XHRProgress = new XMLHttpRequest();
238
+ XHRProgress.upload.addEventListener("progress", function (e) {
239
+ handleUploadProgress(e, fileSize, setUploadProgress);
240
+ });
241
+ var productionUpload = function productionUpload() {
242
+ return globalProps.assetsUploaderService === CLOUD_FLARE ? cloudFlareImageUpload(file, setUploadProgress) : imageKitUpload(file, XHRProgress);
243
+ };
244
+ IS_DEVELOPMENT_OR_HEROKU_ENV ? developmentUpload(file, setUploadProgress) : productionUpload();
245
+ };
246
+ return {
247
+ uploadFile: uploadFile
248
+ };
249
+ };
250
+
251
+ export { useImageUploader as a, directUploadsApi as d, generateASCIIFileName as g, useCreateBlob as u };
252
+ //# sourceMappingURL=useImageUploader-1c60ac64.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useImageUploader-1c60ac64.js","sources":["../app/javascript/src/apis/direct_uploads.js","../app/javascript/src/hooks/useDirectUploads.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","import axios from \"axios\";\n\nconst generate = () =>\n axios.post(\"neeto_image_uploader_engine/cloudflare_images\");\n\nconst upload = ({ url, formData, setUploadProgress }) =>\n axios.post(url, formData, {\n headers: { \"Content-Type\": \"multipart/form-data\" },\n onUploadProgress: event => {\n const percentComplete = Math.round((event.loaded / event.total) * 100);\n setUploadProgress(percentComplete);\n },\n transformRequestCase: false,\n });\n\nconst cloudflareImageApi = { generate, upload };\n\nexport default cloudflareImageApi;\n","import { useMutation } from \"@tanstack/react-query\";\n\nimport cloudflareImageApi from \"apis/cloudflare_image\";\n\nexport const useCloudFlareImageUpload = () =>\n useMutation({ mutationFn: cloudflareImageApi.upload });\n","export const generateASCIIFileName = originalFileName => {\n const sanitizedFileName = originalFileName.replace(/[\\u00A0\\u202F]/g, \" \");\n\n if (/^[A-Za-z0-9-_.~ ]*$/.test(sanitizedFileName)) {\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 cloudflareImageApi from \"apis/cloudflare_image\";\nimport directUploadsApi from \"apis/direct_uploads\";\nimport { CLOUD_FLARE, IS_DEVELOPMENT_OR_HEROKU_ENV } from \"src/constants\";\n\nimport { useCloudFlareImageUpload } 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 } = useCloudFlareImageUpload();\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 });\n } catch (error) {\n Toastr.error(error);\n } finally {\n setIsUploading(false);\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 } catch (error) {\n Toastr.error(error);\n } finally {\n setIsUploading(false);\n }\n };\n\n const cloudFlareImageUpload = (file, setUploadProgress) => {\n const img = new Image();\n img.src = URL.createObjectURL(file);\n\n const formData = new FormData();\n formData.append(\"file\", file);\n\n img.onload = async () => {\n const { width, height } = img;\n URL.revokeObjectURL(img.src);\n\n setIsUploading(true);\n try {\n // eslint-disable-next-line @bigbinary/neeto/use-react-query-for-managing-remote-data\n const { result } = await cloudflareImageApi.generate();\n\n cloudFlareImage(\n { url: result.uploadURL, formData, setUploadProgress },\n {\n onSuccess: ({ result }) => {\n const uploadData = {\n ...result,\n contentType: file.type,\n metadata: { ...result, width, height },\n url: result.variants[0],\n byteSize: file.size,\n checksum: result.id,\n };\n\n onUploadComplete(uploadData);\n setIsUploading(false);\n },\n }\n );\n } catch (error) {\n Toastr.error(error);\n setIsUploading(false);\n }\n };\n };\n\n const uploadFile = (file, setUploadProgress = noop) => {\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","generate","upload","url","formData","setUploadProgress","headers","onUploadProgress","event","percentComplete","Math","round","loaded","total","cloudflareImageApi","useCloudFlareImageUpload","useMutation","mutationFn","generateASCIIFileName","originalFileName","sanitizedFileName","replace","test","extension","split","pop","useImageUploader","_ref$onUploadComplete","onUploadComplete","noop","_ref$setIsUploading","setIsUploading","authenticationEndpoint","window","location","origin","_useCloudFlareImageUp","cloudFlareImage","mutate","handleUploadProgress","e","fileSize","percent","equals","developmentUpload","file","DirectUpload","directUploadWillStoreFileWithXHR","xhr","addEventListener","_","signed_id","metadata","organizationKey","globalProps","organization","publicApiKey","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","finish","stop","_x","_x2","apply","arguments","cloudFlareImageUpload","img","Image","src","URL","createObjectURL","FormData","append","onload","_callee2","_yield$cloudflareImag","_callee2$","_context2","revokeObjectURL","uploadURL","onSuccess","_ref4","uploadData","contentType","type","variants","byteSize","size","checksum","uploadFile","length","undefined","isNil","XMLHttpRequest","productionUpload","assetsUploaderService","CLOUD_FLARE","IS_DEVELOPMENT_OR_HEROKU_ENV"],"mappings":"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"}
@@ -0,0 +1,265 @@
1
+ 'use strict';
2
+
3
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
+ var reactQuery = require('@tanstack/react-query');
5
+ var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
6
+ var query = require('./query-3c31bf92.js');
7
+ var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
8
+ var _regeneratorRuntime = require('@babel/runtime/regenerator');
9
+ var activestorage = require('@rails/activestorage');
10
+ var index = require('./index-cf7e4b89.js');
11
+ var neetoCist = require('@bigbinary/neeto-cist');
12
+ var initializers = require('@bigbinary/neeto-commons-frontend/initializers');
13
+ var Toastr = require('@bigbinary/neetoui/Toastr');
14
+ var ramda = require('ramda');
15
+ var axios = require('axios');
16
+
17
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
18
+
19
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
20
+ var _asyncToGenerator__default = /*#__PURE__*/_interopDefaultLegacy(_asyncToGenerator);
21
+ var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(_regeneratorRuntime);
22
+ var Toastr__default = /*#__PURE__*/_interopDefaultLegacy(Toastr);
23
+ var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
24
+
25
+ var create = function create(payload) {
26
+ return axios__default["default"].post("/api/direct_uploads", {
27
+ blob: payload
28
+ }, {
29
+ transformRequestCase: false
30
+ });
31
+ };
32
+ var update = function update(_ref) {
33
+ var id = _ref.id,
34
+ payload = _ref.payload;
35
+ return axios__default["default"].put("neeto_image_uploader_engine/api/direct_uploads/".concat(id), {
36
+ blob: payload
37
+ }, {
38
+ transformRequestCase: false
39
+ });
40
+ };
41
+ var directUploadsApi = {
42
+ create: create,
43
+ update: update
44
+ };
45
+
46
+ function ownKeys$1(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; }
47
+ function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
48
+ var useCreateBlob = function useCreateBlob(options) {
49
+ return reactUtils.useMutationWithInvalidation(directUploadsApi.create, _objectSpread$1({
50
+ keysToInvalidate: [query.QUERY_KEYS.ASSETS_LIST]
51
+ }, options));
52
+ };
53
+
54
+ var generate = function generate() {
55
+ return axios__default["default"].post("neeto_image_uploader_engine/cloudflare_images");
56
+ };
57
+ var upload = function upload(_ref) {
58
+ var url = _ref.url,
59
+ formData = _ref.formData,
60
+ setUploadProgress = _ref.setUploadProgress;
61
+ return axios__default["default"].post(url, formData, {
62
+ headers: {
63
+ "Content-Type": "multipart/form-data"
64
+ },
65
+ onUploadProgress: function onUploadProgress(event) {
66
+ var percentComplete = Math.round(event.loaded / event.total * 100);
67
+ setUploadProgress(percentComplete);
68
+ },
69
+ transformRequestCase: false
70
+ });
71
+ };
72
+ var cloudflareImageApi = {
73
+ generate: generate,
74
+ upload: upload
75
+ };
76
+
77
+ var useCloudFlareImageUpload = function useCloudFlareImageUpload() {
78
+ return reactQuery.useMutation({
79
+ mutationFn: cloudflareImageApi.upload
80
+ });
81
+ };
82
+
83
+ var generateASCIIFileName = function generateASCIIFileName(originalFileName) {
84
+ var sanitizedFileName = originalFileName.replace(/[\u00A0\u202F]/g, " ");
85
+ if (/^[A-Za-z0-9-_.~ ]*$/.test(sanitizedFileName)) {
86
+ return originalFileName;
87
+ }
88
+ var extension = originalFileName.split(".").pop();
89
+ return "image.".concat(extension);
90
+ };
91
+
92
+ 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; }
93
+ 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__default["default"](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; }
94
+ var useImageUploader = function useImageUploader(_ref) {
95
+ var _ref$onUploadComplete = _ref.onUploadComplete,
96
+ onUploadComplete = _ref$onUploadComplete === void 0 ? neetoCist.noop : _ref$onUploadComplete,
97
+ _ref$setIsUploading = _ref.setIsUploading,
98
+ setIsUploading = _ref$setIsUploading === void 0 ? neetoCist.noop : _ref$setIsUploading;
99
+ var authenticationEndpoint = "".concat(window.location.origin, "/neeto_image_uploader_engine/imagekit/auth");
100
+ var _useCloudFlareImageUp = useCloudFlareImageUpload(),
101
+ cloudFlareImage = _useCloudFlareImageUp.mutate;
102
+ var handleUploadProgress = function handleUploadProgress(e, fileSize, setUploadProgress) {
103
+ if (e.loaded <= fileSize) {
104
+ var percent = Math.round(e.loaded / fileSize * 100);
105
+ setUploadProgress(percent);
106
+ }
107
+ ramda.equals(e.loaded, e.total) && setUploadProgress(100);
108
+ };
109
+ var developmentUpload = function developmentUpload(file, setUploadProgress) {
110
+ try {
111
+ setIsUploading(true);
112
+ var upload = new activestorage.DirectUpload(file, "/api/direct_uploads", {
113
+ directUploadWillStoreFileWithXHR: function directUploadWillStoreFileWithXHR(xhr) {
114
+ xhr.upload.addEventListener("progress", function (event) {
115
+ var percentComplete = Math.round(event.loaded / event.total * 100);
116
+ setUploadProgress(percentComplete);
117
+ });
118
+ }
119
+ });
120
+ upload.create(function (_, blob) {
121
+ var payload = {
122
+ id: blob.signed_id,
123
+ payload: {
124
+ metadata: {
125
+ organizationKey: initializers.globalProps.organization.publicApiKey,
126
+ url: blob.blob_url,
127
+ height: 200,
128
+ width: 200
129
+ }
130
+ }
131
+ };
132
+ directUploadsApi.update(payload);
133
+ var result = ramda.mergeRight(neetoCist.keysToCamelCase(blob), {
134
+ url: blob.blob_url
135
+ });
136
+ onUploadComplete(result);
137
+ });
138
+ } catch (error) {
139
+ Toastr__default["default"].error(error);
140
+ } finally {
141
+ setIsUploading(false);
142
+ }
143
+ };
144
+ var imageKitUpload = /*#__PURE__*/function () {
145
+ var _ref2 = _asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee(file, XHRProgress) {
146
+ var imagekit, result;
147
+ return _regeneratorRuntime__default["default"].wrap(function _callee$(_context) {
148
+ while (1) switch (_context.prev = _context.next) {
149
+ case 0:
150
+ _context.prev = 0;
151
+ imagekit = new index.ImageKit(ramda.mergeRight(initializers.globalProps.imagekit, {
152
+ authenticationEndpoint: authenticationEndpoint
153
+ }));
154
+ setIsUploading(true);
155
+ _context.next = 5;
156
+ return imagekit.upload({
157
+ xhr: XHRProgress,
158
+ file: file,
159
+ fileName: generateASCIIFileName(file.name),
160
+ folder: initializers.globalProps.imagekit.folder,
161
+ customMetadata: {
162
+ organizationKey: initializers.globalProps.organization.publicApiKey,
163
+ appName: initializers.globalProps.appName
164
+ }
165
+ });
166
+ case 5:
167
+ result = _context.sent;
168
+ onUploadComplete(result);
169
+ _context.next = 12;
170
+ break;
171
+ case 9:
172
+ _context.prev = 9;
173
+ _context.t0 = _context["catch"](0);
174
+ Toastr__default["default"].error(_context.t0);
175
+ case 12:
176
+ _context.prev = 12;
177
+ setIsUploading(false);
178
+ return _context.finish(12);
179
+ case 15:
180
+ case "end":
181
+ return _context.stop();
182
+ }
183
+ }, _callee, null, [[0, 9, 12, 15]]);
184
+ }));
185
+ return function imageKitUpload(_x, _x2) {
186
+ return _ref2.apply(this, arguments);
187
+ };
188
+ }();
189
+ var cloudFlareImageUpload = function cloudFlareImageUpload(file, setUploadProgress) {
190
+ var img = new Image();
191
+ img.src = URL.createObjectURL(file);
192
+ var formData = new FormData();
193
+ formData.append("file", file);
194
+ img.onload = /*#__PURE__*/_asyncToGenerator__default["default"](/*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee2() {
195
+ var width, height, _yield$cloudflareImag, result;
196
+ return _regeneratorRuntime__default["default"].wrap(function _callee2$(_context2) {
197
+ while (1) switch (_context2.prev = _context2.next) {
198
+ case 0:
199
+ width = img.width, height = img.height;
200
+ URL.revokeObjectURL(img.src);
201
+ setIsUploading(true);
202
+ _context2.prev = 3;
203
+ _context2.next = 6;
204
+ return cloudflareImageApi.generate();
205
+ case 6:
206
+ _yield$cloudflareImag = _context2.sent;
207
+ result = _yield$cloudflareImag.result;
208
+ cloudFlareImage({
209
+ url: result.uploadURL,
210
+ formData: formData,
211
+ setUploadProgress: setUploadProgress
212
+ }, {
213
+ onSuccess: function onSuccess(_ref4) {
214
+ var result = _ref4.result;
215
+ var uploadData = _objectSpread(_objectSpread({}, result), {}, {
216
+ contentType: file.type,
217
+ metadata: _objectSpread(_objectSpread({}, result), {}, {
218
+ width: width,
219
+ height: height
220
+ }),
221
+ url: result.variants[0],
222
+ byteSize: file.size,
223
+ checksum: result.id
224
+ });
225
+ onUploadComplete(uploadData);
226
+ setIsUploading(false);
227
+ }
228
+ });
229
+ _context2.next = 15;
230
+ break;
231
+ case 11:
232
+ _context2.prev = 11;
233
+ _context2.t0 = _context2["catch"](3);
234
+ Toastr__default["default"].error(_context2.t0);
235
+ setIsUploading(false);
236
+ case 15:
237
+ case "end":
238
+ return _context2.stop();
239
+ }
240
+ }, _callee2, null, [[3, 11]]);
241
+ }));
242
+ };
243
+ var uploadFile = function uploadFile(file) {
244
+ var setUploadProgress = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : neetoCist.noop;
245
+ if (ramda.isNil(file)) return;
246
+ var fileSize = file.size;
247
+ var XHRProgress = new XMLHttpRequest();
248
+ XHRProgress.upload.addEventListener("progress", function (e) {
249
+ handleUploadProgress(e, fileSize, setUploadProgress);
250
+ });
251
+ var productionUpload = function productionUpload() {
252
+ return initializers.globalProps.assetsUploaderService === index.CLOUD_FLARE ? cloudFlareImageUpload(file, setUploadProgress) : imageKitUpload(file, XHRProgress);
253
+ };
254
+ index.IS_DEVELOPMENT_OR_HEROKU_ENV ? developmentUpload(file, setUploadProgress) : productionUpload();
255
+ };
256
+ return {
257
+ uploadFile: uploadFile
258
+ };
259
+ };
260
+
261
+ exports.directUploadsApi = directUploadsApi;
262
+ exports.generateASCIIFileName = generateASCIIFileName;
263
+ exports.useCreateBlob = useCreateBlob;
264
+ exports.useImageUploader = useImageUploader;
265
+ //# sourceMappingURL=useImageUploader-3de58fe2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useImageUploader-3de58fe2.js","sources":["../app/javascript/src/apis/direct_uploads.js","../app/javascript/src/hooks/useDirectUploads.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","import axios from \"axios\";\n\nconst generate = () =>\n axios.post(\"neeto_image_uploader_engine/cloudflare_images\");\n\nconst upload = ({ url, formData, setUploadProgress }) =>\n axios.post(url, formData, {\n headers: { \"Content-Type\": \"multipart/form-data\" },\n onUploadProgress: event => {\n const percentComplete = Math.round((event.loaded / event.total) * 100);\n setUploadProgress(percentComplete);\n },\n transformRequestCase: false,\n });\n\nconst cloudflareImageApi = { generate, upload };\n\nexport default cloudflareImageApi;\n","import { useMutation } from \"@tanstack/react-query\";\n\nimport cloudflareImageApi from \"apis/cloudflare_image\";\n\nexport const useCloudFlareImageUpload = () =>\n useMutation({ mutationFn: cloudflareImageApi.upload });\n","export const generateASCIIFileName = originalFileName => {\n const sanitizedFileName = originalFileName.replace(/[\\u00A0\\u202F]/g, \" \");\n\n if (/^[A-Za-z0-9-_.~ ]*$/.test(sanitizedFileName)) {\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 cloudflareImageApi from \"apis/cloudflare_image\";\nimport directUploadsApi from \"apis/direct_uploads\";\nimport { CLOUD_FLARE, IS_DEVELOPMENT_OR_HEROKU_ENV } from \"src/constants\";\n\nimport { useCloudFlareImageUpload } 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 } = useCloudFlareImageUpload();\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 });\n } catch (error) {\n Toastr.error(error);\n } finally {\n setIsUploading(false);\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 } catch (error) {\n Toastr.error(error);\n } finally {\n setIsUploading(false);\n }\n };\n\n const cloudFlareImageUpload = (file, setUploadProgress) => {\n const img = new Image();\n img.src = URL.createObjectURL(file);\n\n const formData = new FormData();\n formData.append(\"file\", file);\n\n img.onload = async () => {\n const { width, height } = img;\n URL.revokeObjectURL(img.src);\n\n setIsUploading(true);\n try {\n // eslint-disable-next-line @bigbinary/neeto/use-react-query-for-managing-remote-data\n const { result } = await cloudflareImageApi.generate();\n\n cloudFlareImage(\n { url: result.uploadURL, formData, setUploadProgress },\n {\n onSuccess: ({ result }) => {\n const uploadData = {\n ...result,\n contentType: file.type,\n metadata: { ...result, width, height },\n url: result.variants[0],\n byteSize: file.size,\n checksum: result.id,\n };\n\n onUploadComplete(uploadData);\n setIsUploading(false);\n },\n }\n );\n } catch (error) {\n Toastr.error(error);\n setIsUploading(false);\n }\n };\n };\n\n const uploadFile = (file, setUploadProgress = noop) => {\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","generate","upload","url","formData","setUploadProgress","headers","onUploadProgress","event","percentComplete","Math","round","loaded","total","cloudflareImageApi","useCloudFlareImageUpload","useMutation","mutationFn","generateASCIIFileName","originalFileName","sanitizedFileName","replace","test","extension","split","pop","useImageUploader","_ref$onUploadComplete","onUploadComplete","noop","_ref$setIsUploading","setIsUploading","authenticationEndpoint","window","location","origin","_useCloudFlareImageUp","cloudFlareImage","mutate","handleUploadProgress","e","fileSize","percent","equals","developmentUpload","file","DirectUpload","directUploadWillStoreFileWithXHR","xhr","addEventListener","_","signed_id","metadata","organizationKey","globalProps","organization","publicApiKey","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","finish","stop","_x","_x2","apply","arguments","cloudFlareImageUpload","img","Image","src","URL","createObjectURL","FormData","append","onload","_callee2","_yield$cloudflareImag","_callee2$","_context2","revokeObjectURL","uploadURL","onSuccess","_ref4","uploadData","contentType","type","variants","byteSize","size","checksum","uploadFile","length","undefined","isNil","XMLHttpRequest","productionUpload","assetsUploaderService","CLOUD_FLARE","IS_DEVELOPMENT_OR_HEROKU_ENV"],"mappings":"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"}