@remotion/gif 4.0.0-lambda.1 → 4.0.0-newpathfunctions.13

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 (60) hide show
  1. package/LICENSE.md +8 -8
  2. package/dist/Gif.d.ts +1 -1
  3. package/dist/Gif.js +2 -1
  4. package/dist/GifForDevelopment.d.ts +1 -1
  5. package/dist/GifForDevelopment.js +59 -20
  6. package/dist/GifForRendering.d.ts +1 -1
  7. package/dist/GifForRendering.js +66 -21
  8. package/dist/canvas.d.ts +13 -0
  9. package/dist/canvas.js +96 -0
  10. package/dist/get-gif-duration-in-seconds.d.ts +1 -0
  11. package/dist/get-gif-duration-in-seconds.js +30 -0
  12. package/dist/gif-cache.d.ts +4 -0
  13. package/dist/gif-cache.js +6 -0
  14. package/dist/gifuct/deinterlace.d.ts +4 -0
  15. package/dist/gifuct/deinterlace.js +26 -0
  16. package/dist/gifuct/index.d.ts +4 -0
  17. package/dist/gifuct/index.js +60 -0
  18. package/dist/gifuct/lzw.d.ts +5 -0
  19. package/dist/gifuct/lzw.js +119 -0
  20. package/dist/gifuct/types.d.ts +96 -0
  21. package/dist/gifuct/types.js +2 -0
  22. package/dist/index.d.ts +4 -2
  23. package/dist/index.js +7 -16
  24. package/dist/is-cors-error.d.ts +1 -0
  25. package/dist/is-cors-error.js +13 -0
  26. package/dist/parse-generate.d.ts +18 -0
  27. package/dist/parse-generate.js +96 -0
  28. package/dist/parser/decompress-frames.d.ts +2 -0
  29. package/dist/parser/decompress-frames.js +19 -0
  30. package/dist/preload-gif.d.ts +4 -0
  31. package/dist/preload-gif.js +37 -0
  32. package/dist/props.d.ts +4 -2
  33. package/dist/props.js +0 -0
  34. package/dist/react-tools.d.ts +9 -0
  35. package/dist/react-tools.js +39 -0
  36. package/dist/resolve-gif-source.d.ts +1 -0
  37. package/dist/resolve-gif-source.js +7 -0
  38. package/dist/use-element-size.d.ts +6 -0
  39. package/dist/use-element-size.js +73 -0
  40. package/dist/useCurrentGifIndex.d.ts +2 -2
  41. package/dist/useCurrentGifIndex.js +21 -14
  42. package/dist/worker/index.d.ts +1 -0
  43. package/dist/worker/index.js +12 -0
  44. package/dist/worker/source.d.ts +1 -0
  45. package/dist/worker/source.js +7 -0
  46. package/dist/worker/worker.d.ts +1 -0
  47. package/dist/worker/worker.js +39 -0
  48. package/package.json +11 -12
  49. package/dist/Gif.d.ts.map +0 -1
  50. package/dist/Gif.js.map +0 -1
  51. package/dist/GifForDevelopment.d.ts.map +0 -1
  52. package/dist/GifForDevelopment.js.map +0 -1
  53. package/dist/GifForRendering.d.ts.map +0 -1
  54. package/dist/GifForRendering.js.map +0 -1
  55. package/dist/index.d.ts.map +0 -1
  56. package/dist/index.js.map +0 -1
  57. package/dist/props.d.ts.map +0 -1
  58. package/dist/props.js.map +0 -1
  59. package/dist/useCurrentGifIndex.d.ts.map +0 -1
  60. package/dist/useCurrentGifIndex.js.map +0 -1
@@ -3,26 +3,33 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useCurrentGifIndex = void 0;
4
4
  const react_1 = require("react");
5
5
  const remotion_1 = require("remotion");
6
- function useCurrentGifIndex(delays) {
6
+ function useCurrentGifIndex(delays, loopBehavior) {
7
7
  const currentFrame = (0, remotion_1.useCurrentFrame)();
8
- const videoConfig = remotion_1.Internals.useUnsafeVideoConfig();
8
+ const videoConfig = (0, remotion_1.useVideoConfig)();
9
9
  const duration = (0, react_1.useMemo)(() => {
10
10
  if (delays.length !== 0) {
11
- return delays.reduce((sum, delay) => sum + delay, 0);
11
+ return delays.reduce((sum, delay) => sum + (delay !== null && delay !== void 0 ? delay : 0), 0);
12
12
  }
13
13
  return 1;
14
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
- }
15
+ if (delays.length === 0) {
24
16
  return 0;
25
- }, [delays, duration, currentFrame, videoConfig]);
26
- return index;
17
+ }
18
+ const time = (currentFrame / videoConfig.fps) * 1000;
19
+ if (loopBehavior === 'pause-after-finish' && time >= duration) {
20
+ return delays.length - 1;
21
+ }
22
+ if (loopBehavior === 'unmount-after-finish' && time >= duration) {
23
+ return -1;
24
+ }
25
+ let currentTime = time % duration;
26
+ for (let i = 0; i < delays.length; i++) {
27
+ const delay = delays[i];
28
+ if (currentTime < delay) {
29
+ return i;
30
+ }
31
+ currentTime -= delay;
32
+ }
33
+ return 0;
27
34
  }
28
35
  exports.useCurrentGifIndex = useCurrentGifIndex;
@@ -0,0 +1 @@
1
+ export declare const makeWorker: () => Worker;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.makeWorker = void 0;
4
+ const source_1 = require("./source");
5
+ const makeWorker = () => {
6
+ const blob = new Blob([source_1.src], { type: 'application/javascript' });
7
+ const url = URL.createObjectURL(blob);
8
+ const worker = new Worker(url);
9
+ URL.revokeObjectURL(url);
10
+ return worker;
11
+ };
12
+ exports.makeWorker = makeWorker;
@@ -0,0 +1 @@
1
+ export declare const src = "\"use strict\";(()=>{var N=Object.create;var j=Object.defineProperty;var Q=Object.getOwnPropertyDescriptor;var V=Object.getOwnPropertyNames;var Y=Object.getPrototypeOf,ee=Object.prototype.hasOwnProperty;var T=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var re=(t,e,r,n)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let o of V(e))!ee.call(t,o)&&o!==r&&j(t,o,{get:()=>e[o],enumerable:!(n=Q(e,o))||n.enumerable});return t};var G=(t,e,r)=>(r=t!=null?N(Y(t)):{},re(e||!t||!t.__esModule?j(r,\"default\",{value:t,enumerable:!0}):r,t));var z=T(y=>{\"use strict\";Object.defineProperty(y,\"__esModule\",{value:!0});y.loop=y.conditional=y.parse=void 0;var te=function t(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:n;if(Array.isArray(r))r.forEach(function(a){return t(e,a,n,o)});else if(typeof r==\"function\")r(e,n,o,t);else{var i=Object.keys(r)[0];Array.isArray(r[i])?(o[i]={},t(e,r[i],n,o[i])):o[i]=r[i](e,n,o,t)}return n};y.parse=te;var ne=function(e,r){return function(n,o,i,a){r(n,o,i)&&a(n,e,o,i)}};y.conditional=ne;var ae=function(e,r){return function(n,o,i,a){for(var c=[],d=n.pos;r(n,o,i);){var u={};if(a(n,e,o,u),n.pos===d)break;d=n.pos,c.push(u)}return c}};y.loop=ae});var E=T(p=>{\"use strict\";Object.defineProperty(p,\"__esModule\",{value:!0});p.readBits=p.readArray=p.readUnsigned=p.readString=p.peekBytes=p.readBytes=p.peekByte=p.readByte=p.buildStream=void 0;var oe=function(e){return{data:e,pos:0}};p.buildStream=oe;var W=function(){return function(e){return e.data[e.pos++]}};p.readByte=W;var ie=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return function(r){return r.data[r.pos+e]}};p.peekByte=ie;var _=function(e){return function(r){return r.data.subarray(r.pos,r.pos+=e)}};p.readBytes=_;var se=function(e){return function(r){return r.data.subarray(r.pos,r.pos+e)}};p.peekBytes=se;var de=function(e){return function(r){return Array.from(_(e)(r)).map(function(n){return String.fromCharCode(n)}).join(\"\")}};p.readString=de;var ce=function(e){return function(r){var n=_(2)(r);return e?(n[1]<<8)+n[0]:(n[0]<<8)+n[1]}};p.readUnsigned=ce;var ue=function(e,r){return function(n,o,i){for(var a=typeof r==\"function\"?r(n,o,i):r,c=_(e),d=new Array(a),u=0;u<a;u++)d[u]=c(n);return d}};p.readArray=ue;var le=function(e,r,n){for(var o=0,i=0;i<n;i++)o+=e[r+i]&&Math.pow(2,n-i-1);return o},pe=function(e){return function(r){for(var n=W()(r),o=new Array(8),i=0;i<8;i++)o[7-i]=!!(n&1<<i);return Object.keys(e).reduce(function(a,c){var d=e[c];return d.length?a[c]=le(o,d.index,d.length):a[c]=o[d.index],a},{})}};p.readBits=pe});var K=T(I=>{\"use strict\";Object.defineProperty(I,\"__esModule\",{value:!0});I.default=void 0;var h=z(),s=E(),F={blocks:function(e){for(var r=0,n=[],o=e.data.length,i=0,a=(0,s.readByte)()(e);a!==r&&a;a=(0,s.readByte)()(e)){if(e.pos+a>=o){var c=o-e.pos;n.push((0,s.readBytes)(c)(e)),i+=c;break}n.push((0,s.readBytes)(a)(e)),i+=a}for(var d=new Uint8Array(i),u=0,f=0;f<n.length;f++)d.set(n[f],u),u+=n[f].length;return d}},fe=(0,h.conditional)({gce:[{codes:(0,s.readBytes)(2)},{byteSize:(0,s.readByte)()},{extras:(0,s.readBits)({future:{index:0,length:3},disposal:{index:3,length:3},userInput:{index:6},transparentColorGiven:{index:7}})},{delay:(0,s.readUnsigned)(!0)},{transparentColorIndex:(0,s.readByte)()},{terminator:(0,s.readByte)()}]},function(t){var e=(0,s.peekBytes)(2)(t);return e[0]===33&&e[1]===249}),me=(0,h.conditional)({image:[{code:(0,s.readByte)()},{descriptor:[{left:(0,s.readUnsigned)(!0)},{top:(0,s.readUnsigned)(!0)},{width:(0,s.readUnsigned)(!0)},{height:(0,s.readUnsigned)(!0)},{lct:(0,s.readBits)({exists:{index:0},interlaced:{index:1},sort:{index:2},future:{index:3,length:2},size:{index:5,length:3}})}]},(0,h.conditional)({lct:(0,s.readArray)(3,function(t,e,r){return Math.pow(2,r.descriptor.lct.size+1)})},function(t,e,r){return r.descriptor.lct.exists}),{data:[{minCodeSize:(0,s.readByte)()},F]}]},function(t){return(0,s.peekByte)()(t)===44}),ge=(0,h.conditional)({text:[{codes:(0,s.readBytes)(2)},{blockSize:(0,s.readByte)()},{preData:function(e,r,n){return(0,s.readBytes)(n.text.blockSize)(e)}},F]},function(t){var e=(0,s.peekBytes)(2)(t);return e[0]===33&&e[1]===1}),ye=(0,h.conditional)({application:[{codes:(0,s.readBytes)(2)},{blockSize:(0,s.readByte)()},{id:function(e,r,n){return(0,s.readString)(n.blockSize)(e)}},F]},function(t){var e=(0,s.peekBytes)(2)(t);return e[0]===33&&e[1]===255}),he=(0,h.conditional)({comment:[{codes:(0,s.readBytes)(2)},F]},function(t){var e=(0,s.peekBytes)(2)(t);return e[0]===33&&e[1]===254}),ve=[{header:[{signature:(0,s.readString)(3)},{version:(0,s.readString)(3)}]},{lsd:[{width:(0,s.readUnsigned)(!0)},{height:(0,s.readUnsigned)(!0)},{gct:(0,s.readBits)({exists:{index:0},resolution:{index:1,length:3},sort:{index:4},size:{index:5,length:3}})},{backgroundColorIndex:(0,s.readByte)()},{pixelAspectRatio:(0,s.readByte)()}]},(0,h.conditional)({gct:(0,s.readArray)(3,function(t,e){return Math.pow(2,e.lsd.gct.size+1)})},function(t,e){return e.lsd.gct.exists}),{frames:(0,h.loop)([fe,ye,he,me,ge],function(t){var e=(0,s.peekByte)()(t);return e===33||e===44})}],be=ve;I.default=be});var D=G(z()),O=G(E()),R=G(K());var X=(t,e)=>{let r=new Array(t.length),n=t.length/e,o=function(d,u){let f=t.slice(u*e,(u+1)*e);r.splice(...[d*e,e].concat(f))},i=[0,4,2,1],a=[8,8,4,2],c=0;for(let d=0;d<4;d++)for(let u=i[d];u<n;u+=a[d])o(u,c),c++;return r};var Z=(t,e,r)=>{let i=r,a,c,d,u,f;var B;let l,m;var C,b,g,k,P;let v=new Array(r),U=new Array(4096),A=new Array(4096),S=new Array(4096+1),M=t,x=1<<M,J=x+1;for(a=x+2,f=-1,d=M+1,c=(1<<d)-1,l=0;l<x;l++)U[l]=0,A[l]=l;var C,B,b,g,P,k;for(C=B=b=g=P=k=0,m=0;m<i;){if(g===0){if(B<d){C+=e[k]<<B,B+=8,k++;continue}if(l=C&c,C>>=d,B-=d,l>a||l===J)break;if(l===x){d=M+1,c=(1<<d)-1,a=x+2,f=-1;continue}if(f===-1){S[g++]=A[l],f=l,b=l;continue}for(u=l,l===a&&(S[g++]=b,l=f);l>x;)S[g++]=A[l],l=U[l];b=A[l]&255,S[g++]=b,a<4096&&(U[a]=f,A[a]=b,a++,!(a&c)&&a<4096&&(d++,c+=a)),f=u}g--,v[P++]=S[g],m++}for(m=P;m<i;m++)v[m]=0;return v};var q=t=>{let e=new Uint8Array(t);return(0,D.parse)((0,O.buildStream)(e),R.default)},L=(t,e)=>{var a,c;if(!t.image){console.warn(\"gif frame does not have associated image.\");return}let{image:r}=t,n=r.descriptor.width*r.descriptor.height,o=Z(r.data.minCodeSize,r.data.blocks,n);return(a=r.descriptor.lct)!=null&&a.interlaced&&(o=X(o,r.descriptor.width)),{pixels:o,dims:{top:t.image.descriptor.top,left:t.image.descriptor.left,width:t.image.descriptor.width,height:t.image.descriptor.height},colorTable:(c=r.descriptor.lct)!=null&&c.exists?r.lct:e,delay:(t.gce.delay||10)*10,disposalType:t.gce.extras.disposal,transparentIndex:t.gce.extras.transparentColorGiven?t.gce.transparentColorIndex:-1}};var $=t=>t.frames.filter(e=>!(\"application\"in e)).map(e=>e.image?L(e,t.gct):null).filter(Boolean).map(e=>e);var xe=t=>{let e=null;for(let r of t.frames)e=r.gce?r.gce:e,\"image\"in r&&!(\"gce\"in r)&&e!==null&&(r.gce=e)},H=(t,{signal:e})=>fetch(t,{signal:e}).then(r=>{var n;if(!((n=r.headers.get(\"Content-Type\"))!=null&&n.includes(\"image/gif\")))throw Error(`Wrong content type: \"${r.headers.get(\"Content-Type\")}\"`);return r.arrayBuffer()}).then(r=>q(r)).then(r=>(xe(r),r)).then(r=>Promise.all([$(r),{width:r.lsd.width,height:r.lsd.height}])).then(([r,n])=>{let o=[],i=n.width*n.height*4,a=new Uint8ClampedArray(i);for(let c=0;c<r.length;++c){let d=r[c],u=r[c].disposalType===3?a.slice():null;if(o.push(Be(a,d,n)),r[c].disposalType===2)a=new Uint8ClampedArray(i);else if(r[c].disposalType===3){if(!u)throw Error(\"Disposal type 3 without previous frame\");a=u}else a=o[c].slice()}return{...n,loaded:!0,delays:r.map(c=>c.delay),frames:o}}),Be=(t,e,r)=>{let{width:n,height:o,top:i,left:a}=e.dims,c=i*r.width+a;for(let d=0;d<o;d++)for(let u=0;u<n;u++){let f=d*n+u,l=e.pixels[f];if(l!==e.transparentIndex){let m=c+d*r.width+u,v=e.colorTable[l];t[m*4]=v[0],t[m*4+1]=v[1],t[m*4+2]=v[2],t[m*4+3]=l===e.transparentIndex?0:255}}return t};var w=new Map;self.addEventListener(\"message\",t=>{let{type:e,src:r}=t.data||t;switch(e){case\"parse\":{if(!w.has(r)){let n=new AbortController,o={signal:n.signal};w.set(r,n),H(r,o).then(i=>{self.postMessage(Object.assign(i,{src:r}),i.frames.map(a=>a.buffer))}).catch(i=>{self.postMessage({src:r,error:i,loaded:!0})}).finally(()=>{w.delete(r)})}break}case\"cancel\":{w.has(r)&&(w.get(r).abort(),w.delete(r));break}default:break}});})();\n";
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.src = void 0;
4
+ // Auto-generated by build.mjs
5
+ exports.src =
6
+ // eslint-disable-next-line no-template-curly-in-string
7
+ "\"use strict\";(()=>{var N=Object.create;var j=Object.defineProperty;var Q=Object.getOwnPropertyDescriptor;var V=Object.getOwnPropertyNames;var Y=Object.getPrototypeOf,ee=Object.prototype.hasOwnProperty;var T=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var re=(t,e,r,n)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let o of V(e))!ee.call(t,o)&&o!==r&&j(t,o,{get:()=>e[o],enumerable:!(n=Q(e,o))||n.enumerable});return t};var G=(t,e,r)=>(r=t!=null?N(Y(t)):{},re(e||!t||!t.__esModule?j(r,\"default\",{value:t,enumerable:!0}):r,t));var z=T(y=>{\"use strict\";Object.defineProperty(y,\"__esModule\",{value:!0});y.loop=y.conditional=y.parse=void 0;var te=function t(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:n;if(Array.isArray(r))r.forEach(function(a){return t(e,a,n,o)});else if(typeof r==\"function\")r(e,n,o,t);else{var i=Object.keys(r)[0];Array.isArray(r[i])?(o[i]={},t(e,r[i],n,o[i])):o[i]=r[i](e,n,o,t)}return n};y.parse=te;var ne=function(e,r){return function(n,o,i,a){r(n,o,i)&&a(n,e,o,i)}};y.conditional=ne;var ae=function(e,r){return function(n,o,i,a){for(var c=[],d=n.pos;r(n,o,i);){var u={};if(a(n,e,o,u),n.pos===d)break;d=n.pos,c.push(u)}return c}};y.loop=ae});var E=T(p=>{\"use strict\";Object.defineProperty(p,\"__esModule\",{value:!0});p.readBits=p.readArray=p.readUnsigned=p.readString=p.peekBytes=p.readBytes=p.peekByte=p.readByte=p.buildStream=void 0;var oe=function(e){return{data:e,pos:0}};p.buildStream=oe;var W=function(){return function(e){return e.data[e.pos++]}};p.readByte=W;var ie=function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return function(r){return r.data[r.pos+e]}};p.peekByte=ie;var _=function(e){return function(r){return r.data.subarray(r.pos,r.pos+=e)}};p.readBytes=_;var se=function(e){return function(r){return r.data.subarray(r.pos,r.pos+e)}};p.peekBytes=se;var de=function(e){return function(r){return Array.from(_(e)(r)).map(function(n){return String.fromCharCode(n)}).join(\"\")}};p.readString=de;var ce=function(e){return function(r){var n=_(2)(r);return e?(n[1]<<8)+n[0]:(n[0]<<8)+n[1]}};p.readUnsigned=ce;var ue=function(e,r){return function(n,o,i){for(var a=typeof r==\"function\"?r(n,o,i):r,c=_(e),d=new Array(a),u=0;u<a;u++)d[u]=c(n);return d}};p.readArray=ue;var le=function(e,r,n){for(var o=0,i=0;i<n;i++)o+=e[r+i]&&Math.pow(2,n-i-1);return o},pe=function(e){return function(r){for(var n=W()(r),o=new Array(8),i=0;i<8;i++)o[7-i]=!!(n&1<<i);return Object.keys(e).reduce(function(a,c){var d=e[c];return d.length?a[c]=le(o,d.index,d.length):a[c]=o[d.index],a},{})}};p.readBits=pe});var K=T(I=>{\"use strict\";Object.defineProperty(I,\"__esModule\",{value:!0});I.default=void 0;var h=z(),s=E(),F={blocks:function(e){for(var r=0,n=[],o=e.data.length,i=0,a=(0,s.readByte)()(e);a!==r&&a;a=(0,s.readByte)()(e)){if(e.pos+a>=o){var c=o-e.pos;n.push((0,s.readBytes)(c)(e)),i+=c;break}n.push((0,s.readBytes)(a)(e)),i+=a}for(var d=new Uint8Array(i),u=0,f=0;f<n.length;f++)d.set(n[f],u),u+=n[f].length;return d}},fe=(0,h.conditional)({gce:[{codes:(0,s.readBytes)(2)},{byteSize:(0,s.readByte)()},{extras:(0,s.readBits)({future:{index:0,length:3},disposal:{index:3,length:3},userInput:{index:6},transparentColorGiven:{index:7}})},{delay:(0,s.readUnsigned)(!0)},{transparentColorIndex:(0,s.readByte)()},{terminator:(0,s.readByte)()}]},function(t){var e=(0,s.peekBytes)(2)(t);return e[0]===33&&e[1]===249}),me=(0,h.conditional)({image:[{code:(0,s.readByte)()},{descriptor:[{left:(0,s.readUnsigned)(!0)},{top:(0,s.readUnsigned)(!0)},{width:(0,s.readUnsigned)(!0)},{height:(0,s.readUnsigned)(!0)},{lct:(0,s.readBits)({exists:{index:0},interlaced:{index:1},sort:{index:2},future:{index:3,length:2},size:{index:5,length:3}})}]},(0,h.conditional)({lct:(0,s.readArray)(3,function(t,e,r){return Math.pow(2,r.descriptor.lct.size+1)})},function(t,e,r){return r.descriptor.lct.exists}),{data:[{minCodeSize:(0,s.readByte)()},F]}]},function(t){return(0,s.peekByte)()(t)===44}),ge=(0,h.conditional)({text:[{codes:(0,s.readBytes)(2)},{blockSize:(0,s.readByte)()},{preData:function(e,r,n){return(0,s.readBytes)(n.text.blockSize)(e)}},F]},function(t){var e=(0,s.peekBytes)(2)(t);return e[0]===33&&e[1]===1}),ye=(0,h.conditional)({application:[{codes:(0,s.readBytes)(2)},{blockSize:(0,s.readByte)()},{id:function(e,r,n){return(0,s.readString)(n.blockSize)(e)}},F]},function(t){var e=(0,s.peekBytes)(2)(t);return e[0]===33&&e[1]===255}),he=(0,h.conditional)({comment:[{codes:(0,s.readBytes)(2)},F]},function(t){var e=(0,s.peekBytes)(2)(t);return e[0]===33&&e[1]===254}),ve=[{header:[{signature:(0,s.readString)(3)},{version:(0,s.readString)(3)}]},{lsd:[{width:(0,s.readUnsigned)(!0)},{height:(0,s.readUnsigned)(!0)},{gct:(0,s.readBits)({exists:{index:0},resolution:{index:1,length:3},sort:{index:4},size:{index:5,length:3}})},{backgroundColorIndex:(0,s.readByte)()},{pixelAspectRatio:(0,s.readByte)()}]},(0,h.conditional)({gct:(0,s.readArray)(3,function(t,e){return Math.pow(2,e.lsd.gct.size+1)})},function(t,e){return e.lsd.gct.exists}),{frames:(0,h.loop)([fe,ye,he,me,ge],function(t){var e=(0,s.peekByte)()(t);return e===33||e===44})}],be=ve;I.default=be});var D=G(z()),O=G(E()),R=G(K());var X=(t,e)=>{let r=new Array(t.length),n=t.length/e,o=function(d,u){let f=t.slice(u*e,(u+1)*e);r.splice(...[d*e,e].concat(f))},i=[0,4,2,1],a=[8,8,4,2],c=0;for(let d=0;d<4;d++)for(let u=i[d];u<n;u+=a[d])o(u,c),c++;return r};var Z=(t,e,r)=>{let i=r,a,c,d,u,f;var B;let l,m;var C,b,g,k,P;let v=new Array(r),U=new Array(4096),A=new Array(4096),S=new Array(4096+1),M=t,x=1<<M,J=x+1;for(a=x+2,f=-1,d=M+1,c=(1<<d)-1,l=0;l<x;l++)U[l]=0,A[l]=l;var C,B,b,g,P,k;for(C=B=b=g=P=k=0,m=0;m<i;){if(g===0){if(B<d){C+=e[k]<<B,B+=8,k++;continue}if(l=C&c,C>>=d,B-=d,l>a||l===J)break;if(l===x){d=M+1,c=(1<<d)-1,a=x+2,f=-1;continue}if(f===-1){S[g++]=A[l],f=l,b=l;continue}for(u=l,l===a&&(S[g++]=b,l=f);l>x;)S[g++]=A[l],l=U[l];b=A[l]&255,S[g++]=b,a<4096&&(U[a]=f,A[a]=b,a++,!(a&c)&&a<4096&&(d++,c+=a)),f=u}g--,v[P++]=S[g],m++}for(m=P;m<i;m++)v[m]=0;return v};var q=t=>{let e=new Uint8Array(t);return(0,D.parse)((0,O.buildStream)(e),R.default)},L=(t,e)=>{var a,c;if(!t.image){console.warn(\"gif frame does not have associated image.\");return}let{image:r}=t,n=r.descriptor.width*r.descriptor.height,o=Z(r.data.minCodeSize,r.data.blocks,n);return(a=r.descriptor.lct)!=null&&a.interlaced&&(o=X(o,r.descriptor.width)),{pixels:o,dims:{top:t.image.descriptor.top,left:t.image.descriptor.left,width:t.image.descriptor.width,height:t.image.descriptor.height},colorTable:(c=r.descriptor.lct)!=null&&c.exists?r.lct:e,delay:(t.gce.delay||10)*10,disposalType:t.gce.extras.disposal,transparentIndex:t.gce.extras.transparentColorGiven?t.gce.transparentColorIndex:-1}};var $=t=>t.frames.filter(e=>!(\"application\"in e)).map(e=>e.image?L(e,t.gct):null).filter(Boolean).map(e=>e);var xe=t=>{let e=null;for(let r of t.frames)e=r.gce?r.gce:e,\"image\"in r&&!(\"gce\"in r)&&e!==null&&(r.gce=e)},H=(t,{signal:e})=>fetch(t,{signal:e}).then(r=>{var n;if(!((n=r.headers.get(\"Content-Type\"))!=null&&n.includes(\"image/gif\")))throw Error(`Wrong content type: \"${r.headers.get(\"Content-Type\")}\"`);return r.arrayBuffer()}).then(r=>q(r)).then(r=>(xe(r),r)).then(r=>Promise.all([$(r),{width:r.lsd.width,height:r.lsd.height}])).then(([r,n])=>{let o=[],i=n.width*n.height*4,a=new Uint8ClampedArray(i);for(let c=0;c<r.length;++c){let d=r[c],u=r[c].disposalType===3?a.slice():null;if(o.push(Be(a,d,n)),r[c].disposalType===2)a=new Uint8ClampedArray(i);else if(r[c].disposalType===3){if(!u)throw Error(\"Disposal type 3 without previous frame\");a=u}else a=o[c].slice()}return{...n,loaded:!0,delays:r.map(c=>c.delay),frames:o}}),Be=(t,e,r)=>{let{width:n,height:o,top:i,left:a}=e.dims,c=i*r.width+a;for(let d=0;d<o;d++)for(let u=0;u<n;u++){let f=d*n+u,l=e.pixels[f];if(l!==e.transparentIndex){let m=c+d*r.width+u,v=e.colorTable[l];t[m*4]=v[0],t[m*4+1]=v[1],t[m*4+2]=v[2],t[m*4+3]=l===e.transparentIndex?0:255}}return t};var w=new Map;self.addEventListener(\"message\",t=>{let{type:e,src:r}=t.data||t;switch(e){case\"parse\":{if(!w.has(r)){let n=new AbortController,o={signal:n.signal};w.set(r,n),H(r,o).then(i=>{self.postMessage(Object.assign(i,{src:r}),i.frames.map(a=>a.buffer))}).catch(i=>{self.postMessage({src:r,error:i,loaded:!0})}).finally(()=>{w.delete(r)})}break}case\"cancel\":{w.has(r)&&(w.get(r).abort(),w.delete(r));break}default:break}});})();\n";
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const parse_generate_1 = require("../parse-generate");
4
+ const abortMap = new Map();
5
+ self.addEventListener('message', (e) => {
6
+ const { type, src } = e.data || e;
7
+ switch (type) {
8
+ case 'parse': {
9
+ if (!abortMap.has(src)) {
10
+ const controller = new AbortController();
11
+ const signal = { signal: controller.signal };
12
+ abortMap.set(src, controller);
13
+ (0, parse_generate_1.parse)(src, signal)
14
+ .then((result) => {
15
+ self.postMessage(Object.assign(result, { src }),
16
+ // @ts-expect-error
17
+ result.frames.map((frame) => frame.buffer));
18
+ })
19
+ .catch((error) => {
20
+ self.postMessage({ src, error, loaded: true });
21
+ })
22
+ .finally(() => {
23
+ abortMap.delete(src);
24
+ });
25
+ }
26
+ break;
27
+ }
28
+ case 'cancel': {
29
+ if (abortMap.has(src)) {
30
+ const controller = abortMap.get(src);
31
+ controller.abort();
32
+ abortMap.delete(src);
33
+ }
34
+ break;
35
+ }
36
+ default:
37
+ break;
38
+ }
39
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remotion/gif",
3
- "version": "4.0.0-lambda.1+5a0913230",
3
+ "version": "4.0.0-newpathfunctions.13+40cc970bd",
4
4
  "description": "Gif component for remotion",
5
5
  "sideEffects": false,
6
6
  "repository": {
@@ -17,27 +17,27 @@
17
17
  ],
18
18
  "scripts": {
19
19
  "lint": "eslint src --ext ts,tsx",
20
- "build": "tsc -d",
20
+ "build": "node build.mjs && tsc -d",
21
21
  "watch": "tsc -w"
22
22
  },
23
23
  "dependencies": {
24
- "@react-gifs/tools": "0.1.2",
24
+ "js-binary-schema-parser": "^2.0.3",
25
25
  "lru_map": "0.4.1",
26
- "remotion": "4.0.0-lambda.1+5a0913230"
26
+ "remotion": "4.0.0-newpathfunctions.13+40cc970bd"
27
27
  },
28
28
  "devDependencies": {
29
- "@jonny/eslint-config": "3.0.259",
29
+ "@jonny/eslint-config": "3.0.266",
30
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",
31
+ "@types/react": "18.0.26",
32
+ "@types/react-dom": "18.0.10",
33
+ "esbuild": "0.16.12",
34
+ "eslint": "8.25.0",
35
35
  "prettier": "2.6.2",
36
36
  "prettier-plugin-organize-imports": "^2.3.4",
37
37
  "react": "18.0.0",
38
38
  "react-dom": "18.0.0",
39
39
  "typescript": "^4.7.0",
40
- "webpack": "5.72.0"
40
+ "webpack": "5.74.0"
41
41
  },
42
42
  "peerDependencies": {
43
43
  "react": ">=16.8.0",
@@ -48,11 +48,10 @@
48
48
  "ffmpeg",
49
49
  "video",
50
50
  "react",
51
- "puppeteer",
52
51
  "player"
53
52
  ],
54
53
  "publishConfig": {
55
54
  "access": "public"
56
55
  },
57
- "gitHead": "5a091323018b016b7c05adcd4d3d2a5c9df292a8"
56
+ "gitHead": "40cc970bd20f2c9fde0c1644f1c9f33cd47f3dc7"
58
57
  }
package/dist/Gif.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"Gif.d.ts","sourceRoot":"","sources":["../src/Gif.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAC,gBAAgB,EAAC,MAAM,SAAS,CAAC;AAEzC,eAAO,MAAM,GAAG,UAAW,gBAAgB,gBAM1C,CAAC"}
package/dist/Gif.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"Gif.js","sourceRoot":"","sources":["../src/Gif.tsx"],"names":[],"mappings":";;;;AACA,uCAAmC;AACnC,2DAAsD;AACtD,uDAAkD;AAG3C,MAAM,GAAG,GAAG,CAAC,KAAuB,EAAE,EAAE;IAC9C,IAAI,oBAAS,CAAC,sBAAsB,EAAE,KAAK,WAAW,EAAE;QACvD,OAAO,uBAAC,iCAAe,OAAK,KAAK,WAAI,CAAC;KACtC;IAED,OAAO,uBAAC,qCAAiB,OAAK,KAAK,WAAI,CAAC;AACzC,CAAC,CAAC;AANW,QAAA,GAAG,OAMd"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"GifForDevelopment.d.ts","sourceRoot":"","sources":["../src/GifForDevelopment.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAClD,OAAO,EAAW,gBAAgB,EAAC,MAAM,SAAS,CAAC;AAKnD,eAAO,MAAM,iBAAiB,4FAoD5B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"GifForDevelopment.js","sourceRoot":"","sources":["../src/GifForDevelopment.tsx"],"names":[],"mappings":";;;;AAAA,6CAA0D;AAC1D,qCAA+B;AAC/B,iCAAkD;AAElD,6DAAwD;AAExD,MAAM,KAAK,GAAG,IAAI,gBAAM,CAAmB,EAAE,CAAC,CAAC;AAElC,QAAA,iBAAiB,GAAG,IAAA,kBAAU,EAGzC,CAAC,EAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,GAAG,MAAM,EAAE,GAAG,KAAK,EAAC,EAAE,GAAG,EAAE,EAAE;IACxE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,IAAA,gBAAQ,EAAW,GAAG,EAAE;QAC/C,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEjC,IAAI,SAAS,KAAK,SAAS,EAAE;YAC5B,OAAO;gBACN,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,EAAE;gBACV,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC;aACT,CAAC;SACF;QAED,OAAO,SAAqB,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,+BAA+B;IAC/B,IAAA,uBAAe,EAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;QAC7D,IAAI,OAAO,IAAI,IAAI,EAAE;YACpB,IAAI,OAAO,EAAE;gBACZ,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACpB;iBAAM;gBACN,OAAO,CAAC,KAAK,CACZ,oBAAoB,EACpB,IAAI,CAAC,KAAK,EACV,2EAA2E,CAC3E,CAAC;aACF;SACD;aAAM;YACN,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,IAAI,CAAC,CAAC;YAEf,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YACrB,MAAM,CAAC,IAAI,CAAC,CAAC;SACb;IACF,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,IAAA,uCAAkB,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAE/C,OAAO,CACN,uBAAC,cAAM,IACN,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,KAAK,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,KAAK,CAAC,KAAK,EAC3B,MAAM,EAAE,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,KAAK,CAAC,MAAM,KAC1B,KAAK,EACT,GAAG,EAAE,GAAG,WACP,CACF,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"GifForRendering.d.ts","sourceRoot":"","sources":["../src/GifForRendering.tsx"],"names":[],"mappings":"AACA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAElD,OAAO,EAAW,gBAAgB,EAAC,MAAM,SAAS,CAAC;AAGnD,eAAO,MAAM,eAAe,4FA8C3B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"GifForRendering.js","sourceRoot":"","sources":["../src/GifForRendering.tsx"],"names":[],"mappings":";;;;AAAA,6CAAoD;AACpD,iCAAkD;AAClD,uCAAqD;AAErD,6DAAwD;AAE3C,QAAA,eAAe,GAAG,IAAA,kBAAU,EACxC,CAAC,EAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,MAAM,EAAE,GAAG,KAAK,EAAC,EAAE,GAAG,EAAE,EAAE;IACtE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,IAAA,gBAAQ,EAAW;QAC1C,MAAM,EAAE,EAAE;QACV,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,CAAC;KACT,CAAC,CAAC;IAEH,MAAM,CAAC,EAAE,CAAC,GAAG,IAAA,gBAAQ,EAAC,GAAG,EAAE,CAC1B,IAAA,sBAAW,EAAC,8BAA8B,GAAG,GAAG,CAAC,CACjD,CAAC;IAEF,MAAM,KAAK,GAAG,IAAA,uCAAkB,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAE/C,IAAA,iBAAS,EAAC,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE;QACvB,IAAI,OAAO,IAAI,IAAI,EAAE;YACpB,IAAI,OAAO,EAAE;gBACZ,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACpB;iBAAM;gBACN,OAAO,CAAC,KAAK,CACZ,oBAAoB,EACpB,IAAI,CAAC,KAAK,EACV,2EAA2E,CAC3E,CAAC;aACF;SACD;aAAM;YACN,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,IAAI,CAAC,CAAC;YACf,MAAM,CAAC,IAAI,CAAC,CAAC;SACb;QAED,IAAA,yBAAc,EAAC,EAAE,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,OAAO,CACN,uBAAC,cAAM,IACN,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,KAAK,EAAE,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,KAAK,CAAC,KAAK,EAC3B,MAAM,EAAE,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,KAAK,CAAC,MAAM,KAC1B,KAAK,EACT,GAAG,EAAE,GAAG,WACP,CACF,CAAC;AACH,CAAC,CACD,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,wCAAsB;AACtB,0CAAwB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"props.d.ts","sourceRoot":"","sources":["../src/props.ts"],"names":[],"mappings":";AAAA,oBAAY,gBAAgB,GAAG;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;QACf,MAAM,EAAE,IAAI,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,MAAM,EAAE,SAAS,EAAE,CAAC;KACpB,KAAK,IAAI,CAAC;IACX,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,GAAG,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;IACnC,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC5B,CAAC;AAEF,oBAAY,QAAQ,GAAG;IACtB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CACf,CAAC"}
package/dist/props.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"props.js","sourceRoot":"","sources":["../src/props.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useCurrentGifIndex.d.ts","sourceRoot":"","sources":["../src/useCurrentGifIndex.tsx"],"names":[],"mappings":"AAGA,iBAAS,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CA2BpD;AAED,OAAO,EAAC,kBAAkB,EAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useCurrentGifIndex.js","sourceRoot":"","sources":["../src/useCurrentGifIndex.tsx"],"names":[],"mappings":";;;AAAA,iCAA8B;AAC9B,uCAAoD;AAEpD,SAAS,kBAAkB,CAAC,MAAgB;IAC3C,MAAM,YAAY,GAAG,IAAA,0BAAe,GAAE,CAAC;IACvC,MAAM,WAAW,GAAG,oBAAS,CAAC,oBAAoB,EAAE,CAAC;IAErD,MAAM,QAAQ,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAC7B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACxB,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAW,EAAE,KAAa,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;SACrE;QAED,OAAO,CAAC,CAAC;IACV,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,MAAM,KAAK,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAC1B,IAAI,WAAW,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACvC,IAAI,WAAW,GAAG,CAAC,CAAC,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,QAAQ,CAAC;YAEvE,KAAK,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE;gBAC1C,IAAI,WAAW,GAAG,KAAK;oBAAE,OAAO,CAAC,CAAC;gBAElC,WAAW,IAAI,KAAK,CAAC;aACrB;SACD;QAED,OAAO,CAAC,CAAC;IACV,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;IAElD,OAAO,KAAK,CAAC;AACd,CAAC;AAEO,gDAAkB"}