@giphy/js-util 4.2.0 → 4.3.1-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5,7 +5,7 @@ interface IRenditionWithName extends IRendition {
5
5
  }
6
6
  export declare const getBestVideo: (video: IGif['video'], width: number, height: number) => IImage | undefined;
7
7
  export declare const getBestRendition: (images: IImages, gifWidth: number, gifHeight: number, scaleUpMaxPixels?: number) => IRenditionWithName;
8
- declare type Options = {
8
+ type Options = {
9
9
  isStill?: boolean;
10
10
  useVideo?: boolean;
11
11
  scaleUpMaxPixels?: number;
@@ -19,5 +19,5 @@ export declare const getGifWidth: ({ images }: IGif, gifHeight: number) => numbe
19
19
  * @prop {Gif}
20
20
  * @return {String} GIF alt text.
21
21
  */
22
- export declare const getAltText: ({ user, tags, is_sticker, title }: IGif) => string;
22
+ export declare const getAltText: ({ alt_text, user, tags, is_sticker, title }: IGif) => string;
23
23
  export {};
package/dist/gif-utils.js CHANGED
@@ -110,7 +110,10 @@ exports.getGifWidth = getGifWidth;
110
110
  * @return {String} GIF alt text.
111
111
  */
112
112
  var getAltText = function (_a) {
113
- var user = _a.user, _b = _a.tags, tags = _b === void 0 ? [] : _b, _c = _a.is_sticker, is_sticker = _c === void 0 ? false : _c, _d = _a.title, title = _d === void 0 ? '' : _d;
113
+ var alt_text = _a.alt_text, user = _a.user, _b = _a.tags, tags = _b === void 0 ? [] : _b, _c = _a.is_sticker, is_sticker = _c === void 0 ? false : _c, _d = _a.title, title = _d === void 0 ? '' : _d;
114
+ if (alt_text) {
115
+ return alt_text;
116
+ }
114
117
  if (title) {
115
118
  return title;
116
119
  }
@@ -1 +1 @@
1
- {"version":3,"file":"gif-utils.js","sourceRoot":"","sources":["../src/gif-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gif-utils.js","sourceRoot":"","sources":["../src/gif-utils.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- declare type GiphySDKRequestHeader = 'X-GIPHY-SDK-NAME' | 'X-GIPHY-SDK-VERSION' | 'X-GIPHY-SDK-PLATFORM';
1
+ type GiphySDKRequestHeader = 'X-GIPHY-SDK-NAME' | 'X-GIPHY-SDK-VERSION' | 'X-GIPHY-SDK-PLATFORM';
2
2
  export declare const getGiphySDKRequestHeaders: () => Headers | undefined;
3
3
  export declare const appendGiphySDKRequestHeader: (key: GiphySDKRequestHeader, value: string) => void | undefined;
4
4
  export declare const appendGiphySDKRequestParam: (key: GiphySDKRequestHeader, value: string) => void | undefined;
@@ -0,0 +1,18 @@
1
+ import { IRendition } from '@giphy/js-types';
2
+ export declare const setRenditionScaleUpMaxPixels: (pixels: number) => void;
3
+ /**
4
+ * Finds image rendition that best fits a given container preferring images
5
+ * ##### Note: all renditions are assumed to have the same aspect ratio
6
+ *
7
+ * When we have a portrait target and landscape gif, we choose a higher rendition to match
8
+ * the height of the portrait target, otherwise it's blurry (same applies for landscape to portrait)
9
+ *
10
+ * @name bestfit
11
+ * @function
12
+ * @param {Array.<Object>} renditions available image renditions each having a width and height property
13
+ * @param {Number} width
14
+ * @param {Number} height
15
+ * @param {Number} scaleUpMaxPixels the maximum pixels an asset should be scaled up
16
+ */
17
+ declare function bestfit(renditions: Array<IRendition>, width: number, height: number, scaleUpMaxPixels?: number): IRendition;
18
+ export default bestfit;
package/esm/bestfit.js ADDED
@@ -0,0 +1,57 @@
1
+ import { Logger } from './log';
2
+ var closestArea = function (width, height, renditions) {
3
+ var currentBest = Infinity;
4
+ var result;
5
+ // sort the renditions so we can avoid scaling up low resolutions
6
+ renditions.forEach(function (rendition) {
7
+ var widthPercentage = rendition.width / width;
8
+ var heightPercentage = rendition.height / height;
9
+ // a width percentage of 1 is exact, 2 is double, .5 half etc
10
+ var areaPercentage = widthPercentage * heightPercentage;
11
+ // img could be bigger or smaller
12
+ var testBest = Math.abs(1 - areaPercentage); // the closer to 0 the better
13
+ if (testBest < currentBest) {
14
+ currentBest = testBest;
15
+ result = rendition;
16
+ }
17
+ });
18
+ return result;
19
+ };
20
+ var SCALE_UP_MAX_PIXELS = 50;
21
+ export var setRenditionScaleUpMaxPixels = function (pixels) {
22
+ Logger.debug("@giphy/js-util set rendition selection scale up max pixels to ".concat(pixels));
23
+ SCALE_UP_MAX_PIXELS = pixels;
24
+ };
25
+ /**
26
+ * Finds image rendition that best fits a given container preferring images
27
+ * ##### Note: all renditions are assumed to have the same aspect ratio
28
+ *
29
+ * When we have a portrait target and landscape gif, we choose a higher rendition to match
30
+ * the height of the portrait target, otherwise it's blurry (same applies for landscape to portrait)
31
+ *
32
+ * @name bestfit
33
+ * @function
34
+ * @param {Array.<Object>} renditions available image renditions each having a width and height property
35
+ * @param {Number} width
36
+ * @param {Number} height
37
+ * @param {Number} scaleUpMaxPixels the maximum pixels an asset should be scaled up
38
+ */
39
+ function bestfit(renditions, width, height, scaleUpMaxPixels) {
40
+ if (scaleUpMaxPixels === void 0) { scaleUpMaxPixels = SCALE_UP_MAX_PIXELS; }
41
+ var largestRendition = renditions[0];
42
+ // filter out renditions that are smaller than the target width and height by scaleUpMaxPixels value
43
+ var testRenditions = renditions.filter(function (rendition) {
44
+ if (rendition.width * rendition.height > largestRendition.width * largestRendition.height) {
45
+ largestRendition = rendition;
46
+ }
47
+ return width - rendition.width <= scaleUpMaxPixels && height - rendition.height <= scaleUpMaxPixels;
48
+ });
49
+ // if all are too small, use the largest we have
50
+ if (testRenditions.length === 0) {
51
+ return largestRendition;
52
+ }
53
+ // find the closest area of the filtered renditions
54
+ return closestArea(width, height, testRenditions);
55
+ }
56
+ export default bestfit;
57
+ //# sourceMappingURL=bestfit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bestfit.js","sourceRoot":"","sources":["../src/bestfit.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAE9B,IAAM,WAAW,GAAG,UAAC,KAAa,EAAE,MAAc,EAAE,UAAwB;IACxE,IAAI,WAAW,GAAG,QAAQ,CAAA;IAC1B,IAAI,MAAkB,CAAA;IACtB,iEAAiE;IACjE,UAAU,CAAC,OAAO,CAAC,UAAC,SAAqB;QACrC,IAAM,eAAe,GAAG,SAAS,CAAC,KAAK,GAAG,KAAK,CAAA;QAC/C,IAAM,gBAAgB,GAAG,SAAS,CAAC,MAAM,GAAG,MAAM,CAAA;QAClD,6DAA6D;QAC7D,IAAM,cAAc,GAAG,eAAe,GAAG,gBAAgB,CAAA;QACzD,iCAAiC;QACjC,IAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,CAAA,CAAC,6BAA6B;QAC3E,IAAI,QAAQ,GAAG,WAAW,EAAE;YACxB,WAAW,GAAG,QAAQ,CAAA;YACtB,MAAM,GAAG,SAAS,CAAA;SACrB;IACL,CAAC,CAAC,CAAA;IACF,OAAO,MAAO,CAAA;AAClB,CAAC,CAAA;AAED,IAAI,mBAAmB,GAAG,EAAE,CAAA;AAC5B,MAAM,CAAC,IAAM,4BAA4B,GAAG,UAAC,MAAc;IACvD,MAAM,CAAC,KAAK,CAAC,wEAAiE,MAAM,CAAE,CAAC,CAAA;IACvF,mBAAmB,GAAG,MAAM,CAAA;AAChC,CAAC,CAAA;AACD;;;;;;;;;;;;;GAaG;AACH,SAAS,OAAO,CACZ,UAA6B,EAC7B,KAAa,EACb,MAAc,EACd,gBAA8C;IAA9C,iCAAA,EAAA,sCAA8C;IAEzC,IAAA,gBAAgB,GAAI,UAAU,GAAd,CAAc;IACnC,oGAAoG;IACpG,IAAM,cAAc,GAAG,UAAU,CAAC,MAAM,CAAC,UAAA,SAAS;QAC9C,IAAI,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,MAAM,GAAG,gBAAgB,CAAC,KAAK,GAAG,gBAAgB,CAAC,MAAM,EAAE;YACvF,gBAAgB,GAAG,SAAS,CAAA;SAC/B;QACD,OAAO,KAAK,GAAG,SAAS,CAAC,KAAK,IAAI,gBAAgB,IAAI,MAAM,GAAG,SAAS,CAAC,MAAM,IAAI,gBAAgB,CAAA;IACvG,CAAC,CAAC,CAAA;IACF,gDAAgD;IAChD,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE;QAC7B,OAAO,gBAAgB,CAAA;KAC1B;IACD,mDAAmD;IACnD,OAAO,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,CAAC,CAAA;AACrD,CAAC;AAED,eAAe,OAAO,CAAA"}
@@ -0,0 +1,5 @@
1
+ export declare function mapValues(object: any, mapFn: (val: any, key: string) => any): any;
2
+ export declare function forEach(object: any, mapFn: (val: any, key: any) => void): void;
3
+ export declare function take<T>(arr: T[], count?: number): T[];
4
+ export declare function without<T>(arr: T[], values: T[]): T[];
5
+ export declare function pick<T extends object, U extends keyof T>(object: T, pick: Array<U>): Pick<T, U>;
@@ -0,0 +1,34 @@
1
+ export function mapValues(object, mapFn) {
2
+ if (Array.isArray(object)) {
3
+ throw "This map is just for objects, just use array.map for arrays";
4
+ }
5
+ return Object.keys(object).reduce(function (result, key) {
6
+ result[key] = mapFn(object[key], key);
7
+ return result;
8
+ }, {});
9
+ }
10
+ export function forEach(object, mapFn) {
11
+ if (Array.isArray(object)) {
12
+ throw "This map is just for objects, just use array.forEach for arrays";
13
+ }
14
+ return Object.keys(object).forEach(function (key) {
15
+ mapFn(object[key], key);
16
+ });
17
+ }
18
+ export function take(arr, count) {
19
+ if (count === void 0) { count = 0; }
20
+ return arr.slice(0, count);
21
+ }
22
+ export function without(arr, values) {
23
+ return arr.filter(function (val) { return values.indexOf(val) === -1; });
24
+ }
25
+ export function pick(object, pick) {
26
+ var res = {};
27
+ pick.forEach(function (key) {
28
+ if (object[key] !== undefined) {
29
+ res[key] = object[key];
30
+ }
31
+ });
32
+ return res;
33
+ }
34
+ //# sourceMappingURL=collections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collections.js","sourceRoot":"","sources":["../src/collections.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CAAC,MAAW,EAAE,KAAqC;IACxE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACvB,MAAM,6DAA6D,CAAA;KACtE;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,UAAC,MAAW,EAAE,GAAW;QACvD,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAA;QACrC,OAAO,MAAM,CAAA;IACjB,CAAC,EAAE,EAAE,CAAC,CAAA;AACV,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,MAAW,EAAE,KAAmC;IACpE,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;QACvB,MAAM,iEAAiE,CAAA;KAC1E;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAC,GAAW;QAC3C,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAA;IAC3B,CAAC,CAAC,CAAA;AACN,CAAC;AAED,MAAM,UAAU,IAAI,CAAI,GAAQ,EAAE,KAAS;IAAT,sBAAA,EAAA,SAAS;IACvC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,OAAO,CAAI,GAAQ,EAAE,MAAW;IAC5C,OAAO,GAAG,CAAC,MAAM,CAAC,UAAA,GAAG,IAAI,OAAA,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAA1B,CAA0B,CAAC,CAAA;AACxD,CAAC;AAED,MAAM,UAAU,IAAI,CAAsC,MAAS,EAAE,IAAc;IAC/E,IAAM,GAAG,GAAe,EAAE,CAAA;IAC1B,IAAI,CAAC,OAAO,CAAC,UAAC,GAAM;QAChB,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;YAC3B,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;SACzB;IACL,CAAC,CAAC,CAAA;IACF,OAAO,GAAiB,CAAA;AAC5B,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @param el HTMLElement
3
+ * @returns calculated properties of DOMReact
4
+ */
5
+ declare const getClientRect: (el: HTMLElement) => DOMRectReadOnly;
6
+ export default getClientRect;
@@ -0,0 +1,40 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ /**
13
+ * @param el HTMLElement
14
+ * @returns calculated properties of DOMReact
15
+ */
16
+ var getClientRect = function (el) {
17
+ var left = 0;
18
+ var top = 0;
19
+ var width = el.offsetWidth;
20
+ var height = el.offsetHeight;
21
+ // no layout thrash
22
+ do {
23
+ left += el.offsetLeft;
24
+ top += el.offsetTop;
25
+ el = el.offsetParent;
26
+ } while (el);
27
+ var result = {
28
+ left: left,
29
+ top: top,
30
+ width: width,
31
+ height: height,
32
+ right: left + width,
33
+ bottom: top + height,
34
+ x: left,
35
+ y: top,
36
+ };
37
+ return __assign(__assign({}, result), { toJSON: function () { return JSON.stringify(result); } });
38
+ };
39
+ export default getClientRect;
40
+ //# sourceMappingURL=get-client-rect-from-el.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-client-rect-from-el.js","sourceRoot":"","sources":["../src/get-client-rect-from-el.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA;;;GAGG;AACH,IAAM,aAAa,GAAG,UAAC,EAAe;IAClC,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,IAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAA;IAC5B,IAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAA;IAC9B,mBAAmB;IACnB,GAAG;QACC,IAAI,IAAI,EAAE,CAAC,UAAU,CAAA;QACrB,GAAG,IAAI,EAAE,CAAC,SAAS,CAAA;QACnB,EAAE,GAAG,EAAE,CAAC,YAA2B,CAAA;KACtC,QAAQ,EAAE,EAAC;IACZ,IAAM,MAAM,GAAG;QACX,IAAI,MAAA;QACJ,GAAG,KAAA;QACH,KAAK,OAAA;QACL,MAAM,QAAA;QACN,KAAK,EAAE,IAAI,GAAG,KAAK;QACnB,MAAM,EAAE,GAAG,GAAG,MAAM;QACpB,CAAC,EAAE,IAAI;QACP,CAAC,EAAE,GAAG;KACT,CAAA;IACD,6BAAY,MAAM,KAAE,MAAM,EAAE,cAAM,OAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAtB,CAAsB,IAAE;AAC9D,CAAC,CAAA;AAED,eAAe,aAAa,CAAA"}
@@ -0,0 +1,2 @@
1
+ declare const getPingbackId: () => string;
2
+ export default getPingbackId;
@@ -0,0 +1,43 @@
1
+ import { v4 as uuid } from 'uuid';
2
+ var pingbackId = '';
3
+ var idLength = 16;
4
+ /* istanbul ignore next */
5
+ var noUUIDRandom = function () {
6
+ var result = '';
7
+ var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
8
+ var charactersLength = characters.length;
9
+ for (var i = 0; i < idLength; i++) {
10
+ result += characters.charAt(Math.floor(Math.random() * charactersLength));
11
+ }
12
+ return result;
13
+ };
14
+ var getPingbackId = function () {
15
+ // it exists in memory
16
+ if (!pingbackId) {
17
+ try {
18
+ // it exists in storage
19
+ pingbackId = sessionStorage.getItem('giphyPingbackId');
20
+ }
21
+ catch (_) { }
22
+ if (!pingbackId) {
23
+ // we need to create it
24
+ var hexTime = new Date().getTime().toString(16); // was told to mimic what we had
25
+ try {
26
+ // React Native doesn't support uuid without a polyfill
27
+ pingbackId = "".concat(hexTime).concat(uuid().replace(/-/g, '')).substring(0, idLength); // 16 character max
28
+ }
29
+ catch (error) {
30
+ /* istanbul ignore next */
31
+ pingbackId = noUUIDRandom();
32
+ }
33
+ try {
34
+ // save in storage
35
+ sessionStorage.setItem('giphyPingbackId', pingbackId);
36
+ }
37
+ catch (_) { }
38
+ }
39
+ }
40
+ return pingbackId;
41
+ };
42
+ export default getPingbackId;
43
+ //# sourceMappingURL=get-pingback-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-pingback-id.js","sourceRoot":"","sources":["../src/get-pingback-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAA;AACjC,IAAI,UAAU,GAAG,EAAE,CAAA;AAEnB,IAAM,QAAQ,GAAG,EAAE,CAAA;AAEnB,0BAA0B;AAC1B,IAAM,YAAY,GAAG;IACjB,IAAI,MAAM,GAAG,EAAE,CAAA;IACf,IAAM,UAAU,GAAG,gEAAgE,CAAA;IACnF,IAAM,gBAAgB,GAAG,UAAU,CAAC,MAAM,CAAA;IAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;QAC/B,MAAM,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAA;KAC5E;IACD,OAAO,MAAM,CAAA;AACjB,CAAC,CAAA;AACD,IAAM,aAAa,GAAG;IAClB,sBAAsB;IACtB,IAAI,CAAC,UAAU,EAAE;QACb,IAAI;YACA,uBAAuB;YACvB,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,iBAAiB,CAAW,CAAA;SACnE;QAAC,OAAO,CAAC,EAAE,GAAE;QACd,IAAI,CAAC,UAAU,EAAE;YACb,uBAAuB;YACvB,IAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA,CAAC,gCAAgC;YAClF,IAAI;gBACA,uDAAuD;gBACvD,UAAU,GAAG,UAAG,OAAO,SAAG,IAAI,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAE,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA,CAAC,mBAAmB;aAClG;YAAC,OAAO,KAAK,EAAE;gBACZ,0BAA0B;gBAC1B,UAAU,GAAG,YAAY,EAAE,CAAA;aAC9B;YACD,IAAI;gBACA,kBAAkB;gBAClB,cAAc,CAAC,OAAO,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAA;aACxD;YAAC,OAAO,CAAC,EAAE,GAAE;SACjB;KACJ;IACD,OAAO,UAAU,CAAA;AACrB,CAAC,CAAA;AAED,eAAe,aAAa,CAAA"}
@@ -0,0 +1,23 @@
1
+ import { IGif, IImage, IImages, IRendition } from '@giphy/js-types';
2
+ export declare const getSpecificRendition: ({ images, is_sticker: isSticker }: IGif, renditionLabel: string, isStill?: boolean, useVideo?: boolean) => string;
3
+ interface IRenditionWithName extends IRendition {
4
+ renditionName: keyof IImages;
5
+ }
6
+ export declare const getBestVideo: (video: IGif['video'], width: number, height: number) => IImage | undefined;
7
+ export declare const getBestRendition: (images: IImages, gifWidth: number, gifHeight: number, scaleUpMaxPixels?: number) => IRenditionWithName;
8
+ type Options = {
9
+ isStill?: boolean;
10
+ useVideo?: boolean;
11
+ scaleUpMaxPixels?: number;
12
+ };
13
+ export declare const getBestRenditionUrl: ({ images, video, type }: IGif, gifWidth: number, gifHeight: number, options?: Options) => keyof IImages | '';
14
+ export declare const getGifHeight: ({ images }: IGif, gifWidth: number) => number;
15
+ export declare const getGifWidth: ({ images }: IGif, gifHeight: number) => number;
16
+ /**
17
+ * GIF Text - Alt Text: Generates alt text for
18
+ * GIF images based on username and tags.
19
+ * @prop {Gif}
20
+ * @return {String} GIF alt text.
21
+ */
22
+ export declare const getAltText: ({ alt_text, user, tags, is_sticker, title }: IGif) => string;
23
+ export {};
@@ -0,0 +1,112 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import bestfit from './bestfit';
13
+ import { pick, take, without } from './collections';
14
+ import { SUPPORTS_WEBP } from './webp-check';
15
+ export var getSpecificRendition = function (_a, renditionLabel, isStill, useVideo) {
16
+ var images = _a.images, isSticker = _a.is_sticker;
17
+ if (isStill === void 0) { isStill = false; }
18
+ if (useVideo === void 0) { useVideo = false; }
19
+ if (!images || !renditionLabel)
20
+ return '';
21
+ isStill = isStill && !useVideo;
22
+ // @ts-ignore come back to this
23
+ var rendition = images["".concat(renditionLabel).concat(isStill ? '_still' : '')];
24
+ if (rendition) {
25
+ if (isSticker || isStill) {
26
+ return rendition.url;
27
+ }
28
+ var webP = SUPPORTS_WEBP && rendition.webp;
29
+ return useVideo ? rendition.mp4 : webP || rendition.url;
30
+ }
31
+ return '';
32
+ };
33
+ export var getBestVideo = function (video, width, height) {
34
+ var assets = video === null || video === void 0 ? void 0 : video.assets;
35
+ if (assets) {
36
+ assets = __assign({}, assets);
37
+ // @ts-ignore we don't show source according to the existing code
38
+ delete assets.source;
39
+ var filteredAssets = Object.values(assets).sort(function (a, b) { return a.width - b.width; });
40
+ return bestfit(filteredAssets, width, height);
41
+ }
42
+ };
43
+ var getRenditions = function (type, images, video) {
44
+ return type === 'video' && video && video.previews && !Object.keys(images).length ? video.previews : images;
45
+ };
46
+ export var getBestRendition = function (images, gifWidth, gifHeight, scaleUpMaxPixels) {
47
+ var checkRenditions = pick(images, [
48
+ 'original',
49
+ 'fixed_width',
50
+ 'fixed_height',
51
+ 'fixed_width_small',
52
+ 'fixed_height_small',
53
+ ]);
54
+ var testImages = Object.entries(checkRenditions).map(function (_a) {
55
+ var renditionName = _a[0], val = _a[1];
56
+ return (__assign({ renditionName: renditionName }, val));
57
+ });
58
+ return bestfit(testImages, gifWidth, gifHeight, scaleUpMaxPixels);
59
+ };
60
+ export var getBestRenditionUrl = function (_a, gifWidth, gifHeight, options) {
61
+ var images = _a.images, video = _a.video, type = _a.type;
62
+ if (options === void 0) { options = { isStill: false, useVideo: false }; }
63
+ if (!gifWidth || !gifHeight || !images)
64
+ return '';
65
+ var useVideo = options.useVideo, isStill = options.isStill, scaleUpMaxPixels = options.scaleUpMaxPixels;
66
+ var renditions = getRenditions(type, images, video);
67
+ var renditionName = getBestRendition(renditions, gifWidth, gifHeight, scaleUpMaxPixels).renditionName;
68
+ // still, video, webp or gif
69
+ var key = "".concat(renditionName).concat(isStill && !useVideo ? '_still' : '');
70
+ var rendition = renditions[key];
71
+ var match = useVideo ? rendition.mp4 : SUPPORTS_WEBP && rendition.webp ? rendition.webp : rendition.url;
72
+ return (match || '');
73
+ };
74
+ export var getGifHeight = function (_a, gifWidth) {
75
+ var images = _a.images;
76
+ var fixed_width = images.fixed_width;
77
+ if (fixed_width) {
78
+ var width = fixed_width.width, height = fixed_width.height;
79
+ var aspectRatio = width / height;
80
+ return Math.round(gifWidth / aspectRatio);
81
+ }
82
+ return 0;
83
+ };
84
+ export var getGifWidth = function (_a, gifHeight) {
85
+ var images = _a.images;
86
+ var fixed_width = images.fixed_width;
87
+ if (fixed_width) {
88
+ var width = fixed_width.width, height = fixed_width.height;
89
+ var aspectRatio = width / height;
90
+ return Math.round(gifHeight * aspectRatio);
91
+ }
92
+ return 0;
93
+ };
94
+ /**
95
+ * GIF Text - Alt Text: Generates alt text for
96
+ * GIF images based on username and tags.
97
+ * @prop {Gif}
98
+ * @return {String} GIF alt text.
99
+ */
100
+ export var getAltText = function (_a) {
101
+ var alt_text = _a.alt_text, user = _a.user, _b = _a.tags, tags = _b === void 0 ? [] : _b, _c = _a.is_sticker, is_sticker = _c === void 0 ? false : _c, _d = _a.title, title = _d === void 0 ? '' : _d;
102
+ if (alt_text) {
103
+ return alt_text;
104
+ }
105
+ if (title) {
106
+ return title;
107
+ }
108
+ var username = (user && user.username) || '';
109
+ var filteredTags = take(without(tags, ['transparent']), username ? 4 : 5);
110
+ return "".concat(username ? "".concat(username, " ") : "").concat(filteredTags.join(' '), " ").concat(is_sticker ? 'Sticker' : 'GIF');
111
+ };
112
+ //# sourceMappingURL=gif-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gif-utils.js","sourceRoot":"","sources":["../src/gif-utils.ts"],"names":[],"mappings":"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"}
package/esm/index.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ export { default as bestfit, setRenditionScaleUpMaxPixels } from './bestfit';
2
+ export * from './collections';
3
+ export { default as getClientRect } from './get-client-rect-from-el';
4
+ export { default as getPingbackId } from './get-pingback-id';
5
+ export { getAltText, getBestRendition, getBestRenditionUrl, getBestVideo, getGifHeight, getGifWidth, getSpecificRendition, } from './gif-utils';
6
+ export * from './log';
7
+ export * from './sdk-headers';
8
+ export { checkIfWebP } from './webp-check';
package/esm/index.js ADDED
@@ -0,0 +1,9 @@
1
+ export { default as bestfit, setRenditionScaleUpMaxPixels } from './bestfit';
2
+ export * from './collections';
3
+ export { default as getClientRect } from './get-client-rect-from-el';
4
+ export { default as getPingbackId } from './get-pingback-id';
5
+ export { getAltText, getBestRendition, getBestRenditionUrl, getBestVideo, getGifHeight, getGifWidth, getSpecificRendition, } from './gif-utils';
6
+ export * from './log';
7
+ export * from './sdk-headers';
8
+ export { checkIfWebP } from './webp-check';
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,4BAA4B,EAAE,MAAM,WAAW,CAAA;AAC5E,cAAc,eAAe,CAAA;AAC7B,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACpE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAC5D,OAAO,EACH,UAAU,EACV,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,oBAAoB,GACvB,MAAM,aAAa,CAAA;AACpB,cAAc,OAAO,CAAA;AACrB,cAAc,eAAe,CAAA;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA"}
package/esm/log.d.ts ADDED
@@ -0,0 +1,15 @@
1
+ export declare enum LogLevel {
2
+ DEBUG = 0,
3
+ INFO = 1,
4
+ WARN = 2,
5
+ ERROR = 3
6
+ }
7
+ export declare const Logger: {
8
+ ENABLED: boolean;
9
+ LEVEL: number;
10
+ PREFIX: string;
11
+ debug: (...msg: any) => void;
12
+ info: (...msg: any) => void;
13
+ warn: (...msg: any) => void;
14
+ error: (...msg: any) => void;
15
+ };
package/esm/log.js ADDED
@@ -0,0 +1,62 @@
1
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
2
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
3
+ if (ar || !(i in from)) {
4
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
5
+ ar[i] = from[i];
6
+ }
7
+ }
8
+ return to.concat(ar || Array.prototype.slice.call(from));
9
+ };
10
+ /* istanbul ignore next */
11
+ export var LogLevel;
12
+ (function (LogLevel) {
13
+ LogLevel[LogLevel["DEBUG"] = 0] = "DEBUG";
14
+ LogLevel[LogLevel["INFO"] = 1] = "INFO";
15
+ LogLevel[LogLevel["WARN"] = 2] = "WARN";
16
+ LogLevel[LogLevel["ERROR"] = 3] = "ERROR";
17
+ })(LogLevel || (LogLevel = {}));
18
+ /* istanbul ignore next */
19
+ export var Logger = {
20
+ ENABLED: typeof window !== 'undefined' &&
21
+ typeof location !== 'undefined' &&
22
+ location.search.indexOf('giphy-debug') !== -1,
23
+ LEVEL: 0,
24
+ PREFIX: 'GiphyJS',
25
+ debug: function () {
26
+ var msg = [];
27
+ for (var _i = 0; _i < arguments.length; _i++) {
28
+ msg[_i] = arguments[_i];
29
+ }
30
+ if (Logger.ENABLED && Logger.LEVEL <= LogLevel.DEBUG) {
31
+ console.debug.apply(console, __spreadArray([Logger.PREFIX], msg, false)); // eslint-disable-line no-console
32
+ }
33
+ },
34
+ info: function () {
35
+ var msg = [];
36
+ for (var _i = 0; _i < arguments.length; _i++) {
37
+ msg[_i] = arguments[_i];
38
+ }
39
+ if (Logger.ENABLED && Logger.LEVEL <= LogLevel.INFO) {
40
+ console.info.apply(console, __spreadArray([Logger.PREFIX], msg, false)); // eslint-disable-line no-console
41
+ }
42
+ },
43
+ warn: function () {
44
+ var msg = [];
45
+ for (var _i = 0; _i < arguments.length; _i++) {
46
+ msg[_i] = arguments[_i];
47
+ }
48
+ if (Logger.ENABLED && Logger.LEVEL <= LogLevel.WARN) {
49
+ console.warn.apply(console, __spreadArray([Logger.PREFIX], msg, false)); // eslint-disable-line no-console
50
+ }
51
+ },
52
+ error: function () {
53
+ var msg = [];
54
+ for (var _i = 0; _i < arguments.length; _i++) {
55
+ msg[_i] = arguments[_i];
56
+ }
57
+ if (Logger.ENABLED && Logger.LEVEL <= LogLevel.ERROR) {
58
+ console.error.apply(console, __spreadArray([Logger.PREFIX], msg, false)); // eslint-disable-line no-console
59
+ }
60
+ },
61
+ };
62
+ //# sourceMappingURL=log.js.map
package/esm/log.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log.js","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":";;;;;;;;;AAAA,0BAA0B;AAC1B,MAAM,CAAN,IAAY,QAKX;AALD,WAAY,QAAQ;IAChB,yCAAS,CAAA;IACT,uCAAQ,CAAA;IACR,uCAAQ,CAAA;IACR,yCAAS,CAAA;AACb,CAAC,EALW,QAAQ,KAAR,QAAQ,QAKnB;AACD,0BAA0B;AAC1B,MAAM,CAAC,IAAM,MAAM,GAAG;IAClB,OAAO,EACH,OAAO,MAAM,KAAK,WAAW;QAC7B,OAAO,QAAQ,KAAK,WAAW;QAC/B,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACjD,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE;QAAC,aAAW;aAAX,UAAW,EAAX,qBAAW,EAAX,IAAW;YAAX,wBAAW;;QACf,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,EAAE;YAClD,OAAO,CAAC,KAAK,OAAb,OAAO,iBAAO,MAAM,CAAC,MAAM,GAAK,GAAG,UAAC,CAAC,iCAAiC;SACzE;IACL,CAAC;IACD,IAAI,EAAE;QAAC,aAAW;aAAX,UAAW,EAAX,qBAAW,EAAX,IAAW;YAAX,wBAAW;;QACd,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE;YACjD,OAAO,CAAC,IAAI,OAAZ,OAAO,iBAAM,MAAM,CAAC,MAAM,GAAK,GAAG,UAAC,CAAC,iCAAiC;SACxE;IACL,CAAC;IACD,IAAI,EAAE;QAAC,aAAW;aAAX,UAAW,EAAX,qBAAW,EAAX,IAAW;YAAX,wBAAW;;QACd,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE;YACjD,OAAO,CAAC,IAAI,OAAZ,OAAO,iBAAM,MAAM,CAAC,MAAM,GAAK,GAAG,UAAC,CAAC,iCAAiC;SACxE;IACL,CAAC;IACD,KAAK,EAAE;QAAC,aAAW;aAAX,UAAW,EAAX,qBAAW,EAAX,IAAW;YAAX,wBAAW;;QACf,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,EAAE;YAClD,OAAO,CAAC,KAAK,OAAb,OAAO,iBAAO,MAAM,CAAC,MAAM,GAAK,GAAG,UAAC,CAAC,iCAAiC;SACzE;IACL,CAAC;CACJ,CAAA"}
@@ -0,0 +1,5 @@
1
+ type GiphySDKRequestHeader = 'X-GIPHY-SDK-NAME' | 'X-GIPHY-SDK-VERSION' | 'X-GIPHY-SDK-PLATFORM';
2
+ export declare const getGiphySDKRequestHeaders: () => Headers | undefined;
3
+ export declare const appendGiphySDKRequestHeader: (key: GiphySDKRequestHeader, value: string) => void | undefined;
4
+ export declare const appendGiphySDKRequestParam: (key: GiphySDKRequestHeader, value: string) => void | undefined;
5
+ export {};
@@ -0,0 +1,13 @@
1
+ var gl = ((typeof window !== 'undefined' ? window : global) || {});
2
+ // define _GIPHY_SDK_HEADERS_ if they don't exist
3
+ gl._GIPHY_SDK_HEADERS_ =
4
+ gl._GIPHY_SDK_HEADERS_ ||
5
+ (gl.Headers
6
+ ? new gl.Headers({
7
+ 'X-GIPHY-SDK-PLATFORM': 'web',
8
+ })
9
+ : undefined);
10
+ export var getGiphySDKRequestHeaders = function () { return gl._GIPHY_SDK_HEADERS_; };
11
+ export var appendGiphySDKRequestHeader = function (key, value) { var _a; return (_a = getGiphySDKRequestHeaders()) === null || _a === void 0 ? void 0 : _a.set(key, value); };
12
+ export var appendGiphySDKRequestParam = function (key, value) { var _a; return (_a = getGiphySDKRequestHeaders()) === null || _a === void 0 ? void 0 : _a.set(key, value); };
13
+ //# sourceMappingURL=sdk-headers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sdk-headers.js","sourceRoot":"","sources":["../src/sdk-headers.ts"],"names":[],"mappings":"AACA,IAAM,EAAE,GAAG,CAAC,CAAC,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAQ,CAAA;AAC3E,iDAAiD;AACjD,EAAE,CAAC,mBAAmB;IAClB,EAAE,CAAC,mBAAmB;QACtB,CAAC,EAAE,CAAC,OAAO;YACP,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC;gBACX,sBAAsB,EAAE,KAAK;aAChC,CAAC;YACJ,CAAC,CAAC,SAAS,CAAC,CAAA;AAEpB,MAAM,CAAC,IAAM,yBAAyB,GAAG,cAA2B,OAAA,EAAE,CAAC,mBAAmB,EAAtB,CAAsB,CAAA;AAE1F,MAAM,CAAC,IAAM,2BAA2B,GAAG,UAAC,GAA0B,EAAE,KAAa,YACjF,OAAA,MAAA,yBAAyB,EAAE,0CAAE,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA,EAAA,CAAA;AAEhD,MAAM,CAAC,IAAM,0BAA0B,GAAG,UAAC,GAA0B,EAAE,KAAa,YAChF,OAAA,MAAA,yBAAyB,EAAE,0CAAE,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA,EAAA,CAAA"}
@@ -0,0 +1,2 @@
1
+ export declare let SUPPORTS_WEBP: null | boolean;
2
+ export declare const checkIfWebP: Promise<unknown>;
@@ -0,0 +1,19 @@
1
+ export var SUPPORTS_WEBP = null;
2
+ /* istanbul ignore next */
3
+ export var checkIfWebP = new Promise(function (resolve) {
4
+ if (typeof Image === 'undefined') {
5
+ resolve(false);
6
+ }
7
+ var webp = new Image();
8
+ webp.onload = function () {
9
+ SUPPORTS_WEBP = true;
10
+ resolve(SUPPORTS_WEBP);
11
+ };
12
+ webp.onerror = function () {
13
+ SUPPORTS_WEBP = false;
14
+ resolve(SUPPORTS_WEBP);
15
+ };
16
+ webp.src =
17
+ 'data:image/webp;base64,UklGRjoAAABXRUJQVlA4IC4AAACyAgCdASoCAAIALmk0mk0iIiIiIgBoSygABc6WWgAA/veff/0PP8bA//LwYAAA';
18
+ });
19
+ //# sourceMappingURL=webp-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webp-check.js","sourceRoot":"","sources":["../src/webp-check.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,IAAI,aAAa,GAAmB,IAAI,CAAA;AAC/C,0BAA0B;AAC1B,MAAM,CAAC,IAAM,WAAW,GAAG,IAAI,OAAO,CAAC,UAAA,OAAO;IAC1C,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;QAC9B,OAAO,CAAC,KAAK,CAAC,CAAA;KACjB;IACD,IAAM,IAAI,GAAG,IAAI,KAAK,EAAE,CAAA;IACxB,IAAI,CAAC,MAAM,GAAG;QACV,aAAa,GAAG,IAAI,CAAA;QACpB,OAAO,CAAC,aAAa,CAAC,CAAA;IAC1B,CAAC,CAAA;IACD,IAAI,CAAC,OAAO,GAAG;QACX,aAAa,GAAG,KAAK,CAAA;QACrB,OAAO,CAAC,aAAa,CAAC,CAAA;IAC1B,CAAC,CAAA;IACD,IAAI,CAAC,GAAG;QACJ,iHAAiH,CAAA;AACzH,CAAC,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,20 +1,31 @@
1
1
  {
2
2
  "scripts": {
3
- "clean": "rm -rf ./dist",
3
+ "clean": "rm -rf ./dist ./esm",
4
4
  "dev": "tsc --watch",
5
- "prepublish": "npm run clean && tsc",
6
- "build": "tsc",
5
+ "build": "tsc && npm run build:esm",
6
+ "build:esm": "tsc -p ./tsconfig-esm.json",
7
+ "prepublish": "npm run clean && npm run build",
7
8
  "test": "jest --config ./jestconfig.js",
8
9
  "test:watch": "jest --config ./jestconfig.js --watchAll"
9
10
  },
10
11
  "name": "@giphy/js-util",
11
- "version": "4.2.0",
12
+ "version": "4.3.1-alpha.0",
12
13
  "main": "dist/index.js",
13
14
  "description": "Shared giphy js utils",
14
15
  "homepage": "https://github.com/Giphy/giphy-js/tree/master/packages/util",
15
16
  "types": "dist/index.d.ts",
17
+ "module": "esm/index.js",
18
+ "sideEffects": false,
19
+ "exports": {
20
+ ".": {
21
+ "import": "./esm/index.js",
22
+ "require": "./dist/index.js"
23
+ },
24
+ "./package.json": "./package.json"
25
+ },
16
26
  "files": [
17
- "dist/**/*",
27
+ "dist/",
28
+ "esm/",
18
29
  "src/**/*"
19
30
  ],
20
31
  "license": "MIT",
@@ -22,14 +33,14 @@
22
33
  "access": "public"
23
34
  },
24
35
  "dependencies": {
25
- "@giphy/js-types": "^4.3.0",
36
+ "@giphy/js-types": "^4.4.0",
26
37
  "dompurify": "^2.2.2",
27
38
  "uuid": "^8.3.0"
28
39
  },
29
40
  "devDependencies": {
30
41
  "@types/dompurify": "^2.0.4",
31
42
  "@types/uuid": "^8.3.0",
32
- "typescript": "^4.7.3"
43
+ "typescript": "^5.0.4"
33
44
  },
34
- "gitHead": "9fa6aac4df3881d705251b7d6ee462e8889dbd60"
45
+ "gitHead": "8eea28208eb8b146f724192fc2580402b623a461"
35
46
  }
package/src/gif-utils.ts CHANGED
@@ -114,7 +114,10 @@ export const getGifWidth = ({ images }: IGif, gifHeight: number) => {
114
114
  * @prop {Gif}
115
115
  * @return {String} GIF alt text.
116
116
  */
117
- export const getAltText = ({ user, tags = [], is_sticker = false, title = '' }: IGif): string => {
117
+ export const getAltText = ({ alt_text, user, tags = [], is_sticker = false, title = '' }: IGif): string => {
118
+ if (alt_text) {
119
+ return alt_text
120
+ }
118
121
  if (title) {
119
122
  return title
120
123
  }