@remotion/gif 4.0.0-webhook.27 → 4.1.0-alpha2

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 (94) hide show
  1. package/LICENSE.md +8 -8
  2. package/dist/cjs/Gif.d.ts +7 -0
  3. package/dist/{Gif.js → cjs/Gif.js} +11 -6
  4. package/dist/{GifForDevelopment.d.ts → cjs/GifForDevelopment.d.ts} +0 -0
  5. package/dist/{GifForDevelopment.js → cjs/GifForDevelopment.js} +10 -5
  6. package/dist/{GifForRendering.d.ts → cjs/GifForRendering.d.ts} +0 -0
  7. package/dist/{GifForRendering.js → cjs/GifForRendering.js} +14 -5
  8. package/dist/{canvas.d.ts → cjs/canvas.d.ts} +1 -1
  9. package/dist/{canvas.js → cjs/canvas.js} +3 -0
  10. package/dist/cjs/get-gif-duration-in-seconds.d.ts +5 -0
  11. package/dist/{get-gif-duration-in-seconds.js → cjs/get-gif-duration-in-seconds.js} +8 -3
  12. package/dist/cjs/gif-cache.d.ts +4 -0
  13. package/dist/cjs/gif-cache.js +6 -0
  14. package/dist/cjs/gifuct/deinterlace.d.ts +4 -0
  15. package/dist/cjs/gifuct/deinterlace.js +26 -0
  16. package/dist/cjs/gifuct/index.d.ts +4 -0
  17. package/dist/cjs/gifuct/index.js +54 -0
  18. package/dist/cjs/gifuct/lzw.d.ts +5 -0
  19. package/dist/cjs/gifuct/lzw.js +119 -0
  20. package/dist/cjs/gifuct/types.d.ts +96 -0
  21. package/dist/{props.js → cjs/gifuct/types.js} +0 -0
  22. package/dist/{index.d.ts → cjs/index.d.ts} +1 -0
  23. package/dist/{index.js → cjs/index.js} +3 -1
  24. package/dist/{is-cors-error.d.ts → cjs/is-cors-error.d.ts} +0 -0
  25. package/dist/{is-cors-error.js → cjs/is-cors-error.js} +0 -0
  26. package/dist/cjs/js-binary-schema-parser/gif.d.ts +51 -0
  27. package/dist/cjs/js-binary-schema-parser/gif.js +158 -0
  28. package/dist/cjs/js-binary-schema-parser/parser.d.ts +9 -0
  29. package/dist/cjs/js-binary-schema-parser/parser.js +54 -0
  30. package/dist/cjs/js-binary-schema-parser/uint8-parser.d.ts +17 -0
  31. package/dist/cjs/js-binary-schema-parser/uint8-parser.js +79 -0
  32. package/dist/cjs/lru/index.d.ts +101 -0
  33. package/dist/cjs/lru/index.js +258 -0
  34. package/dist/{parse-generate.d.ts → cjs/parse-generate.d.ts} +1 -1
  35. package/dist/{parse-generate.js → cjs/parse-generate.js} +27 -9
  36. package/dist/cjs/parser/decompress-frames.d.ts +2 -0
  37. package/dist/cjs/parser/decompress-frames.js +19 -0
  38. package/dist/cjs/preload-gif.d.ts +8 -0
  39. package/dist/cjs/preload-gif.js +41 -0
  40. package/dist/{props.d.ts → cjs/props.d.ts} +6 -3
  41. package/dist/cjs/props.js +2 -0
  42. package/dist/{react-tools.d.ts → cjs/react-tools.d.ts} +0 -0
  43. package/dist/{react-tools.js → cjs/react-tools.js} +1 -0
  44. package/dist/cjs/resolve-gif-source.d.ts +1 -0
  45. package/dist/cjs/resolve-gif-source.js +7 -0
  46. package/dist/{use-element-size.d.ts → cjs/use-element-size.d.ts} +1 -1
  47. package/dist/{use-element-size.js → cjs/use-element-size.js} +1 -1
  48. package/dist/cjs/useCurrentGifIndex.d.ts +2 -0
  49. package/dist/cjs/useCurrentGifIndex.js +35 -0
  50. package/dist/{worker → cjs/worker}/index.d.ts +0 -0
  51. package/dist/{worker → cjs/worker}/index.js +0 -0
  52. package/dist/cjs/worker/source.d.ts +1 -0
  53. package/dist/cjs/worker/source.js +7 -0
  54. package/dist/{worker → cjs/worker}/worker.d.ts +0 -0
  55. package/dist/{worker → cjs/worker}/worker.js +0 -0
  56. package/dist/esm/Gif.d.ts +7 -0
  57. package/dist/esm/GifForDevelopment.d.ts +3 -0
  58. package/dist/esm/GifForRendering.d.ts +3 -0
  59. package/dist/esm/canvas.d.ts +13 -0
  60. package/dist/esm/get-gif-duration-in-seconds.d.ts +5 -0
  61. package/dist/esm/gif-cache.d.ts +4 -0
  62. package/dist/esm/gifuct/deinterlace.d.ts +4 -0
  63. package/dist/esm/gifuct/index.d.ts +4 -0
  64. package/dist/esm/gifuct/lzw.d.ts +5 -0
  65. package/dist/esm/gifuct/types.d.ts +96 -0
  66. package/dist/esm/index.d.ts +4 -0
  67. package/dist/esm/index.mjs +1281 -0
  68. package/dist/esm/is-cors-error.d.ts +1 -0
  69. package/dist/esm/js-binary-schema-parser/gif.d.ts +51 -0
  70. package/dist/esm/js-binary-schema-parser/parser.d.ts +9 -0
  71. package/dist/esm/js-binary-schema-parser/uint8-parser.d.ts +17 -0
  72. package/dist/esm/lru/index.d.ts +101 -0
  73. package/dist/esm/parse-generate.d.ts +18 -0
  74. package/dist/esm/parser/decompress-frames.d.ts +2 -0
  75. package/dist/esm/preload-gif.d.ts +8 -0
  76. package/dist/esm/props.d.ts +25 -0
  77. package/dist/esm/react-tools.d.ts +9 -0
  78. package/dist/esm/resolve-gif-source.d.ts +1 -0
  79. package/dist/esm/use-element-size.d.ts +6 -0
  80. package/dist/esm/useCurrentGifIndex.d.ts +2 -0
  81. package/dist/esm/worker/index.d.ts +1 -0
  82. package/dist/esm/worker/source.d.ts +1 -0
  83. package/dist/esm/worker/worker.d.ts +1 -0
  84. package/dist/tsconfig-esm.tsbuildinfo +1 -0
  85. package/dist/tsconfig.tsbuildinfo +1 -0
  86. package/package.json +67 -57
  87. package/dist/Gif.d.ts +0 -3
  88. package/dist/get-gif-duration-in-seconds.d.ts +0 -1
  89. package/dist/gif-cache.d.ts +0 -3
  90. package/dist/gif-cache.js +0 -5
  91. package/dist/useCurrentGifIndex.d.ts +0 -1
  92. package/dist/useCurrentGifIndex.js +0 -28
  93. package/dist/worker/source.d.ts +0 -1
  94. package/dist/worker/source.js +0 -5
package/package.json CHANGED
@@ -1,58 +1,68 @@
1
1
  {
2
- "name": "@remotion/gif",
3
- "version": "4.0.0-webhook.27+eb81308ee",
4
- "description": "Gif component for remotion",
5
- "sideEffects": false,
6
- "repository": {
7
- "url": "https://github.com/remotion-dev/remotion"
8
- },
9
- "bugs": {
10
- "url": "https://github.com/remotion-dev/remotion/issues"
11
- },
12
- "license": "SEE LICENSE IN LICENSE.md",
13
- "author": "",
14
- "main": "dist/index.js",
15
- "files": [
16
- "dist"
17
- ],
18
- "scripts": {
19
- "lint": "eslint src --ext ts,tsx",
20
- "build": "tsc -d",
21
- "watch": "tsc -w"
22
- },
23
- "dependencies": {
24
- "gifuct-js": "2.1.2",
25
- "lru_map": "0.4.1",
26
- "remotion": "4.0.0-webhook.27+eb81308ee"
27
- },
28
- "devDependencies": {
29
- "@jonny/eslint-config": "3.0.266",
30
- "@types/node": "^16.7.5",
31
- "@types/react": "18.0.1",
32
- "@types/react-dom": "18.0.0",
33
- "eslint": "8.13.0",
34
- "jest": "^27.2.4",
35
- "prettier": "2.6.2",
36
- "prettier-plugin-organize-imports": "^2.3.4",
37
- "react": "18.0.0",
38
- "react-dom": "18.0.0",
39
- "typescript": "^4.7.0",
40
- "webpack": "5.74.0"
41
- },
42
- "peerDependencies": {
43
- "react": ">=16.8.0",
44
- "react-dom": ">=16.8.0"
45
- },
46
- "keywords": [
47
- "remotion",
48
- "ffmpeg",
49
- "video",
50
- "react",
51
- "puppeteer",
52
- "player"
53
- ],
54
- "publishConfig": {
55
- "access": "public"
56
- },
57
- "gitHead": "eb81308ee07a402f4a8dd9ff24306bb07dd78175"
58
- }
2
+ "name": "@remotion/gif",
3
+ "version": "4.1.0-alpha2",
4
+ "description": "Gif component for remotion",
5
+ "sideEffects": false,
6
+ "repository": {
7
+ "url": "https://github.com/remotion-dev/remotion"
8
+ },
9
+ "bugs": {
10
+ "url": "https://github.com/remotion-dev/remotion/issues"
11
+ },
12
+ "license": "SEE LICENSE IN LICENSE.md",
13
+ "author": "Dmitry Ivakhnenko, Jonny Burger",
14
+ "main": "dist/cjs/index.js",
15
+ "types": "dist/cjs/index.d.ts",
16
+ "module": "dist/esm/index.mjs",
17
+ "files": [
18
+ "dist"
19
+ ],
20
+ "exports": {
21
+ "./package.json": "./package.json",
22
+ ".": {
23
+ "types": "./dist/cjs/index.d.ts",
24
+ "module": "./dist/esm/index.mjs",
25
+ "import": "./dist/esm/index.mjs",
26
+ "require": "./dist/cjs/index.js"
27
+ }
28
+ },
29
+ "dependencies": {
30
+ "remotion": "4.1.0-alpha2"
31
+ },
32
+ "devDependencies": {
33
+ "@jonny/eslint-config": "3.0.266",
34
+ "@rollup/plugin-typescript": "^8.2.0",
35
+ "@types/node": "18.14.6",
36
+ "@types/react": "18.0.26",
37
+ "@types/react-dom": "18.0.10",
38
+ "esbuild": "0.16.12",
39
+ "eslint": "8.42.0",
40
+ "prettier": "2.6.2",
41
+ "prettier-plugin-organize-imports": "^2.3.4",
42
+ "react": "18.0.0",
43
+ "react-dom": "18.0.0",
44
+ "rollup": "^2.70.1",
45
+ "typescript": "4.9.5",
46
+ "webpack": "5.83.1"
47
+ },
48
+ "peerDependencies": {
49
+ "react": ">=16.8.0",
50
+ "react-dom": ">=16.8.0"
51
+ },
52
+ "keywords": [
53
+ "remotion",
54
+ "ffmpeg",
55
+ "video",
56
+ "react",
57
+ "player"
58
+ ],
59
+ "publishConfig": {
60
+ "access": "public"
61
+ },
62
+ "scripts": {
63
+ "formatting": "prettier src --check",
64
+ "lint": "eslint src --ext ts,tsx",
65
+ "build": "node build.mjs && rollup --config rollup.config.js && tsc -d",
66
+ "watch": "tsc -w"
67
+ }
68
+ }
package/dist/Gif.d.ts DELETED
@@ -1,3 +0,0 @@
1
- /// <reference types="react" />
2
- import type { RemotionGifProps } from './props';
3
- export declare const Gif: (props: RemotionGifProps) => JSX.Element;
@@ -1 +0,0 @@
1
- export declare const getGifDurationInSeconds: (src: string) => Promise<number>;
@@ -1,3 +0,0 @@
1
- import { LRUMap } from 'lru_map';
2
- import type { GifState } from './props';
3
- export declare const gifCache: LRUMap<string, GifState>;
package/dist/gif-cache.js DELETED
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.gifCache = void 0;
4
- const lru_map_1 = require("lru_map");
5
- exports.gifCache = new lru_map_1.LRUMap(30);
@@ -1 +0,0 @@
1
- export declare function useCurrentGifIndex(delays: number[]): number;
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useCurrentGifIndex = void 0;
4
- const react_1 = require("react");
5
- const remotion_1 = require("remotion");
6
- function useCurrentGifIndex(delays) {
7
- const currentFrame = (0, remotion_1.useCurrentFrame)();
8
- const videoConfig = remotion_1.Internals.useUnsafeVideoConfig();
9
- const duration = (0, react_1.useMemo)(() => {
10
- if (delays.length !== 0) {
11
- return delays.reduce((sum, delay) => sum + delay, 0);
12
- }
13
- return 1;
14
- }, [delays]);
15
- const index = (0, react_1.useMemo)(() => {
16
- if (videoConfig && delays.length !== 0) {
17
- let currentTime = ((currentFrame / videoConfig.fps) * 1000) % duration;
18
- for (const [i, delay] of delays.entries()) {
19
- if (currentTime < delay)
20
- return i;
21
- currentTime -= delay;
22
- }
23
- }
24
- return 0;
25
- }, [delays, duration, currentFrame, videoConfig]);
26
- return index;
27
- }
28
- exports.useCurrentGifIndex = useCurrentGifIndex;
@@ -1 +0,0 @@
1
- export declare const src = "function e(e){const r={exports:{}};return e(r,r.exports),r.exports}const r=e(((e,r)=> {Object.defineProperty(r,\"__esModule\",{value:!0}),r.loop=r.conditional=r.parse=void 0;r.parse=function e(r,t){const n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}; const a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:n;if(Array.isArray(t))t.forEach(((t)=> {return e(r,t,n,a)}));else if(typeof t===\"function\")t(r,n,a,e);else{const i=Object.keys(t)[0];Array.isArray(t[i])?(a[i]={},e(r,t[i],n,a[i])):a[i]=t[i](r,n,a,e)}return n};r.conditional=function(e,r){return function(t,n,a,i){r(t,n,a)&&i(t,e,n,a)}};r.loop=function(e,r){return function(t,n,a,i){for(var o=[];r(t,n,a);){const s={};i(t,e,n,s),o.push(s)}return o}}})); const t=e(((e,r)=> {Object.defineProperty(r,\"__esModule\",{value:!0}),r.readBits=r.readArray=r.readUnsigned=r.readString=r.peekBytes=r.readBytes=r.peekByte=r.readByte=r.buildStream=void 0;r.buildStream=function(e){return{data:e,pos:0}};const t=function(){return function(e){return e.data[e.pos++]}};r.readByte=t;r.peekByte=function(){const e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return function(r){return r.data[r.pos+e]}};const n=function(e){return function(r){return r.data.subarray(r.pos,r.pos+=e)}};r.readBytes=n;r.peekBytes=function(e){return function(r){return r.data.subarray(r.pos,r.pos+e)}};r.readString=function(e){return function(r){return Array.from(n(e)(r)).map(((e)=> {return String.fromCharCode(e)})).join(\"\")}};r.readUnsigned=function(e){return function(r){const t=n(2)(r);return e?(t[1]<<8)+t[0]:(t[0]<<8)+t[1]}};r.readArray=function(e,r){return function(t,a,i){for(var o=typeof r===\"function\"?r(t,a,i):r,s=n(e),d=new Array(o),c=0;c<o;c++)d[c]=s(t);return d}};r.readBits=function(e){return function(r){for(var t=function(e){return e.data[e.pos++]}(r),n=new Array(8),a=0;a<8;a++)n[7-a]=Boolean(t&1<<a);return Object.keys(e).reduce(((r,t)=> {const a=e[t];return a.length?r[t]=function(e,r,t){for(var n=0,a=0;a<t;a++)n+=e[r+a]&&2**(t-a-1);return n}(n,a.index,a.length):r[t]=n[a.index],r}),{})}}})); const n=e(((e,n)=> {Object.defineProperty(n,\"__esModule\",{value:!0}),n.default=void 0;const a={blocks(e){for(var r=[],n=e.data.length,a=0,i=(0,t.readByte)()(e);i!==0;i=(0,t.readByte)()(e)){if(e.pos+i>=n){const o=n-e.pos;r.push((0,t.readBytes)(o)(e)),a+=o;break}r.push((0,t.readBytes)(i)(e)),a+=i}for(var s=new Uint8Array(a),d=0,c=0;c<r.length;c++)s.set(r[c],d),d+=r[c].length;return s}}; const i=(0,r.conditional)({gce:[{codes:(0,t.readBytes)(2)},{byteSize:(0,t.readByte)()},{extras:(0,t.readBits)({future:{index:0,length:3},disposal:{index:3,length:3},userInput:{index:6},transparentColorGiven:{index:7}})},{delay:(0,t.readUnsigned)(!0)},{transparentColorIndex:(0,t.readByte)()},{terminator:(0,t.readByte)()}]},((e)=> {const r=(0,t.peekBytes)(2)(e);return r[0]===33&&r[1]===249})); const o=(0,r.conditional)({image:[{code:(0,t.readByte)()},{descriptor:[{left:(0,t.readUnsigned)(!0)},{top:(0,t.readUnsigned)(!0)},{width:(0,t.readUnsigned)(!0)},{height:(0,t.readUnsigned)(!0)},{lct:(0,t.readBits)({exists:{index:0},interlaced:{index:1},sort:{index:2},future:{index:3,length:2},size:{index:5,length:3}})}]},(0,r.conditional)({lct:(0,t.readArray)(3,((e,r,t)=> {return 2**(t.descriptor.lct.size+1)}))},((e,r,t)=> {return t.descriptor.lct.exists})),{data:[{minCodeSize:(0,t.readByte)()},a]}]},((e)=> {return (0,t.peekByte)()(e)===44})); const s=(0,r.conditional)({text:[{codes:(0,t.readBytes)(2)},{blockSize:(0,t.readByte)()},{preData(e,r,n){return(0,t.readBytes)(n.text.blockSize)(e)}},a]},((e)=> {const r=(0,t.peekBytes)(2)(e);return r[0]===33&&r[1]===1})); const d=(0,r.conditional)({application:[{codes:(0,t.readBytes)(2)},{blockSize:(0,t.readByte)()},{id(e,r,n){return(0,t.readString)(n.blockSize)(e)}},a]},((e)=> {const r=(0,t.peekBytes)(2)(e);return r[0]===33&&r[1]===255})); const c=(0,r.conditional)({comment:[{codes:(0,t.readBytes)(2)},a]},((e)=> {const r=(0,t.peekBytes)(2)(e);return r[0]===33&&r[1]===254})); const u=[{header:[{signature:(0,t.readString)(3)},{version:(0,t.readString)(3)}]},{lsd:[{width:(0,t.readUnsigned)(!0)},{height:(0,t.readUnsigned)(!0)},{gct:(0,t.readBits)({exists:{index:0},resolution:{index:1,length:3},sort:{index:4},size:{index:5,length:3}})},{backgroundColorIndex:(0,t.readByte)()},{pixelAspectRatio:(0,t.readByte)()}]},(0,r.conditional)({gct:(0,t.readArray)(3,((e,r)=> {return 2**(r.lsd.gct.size+1)}))},((e,r)=> {return r.lsd.gct.exists})),{frames:(0,r.loop)([i,d,c,o,s],((e)=> {const r=(0,t.peekByte)()(e);return r===33||r===44}))}];n.default=u})); const a=e(((e,r)=> {Object.defineProperty(r,\"__esModule\",{value:!0}),r.deinterlace=void 0;r.deinterlace=function(e,r){for(var t=new Array(e.length),n=e.length/r,a=function(n,a){const i=e.slice(a*r,(a+1)*r);t.splice.apply(t,[n*r,r].concat(i))},i=[0,4,2,1],o=[8,8,4,2],s=0,d=0;d<4;d++)for(let c=i[d];c<n;c+=o[d])a(c,s),s++;return t}})); const i=e(((e,r)=> {Object.defineProperty(r,\"__esModule\",{value:!0}),r.lzw=void 0;r.lzw=function(e,r,t){let n; let a; let i; let o; let s; let d; let c; let u; let l; let f; let p; let g; let y; let h; let v; let m; const x=4096; const B=t; const w=new Array(t); const b=new Array(x); const k=new Array(x); const A=new Array(4097);for(s=(a=1<<(f=e))+1,n=a+2,c=-1,i=(1<<(o=f+1))-1,u=0;u<a;u++)b[u]=0,k[u]=u;for(p=g=y=h=v=m=0,l=0;l<B;){if(h===0){if(g<o){p+=r[m]<<g,g+=8,m++;continue}if(u=p&i,p>>=o,g-=o,u>n||u==s)break;if(u==a){i=(1<<(o=f+1))-1,n=a+2,c=-1;continue}if(c==-1){A[h++]=k[u],c=u,y=u;continue}for(d=u,u==n&&(A[h++]=y,u=c);u>a;)A[h++]=k[u],u=b[u];y=255&k[u],A[h++]=y,n<x&&(b[n]=c,k[n]=y,(++n&i)==0&&n<x&&(o++,i+=n)),c=d}h--,w[v++]=A[h],l++}for(l=v;l<B;l++)w[l]=0;return w}})); const o=e(((e,o)=> {Object.defineProperty(o,\"__esModule\",{value:!0}),o.decompressFrames=o.decompressFrame=o.parseGIF=void 0;let s; const d=(s=n)&&s.__esModule?s:{default:s};o.parseGIF=function(e){const n=new Uint8Array(e);return(0,r.parse)((0,t.buildStream)(n),d.default)};const c=function(e,r,t){if(e.image){const n=e.image; const o=n.descriptor.width*n.descriptor.height; let s=(0,i.lzw)(n.data.minCodeSize,n.data.blocks,o);n.descriptor.lct.interlaced&&(s=(0,a.deinterlace)(s,n.descriptor.width));const d={pixels:s,dims:{top:e.image.descriptor.top,left:e.image.descriptor.left,width:e.image.descriptor.width,height:e.image.descriptor.height}};return n.descriptor.lct&&n.descriptor.lct.exists?d.colorTable=n.lct:d.colorTable=r,e.gce&&(d.delay=10*(e.gce.delay||10),d.disposalType=e.gce.extras.disposal,e.gce.extras.transparentColorGiven&&(d.transparentIndex=e.gce.transparentColorIndex)),t&&(d.patch=function(e){for(var r=e.pixels.length,t=new Uint8ClampedArray(4*r),n=0;n<r;n++){const a=4*n; const i=e.pixels[n]; const o=e.colorTable[i]||[0,0,0];t[a]=o[0],t[a+1]=o[1],t[a+2]=o[2],t[a+3]=i!==e.transparentIndex?255:0}return t}(d)),d}console.warn(\"gif frame does not have associated image.\")};o.decompressFrame=c;o.decompressFrames=function(e,r){return e.frames.filter(((e)=> {return e.image})).map(((t)=> {return c(t,e.gct,r)}))}}));const s=(e,r,t)=>{const{width:n,height:a,top:i,left:o}=r.dims; const s=i*t.width+o;for(let i=0;i<a;i++)for(let a=0;a<n;a++){const o=i*n+a; const d=r.pixels[o];if(d!==r.transparentIndex){const n=s+i*t.width+a; const o=r.colorTable[d]||[0,0,0];e[4*n]=o[0],e[4*n+1]=o[1],e[4*n+2]=o[2],e[4*n+3]=255}}return e}; const d=new Map;self.addEventListener(\"message\",(e=>{const{type:r,src:t}=e.data||e;switch(r){case\"parse\":if(!d.has(t)){const e=new AbortController; const r={signal:e.signal};d.set(t,e),((e,{signal:r})=>fetch(e,{signal:r}).then((e=>{if(!e.headers.get(\"Content-Type\").includes(\"image/gif\"))throw Error(`Wrong content type: \"${e.headers.get(\"Content-Type\")}\"`);return e.arrayBuffer()})).then((e=>o.parseGIF(e))).then((e=>((e=>{let r=null;for(const t of e.frames)r=t.gce?t.gce:r,\"image\"in t&&!(\"gce\"in t)&&(t.gce=r)})(e),e))).then((e=>Promise.all([o.decompressFrames(e,!1),{width:e.lsd.width,height:e.lsd.height}]))).then((([e,r])=>{const t=[]; const n=r.width*r.height*4;for(let a=0;a<e.length;++a){const i=e[a]; const o=a===0||e[a-1].disposalType===2?new Uint8ClampedArray(n):t[a-1].slice();t.push(s(o,i,r))}return{...r,loaded:!0,delays:e.map((e=>e.delay)),frames:t}})))(t,r).then((e=>{self.postMessage(Object.assign(e,{src:t}),e.frames.map((e=>e.buffer)))})).catch((e=>{self.postMessage({src:t,error:e,loaded:!0})})).finally((()=>{d.delete(t)}))}break;case\"cancel\":if(d.has(t)){d.get(t).abort(),d.delete(t)}}}));";
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.src = void 0;
4
- // Clone react-tools/gifs and then run npm run build. Make sure to escape the `` characters
5
- exports.src = `function e(e){const r={exports:{}};return e(r,r.exports),r.exports}const r=e(((e,r)=> {Object.defineProperty(r,"__esModule",{value:!0}),r.loop=r.conditional=r.parse=void 0;r.parse=function e(r,t){const n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}; const a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:n;if(Array.isArray(t))t.forEach(((t)=> {return e(r,t,n,a)}));else if(typeof t==="function")t(r,n,a,e);else{const i=Object.keys(t)[0];Array.isArray(t[i])?(a[i]={},e(r,t[i],n,a[i])):a[i]=t[i](r,n,a,e)}return n};r.conditional=function(e,r){return function(t,n,a,i){r(t,n,a)&&i(t,e,n,a)}};r.loop=function(e,r){return function(t,n,a,i){for(var o=[];r(t,n,a);){const s={};i(t,e,n,s),o.push(s)}return o}}})); const t=e(((e,r)=> {Object.defineProperty(r,"__esModule",{value:!0}),r.readBits=r.readArray=r.readUnsigned=r.readString=r.peekBytes=r.readBytes=r.peekByte=r.readByte=r.buildStream=void 0;r.buildStream=function(e){return{data:e,pos:0}};const t=function(){return function(e){return e.data[e.pos++]}};r.readByte=t;r.peekByte=function(){const e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return function(r){return r.data[r.pos+e]}};const n=function(e){return function(r){return r.data.subarray(r.pos,r.pos+=e)}};r.readBytes=n;r.peekBytes=function(e){return function(r){return r.data.subarray(r.pos,r.pos+e)}};r.readString=function(e){return function(r){return Array.from(n(e)(r)).map(((e)=> {return String.fromCharCode(e)})).join("")}};r.readUnsigned=function(e){return function(r){const t=n(2)(r);return e?(t[1]<<8)+t[0]:(t[0]<<8)+t[1]}};r.readArray=function(e,r){return function(t,a,i){for(var o=typeof r==="function"?r(t,a,i):r,s=n(e),d=new Array(o),c=0;c<o;c++)d[c]=s(t);return d}};r.readBits=function(e){return function(r){for(var t=function(e){return e.data[e.pos++]}(r),n=new Array(8),a=0;a<8;a++)n[7-a]=Boolean(t&1<<a);return Object.keys(e).reduce(((r,t)=> {const a=e[t];return a.length?r[t]=function(e,r,t){for(var n=0,a=0;a<t;a++)n+=e[r+a]&&2**(t-a-1);return n}(n,a.index,a.length):r[t]=n[a.index],r}),{})}}})); const n=e(((e,n)=> {Object.defineProperty(n,"__esModule",{value:!0}),n.default=void 0;const a={blocks(e){for(var r=[],n=e.data.length,a=0,i=(0,t.readByte)()(e);i!==0;i=(0,t.readByte)()(e)){if(e.pos+i>=n){const o=n-e.pos;r.push((0,t.readBytes)(o)(e)),a+=o;break}r.push((0,t.readBytes)(i)(e)),a+=i}for(var s=new Uint8Array(a),d=0,c=0;c<r.length;c++)s.set(r[c],d),d+=r[c].length;return s}}; const i=(0,r.conditional)({gce:[{codes:(0,t.readBytes)(2)},{byteSize:(0,t.readByte)()},{extras:(0,t.readBits)({future:{index:0,length:3},disposal:{index:3,length:3},userInput:{index:6},transparentColorGiven:{index:7}})},{delay:(0,t.readUnsigned)(!0)},{transparentColorIndex:(0,t.readByte)()},{terminator:(0,t.readByte)()}]},((e)=> {const r=(0,t.peekBytes)(2)(e);return r[0]===33&&r[1]===249})); const o=(0,r.conditional)({image:[{code:(0,t.readByte)()},{descriptor:[{left:(0,t.readUnsigned)(!0)},{top:(0,t.readUnsigned)(!0)},{width:(0,t.readUnsigned)(!0)},{height:(0,t.readUnsigned)(!0)},{lct:(0,t.readBits)({exists:{index:0},interlaced:{index:1},sort:{index:2},future:{index:3,length:2},size:{index:5,length:3}})}]},(0,r.conditional)({lct:(0,t.readArray)(3,((e,r,t)=> {return 2**(t.descriptor.lct.size+1)}))},((e,r,t)=> {return t.descriptor.lct.exists})),{data:[{minCodeSize:(0,t.readByte)()},a]}]},((e)=> {return (0,t.peekByte)()(e)===44})); const s=(0,r.conditional)({text:[{codes:(0,t.readBytes)(2)},{blockSize:(0,t.readByte)()},{preData(e,r,n){return(0,t.readBytes)(n.text.blockSize)(e)}},a]},((e)=> {const r=(0,t.peekBytes)(2)(e);return r[0]===33&&r[1]===1})); const d=(0,r.conditional)({application:[{codes:(0,t.readBytes)(2)},{blockSize:(0,t.readByte)()},{id(e,r,n){return(0,t.readString)(n.blockSize)(e)}},a]},((e)=> {const r=(0,t.peekBytes)(2)(e);return r[0]===33&&r[1]===255})); const c=(0,r.conditional)({comment:[{codes:(0,t.readBytes)(2)},a]},((e)=> {const r=(0,t.peekBytes)(2)(e);return r[0]===33&&r[1]===254})); const u=[{header:[{signature:(0,t.readString)(3)},{version:(0,t.readString)(3)}]},{lsd:[{width:(0,t.readUnsigned)(!0)},{height:(0,t.readUnsigned)(!0)},{gct:(0,t.readBits)({exists:{index:0},resolution:{index:1,length:3},sort:{index:4},size:{index:5,length:3}})},{backgroundColorIndex:(0,t.readByte)()},{pixelAspectRatio:(0,t.readByte)()}]},(0,r.conditional)({gct:(0,t.readArray)(3,((e,r)=> {return 2**(r.lsd.gct.size+1)}))},((e,r)=> {return r.lsd.gct.exists})),{frames:(0,r.loop)([i,d,c,o,s],((e)=> {const r=(0,t.peekByte)()(e);return r===33||r===44}))}];n.default=u})); const a=e(((e,r)=> {Object.defineProperty(r,"__esModule",{value:!0}),r.deinterlace=void 0;r.deinterlace=function(e,r){for(var t=new Array(e.length),n=e.length/r,a=function(n,a){const i=e.slice(a*r,(a+1)*r);t.splice.apply(t,[n*r,r].concat(i))},i=[0,4,2,1],o=[8,8,4,2],s=0,d=0;d<4;d++)for(let c=i[d];c<n;c+=o[d])a(c,s),s++;return t}})); const i=e(((e,r)=> {Object.defineProperty(r,"__esModule",{value:!0}),r.lzw=void 0;r.lzw=function(e,r,t){let n; let a; let i; let o; let s; let d; let c; let u; let l; let f; let p; let g; let y; let h; let v; let m; const x=4096; const B=t; const w=new Array(t); const b=new Array(x); const k=new Array(x); const A=new Array(4097);for(s=(a=1<<(f=e))+1,n=a+2,c=-1,i=(1<<(o=f+1))-1,u=0;u<a;u++)b[u]=0,k[u]=u;for(p=g=y=h=v=m=0,l=0;l<B;){if(h===0){if(g<o){p+=r[m]<<g,g+=8,m++;continue}if(u=p&i,p>>=o,g-=o,u>n||u==s)break;if(u==a){i=(1<<(o=f+1))-1,n=a+2,c=-1;continue}if(c==-1){A[h++]=k[u],c=u,y=u;continue}for(d=u,u==n&&(A[h++]=y,u=c);u>a;)A[h++]=k[u],u=b[u];y=255&k[u],A[h++]=y,n<x&&(b[n]=c,k[n]=y,(++n&i)==0&&n<x&&(o++,i+=n)),c=d}h--,w[v++]=A[h],l++}for(l=v;l<B;l++)w[l]=0;return w}})); const o=e(((e,o)=> {Object.defineProperty(o,"__esModule",{value:!0}),o.decompressFrames=o.decompressFrame=o.parseGIF=void 0;let s; const d=(s=n)&&s.__esModule?s:{default:s};o.parseGIF=function(e){const n=new Uint8Array(e);return(0,r.parse)((0,t.buildStream)(n),d.default)};const c=function(e,r,t){if(e.image){const n=e.image; const o=n.descriptor.width*n.descriptor.height; let s=(0,i.lzw)(n.data.minCodeSize,n.data.blocks,o);n.descriptor.lct.interlaced&&(s=(0,a.deinterlace)(s,n.descriptor.width));const d={pixels:s,dims:{top:e.image.descriptor.top,left:e.image.descriptor.left,width:e.image.descriptor.width,height:e.image.descriptor.height}};return n.descriptor.lct&&n.descriptor.lct.exists?d.colorTable=n.lct:d.colorTable=r,e.gce&&(d.delay=10*(e.gce.delay||10),d.disposalType=e.gce.extras.disposal,e.gce.extras.transparentColorGiven&&(d.transparentIndex=e.gce.transparentColorIndex)),t&&(d.patch=function(e){for(var r=e.pixels.length,t=new Uint8ClampedArray(4*r),n=0;n<r;n++){const a=4*n; const i=e.pixels[n]; const o=e.colorTable[i]||[0,0,0];t[a]=o[0],t[a+1]=o[1],t[a+2]=o[2],t[a+3]=i!==e.transparentIndex?255:0}return t}(d)),d}console.warn("gif frame does not have associated image.")};o.decompressFrame=c;o.decompressFrames=function(e,r){return e.frames.filter(((e)=> {return e.image})).map(((t)=> {return c(t,e.gct,r)}))}}));const s=(e,r,t)=>{const{width:n,height:a,top:i,left:o}=r.dims; const s=i*t.width+o;for(let i=0;i<a;i++)for(let a=0;a<n;a++){const o=i*n+a; const d=r.pixels[o];if(d!==r.transparentIndex){const n=s+i*t.width+a; const o=r.colorTable[d]||[0,0,0];e[4*n]=o[0],e[4*n+1]=o[1],e[4*n+2]=o[2],e[4*n+3]=255}}return e}; const d=new Map;self.addEventListener("message",(e=>{const{type:r,src:t}=e.data||e;switch(r){case"parse":if(!d.has(t)){const e=new AbortController; const r={signal:e.signal};d.set(t,e),((e,{signal:r})=>fetch(e,{signal:r}).then((e=>{if(!e.headers.get("Content-Type").includes("image/gif"))throw Error(\`Wrong content type: "$\{e.headers.get("Content-Type")}"\`);return e.arrayBuffer()})).then((e=>o.parseGIF(e))).then((e=>((e=>{let r=null;for(const t of e.frames)r=t.gce?t.gce:r,"image"in t&&!("gce"in t)&&(t.gce=r)})(e),e))).then((e=>Promise.all([o.decompressFrames(e,!1),{width:e.lsd.width,height:e.lsd.height}]))).then((([e,r])=>{const t=[]; const n=r.width*r.height*4;for(let a=0;a<e.length;++a){const i=e[a]; const o=a===0||e[a-1].disposalType===2?new Uint8ClampedArray(n):t[a-1].slice();t.push(s(o,i,r))}return{...r,loaded:!0,delays:e.map((e=>e.delay)),frames:t}})))(t,r).then((e=>{self.postMessage(Object.assign(e,{src:t}),e.frames.map((e=>e.buffer)))})).catch((e=>{self.postMessage({src:t,error:e,loaded:!0})})).finally((()=>{d.delete(t)}))}break;case"cancel":if(d.has(t)){d.get(t).abort(),d.delete(t)}}}));`;