@webex/helper-image 2.59.7 → 2.59.8-next.1

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.
@@ -7,8 +7,12 @@ _Object$defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = processImage;
9
9
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
10
- var _pick2 = _interopRequireDefault(require("lodash/pick"));
10
+ var _lodash = require("lodash");
11
11
  var _orient = require("./orient");
12
+ /*!
13
+ * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
14
+ */
15
+
12
16
  /* eslint-env browser */
13
17
 
14
18
  /**
@@ -79,7 +83,7 @@ function processImage(_ref2) {
79
83
  img.onerror = reject;
80
84
  img.src = URL.createObjectURL(file);
81
85
  }).then(function (img) {
82
- var fileDimensions = (0, _pick2.default)(img, 'height', 'width');
86
+ var fileDimensions = (0, _lodash.pick)(img, 'height', 'width');
83
87
  if (isAvatar) {
84
88
  // only if image is a profile avatar
85
89
  logger.info('dimensions will be set for avatar image');
@@ -1 +1 @@
1
- {"version":3,"names":["_orient","require","computeDimensions","_ref","maxWidth","maxHeight","width","height","processImage","_ref2","file","type","thumbnailMaxWidth","thumbnailMaxHeight","enableThumbnails","logger","isAvatar","startsWith","_promise","default","resolve","Blob","reject","img","Image","onload","onerror","src","URL","createObjectURL","then","fileDimensions","_pick2","info","size","thumbnailDimensions","canvas","document","createElement","ctx","getContext","orientation","orient","x","y","parts","toDataURL","split","byteString","atob","buffer","ArrayBuffer","length","view","DataView","i","setUint8","charCodeAt"],"sources":["process-image.browser.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {pick} from 'lodash';\n\nimport {orient} from './orient';\n/* eslint-env browser */\n\n/**\n * Determins the dimensions of an image\n * @param {Object} constraints\n * @param {Number} constraints.width\n * @param {Number} constraints.height\n * @param {Number} maxWidth\n * @param {Number} maxHeight\n * @returns {Object}\n */\nfunction computeDimensions({width, height}, maxWidth, maxHeight) {\n if (height > width) {\n if (height > maxHeight) {\n width = (width * maxHeight) / height;\n height = maxHeight;\n }\n\n if (width > maxWidth) {\n height = (height * maxWidth) / width;\n width = maxWidth;\n }\n } else {\n if (width > maxWidth) {\n height = (height * maxWidth) / width;\n width = maxWidth;\n }\n\n if (height > maxHeight) {\n width = (width * maxHeight) / height;\n height = maxHeight;\n }\n }\n\n return {height, width};\n}\n\n/**\n * Measures an image file and produces a thumbnail for it\n * @param {Object} options\n * @param {Blob|ArrayBuffer} options.file\n * @param {Number} options.thumbnailMaxWidth\n * @param {Number} options.thumbnailMaxHeight\n * @param {Boolean} options.enableThumbnails\n * @param {Object} options.logger\n * @param {Boolean} options.isAvatar\n * @returns {Promise<Array>} Buffer, Dimensions, thumbnailDimensions\n */\nexport default function processImage({\n file,\n type,\n thumbnailMaxWidth,\n thumbnailMaxHeight,\n enableThumbnails,\n logger,\n isAvatar,\n}) {\n if (!type || !type.startsWith('image')) {\n return Promise.resolve();\n }\n\n file = file instanceof Blob ? file : new Blob([file]);\n\n return new Promise((resolve, reject) => {\n const img = new Image();\n\n img.onload = function onload() {\n resolve(img);\n };\n img.onerror = reject;\n img.src = URL.createObjectURL(file);\n }).then((img) => {\n const fileDimensions = pick(img, 'height', 'width');\n\n if (isAvatar) {\n // only if image is a profile avatar\n logger.info('dimensions will be set for avatar image');\n const size =\n fileDimensions.height > fileDimensions.width ? fileDimensions.height : fileDimensions.width;\n\n fileDimensions.height = size;\n fileDimensions.width = size;\n }\n if (!enableThumbnails) {\n logger.info('thumbnails not enabled');\n\n return [null, fileDimensions, null];\n }\n const thumbnailDimensions = computeDimensions(\n fileDimensions,\n thumbnailMaxWidth,\n thumbnailMaxHeight\n );\n\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n const {width, height} = thumbnailDimensions;\n\n // explanation of orientation:\n // https://stackoverflow.com/questions/20600800/js-client-side-exif-orientation-rotate-and-mirror-jpeg-images\n if (file.orientation && file.orientation > 4) {\n canvas.width = height;\n canvas.height = width;\n thumbnailDimensions.width = height;\n thumbnailDimensions.height = width;\n } else {\n canvas.width = thumbnailDimensions.width;\n canvas.height = thumbnailDimensions.height;\n }\n\n orient(\n {\n orientation: file && file.orientation ? file.orientation : '',\n img,\n x: 0,\n y: 0,\n width,\n height,\n ctx,\n },\n file\n );\n\n const parts = canvas.toDataURL('image/png').split(',');\n // Thumbnail uploads were failing with common/base64 decoding\n const byteString = atob(parts[1]);\n\n const buffer = new ArrayBuffer(byteString.length);\n const view = new DataView(buffer);\n\n for (let i = 0; i < byteString.length; i += 1) {\n view.setUint8(i, byteString.charCodeAt(i));\n }\n\n return [buffer, fileDimensions, thumbnailDimensions];\n });\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_lodash","require","_orient","computeDimensions","_ref","maxWidth","maxHeight","width","height","processImage","_ref2","file","type","thumbnailMaxWidth","thumbnailMaxHeight","enableThumbnails","logger","isAvatar","startsWith","_promise","default","resolve","Blob","reject","img","Image","onload","onerror","src","URL","createObjectURL","then","fileDimensions","pick","info","size","thumbnailDimensions","canvas","document","createElement","ctx","getContext","orientation","orient","x","y","parts","toDataURL","split","byteString","atob","buffer","ArrayBuffer","length","view","DataView","i","setUint8","charCodeAt"],"sources":["process-image.browser.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {pick} from 'lodash';\n\nimport {orient} from './orient';\n/* eslint-env browser */\n\n/**\n * Determins the dimensions of an image\n * @param {Object} constraints\n * @param {Number} constraints.width\n * @param {Number} constraints.height\n * @param {Number} maxWidth\n * @param {Number} maxHeight\n * @returns {Object}\n */\nfunction computeDimensions({width, height}, maxWidth, maxHeight) {\n if (height > width) {\n if (height > maxHeight) {\n width = (width * maxHeight) / height;\n height = maxHeight;\n }\n\n if (width > maxWidth) {\n height = (height * maxWidth) / width;\n width = maxWidth;\n }\n } else {\n if (width > maxWidth) {\n height = (height * maxWidth) / width;\n width = maxWidth;\n }\n\n if (height > maxHeight) {\n width = (width * maxHeight) / height;\n height = maxHeight;\n }\n }\n\n return {height, width};\n}\n\n/**\n * Measures an image file and produces a thumbnail for it\n * @param {Object} options\n * @param {Blob|ArrayBuffer} options.file\n * @param {Number} options.thumbnailMaxWidth\n * @param {Number} options.thumbnailMaxHeight\n * @param {Boolean} options.enableThumbnails\n * @param {Object} options.logger\n * @param {Boolean} options.isAvatar\n * @returns {Promise<Array>} Buffer, Dimensions, thumbnailDimensions\n */\nexport default function processImage({\n file,\n type,\n thumbnailMaxWidth,\n thumbnailMaxHeight,\n enableThumbnails,\n logger,\n isAvatar,\n}) {\n if (!type || !type.startsWith('image')) {\n return Promise.resolve();\n }\n\n file = file instanceof Blob ? file : new Blob([file]);\n\n return new Promise((resolve, reject) => {\n const img = new Image();\n\n img.onload = function onload() {\n resolve(img);\n };\n img.onerror = reject;\n img.src = URL.createObjectURL(file);\n }).then((img) => {\n const fileDimensions = pick(img, 'height', 'width');\n\n if (isAvatar) {\n // only if image is a profile avatar\n logger.info('dimensions will be set for avatar image');\n const size =\n fileDimensions.height > fileDimensions.width ? fileDimensions.height : fileDimensions.width;\n\n fileDimensions.height = size;\n fileDimensions.width = size;\n }\n if (!enableThumbnails) {\n logger.info('thumbnails not enabled');\n\n return [null, fileDimensions, null];\n }\n const thumbnailDimensions = computeDimensions(\n fileDimensions,\n thumbnailMaxWidth,\n thumbnailMaxHeight\n );\n\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n const {width, height} = thumbnailDimensions;\n\n // explanation of orientation:\n // https://stackoverflow.com/questions/20600800/js-client-side-exif-orientation-rotate-and-mirror-jpeg-images\n if (file.orientation && file.orientation > 4) {\n canvas.width = height;\n canvas.height = width;\n thumbnailDimensions.width = height;\n thumbnailDimensions.height = width;\n } else {\n canvas.width = thumbnailDimensions.width;\n canvas.height = thumbnailDimensions.height;\n }\n\n orient(\n {\n orientation: file && file.orientation ? file.orientation : '',\n img,\n x: 0,\n y: 0,\n width,\n height,\n ctx,\n },\n file\n );\n\n const parts = canvas.toDataURL('image/png').split(',');\n // Thumbnail uploads were failing with common/base64 decoding\n const byteString = atob(parts[1]);\n\n const buffer = new ArrayBuffer(byteString.length);\n const view = new DataView(buffer);\n\n for (let i = 0; i < byteString.length; i += 1) {\n view.setUint8(i, byteString.charCodeAt(i));\n }\n\n return [buffer, fileDimensions, thumbnailDimensions];\n });\n}\n"],"mappings":";;;;;;;;;AAIA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,OAAA,GAAAD,OAAA;AANA;AACA;AACA;;AAKA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASE,iBAAiBA,CAAAC,IAAA,EAAkBC,QAAQ,EAAEC,SAAS,EAAE;EAAA,IAArCC,KAAK,GAAAH,IAAA,CAALG,KAAK;IAAEC,MAAM,GAAAJ,IAAA,CAANI,MAAM;EACvC,IAAIA,MAAM,GAAGD,KAAK,EAAE;IAClB,IAAIC,MAAM,GAAGF,SAAS,EAAE;MACtBC,KAAK,GAAIA,KAAK,GAAGD,SAAS,GAAIE,MAAM;MACpCA,MAAM,GAAGF,SAAS;IACpB;IAEA,IAAIC,KAAK,GAAGF,QAAQ,EAAE;MACpBG,MAAM,GAAIA,MAAM,GAAGH,QAAQ,GAAIE,KAAK;MACpCA,KAAK,GAAGF,QAAQ;IAClB;EACF,CAAC,MAAM;IACL,IAAIE,KAAK,GAAGF,QAAQ,EAAE;MACpBG,MAAM,GAAIA,MAAM,GAAGH,QAAQ,GAAIE,KAAK;MACpCA,KAAK,GAAGF,QAAQ;IAClB;IAEA,IAAIG,MAAM,GAAGF,SAAS,EAAE;MACtBC,KAAK,GAAIA,KAAK,GAAGD,SAAS,GAAIE,MAAM;MACpCA,MAAM,GAAGF,SAAS;IACpB;EACF;EAEA,OAAO;IAACE,MAAM,EAANA,MAAM;IAAED,KAAK,EAALA;EAAK,CAAC;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASE,YAAYA,CAAAC,KAAA,EAQjC;EAAA,IAPDC,IAAI,GAAAD,KAAA,CAAJC,IAAI;IACJC,IAAI,GAAAF,KAAA,CAAJE,IAAI;IACJC,iBAAiB,GAAAH,KAAA,CAAjBG,iBAAiB;IACjBC,kBAAkB,GAAAJ,KAAA,CAAlBI,kBAAkB;IAClBC,gBAAgB,GAAAL,KAAA,CAAhBK,gBAAgB;IAChBC,MAAM,GAAAN,KAAA,CAANM,MAAM;IACNC,QAAQ,GAAAP,KAAA,CAARO,QAAQ;EAER,IAAI,CAACL,IAAI,IAAI,CAACA,IAAI,CAACM,UAAU,CAAC,OAAO,CAAC,EAAE;IACtC,OAAOC,QAAA,CAAAC,OAAA,CAAQC,OAAO,EAAE;EAC1B;EAEAV,IAAI,GAAGA,IAAI,YAAYW,IAAI,GAAGX,IAAI,GAAG,IAAIW,IAAI,CAAC,CAACX,IAAI,CAAC,CAAC;EAErD,OAAO,IAAAQ,QAAA,CAAAC,OAAA,CAAY,UAACC,OAAO,EAAEE,MAAM,EAAK;IACtC,IAAMC,GAAG,GAAG,IAAIC,KAAK,EAAE;IAEvBD,GAAG,CAACE,MAAM,GAAG,SAASA,MAAMA,CAAA,EAAG;MAC7BL,OAAO,CAACG,GAAG,CAAC;IACd,CAAC;IACDA,GAAG,CAACG,OAAO,GAAGJ,MAAM;IACpBC,GAAG,CAACI,GAAG,GAAGC,GAAG,CAACC,eAAe,CAACnB,IAAI,CAAC;EACrC,CAAC,CAAC,CAACoB,IAAI,CAAC,UAACP,GAAG,EAAK;IACf,IAAMQ,cAAc,GAAG,IAAAC,YAAI,EAACT,GAAG,EAAE,QAAQ,EAAE,OAAO,CAAC;IAEnD,IAAIP,QAAQ,EAAE;MACZ;MACAD,MAAM,CAACkB,IAAI,CAAC,yCAAyC,CAAC;MACtD,IAAMC,IAAI,GACRH,cAAc,CAACxB,MAAM,GAAGwB,cAAc,CAACzB,KAAK,GAAGyB,cAAc,CAACxB,MAAM,GAAGwB,cAAc,CAACzB,KAAK;MAE7FyB,cAAc,CAACxB,MAAM,GAAG2B,IAAI;MAC5BH,cAAc,CAACzB,KAAK,GAAG4B,IAAI;IAC7B;IACA,IAAI,CAACpB,gBAAgB,EAAE;MACrBC,MAAM,CAACkB,IAAI,CAAC,wBAAwB,CAAC;MAErC,OAAO,CAAC,IAAI,EAAEF,cAAc,EAAE,IAAI,CAAC;IACrC;IACA,IAAMI,mBAAmB,GAAGjC,iBAAiB,CAC3C6B,cAAc,EACdnB,iBAAiB,EACjBC,kBAAkB,CACnB;IAED,IAAMuB,MAAM,GAAGC,QAAQ,CAACC,aAAa,CAAC,QAAQ,CAAC;IAC/C,IAAMC,GAAG,GAAGH,MAAM,CAACI,UAAU,CAAC,IAAI,CAAC;IACnC,IAAOlC,KAAK,GAAY6B,mBAAmB,CAApC7B,KAAK;MAAEC,MAAM,GAAI4B,mBAAmB,CAA7B5B,MAAM;;IAEpB;IACA;IACA,IAAIG,IAAI,CAAC+B,WAAW,IAAI/B,IAAI,CAAC+B,WAAW,GAAG,CAAC,EAAE;MAC5CL,MAAM,CAAC9B,KAAK,GAAGC,MAAM;MACrB6B,MAAM,CAAC7B,MAAM,GAAGD,KAAK;MACrB6B,mBAAmB,CAAC7B,KAAK,GAAGC,MAAM;MAClC4B,mBAAmB,CAAC5B,MAAM,GAAGD,KAAK;IACpC,CAAC,MAAM;MACL8B,MAAM,CAAC9B,KAAK,GAAG6B,mBAAmB,CAAC7B,KAAK;MACxC8B,MAAM,CAAC7B,MAAM,GAAG4B,mBAAmB,CAAC5B,MAAM;IAC5C;IAEA,IAAAmC,cAAM,EACJ;MACED,WAAW,EAAE/B,IAAI,IAAIA,IAAI,CAAC+B,WAAW,GAAG/B,IAAI,CAAC+B,WAAW,GAAG,EAAE;MAC7DlB,GAAG,EAAHA,GAAG;MACHoB,CAAC,EAAE,CAAC;MACJC,CAAC,EAAE,CAAC;MACJtC,KAAK,EAALA,KAAK;MACLC,MAAM,EAANA,MAAM;MACNgC,GAAG,EAAHA;IACF,CAAC,EACD7B,IAAI,CACL;IAED,IAAMmC,KAAK,GAAGT,MAAM,CAACU,SAAS,CAAC,WAAW,CAAC,CAACC,KAAK,CAAC,GAAG,CAAC;IACtD;IACA,IAAMC,UAAU,GAAGC,IAAI,CAACJ,KAAK,CAAC,CAAC,CAAC,CAAC;IAEjC,IAAMK,MAAM,GAAG,IAAIC,WAAW,CAACH,UAAU,CAACI,MAAM,CAAC;IACjD,IAAMC,IAAI,GAAG,IAAIC,QAAQ,CAACJ,MAAM,CAAC;IAEjC,KAAK,IAAIK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGP,UAAU,CAACI,MAAM,EAAEG,CAAC,IAAI,CAAC,EAAE;MAC7CF,IAAI,CAACG,QAAQ,CAACD,CAAC,EAAEP,UAAU,CAACS,UAAU,CAACF,CAAC,CAAC,CAAC;IAC5C;IAEA,OAAO,CAACL,MAAM,EAAEnB,cAAc,EAAEI,mBAAmB,CAAC;EACtD,CAAC,CAAC;AACJ"}
@@ -7,8 +7,8 @@ _Object$defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = processImage;
9
9
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
10
- var _pick2 = _interopRequireDefault(require("lodash/pick"));
11
10
  var _gm = _interopRequireDefault(require("gm"));
11
+ var _lodash = require("lodash");
12
12
  /*!
13
13
  * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
14
14
  */
@@ -40,7 +40,7 @@ function processImage(_ref) {
40
40
  reject(err);
41
41
  return;
42
42
  }
43
- resolve((0, _pick2.default)(size, 'width', 'height'));
43
+ resolve((0, _lodash.pick)(size, 'width', 'height'));
44
44
  });
45
45
  });
46
46
  var thumbnail;
@@ -62,7 +62,7 @@ function processImage(_ref) {
62
62
  reject(err);
63
63
  return;
64
64
  }
65
- resolve((0, _pick2.default)(size, 'width', 'height'));
65
+ resolve((0, _lodash.pick)(size, 'width', 'height'));
66
66
  });
67
67
  });
68
68
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_gm","_interopRequireDefault","require","processImage","_ref","file","type","thumbnailMaxWidth","thumbnailMaxHeight","enableThumbnails","logger","fileType","startsWith","_promise","default","resolve","fileDimensions","reject","gm","size","err","_pick2","thumbnail","thumbnailDimensions","resize","autoOrient","toBuffer","buffer","then","all","catch","errorString","toString","includes","warn","debug"],"sources":["process-image.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport gm from 'gm';\nimport {pick} from 'lodash';\n\n/**\n * Measures an image file and produces a thumbnail for it\n * @param {Object} options\n * @param {Blob|ArrayBuffer} options.file\n * @param {Number} options.thumbnailMaxWidth\n * @param {Number} options.thumbnailMaxHeight\n * @param {Boolean} options.enableThumbnails\n * @param {Object} options.logger\n * @returns {Promise<Array>} Buffer, Dimensions, thumbnailDimensions\n */\nexport default function processImage({\n file,\n type,\n thumbnailMaxWidth,\n thumbnailMaxHeight,\n enableThumbnails,\n logger,\n}) {\n const fileType = type || file.type;\n\n if (!fileType || !fileType.startsWith('image')) {\n return Promise.resolve();\n }\n\n const fileDimensions = new Promise((resolve, reject) => {\n gm(file).size((err, size) => {\n if (err) {\n reject(err);\n\n return;\n }\n\n resolve(pick(size, 'width', 'height'));\n });\n });\n\n let thumbnail;\n let thumbnailDimensions;\n\n if (enableThumbnails) {\n thumbnail = new Promise((resolve, reject) => {\n gm(file)\n .resize(thumbnailMaxWidth, thumbnailMaxHeight)\n .autoOrient()\n .toBuffer('PNG', (err, buffer) => {\n if (err) {\n reject(err);\n\n return;\n }\n\n resolve(buffer);\n });\n });\n\n thumbnailDimensions = thumbnail.then(\n (buffer) =>\n new Promise((resolve, reject) => {\n gm(buffer).size((err, size) => {\n if (err) {\n reject(err);\n\n return;\n }\n\n resolve(pick(size, 'width', 'height'));\n });\n })\n );\n }\n\n return Promise.all([thumbnail, fileDimensions, thumbnailDimensions]).catch((err) => {\n const errorString = err.toString();\n\n if (errorString.includes('EPIPE')) {\n logger.warn(err, 'Is GraphicsMagick installed?');\n\n return Promise.resolve();\n }\n\n if (errorString.includes('No decode delegate for this image format')) {\n logger.debug(err, 'File does not appear to be an image');\n\n return Promise.resolve();\n }\n\n if (errorString.includes('Stream yields empty buffer')) {\n logger.debug(err, 'File does not appear to be an image');\n\n return Promise.resolve();\n }\n\n return Promise.reject(err);\n });\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_gm","_interopRequireDefault","require","_lodash","processImage","_ref","file","type","thumbnailMaxWidth","thumbnailMaxHeight","enableThumbnails","logger","fileType","startsWith","_promise","default","resolve","fileDimensions","reject","gm","size","err","pick","thumbnail","thumbnailDimensions","resize","autoOrient","toBuffer","buffer","then","all","catch","errorString","toString","includes","warn","debug"],"sources":["process-image.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport gm from 'gm';\nimport {pick} from 'lodash';\n\n/**\n * Measures an image file and produces a thumbnail for it\n * @param {Object} options\n * @param {Blob|ArrayBuffer} options.file\n * @param {Number} options.thumbnailMaxWidth\n * @param {Number} options.thumbnailMaxHeight\n * @param {Boolean} options.enableThumbnails\n * @param {Object} options.logger\n * @returns {Promise<Array>} Buffer, Dimensions, thumbnailDimensions\n */\nexport default function processImage({\n file,\n type,\n thumbnailMaxWidth,\n thumbnailMaxHeight,\n enableThumbnails,\n logger,\n}) {\n const fileType = type || file.type;\n\n if (!fileType || !fileType.startsWith('image')) {\n return Promise.resolve();\n }\n\n const fileDimensions = new Promise((resolve, reject) => {\n gm(file).size((err, size) => {\n if (err) {\n reject(err);\n\n return;\n }\n\n resolve(pick(size, 'width', 'height'));\n });\n });\n\n let thumbnail;\n let thumbnailDimensions;\n\n if (enableThumbnails) {\n thumbnail = new Promise((resolve, reject) => {\n gm(file)\n .resize(thumbnailMaxWidth, thumbnailMaxHeight)\n .autoOrient()\n .toBuffer('PNG', (err, buffer) => {\n if (err) {\n reject(err);\n\n return;\n }\n\n resolve(buffer);\n });\n });\n\n thumbnailDimensions = thumbnail.then(\n (buffer) =>\n new Promise((resolve, reject) => {\n gm(buffer).size((err, size) => {\n if (err) {\n reject(err);\n\n return;\n }\n\n resolve(pick(size, 'width', 'height'));\n });\n })\n );\n }\n\n return Promise.all([thumbnail, fileDimensions, thumbnailDimensions]).catch((err) => {\n const errorString = err.toString();\n\n if (errorString.includes('EPIPE')) {\n logger.warn(err, 'Is GraphicsMagick installed?');\n\n return Promise.resolve();\n }\n\n if (errorString.includes('No decode delegate for this image format')) {\n logger.debug(err, 'File does not appear to be an image');\n\n return Promise.resolve();\n }\n\n if (errorString.includes('Stream yields empty buffer')) {\n logger.debug(err, 'File does not appear to be an image');\n\n return Promise.resolve();\n }\n\n return Promise.reject(err);\n });\n}\n"],"mappings":";;;;;;;;;AAIA,IAAAA,GAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AALA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASE,YAAYA,CAAAC,IAAA,EAOjC;EAAA,IANDC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IACJC,IAAI,GAAAF,IAAA,CAAJE,IAAI;IACJC,iBAAiB,GAAAH,IAAA,CAAjBG,iBAAiB;IACjBC,kBAAkB,GAAAJ,IAAA,CAAlBI,kBAAkB;IAClBC,gBAAgB,GAAAL,IAAA,CAAhBK,gBAAgB;IAChBC,MAAM,GAAAN,IAAA,CAANM,MAAM;EAEN,IAAMC,QAAQ,GAAGL,IAAI,IAAID,IAAI,CAACC,IAAI;EAElC,IAAI,CAACK,QAAQ,IAAI,CAACA,QAAQ,CAACC,UAAU,CAAC,OAAO,CAAC,EAAE;IAC9C,OAAOC,QAAA,CAAAC,OAAA,CAAQC,OAAO,EAAE;EAC1B;EAEA,IAAMC,cAAc,GAAG,IAAAH,QAAA,CAAAC,OAAA,CAAY,UAACC,OAAO,EAAEE,MAAM,EAAK;IACtD,IAAAC,WAAE,EAACb,IAAI,CAAC,CAACc,IAAI,CAAC,UAACC,GAAG,EAAED,IAAI,EAAK;MAC3B,IAAIC,GAAG,EAAE;QACPH,MAAM,CAACG,GAAG,CAAC;QAEX;MACF;MAEAL,OAAO,CAAC,IAAAM,YAAI,EAACF,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACxC,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF,IAAIG,SAAS;EACb,IAAIC,mBAAmB;EAEvB,IAAId,gBAAgB,EAAE;IACpBa,SAAS,GAAG,IAAAT,QAAA,CAAAC,OAAA,CAAY,UAACC,OAAO,EAAEE,MAAM,EAAK;MAC3C,IAAAC,WAAE,EAACb,IAAI,CAAC,CACLmB,MAAM,CAACjB,iBAAiB,EAAEC,kBAAkB,CAAC,CAC7CiB,UAAU,EAAE,CACZC,QAAQ,CAAC,KAAK,EAAE,UAACN,GAAG,EAAEO,MAAM,EAAK;QAChC,IAAIP,GAAG,EAAE;UACPH,MAAM,CAACG,GAAG,CAAC;UAEX;QACF;QAEAL,OAAO,CAACY,MAAM,CAAC;MACjB,CAAC,CAAC;IACN,CAAC,CAAC;IAEFJ,mBAAmB,GAAGD,SAAS,CAACM,IAAI,CAClC,UAACD,MAAM;MAAA,OACL,IAAAd,QAAA,CAAAC,OAAA,CAAY,UAACC,OAAO,EAAEE,MAAM,EAAK;QAC/B,IAAAC,WAAE,EAACS,MAAM,CAAC,CAACR,IAAI,CAAC,UAACC,GAAG,EAAED,IAAI,EAAK;UAC7B,IAAIC,GAAG,EAAE;YACPH,MAAM,CAACG,GAAG,CAAC;YAEX;UACF;UAEAL,OAAO,CAAC,IAAAM,YAAI,EAACF,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QACxC,CAAC,CAAC;MACJ,CAAC,CAAC;IAAA,EACL;EACH;EAEA,OAAON,QAAA,CAAAC,OAAA,CAAQe,GAAG,CAAC,CAACP,SAAS,EAAEN,cAAc,EAAEO,mBAAmB,CAAC,CAAC,CAACO,KAAK,CAAC,UAACV,GAAG,EAAK;IAClF,IAAMW,WAAW,GAAGX,GAAG,CAACY,QAAQ,EAAE;IAElC,IAAID,WAAW,CAACE,QAAQ,CAAC,OAAO,CAAC,EAAE;MACjCvB,MAAM,CAACwB,IAAI,CAACd,GAAG,EAAE,8BAA8B,CAAC;MAEhD,OAAOP,QAAA,CAAAC,OAAA,CAAQC,OAAO,EAAE;IAC1B;IAEA,IAAIgB,WAAW,CAACE,QAAQ,CAAC,0CAA0C,CAAC,EAAE;MACpEvB,MAAM,CAACyB,KAAK,CAACf,GAAG,EAAE,qCAAqC,CAAC;MAExD,OAAOP,QAAA,CAAAC,OAAA,CAAQC,OAAO,EAAE;IAC1B;IAEA,IAAIgB,WAAW,CAACE,QAAQ,CAAC,4BAA4B,CAAC,EAAE;MACtDvB,MAAM,CAACyB,KAAK,CAACf,GAAG,EAAE,qCAAqC,CAAC;MAExD,OAAOP,QAAA,CAAAC,OAAA,CAAQC,OAAO,EAAE;IAC1B;IAEA,OAAOF,QAAA,CAAAC,OAAA,CAAQG,MAAM,CAACG,GAAG,CAAC;EAC5B,CAAC,CAAC;AACJ"}
package/package.json CHANGED
@@ -1,6 +1,5 @@
1
1
  {
2
2
  "name": "@webex/helper-image",
3
- "version": "2.59.7",
4
3
  "description": "",
5
4
  "license": "MIT",
6
5
  "author": "Saurabh Jain <saurjai3@cisco.com>",
@@ -26,23 +25,23 @@
26
25
  },
27
26
  "devDependencies": {
28
27
  "@babel/core": "^7.17.10",
29
- "@webex/babel-config-legacy": "2.59.7",
30
- "@webex/eslint-config-legacy": "2.59.7",
31
- "@webex/jest-config-legacy": "2.59.7",
32
- "@webex/legacy-tools": "2.59.7",
33
- "@webex/test-helper-chai": "2.59.7",
34
- "@webex/test-helper-mocha": "2.59.7",
35
- "@webex/test-helper-mock-webex": "2.59.7",
36
- "@webex/test-helper-test-users": "2.59.7",
28
+ "@webex/babel-config-legacy": "^0.0.0",
29
+ "@webex/eslint-config-legacy": "^0.0.0",
30
+ "@webex/jest-config-legacy": "^0.0.0",
31
+ "@webex/legacy-tools": "^0.0.0",
32
+ "@webex/test-helper-chai": "^2.59.8-next.1",
33
+ "@webex/test-helper-mocha": "^2.59.8-next.1",
34
+ "@webex/test-helper-mock-webex": "^2.59.8-next.1",
35
+ "@webex/test-helper-test-users": "^2.59.8-next.1",
37
36
  "eslint": "^8.24.0",
38
37
  "prettier": "^2.7.1",
39
38
  "sinon": "^9.2.4"
40
39
  },
41
40
  "dependencies": {
42
- "@webex/http-core": "2.59.7",
43
- "@webex/test-helper-chai": "2.59.7",
44
- "@webex/test-helper-file": "2.59.7",
45
- "@webex/test-helper-mocha": "2.59.7",
41
+ "@webex/http-core": "^2.59.8-next.1",
42
+ "@webex/test-helper-chai": "^2.59.8-next.1",
43
+ "@webex/test-helper-file": "^2.59.8-next.1",
44
+ "@webex/test-helper-mocha": "^2.59.8-next.1",
46
45
  "exifr": "^5.0.3",
47
46
  "gm": "^1.23.1",
48
47
  "lodash": "^4.17.21",
@@ -52,10 +51,12 @@
52
51
  "scripts": {
53
52
  "build": "yarn build:src",
54
53
  "build:src": "webex-legacy-tools build -dest \"./dist\" -src \"./src\" -js -ts -maps",
54
+ "deploy:npm": "yarn npm publish",
55
55
  "test": "yarn test:style && yarn test:unit && yarn test:integration && yarn test:browser",
56
56
  "test:browser:broken": "webex-legacy-tools test --integration --unit --runner karma",
57
57
  "test:integration": "webex-legacy-tools test --integration --runner mocha",
58
58
  "test:style": "eslint ./src/**/*.*",
59
59
  "test:unit": "webex-legacy-tools test --unit --runner jest"
60
- }
61
- }
60
+ },
61
+ "version": "2.59.8-next.1"
62
+ }