@uploadista/core 0.1.2 → 0.1.3-beta.3
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.
- package/dist/{checksum-COoD-F1l.mjs → checksum-Bhch-SRg.mjs} +2 -2
- package/dist/{checksum-COoD-F1l.mjs.map → checksum-Bhch-SRg.mjs.map} +1 -1
- package/dist/checksum-CrfdHugi.cjs +1 -0
- package/dist/errors/index.cjs +1 -1
- package/dist/errors/index.d.cts +1 -1
- package/dist/errors/index.d.mts +2 -2
- package/dist/errors/index.mjs +1 -1
- package/dist/flow/index.cjs +1 -1
- package/dist/flow/index.d.cts +1 -1
- package/dist/flow/index.d.mts +5 -5
- package/dist/flow/index.mjs +1 -1
- package/dist/flow-CgCcLsPP.cjs +1 -0
- package/dist/flow-DyFRaN5b.mjs +2 -0
- package/dist/flow-DyFRaN5b.mjs.map +1 -0
- package/dist/{index-9gyMMEIB.d.cts → index-D1C_InNb.d.cts} +2 -2
- package/dist/index-D1C_InNb.d.cts.map +1 -0
- package/dist/{index-D8MZ6P3o.d.mts → index-D1xVo0kN.d.mts} +2 -2
- package/dist/index-D1xVo0kN.d.mts.map +1 -0
- package/dist/{index-B1kaL8kf.d.mts → index-DKwJFauU.d.cts} +51 -101
- package/dist/index-DKwJFauU.d.cts.map +1 -0
- package/dist/{index-DFbu_-zn.d.cts → index-D_yZmNYw.d.mts} +2 -2
- package/dist/index-D_yZmNYw.d.mts.map +1 -0
- package/dist/{index-DQuMQssI.d.mts → index-trGSFkYe.d.cts} +2 -2
- package/dist/index-trGSFkYe.d.cts.map +1 -0
- package/dist/{index-ioLv_J6Z.d.cts → index-zxscP_nP.d.mts} +51 -101
- package/dist/index-zxscP_nP.d.mts.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +4 -4
- package/dist/index.d.mts +5 -5
- package/dist/index.mjs +1 -1
- package/dist/{stream-limiter-B9nsn2gb.mjs → stream-limiter-CUS1_6KZ.mjs} +2 -2
- package/dist/{stream-limiter-B9nsn2gb.mjs.map → stream-limiter-CUS1_6KZ.mjs.map} +1 -1
- package/dist/stream-limiter-DzdI9yEA.cjs +1 -0
- package/dist/streams/index.cjs +1 -1
- package/dist/streams/index.d.cts +1 -1
- package/dist/streams/index.d.mts +2 -2
- package/dist/streams/index.mjs +1 -1
- package/dist/testing/index.cjs +2 -2
- package/dist/testing/index.d.cts +1 -2
- package/dist/testing/index.d.cts.map +1 -1
- package/dist/testing/index.d.mts +5 -6
- package/dist/testing/index.d.mts.map +1 -1
- package/dist/testing/index.mjs +1 -1
- package/dist/types/index.cjs +1 -1
- package/dist/types/index.d.cts +1 -1
- package/dist/types/index.d.mts +5 -5
- package/dist/types/index.mjs +1 -1
- package/dist/{types-4jaEzErd.mjs → types-5ZELMVfM.mjs} +2 -2
- package/dist/{types-4jaEzErd.mjs.map → types-5ZELMVfM.mjs.map} +1 -1
- package/dist/types-BFrsfDaF.cjs +1 -0
- package/dist/upload/index.cjs +1 -1
- package/dist/upload/index.d.cts +1 -1
- package/dist/upload/index.d.mts +5 -5
- package/dist/upload/index.mjs +1 -1
- package/dist/{upload-3cJkyA-H.cjs → upload-GilwoZG7.cjs} +1 -1
- package/dist/{upload-DVkP5Oh3.mjs → upload-QExBZ_3g.mjs} +2 -2
- package/dist/upload-QExBZ_3g.mjs.map +1 -0
- package/dist/{uploadista-error-CkSxSyNo.mjs → uploadista-error-9mF4Z7sn.mjs} +1 -1
- package/dist/{uploadista-error-CkSxSyNo.mjs.map → uploadista-error-9mF4Z7sn.mjs.map} +1 -1
- package/dist/{uploadista-error-B1qbOy9N.d.mts → uploadista-error-B5BIYLR_.d.cts} +2 -3
- package/dist/uploadista-error-B5BIYLR_.d.cts.map +1 -0
- package/dist/{uploadista-error-CYCmAtkZ.d.cts → uploadista-error-BeyPhCWJ.d.mts} +2 -3
- package/dist/uploadista-error-BeyPhCWJ.d.mts.map +1 -0
- package/dist/{uploadista-error-BBFNPVsJ.cjs → uploadista-error-DgO_3oBt.cjs} +2 -2
- package/dist/utils/index.cjs +1 -1
- package/dist/utils/index.d.cts +1 -1
- package/dist/utils/index.d.mts +2 -2
- package/dist/utils/index.mjs +1 -1
- package/dist/{utils-DVwfrVBJ.mjs → utils-BwUQGiMC.mjs} +2 -2
- package/dist/{utils-DVwfrVBJ.mjs.map → utils-BwUQGiMC.mjs.map} +1 -1
- package/dist/utils-DGK7AhJc.cjs +1 -0
- package/package.json +6 -6
- package/src/flow/flow.ts +186 -27
- package/dist/checksum-CSvd13B0.cjs +0 -1
- package/dist/flow-CCpG6n7R.cjs +0 -1
- package/dist/flow-nWzB_L0q.mjs +0 -2
- package/dist/flow-nWzB_L0q.mjs.map +0 -1
- package/dist/index-9gyMMEIB.d.cts.map +0 -1
- package/dist/index-B1kaL8kf.d.mts.map +0 -1
- package/dist/index-D8MZ6P3o.d.mts.map +0 -1
- package/dist/index-DFbu_-zn.d.cts.map +0 -1
- package/dist/index-DQuMQssI.d.mts.map +0 -1
- package/dist/index-ioLv_J6Z.d.cts.map +0 -1
- package/dist/stream-limiter-iYpzh7Y6.cjs +0 -1
- package/dist/types-BLxcpPL9.cjs +0 -1
- package/dist/upload-DVkP5Oh3.mjs.map +0 -1
- package/dist/uploadista-error-B1qbOy9N.d.mts.map +0 -1
- package/dist/uploadista-error-CYCmAtkZ.d.cts.map +0 -1
- package/dist/utils-D24b0p1Z.cjs +0 -1
- /package/dist/{errors-CtPUOWNd.mjs → errors-DuxBpAc7.mjs} +0 -0
- /package/dist/{index-DWe68pTi.d.mts → index-9iG2qHLe.d.mts} +0 -0
- /package/dist/{index-_wQ5ClJU.d.cts → index-DDRpa5CJ.d.cts} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{n as e}from"./uploadista-error-
|
|
2
|
-
//# sourceMappingURL=utils-
|
|
1
|
+
import{n as e}from"./uploadista-error-9mF4Z7sn.mjs";import{Effect as t}from"effect";var n=class e{static hashStr(t,n=!1){return e.onePassHasher.start().appendStr(t).end(n)}static hashAsciiStr(t,n=!1){return e.onePassHasher.start().appendAsciiStr(t).end(n)}static stateIdentity=new Int32Array([1732584193,-271733879,-1732584194,271733878]);static buffer32Identity=new Int32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);static hexChars=`0123456789abcdef`;static hexOut=[];static onePassHasher=new e;static _hex(t){let n=e.hexChars,r=e.hexOut,i,a,o,s;for(s=0;s<4;s+=1)for(a=s*8,i=t[s]??0,o=0;o<8;o+=2)r[a+1+o]=n.charAt(i&15),i>>>=4,r[a+0+o]=n.charAt(i&15),i>>>=4;return r.join(``)}static _md5cycle(e,t){let n=e[0]??0,r=e[1]??0,i=e[2]??0,a=e[3]??0;n+=(r&i|~r&a)+(t[0]??0)-680876936|0,n=(n<<7|n>>>25)+r|0,a+=(n&r|~n&i)+(t[1]??0)-389564586|0,a=(a<<12|a>>>20)+n|0,i+=(a&n|~a&r)+(t[2]??0)+606105819|0,i=(i<<17|i>>>15)+a|0,r+=(i&a|~i&n)+(t[3]??0)-1044525330|0,r=(r<<22|r>>>10)+i|0,n+=(r&i|~r&a)+(t[4]??0)-176418897|0,n=(n<<7|n>>>25)+r|0,a+=(n&r|~n&i)+(t[5]??0)+1200080426|0,a=(a<<12|a>>>20)+n|0,i+=(a&n|~a&r)+(t[6]??0)-1473231341|0,i=(i<<17|i>>>15)+a|0,r+=(i&a|~i&n)+(t[7]??0)-45705983|0,r=(r<<22|r>>>10)+i|0,n+=(r&i|~r&a)+(t[8]??0)+1770035416|0,n=(n<<7|n>>>25)+r|0,a+=(n&r|~n&i)+(t[9]??0)-1958414417|0,a=(a<<12|a>>>20)+n|0,i+=(a&n|~a&r)+(t[10]??0)-42063|0,i=(i<<17|i>>>15)+a|0,r+=(i&a|~i&n)+(t[11]??0)-1990404162|0,r=(r<<22|r>>>10)+i|0,n+=(r&i|~r&a)+(t[12]??0)+1804603682|0,n=(n<<7|n>>>25)+r|0,a+=(n&r|~n&i)+(t[13]??0)-40341101|0,a=(a<<12|a>>>20)+n|0,i+=(a&n|~a&r)+(t[14]??0)-1502002290|0,i=(i<<17|i>>>15)+a|0,r+=(i&a|~i&n)+(t[15]??0)+1236535329|0,r=(r<<22|r>>>10)+i|0,n+=(r&a|i&~a)+(t[1]??0)-165796510|0,n=(n<<5|n>>>27)+r|0,a+=(n&i|r&~i)+(t[6]??0)-1069501632|0,a=(a<<9|a>>>23)+n|0,i+=(a&r|n&~r)+(t[11]??0)+643717713|0,i=(i<<14|i>>>18)+a|0,r+=(i&n|a&~n)+(t[0]??0)-373897302|0,r=(r<<20|r>>>12)+i|0,n+=(r&a|i&~a)+(t[5]??0)-701558691|0,n=(n<<5|n>>>27)+r|0,a+=(n&i|r&~i)+(t[10]??0)+38016083|0,a=(a<<9|a>>>23)+n|0,i+=(a&r|n&~r)+(t[15]??0)-660478335|0,i=(i<<14|i>>>18)+a|0,r+=(i&n|a&~n)+(t[4]??0)-405537848|0,r=(r<<20|r>>>12)+i|0,n+=(r&a|i&~a)+(t[9]??0)+568446438|0,n=(n<<5|n>>>27)+r|0,a+=(n&i|r&~i)+(t[14]??0)-1019803690|0,a=(a<<9|a>>>23)+n|0,i+=(a&r|n&~r)+(t[3]??0)-187363961|0,i=(i<<14|i>>>18)+a|0,r+=(i&n|a&~n)+(t[8]??0)+1163531501|0,r=(r<<20|r>>>12)+i|0,n+=(r&a|i&~a)+(t[13]??0)-1444681467|0,n=(n<<5|n>>>27)+r|0,a+=(n&i|r&~i)+(t[2]??0)-51403784|0,a=(a<<9|a>>>23)+n|0,i+=(a&r|n&~r)+(t[7]??0)+1735328473|0,i=(i<<14|i>>>18)+a|0,r+=(i&n|a&~n)+(t[12]??0)-1926607734|0,r=(r<<20|r>>>12)+i|0,n+=(r^i^a)+(t[5]??0)-378558|0,n=(n<<4|n>>>28)+r|0,a+=(n^r^i)+(t[8]??0)-2022574463|0,a=(a<<11|a>>>21)+n|0,i+=(a^n^r)+(t[11]??0)+1839030562|0,i=(i<<16|i>>>16)+a|0,r+=(i^a^n)+(t[14]??0)-35309556|0,r=(r<<23|r>>>9)+i|0,n+=(r^i^a)+(t[1]??0)-1530992060|0,n=(n<<4|n>>>28)+r|0,a+=(n^r^i)+(t[4]??0)+1272893353|0,a=(a<<11|a>>>21)+n|0,i+=(a^n^r)+(t[7]??0)-155497632|0,i=(i<<16|i>>>16)+a|0,r+=(i^a^n)+(t[10]??0)-1094730640|0,r=(r<<23|r>>>9)+i|0,n+=(r^i^a)+(t[13]??0)+681279174|0,n=(n<<4|n>>>28)+r|0,a+=(n^r^i)+(t[0]??0)-358537222|0,a=(a<<11|a>>>21)+n|0,i+=(a^n^r)+(t[3]??0)-722521979|0,i=(i<<16|i>>>16)+a|0,r+=(i^a^n)+(t[6]??0)+76029189|0,r=(r<<23|r>>>9)+i|0,n+=(r^i^a)+(t[9]??0)-640364487|0,n=(n<<4|n>>>28)+r|0,a+=(n^r^i)+(t[12]??0)-421815835|0,a=(a<<11|a>>>21)+n|0,i+=(a^n^r)+(t[15]??0)+530742520|0,i=(i<<16|i>>>16)+a|0,r+=(i^a^n)+(t[2]??0)-995338651|0,r=(r<<23|r>>>9)+i|0,n+=(i^(r|~a))+(t[0]??0)-198630844|0,n=(n<<6|n>>>26)+r|0,a+=(r^(n|~i))+(t[7]??0)+1126891415|0,a=(a<<10|a>>>22)+n|0,i+=(n^(a|~r))+(t[14]??0)-1416354905|0,i=(i<<15|i>>>17)+a|0,r+=(a^(i|~n))+(t[5]??0)-57434055|0,r=(r<<21|r>>>11)+i|0,n+=(i^(r|~a))+(t[12]??0)+1700485571|0,n=(n<<6|n>>>26)+r|0,a+=(r^(n|~i))+(t[3]??0)-1894986606|0,a=(a<<10|a>>>22)+n|0,i+=(n^(a|~r))+(t[10]??0)-1051523|0,i=(i<<15|i>>>17)+a|0,r+=(a^(i|~n))+(t[1]??0)-2054922799|0,r=(r<<21|r>>>11)+i|0,n+=(i^(r|~a))+(t[8]??0)+1873313359|0,n=(n<<6|n>>>26)+r|0,a+=(r^(n|~i))+(t[15]??0)-30611744|0,a=(a<<10|a>>>22)+n|0,i+=(n^(a|~r))+(t[6]??0)-1560198380|0,i=(i<<15|i>>>17)+a|0,r+=(a^(i|~n))+(t[13]??0)+1309151649|0,r=(r<<21|r>>>11)+i|0,n+=(i^(r|~a))+(t[4]??0)-145523070|0,n=(n<<6|n>>>26)+r|0,a+=(r^(n|~i))+(t[11]??0)-1120210379|0,a=(a<<10|a>>>22)+n|0,i+=(n^(a|~r))+(t[2]??0)+718787259|0,i=(i<<15|i>>>17)+a|0,r+=(a^(i|~n))+(t[9]??0)-343485551|0,r=(r<<21|r>>>11)+i|0,e[0]=n+(e[0]??0)|0,e[1]=r+(e[1]??0)|0,e[2]=i+(e[2]??0)|0,e[3]=a+(e[3]??0)|0}_dataLength=0;_bufferLength=0;_state=new Int32Array(4);_buffer=new ArrayBuffer(68);_buffer8;_buffer32;constructor(){this._buffer8=new Uint8Array(this._buffer,0,68),this._buffer32=new Uint32Array(this._buffer,0,17),this.start()}start(){return this._dataLength=0,this._bufferLength=0,this._state.set(e.stateIdentity),this}appendStr(t){let n=this._buffer8,r=this._buffer32,i=this._bufferLength,a,o;for(o=0;o<t.length;o+=1){if(a=t.charCodeAt(o),a<128)n[i++]=a;else if(a<2048)n[i++]=(a>>>6)+192,n[i++]=a&63|128;else if(a<55296||a>56319)n[i++]=(a>>>12)+224,n[i++]=a>>>6&63|128,n[i++]=a&63|128;else{if(a=(a-55296)*1024+(t.charCodeAt(++o)-56320)+65536,a>1114111)throw Error(`Unicode standard supports code points up to U+10FFFF`);n[i++]=(a>>>18)+240,n[i++]=a>>>12&63|128,n[i++]=a>>>6&63|128,n[i++]=a&63|128}i>=64&&(this._dataLength+=64,e._md5cycle(this._state,r),i-=64,r[0]=r[16]??0)}return this._bufferLength=i,this}appendAsciiStr(t){let n=this._buffer8,r=this._buffer32,i=this._bufferLength,a,o=0;for(;;){for(a=Math.min(t.length-o,64-i);a--;)n[i++]=t.charCodeAt(o++);if(i<64)break;this._dataLength+=64,e._md5cycle(this._state,r),i=0}return this._bufferLength=i,this}appendByteArray(t){let n=this._buffer8,r=this._buffer32,i=this._bufferLength,a,o=0;for(;;){for(a=Math.min(t.length-o,64-i);a--;)n[i++]=t[o++]??0;if(i<64)break;this._dataLength+=64,e._md5cycle(this._state,r),i=0}return this._bufferLength=i,this}getState(){let e=this._state;return{buffer:String.fromCharCode.apply(null,Array.from(this._buffer8)),buflen:this._bufferLength,length:this._dataLength,state:[e[0]??0,e[1]??0,e[2]??0,e[3]??0]}}setState(e){let t=e.buffer,n=e.state,r=this._state,i;for(this._dataLength=e.length,this._bufferLength=e.buflen,r[0]=n[0]??0,r[1]=n[1]??0,r[2]=n[2]??0,r[3]=n[3]??0,i=0;i<t.length;i+=1)this._buffer8[i]=t.charCodeAt(i)}end(t=!1){let n=this._bufferLength,r=this._buffer8,i=this._buffer32,a=(n>>2)+1;this._dataLength+=n;let o=this._dataLength*8;if(r[n]=128,r[n+1]=r[n+2]=r[n+3]=0,i.set(e.buffer32Identity.subarray(a),a),n>55&&(e._md5cycle(this._state,i),i.set(e.buffer32Identity)),o<=4294967295)i[14]=o;else{let e=o.toString(16).match(/(.*?)(.{0,8})$/);if(e===null)return;let t=Number.parseInt(e[2]??``,16),n=Number.parseInt(e[1]??``,16)||0;i[14]=t,i[15]=n}return e._md5cycle(this._state,i),t?this._state:e._hex(this._state)}};if(n.hashStr(`hello`)!==`5d41402abc4b2a76b9719d911017c592`)throw Error(`Md5 self test failed.`);function r(e){let t=!1,n;return function(...r){if(t){if(n)return n;throw Error(`Function called more than once`)}return t=!0,n=e.apply(this,r),n}}const i={make:n=>{let r,i=!1;return t.gen(function*(){if(i){if(r!==void 0)return r;yield*new e({code:`UNKNOWN_ERROR`,status:500,body:`Effect called more than once with undefined result`}).toEffect()}return i=!0,r=yield*n,r})},legacy:r},a={leading:!1,trailing:!0};function o(e,t,n={}){let r={...a,...n},i;return function(...n){r.leading&&!i?(console.log(`leading`),e.apply(this,n),i=setTimeout(()=>{i=void 0},t)):(clearTimeout(i),i=setTimeout(()=>{r.trailing?(e.apply(this,n),r.leading&&setTimeout(()=>{i=void 0},t)):i=void 0},t))}}function s(e,t,{leading:n=!0,trailing:r=!0}={}){return o(e,t,{leading:n,trailing:r})}const c={legacy:s};export{n as a,r as i,s as n,i as r,c as t};
|
|
2
|
+
//# sourceMappingURL=utils-BwUQGiMC.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils-DVwfrVBJ.mjs","names":[],"sources":["../src/utils/md5.ts","../src/utils/once.ts","../src/utils/debounce.ts","../src/utils/throttle.ts"],"sourcesContent":["/*\n\nTypeScript Md5\n==============\n\nBased on work by\n* Joseph Myers: http://www.myersdaily.org/joseph/javascript/md5-text.html\n* André Cruz: https://github.com/satazor/SparkMD5\n* Raymond Hill: https://github.com/gorhill/yamd5.js\n\nEffectively a TypeScrypt re-write of Raymond Hill JS Library\n\nThe MIT License (MIT)\n\nCopyright (C) 2014 Raymond Hill\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n DO WHAT YOU WANT TO PUBLIC LICENSE\n Version 2, December 2004\n\n Copyright (C) 2015 André Cruz <amdfcruz@gmail.com>\n\n Everyone is permitted to copy and distribute verbatim or modified\n copies of this license document, and changing it is allowed as long\n as the name is changed.\n\n DO WHAT YOU WANT TO PUBLIC LICENSE\n TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\n\n 0. You just DO WHAT YOU WANT TO.\n\n*/\n\ntype HasherState = {\n buffer: string;\n buflen: number;\n length: number;\n state: number[];\n};\n\nexport class Md5 {\n /**\n * Hash a UTF-8 string on the spot\n * @param str String to hash\n * @param raw Whether to return the value as an `Int32Array`\n */\n public static hashStr(str: string, raw?: false): string;\n public static hashStr(str: string, raw: true): Int32Array;\n public static hashStr(str: string, raw = false) {\n return Md5.onePassHasher.start().appendStr(str).end(raw);\n }\n\n /**\n * Hash a ASCII string on the spot\n * @param str String to hash\n * @param raw Whether to return the value as an `Int32Array`\n */\n public static hashAsciiStr(str: string, raw?: false): string;\n public static hashAsciiStr(str: string, raw: true): Int32Array;\n public static hashAsciiStr(str: string, raw = false) {\n return Md5.onePassHasher.start().appendAsciiStr(str).end(raw);\n }\n\n // Private Static Variables\n private static stateIdentity = new Int32Array([\n 1732584193, -271733879, -1732584194, 271733878,\n ]);\n\n private static buffer32Identity = new Int32Array([\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n ]);\n\n private static hexChars = \"0123456789abcdef\";\n private static hexOut: string[] = [];\n\n // Permanent instance is to use for one-call hashing\n private static onePassHasher = new Md5();\n\n private static _hex(x: Int32Array): string {\n const hc = Md5.hexChars;\n const ho = Md5.hexOut;\n let n: number;\n let offset: number;\n let j: number;\n let i: number;\n\n for (i = 0; i < 4; i += 1) {\n offset = i * 8;\n n = x[i] ?? 0;\n for (j = 0; j < 8; j += 2) {\n ho[offset + 1 + j] = hc.charAt(n & 0x0f);\n n >>>= 4;\n ho[offset + 0 + j] = hc.charAt(n & 0x0f);\n n >>>= 4;\n }\n }\n return ho.join(\"\");\n }\n\n private static _md5cycle(\n x: Int32Array | Uint32Array,\n k: Int32Array | Uint32Array,\n ) {\n let a: number = x[0] ?? 0;\n let b: number = x[1] ?? 0;\n let c: number = x[2] ?? 0;\n let d: number = x[3] ?? 0;\n // ff()\n a += (((b & c) | (~b & d)) + (k[0] ?? 0) - 680876936) | 0;\n a = (((a << 7) | (a >>> 25)) + b) | 0;\n d += (((a & b) | (~a & c)) + (k[1] ?? 0) - 389564586) | 0;\n d = (((d << 12) | (d >>> 20)) + a) | 0;\n c += (((d & a) | (~d & b)) + (k[2] ?? 0) + 606105819) | 0;\n c = (((c << 17) | (c >>> 15)) + d) | 0;\n b += (((c & d) | (~c & a)) + (k[3] ?? 0) - 1044525330) | 0;\n b = (((b << 22) | (b >>> 10)) + c) | 0;\n a += (((b & c) | (~b & d)) + (k[4] ?? 0) - 176418897) | 0;\n a = (((a << 7) | (a >>> 25)) + b) | 0;\n d += (((a & b) | (~a & c)) + (k[5] ?? 0) + 1200080426) | 0;\n d = (((d << 12) | (d >>> 20)) + a) | 0;\n c += (((d & a) | (~d & b)) + (k[6] ?? 0) - 1473231341) | 0;\n c = (((c << 17) | (c >>> 15)) + d) | 0;\n b += (((c & d) | (~c & a)) + (k[7] ?? 0) - 45705983) | 0;\n b = (((b << 22) | (b >>> 10)) + c) | 0;\n a += (((b & c) | (~b & d)) + (k[8] ?? 0) + 1770035416) | 0;\n a = (((a << 7) | (a >>> 25)) + b) | 0;\n d += (((a & b) | (~a & c)) + (k[9] ?? 0) - 1958414417) | 0;\n d = (((d << 12) | (d >>> 20)) + a) | 0;\n c += (((d & a) | (~d & b)) + (k[10] ?? 0) - 42063) | 0;\n c = (((c << 17) | (c >>> 15)) + d) | 0;\n b += (((c & d) | (~c & a)) + (k[11] ?? 0) - 1990404162) | 0;\n b = (((b << 22) | (b >>> 10)) + c) | 0;\n a += (((b & c) | (~b & d)) + (k[12] ?? 0) + 1804603682) | 0;\n a = (((a << 7) | (a >>> 25)) + b) | 0;\n d += (((a & b) | (~a & c)) + (k[13] ?? 0) - 40341101) | 0;\n d = (((d << 12) | (d >>> 20)) + a) | 0;\n c += (((d & a) | (~d & b)) + (k[14] ?? 0) - 1502002290) | 0;\n c = (((c << 17) | (c >>> 15)) + d) | 0;\n b += (((c & d) | (~c & a)) + (k[15] ?? 0) + 1236535329) | 0;\n b = (((b << 22) | (b >>> 10)) + c) | 0;\n // gg()\n a += (((b & d) | (c & ~d)) + (k[1] ?? 0) - 165796510) | 0;\n a = (((a << 5) | (a >>> 27)) + b) | 0;\n d += (((a & c) | (b & ~c)) + (k[6] ?? 0) - 1069501632) | 0;\n d = (((d << 9) | (d >>> 23)) + a) | 0;\n c += (((d & b) | (a & ~b)) + (k[11] ?? 0) + 643717713) | 0;\n c = (((c << 14) | (c >>> 18)) + d) | 0;\n b += (((c & a) | (d & ~a)) + (k[0] ?? 0) - 373897302) | 0;\n b = (((b << 20) | (b >>> 12)) + c) | 0;\n a += (((b & d) | (c & ~d)) + (k[5] ?? 0) - 701558691) | 0;\n a = (((a << 5) | (a >>> 27)) + b) | 0;\n d += (((a & c) | (b & ~c)) + (k[10] ?? 0) + 38016083) | 0;\n d = (((d << 9) | (d >>> 23)) + a) | 0;\n c += (((d & b) | (a & ~b)) + (k[15] ?? 0) - 660478335) | 0;\n c = (((c << 14) | (c >>> 18)) + d) | 0;\n b += (((c & a) | (d & ~a)) + (k[4] ?? 0) - 405537848) | 0;\n b = (((b << 20) | (b >>> 12)) + c) | 0;\n a += (((b & d) | (c & ~d)) + (k[9] ?? 0) + 568446438) | 0;\n a = (((a << 5) | (a >>> 27)) + b) | 0;\n d += (((a & c) | (b & ~c)) + (k[14] ?? 0) - 1019803690) | 0;\n d = (((d << 9) | (d >>> 23)) + a) | 0;\n c += (((d & b) | (a & ~b)) + (k[3] ?? 0) - 187363961) | 0;\n c = (((c << 14) | (c >>> 18)) + d) | 0;\n b += (((c & a) | (d & ~a)) + (k[8] ?? 0) + 1163531501) | 0;\n b = (((b << 20) | (b >>> 12)) + c) | 0;\n a += (((b & d) | (c & ~d)) + (k[13] ?? 0) - 1444681467) | 0;\n a = (((a << 5) | (a >>> 27)) + b) | 0;\n d += (((a & c) | (b & ~c)) + (k[2] ?? 0) - 51403784) | 0;\n d = (((d << 9) | (d >>> 23)) + a) | 0;\n c += (((d & b) | (a & ~b)) + (k[7] ?? 0) + 1735328473) | 0;\n c = (((c << 14) | (c >>> 18)) + d) | 0;\n b += (((c & a) | (d & ~a)) + (k[12] ?? 0) - 1926607734) | 0;\n b = (((b << 20) | (b >>> 12)) + c) | 0;\n // hh()\n a += ((b ^ c ^ d) + (k[5] ?? 0) - 378558) | 0;\n a = (((a << 4) | (a >>> 28)) + b) | 0;\n d += ((a ^ b ^ c) + (k[8] ?? 0) - 2022574463) | 0;\n d = (((d << 11) | (d >>> 21)) + a) | 0;\n c += ((d ^ a ^ b) + (k[11] ?? 0) + 1839030562) | 0;\n c = (((c << 16) | (c >>> 16)) + d) | 0;\n b += ((c ^ d ^ a) + (k[14] ?? 0) - 35309556) | 0;\n b = (((b << 23) | (b >>> 9)) + c) | 0;\n a += ((b ^ c ^ d) + (k[1] ?? 0) - 1530992060) | 0;\n a = (((a << 4) | (a >>> 28)) + b) | 0;\n d += ((a ^ b ^ c) + (k[4] ?? 0) + 1272893353) | 0;\n d = (((d << 11) | (d >>> 21)) + a) | 0;\n c += ((d ^ a ^ b) + (k[7] ?? 0) - 155497632) | 0;\n c = (((c << 16) | (c >>> 16)) + d) | 0;\n b += ((c ^ d ^ a) + (k[10] ?? 0) - 1094730640) | 0;\n b = (((b << 23) | (b >>> 9)) + c) | 0;\n a += ((b ^ c ^ d) + (k[13] ?? 0) + 681279174) | 0;\n a = (((a << 4) | (a >>> 28)) + b) | 0;\n d += ((a ^ b ^ c) + (k[0] ?? 0) - 358537222) | 0;\n d = (((d << 11) | (d >>> 21)) + a) | 0;\n c += ((d ^ a ^ b) + (k[3] ?? 0) - 722521979) | 0;\n c = (((c << 16) | (c >>> 16)) + d) | 0;\n b += ((c ^ d ^ a) + (k[6] ?? 0) + 76029189) | 0;\n b = (((b << 23) | (b >>> 9)) + c) | 0;\n a += ((b ^ c ^ d) + (k[9] ?? 0) - 640364487) | 0;\n a = (((a << 4) | (a >>> 28)) + b) | 0;\n d += ((a ^ b ^ c) + (k[12] ?? 0) - 421815835) | 0;\n d = (((d << 11) | (d >>> 21)) + a) | 0;\n c += ((d ^ a ^ b) + (k[15] ?? 0) + 530742520) | 0;\n c = (((c << 16) | (c >>> 16)) + d) | 0;\n b += ((c ^ d ^ a) + (k[2] ?? 0) - 995338651) | 0;\n b = (((b << 23) | (b >>> 9)) + c) | 0;\n // ii()\n a += ((c ^ (b | ~d)) + (k[0] ?? 0) - 198630844) | 0;\n a = (((a << 6) | (a >>> 26)) + b) | 0;\n d += ((b ^ (a | ~c)) + (k[7] ?? 0) + 1126891415) | 0;\n d = (((d << 10) | (d >>> 22)) + a) | 0;\n c += ((a ^ (d | ~b)) + (k[14] ?? 0) - 1416354905) | 0;\n c = (((c << 15) | (c >>> 17)) + d) | 0;\n b += ((d ^ (c | ~a)) + (k[5] ?? 0) - 57434055) | 0;\n b = (((b << 21) | (b >>> 11)) + c) | 0;\n a += ((c ^ (b | ~d)) + (k[12] ?? 0) + 1700485571) | 0;\n a = (((a << 6) | (a >>> 26)) + b) | 0;\n d += ((b ^ (a | ~c)) + (k[3] ?? 0) - 1894986606) | 0;\n d = (((d << 10) | (d >>> 22)) + a) | 0;\n c += ((a ^ (d | ~b)) + (k[10] ?? 0) - 1051523) | 0;\n c = (((c << 15) | (c >>> 17)) + d) | 0;\n b += ((d ^ (c | ~a)) + (k[1] ?? 0) - 2054922799) | 0;\n b = (((b << 21) | (b >>> 11)) + c) | 0;\n a += ((c ^ (b | ~d)) + (k[8] ?? 0) + 1873313359) | 0;\n a = (((a << 6) | (a >>> 26)) + b) | 0;\n d += ((b ^ (a | ~c)) + (k[15] ?? 0) - 30611744) | 0;\n d = (((d << 10) | (d >>> 22)) + a) | 0;\n c += ((a ^ (d | ~b)) + (k[6] ?? 0) - 1560198380) | 0;\n c = (((c << 15) | (c >>> 17)) + d) | 0;\n b += ((d ^ (c | ~a)) + (k[13] ?? 0) + 1309151649) | 0;\n b = (((b << 21) | (b >>> 11)) + c) | 0;\n a += ((c ^ (b | ~d)) + (k[4] ?? 0) - 145523070) | 0;\n a = (((a << 6) | (a >>> 26)) + b) | 0;\n d += ((b ^ (a | ~c)) + (k[11] ?? 0) - 1120210379) | 0;\n d = (((d << 10) | (d >>> 22)) + a) | 0;\n c += ((a ^ (d | ~b)) + (k[2] ?? 0) + 718787259) | 0;\n c = (((c << 15) | (c >>> 17)) + d) | 0;\n b += ((d ^ (c | ~a)) + (k[9] ?? 0) - 343485551) | 0;\n b = (((b << 21) | (b >>> 11)) + c) | 0;\n\n x[0] = (a + (x[0] ?? 0)) | 0;\n x[1] = (b + (x[1] ?? 0)) | 0;\n x[2] = (c + (x[2] ?? 0)) | 0;\n x[3] = (d + (x[3] ?? 0)) | 0;\n }\n\n private _dataLength = 0;\n private _bufferLength = 0;\n\n private _state: Int32Array = new Int32Array(4);\n private _buffer: ArrayBuffer = new ArrayBuffer(68);\n private _buffer8: Uint8Array;\n private _buffer32: Uint32Array;\n\n constructor() {\n this._buffer8 = new Uint8Array(this._buffer, 0, 68);\n this._buffer32 = new Uint32Array(this._buffer, 0, 17);\n this.start();\n }\n\n /**\n * Initialise buffer to be hashed\n */\n public start() {\n this._dataLength = 0;\n this._bufferLength = 0;\n this._state.set(Md5.stateIdentity);\n return this;\n }\n\n // Char to code point to to array conversion:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt\n // #Example.3A_Fixing_charCodeAt_to_handle_non-Basic-Multilingual-Plane_characters_if_their_presence_earlier_in_the_string_is_unknown\n\n /**\n * Append a UTF-8 string to the hash buffer\n * @param str String to append\n */\n public appendStr(str: string) {\n const buf8 = this._buffer8;\n const buf32 = this._buffer32;\n let bufLen = this._bufferLength;\n let code: number;\n let i: number;\n\n for (i = 0; i < str.length; i += 1) {\n code = str.charCodeAt(i);\n if (code < 128) {\n buf8[bufLen++] = code;\n } else if (code < 0x800) {\n buf8[bufLen++] = (code >>> 6) + 0xc0;\n buf8[bufLen++] = (code & 0x3f) | 0x80;\n } else if (code < 0xd800 || code > 0xdbff) {\n buf8[bufLen++] = (code >>> 12) + 0xe0;\n buf8[bufLen++] = ((code >>> 6) & 0x3f) | 0x80;\n buf8[bufLen++] = (code & 0x3f) | 0x80;\n } else {\n code =\n (code - 0xd800) * 0x400 + (str.charCodeAt(++i) - 0xdc00) + 0x10000;\n if (code > 0x10ffff) {\n throw new Error(\n \"Unicode standard supports code points up to U+10FFFF\",\n );\n }\n buf8[bufLen++] = (code >>> 18) + 0xf0;\n buf8[bufLen++] = ((code >>> 12) & 0x3f) | 0x80;\n buf8[bufLen++] = ((code >>> 6) & 0x3f) | 0x80;\n buf8[bufLen++] = (code & 0x3f) | 0x80;\n }\n if (bufLen >= 64) {\n this._dataLength += 64;\n Md5._md5cycle(this._state, buf32);\n bufLen -= 64;\n buf32[0] = buf32[16] ?? 0;\n }\n }\n this._bufferLength = bufLen;\n return this;\n }\n\n /**\n * Append an ASCII string to the hash buffer\n * @param str String to append\n */\n public appendAsciiStr(str: string) {\n const buf8 = this._buffer8;\n const buf32 = this._buffer32;\n let bufLen = this._bufferLength;\n let i: number;\n let j = 0;\n\n for (;;) {\n i = Math.min(str.length - j, 64 - bufLen);\n while (i--) {\n buf8[bufLen++] = str.charCodeAt(j++);\n }\n if (bufLen < 64) {\n break;\n }\n this._dataLength += 64;\n Md5._md5cycle(this._state, buf32);\n bufLen = 0;\n }\n this._bufferLength = bufLen;\n return this;\n }\n\n /**\n * Append a byte array to the hash buffer\n * @param input array to append\n */\n public appendByteArray(input: Uint8Array) {\n const buf8 = this._buffer8;\n const buf32 = this._buffer32;\n let bufLen = this._bufferLength;\n let i: number;\n let j = 0;\n\n for (;;) {\n i = Math.min(input.length - j, 64 - bufLen);\n while (i--) {\n buf8[bufLen++] = input[j++] ?? 0;\n }\n if (bufLen < 64) {\n break;\n }\n this._dataLength += 64;\n Md5._md5cycle(this._state, buf32);\n bufLen = 0;\n }\n this._bufferLength = bufLen;\n return this;\n }\n\n /**\n * Get the state of the hash buffer\n */\n public getState(): HasherState {\n const s = this._state;\n\n return {\n buffer: String.fromCharCode.apply(null, Array.from(this._buffer8)),\n buflen: this._bufferLength,\n length: this._dataLength,\n state: [s[0] ?? 0, s[1] ?? 0, s[2] ?? 0, s[3] ?? 0],\n };\n }\n\n /**\n * Override the current state of the hash buffer\n * @param state New hash buffer state\n */\n public setState(state: HasherState) {\n const buf = state.buffer;\n const x = state.state;\n const s = this._state;\n let i: number;\n\n this._dataLength = state.length;\n this._bufferLength = state.buflen;\n s[0] = x[0] ?? 0;\n s[1] = x[1] ?? 0;\n s[2] = x[2] ?? 0;\n s[3] = x[3] ?? 0;\n\n for (i = 0; i < buf.length; i += 1) {\n this._buffer8[i] = buf.charCodeAt(i);\n }\n }\n\n /**\n * Hash the current state of the hash buffer and return the result\n * @param raw Whether to return the value as an `Int32Array`\n */\n public end(raw = false) {\n const bufLen = this._bufferLength;\n const buf8 = this._buffer8;\n const buf32 = this._buffer32;\n const i = (bufLen >> 2) + 1;\n\n this._dataLength += bufLen;\n const dataBitsLen = this._dataLength * 8;\n\n buf8[bufLen] = 0x80;\n buf8[bufLen + 1] = buf8[bufLen + 2] = buf8[bufLen + 3] = 0;\n buf32.set(Md5.buffer32Identity.subarray(i), i);\n\n if (bufLen > 55) {\n Md5._md5cycle(this._state, buf32);\n buf32.set(Md5.buffer32Identity);\n }\n\n // Do the final computation based on the tail and length\n // Beware that the final length may not fit in 32 bits so we take care of that\n if (dataBitsLen <= 0xffffffff) {\n buf32[14] = dataBitsLen;\n } else {\n const matches = dataBitsLen.toString(16).match(/(.*?)(.{0,8})$/);\n if (matches === null) {\n return;\n }\n\n const lo = Number.parseInt(matches[2] ?? \"\", 16);\n const hi = Number.parseInt(matches[1] ?? \"\", 16) || 0;\n\n buf32[14] = lo;\n buf32[15] = hi;\n }\n\n Md5._md5cycle(this._state, buf32);\n\n return raw ? this._state : Md5._hex(this._state);\n }\n}\n\nif (Md5.hashStr(\"hello\") !== \"5d41402abc4b2a76b9719d911017c592\") {\n throw new Error(\"Md5 self test failed.\");\n}\n","import { Effect } from \"effect\";\nimport { UploadistaError } from \"../errors/uploadista-error\";\n\n// only call a function once\nexport function once<T, A extends unknown[], Return>(\n fn: (this: T, ...args: A) => Return,\n) {\n let called = false;\n let value: Return | undefined;\n const f = function (this: T, ...args: A): Return {\n if (called) {\n if (value) {\n return value;\n }\n throw new Error(\"Function called more than once\");\n }\n called = true;\n value = fn.apply(this, args);\n return value;\n };\n return f;\n}\n\n/**\n * Effect-based once utilities\n */\nexport const OnceEffect = {\n /**\n * Creates an Effect-based once function that only executes once\n * @param effect - The effect to execute only once\n * @returns Effect that caches the result after first execution\n */\n make: <A, E, R>(\n effect: Effect.Effect<A, E, R>,\n ): Effect.Effect<A, E | UploadistaError, R> => {\n let cached: A | undefined;\n let called = false;\n\n return Effect.gen(function* () {\n if (called) {\n if (cached !== undefined) {\n return cached;\n }\n yield* new UploadistaError({\n code: \"UNKNOWN_ERROR\",\n status: 500,\n body: \"Effect called more than once with undefined result\",\n }).toEffect();\n }\n\n called = true;\n cached = yield* effect;\n return cached;\n });\n },\n\n /**\n * Creates a legacy once function wrapper\n * @param fn - Function to wrap\n * @returns Once-wrapped function\n */\n legacy: once,\n};\n","type DebounceOptions = {\n // Whether the first call to the debounced function is run immediately.\n leading?: boolean;\n\n // Whether the last call to the debounced function is run after delay\n // milliseconds have elapsed since the last call.\n trailing?: boolean;\n};\n\nconst defaultDebounceOptions: DebounceOptions = {\n leading: false,\n trailing: true,\n};\n\n/**\n * Returns `fn` wrapped by a function that delays invoking `fn` for `delay`\n * milliseconds since the last call. Set `options.leading` to invoke `fn` on\n * the leading edge of the delay, and/or set `options.trailing` to invoke `fn`\n * on the trailing edge of the delay (true by default).\n *\n * Example for `debounce(fn, 30, {leading: true, trailing: true})`,\n * where `fn` is called twice, with the second call made 20 ms after the first:\n *\n * Time: 0 20 50 (ms)\n * Timeline: |----------------------------------------------------------------|\n * ^ ^ ^\n * | | |\n * | First call. | Second call 20ms after the | End of delay.\n * | (instant leading | first. | (trailing edge\n * | edge call) | | call)\n * |-----------------------------|\n * | 30 ms delay for debounce. |\n *\n *\n * Note that if both `options.leading` and `options.trailing` are true, `fn`\n * will only be invoked on the trailing edge if the debounced function is called\n * more than once during the delay.\n *\n * @param fn - Function to debounce.\n * @param delay - Milliseconds to delay calling `fn` since the last call.\n * @param debounceOptions - See `DebounceOptions` and `defaultDebounceOptions`.\n * @returns A debounced `fn`.\n */\nexport function debounce<T, A extends unknown[]>(\n fn: (this: T, ...args: A) => void,\n delay: number,\n debounceOptions: DebounceOptions = {},\n): (this: T, ...args: A) => void {\n const options = { ...defaultDebounceOptions, ...debounceOptions };\n\n let timer: ReturnType<typeof setTimeout> | undefined;\n\n return function (this: T, ...args: A): void {\n if (options.leading && !timer) {\n // Leading edge.\n // Call fn on the leading edge, when debouncing hasn't started yet.\n console.log(\"leading\");\n fn.apply(this, args);\n\n // Debounce the next call.\n timer = setTimeout(() => {\n timer = undefined;\n }, delay);\n } else {\n // Trailing edge.\n // Postpone calling fn until the delay has elapsed since the last call.\n // Each call clears any previously delayed call and resets the delay, so\n // the postponed call will always be the last one.\n clearTimeout(timer);\n timer = setTimeout(() => {\n if (options.trailing) {\n // Call fn on the trailing edge.\n fn.apply(this, args);\n\n if (options.leading) {\n // Debounce next leading call since a trailing call was just made.\n setTimeout(() => {\n timer = undefined;\n }, delay);\n }\n } else {\n // No trailing call. Since the delay has elapsed since the last call,\n // immediately reset the debouncing delay.\n timer = undefined;\n }\n }, delay);\n }\n };\n}\n","import { debounce } from \"./debounce.js\";\n\nexport function throttle<T, A extends unknown[], Return>(\n fn: (this: T, ...args: A) => Return,\n wait: number,\n {\n leading = true,\n trailing = true,\n }: { leading?: boolean; trailing?: boolean } = {},\n) {\n return debounce(fn, wait, {\n leading,\n trailing,\n });\n}\n\n/**\n * Effect-based throttle utilities\n */\nexport const ThrottleEffect = {\n /**\n * Creates a legacy throttle function wrapper\n * @param fn - Function to throttle\n * @param wait - Wait time in milliseconds\n * @param options - Throttle options\n * @returns Throttled function\n */\n legacy: throttle,\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils-BwUQGiMC.mjs","names":[],"sources":["../src/utils/md5.ts","../src/utils/once.ts","../src/utils/debounce.ts","../src/utils/throttle.ts"],"sourcesContent":["/*\n\nTypeScript Md5\n==============\n\nBased on work by\n* Joseph Myers: http://www.myersdaily.org/joseph/javascript/md5-text.html\n* André Cruz: https://github.com/satazor/SparkMD5\n* Raymond Hill: https://github.com/gorhill/yamd5.js\n\nEffectively a TypeScrypt re-write of Raymond Hill JS Library\n\nThe MIT License (MIT)\n\nCopyright (C) 2014 Raymond Hill\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n DO WHAT YOU WANT TO PUBLIC LICENSE\n Version 2, December 2004\n\n Copyright (C) 2015 André Cruz <amdfcruz@gmail.com>\n\n Everyone is permitted to copy and distribute verbatim or modified\n copies of this license document, and changing it is allowed as long\n as the name is changed.\n\n DO WHAT YOU WANT TO PUBLIC LICENSE\n TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\n\n 0. You just DO WHAT YOU WANT TO.\n\n*/\n\ntype HasherState = {\n buffer: string;\n buflen: number;\n length: number;\n state: number[];\n};\n\nexport class Md5 {\n /**\n * Hash a UTF-8 string on the spot\n * @param str String to hash\n * @param raw Whether to return the value as an `Int32Array`\n */\n public static hashStr(str: string, raw?: false): string;\n public static hashStr(str: string, raw: true): Int32Array;\n public static hashStr(str: string, raw = false) {\n return Md5.onePassHasher.start().appendStr(str).end(raw);\n }\n\n /**\n * Hash a ASCII string on the spot\n * @param str String to hash\n * @param raw Whether to return the value as an `Int32Array`\n */\n public static hashAsciiStr(str: string, raw?: false): string;\n public static hashAsciiStr(str: string, raw: true): Int32Array;\n public static hashAsciiStr(str: string, raw = false) {\n return Md5.onePassHasher.start().appendAsciiStr(str).end(raw);\n }\n\n // Private Static Variables\n private static stateIdentity = new Int32Array([\n 1732584193, -271733879, -1732584194, 271733878,\n ]);\n\n private static buffer32Identity = new Int32Array([\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n ]);\n\n private static hexChars = \"0123456789abcdef\";\n private static hexOut: string[] = [];\n\n // Permanent instance is to use for one-call hashing\n private static onePassHasher = new Md5();\n\n private static _hex(x: Int32Array): string {\n const hc = Md5.hexChars;\n const ho = Md5.hexOut;\n let n: number;\n let offset: number;\n let j: number;\n let i: number;\n\n for (i = 0; i < 4; i += 1) {\n offset = i * 8;\n n = x[i] ?? 0;\n for (j = 0; j < 8; j += 2) {\n ho[offset + 1 + j] = hc.charAt(n & 0x0f);\n n >>>= 4;\n ho[offset + 0 + j] = hc.charAt(n & 0x0f);\n n >>>= 4;\n }\n }\n return ho.join(\"\");\n }\n\n private static _md5cycle(\n x: Int32Array | Uint32Array,\n k: Int32Array | Uint32Array,\n ) {\n let a: number = x[0] ?? 0;\n let b: number = x[1] ?? 0;\n let c: number = x[2] ?? 0;\n let d: number = x[3] ?? 0;\n // ff()\n a += (((b & c) | (~b & d)) + (k[0] ?? 0) - 680876936) | 0;\n a = (((a << 7) | (a >>> 25)) + b) | 0;\n d += (((a & b) | (~a & c)) + (k[1] ?? 0) - 389564586) | 0;\n d = (((d << 12) | (d >>> 20)) + a) | 0;\n c += (((d & a) | (~d & b)) + (k[2] ?? 0) + 606105819) | 0;\n c = (((c << 17) | (c >>> 15)) + d) | 0;\n b += (((c & d) | (~c & a)) + (k[3] ?? 0) - 1044525330) | 0;\n b = (((b << 22) | (b >>> 10)) + c) | 0;\n a += (((b & c) | (~b & d)) + (k[4] ?? 0) - 176418897) | 0;\n a = (((a << 7) | (a >>> 25)) + b) | 0;\n d += (((a & b) | (~a & c)) + (k[5] ?? 0) + 1200080426) | 0;\n d = (((d << 12) | (d >>> 20)) + a) | 0;\n c += (((d & a) | (~d & b)) + (k[6] ?? 0) - 1473231341) | 0;\n c = (((c << 17) | (c >>> 15)) + d) | 0;\n b += (((c & d) | (~c & a)) + (k[7] ?? 0) - 45705983) | 0;\n b = (((b << 22) | (b >>> 10)) + c) | 0;\n a += (((b & c) | (~b & d)) + (k[8] ?? 0) + 1770035416) | 0;\n a = (((a << 7) | (a >>> 25)) + b) | 0;\n d += (((a & b) | (~a & c)) + (k[9] ?? 0) - 1958414417) | 0;\n d = (((d << 12) | (d >>> 20)) + a) | 0;\n c += (((d & a) | (~d & b)) + (k[10] ?? 0) - 42063) | 0;\n c = (((c << 17) | (c >>> 15)) + d) | 0;\n b += (((c & d) | (~c & a)) + (k[11] ?? 0) - 1990404162) | 0;\n b = (((b << 22) | (b >>> 10)) + c) | 0;\n a += (((b & c) | (~b & d)) + (k[12] ?? 0) + 1804603682) | 0;\n a = (((a << 7) | (a >>> 25)) + b) | 0;\n d += (((a & b) | (~a & c)) + (k[13] ?? 0) - 40341101) | 0;\n d = (((d << 12) | (d >>> 20)) + a) | 0;\n c += (((d & a) | (~d & b)) + (k[14] ?? 0) - 1502002290) | 0;\n c = (((c << 17) | (c >>> 15)) + d) | 0;\n b += (((c & d) | (~c & a)) + (k[15] ?? 0) + 1236535329) | 0;\n b = (((b << 22) | (b >>> 10)) + c) | 0;\n // gg()\n a += (((b & d) | (c & ~d)) + (k[1] ?? 0) - 165796510) | 0;\n a = (((a << 5) | (a >>> 27)) + b) | 0;\n d += (((a & c) | (b & ~c)) + (k[6] ?? 0) - 1069501632) | 0;\n d = (((d << 9) | (d >>> 23)) + a) | 0;\n c += (((d & b) | (a & ~b)) + (k[11] ?? 0) + 643717713) | 0;\n c = (((c << 14) | (c >>> 18)) + d) | 0;\n b += (((c & a) | (d & ~a)) + (k[0] ?? 0) - 373897302) | 0;\n b = (((b << 20) | (b >>> 12)) + c) | 0;\n a += (((b & d) | (c & ~d)) + (k[5] ?? 0) - 701558691) | 0;\n a = (((a << 5) | (a >>> 27)) + b) | 0;\n d += (((a & c) | (b & ~c)) + (k[10] ?? 0) + 38016083) | 0;\n d = (((d << 9) | (d >>> 23)) + a) | 0;\n c += (((d & b) | (a & ~b)) + (k[15] ?? 0) - 660478335) | 0;\n c = (((c << 14) | (c >>> 18)) + d) | 0;\n b += (((c & a) | (d & ~a)) + (k[4] ?? 0) - 405537848) | 0;\n b = (((b << 20) | (b >>> 12)) + c) | 0;\n a += (((b & d) | (c & ~d)) + (k[9] ?? 0) + 568446438) | 0;\n a = (((a << 5) | (a >>> 27)) + b) | 0;\n d += (((a & c) | (b & ~c)) + (k[14] ?? 0) - 1019803690) | 0;\n d = (((d << 9) | (d >>> 23)) + a) | 0;\n c += (((d & b) | (a & ~b)) + (k[3] ?? 0) - 187363961) | 0;\n c = (((c << 14) | (c >>> 18)) + d) | 0;\n b += (((c & a) | (d & ~a)) + (k[8] ?? 0) + 1163531501) | 0;\n b = (((b << 20) | (b >>> 12)) + c) | 0;\n a += (((b & d) | (c & ~d)) + (k[13] ?? 0) - 1444681467) | 0;\n a = (((a << 5) | (a >>> 27)) + b) | 0;\n d += (((a & c) | (b & ~c)) + (k[2] ?? 0) - 51403784) | 0;\n d = (((d << 9) | (d >>> 23)) + a) | 0;\n c += (((d & b) | (a & ~b)) + (k[7] ?? 0) + 1735328473) | 0;\n c = (((c << 14) | (c >>> 18)) + d) | 0;\n b += (((c & a) | (d & ~a)) + (k[12] ?? 0) - 1926607734) | 0;\n b = (((b << 20) | (b >>> 12)) + c) | 0;\n // hh()\n a += ((b ^ c ^ d) + (k[5] ?? 0) - 378558) | 0;\n a = (((a << 4) | (a >>> 28)) + b) | 0;\n d += ((a ^ b ^ c) + (k[8] ?? 0) - 2022574463) | 0;\n d = (((d << 11) | (d >>> 21)) + a) | 0;\n c += ((d ^ a ^ b) + (k[11] ?? 0) + 1839030562) | 0;\n c = (((c << 16) | (c >>> 16)) + d) | 0;\n b += ((c ^ d ^ a) + (k[14] ?? 0) - 35309556) | 0;\n b = (((b << 23) | (b >>> 9)) + c) | 0;\n a += ((b ^ c ^ d) + (k[1] ?? 0) - 1530992060) | 0;\n a = (((a << 4) | (a >>> 28)) + b) | 0;\n d += ((a ^ b ^ c) + (k[4] ?? 0) + 1272893353) | 0;\n d = (((d << 11) | (d >>> 21)) + a) | 0;\n c += ((d ^ a ^ b) + (k[7] ?? 0) - 155497632) | 0;\n c = (((c << 16) | (c >>> 16)) + d) | 0;\n b += ((c ^ d ^ a) + (k[10] ?? 0) - 1094730640) | 0;\n b = (((b << 23) | (b >>> 9)) + c) | 0;\n a += ((b ^ c ^ d) + (k[13] ?? 0) + 681279174) | 0;\n a = (((a << 4) | (a >>> 28)) + b) | 0;\n d += ((a ^ b ^ c) + (k[0] ?? 0) - 358537222) | 0;\n d = (((d << 11) | (d >>> 21)) + a) | 0;\n c += ((d ^ a ^ b) + (k[3] ?? 0) - 722521979) | 0;\n c = (((c << 16) | (c >>> 16)) + d) | 0;\n b += ((c ^ d ^ a) + (k[6] ?? 0) + 76029189) | 0;\n b = (((b << 23) | (b >>> 9)) + c) | 0;\n a += ((b ^ c ^ d) + (k[9] ?? 0) - 640364487) | 0;\n a = (((a << 4) | (a >>> 28)) + b) | 0;\n d += ((a ^ b ^ c) + (k[12] ?? 0) - 421815835) | 0;\n d = (((d << 11) | (d >>> 21)) + a) | 0;\n c += ((d ^ a ^ b) + (k[15] ?? 0) + 530742520) | 0;\n c = (((c << 16) | (c >>> 16)) + d) | 0;\n b += ((c ^ d ^ a) + (k[2] ?? 0) - 995338651) | 0;\n b = (((b << 23) | (b >>> 9)) + c) | 0;\n // ii()\n a += ((c ^ (b | ~d)) + (k[0] ?? 0) - 198630844) | 0;\n a = (((a << 6) | (a >>> 26)) + b) | 0;\n d += ((b ^ (a | ~c)) + (k[7] ?? 0) + 1126891415) | 0;\n d = (((d << 10) | (d >>> 22)) + a) | 0;\n c += ((a ^ (d | ~b)) + (k[14] ?? 0) - 1416354905) | 0;\n c = (((c << 15) | (c >>> 17)) + d) | 0;\n b += ((d ^ (c | ~a)) + (k[5] ?? 0) - 57434055) | 0;\n b = (((b << 21) | (b >>> 11)) + c) | 0;\n a += ((c ^ (b | ~d)) + (k[12] ?? 0) + 1700485571) | 0;\n a = (((a << 6) | (a >>> 26)) + b) | 0;\n d += ((b ^ (a | ~c)) + (k[3] ?? 0) - 1894986606) | 0;\n d = (((d << 10) | (d >>> 22)) + a) | 0;\n c += ((a ^ (d | ~b)) + (k[10] ?? 0) - 1051523) | 0;\n c = (((c << 15) | (c >>> 17)) + d) | 0;\n b += ((d ^ (c | ~a)) + (k[1] ?? 0) - 2054922799) | 0;\n b = (((b << 21) | (b >>> 11)) + c) | 0;\n a += ((c ^ (b | ~d)) + (k[8] ?? 0) + 1873313359) | 0;\n a = (((a << 6) | (a >>> 26)) + b) | 0;\n d += ((b ^ (a | ~c)) + (k[15] ?? 0) - 30611744) | 0;\n d = (((d << 10) | (d >>> 22)) + a) | 0;\n c += ((a ^ (d | ~b)) + (k[6] ?? 0) - 1560198380) | 0;\n c = (((c << 15) | (c >>> 17)) + d) | 0;\n b += ((d ^ (c | ~a)) + (k[13] ?? 0) + 1309151649) | 0;\n b = (((b << 21) | (b >>> 11)) + c) | 0;\n a += ((c ^ (b | ~d)) + (k[4] ?? 0) - 145523070) | 0;\n a = (((a << 6) | (a >>> 26)) + b) | 0;\n d += ((b ^ (a | ~c)) + (k[11] ?? 0) - 1120210379) | 0;\n d = (((d << 10) | (d >>> 22)) + a) | 0;\n c += ((a ^ (d | ~b)) + (k[2] ?? 0) + 718787259) | 0;\n c = (((c << 15) | (c >>> 17)) + d) | 0;\n b += ((d ^ (c | ~a)) + (k[9] ?? 0) - 343485551) | 0;\n b = (((b << 21) | (b >>> 11)) + c) | 0;\n\n x[0] = (a + (x[0] ?? 0)) | 0;\n x[1] = (b + (x[1] ?? 0)) | 0;\n x[2] = (c + (x[2] ?? 0)) | 0;\n x[3] = (d + (x[3] ?? 0)) | 0;\n }\n\n private _dataLength = 0;\n private _bufferLength = 0;\n\n private _state: Int32Array = new Int32Array(4);\n private _buffer: ArrayBuffer = new ArrayBuffer(68);\n private _buffer8: Uint8Array;\n private _buffer32: Uint32Array;\n\n constructor() {\n this._buffer8 = new Uint8Array(this._buffer, 0, 68);\n this._buffer32 = new Uint32Array(this._buffer, 0, 17);\n this.start();\n }\n\n /**\n * Initialise buffer to be hashed\n */\n public start() {\n this._dataLength = 0;\n this._bufferLength = 0;\n this._state.set(Md5.stateIdentity);\n return this;\n }\n\n // Char to code point to to array conversion:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt\n // #Example.3A_Fixing_charCodeAt_to_handle_non-Basic-Multilingual-Plane_characters_if_their_presence_earlier_in_the_string_is_unknown\n\n /**\n * Append a UTF-8 string to the hash buffer\n * @param str String to append\n */\n public appendStr(str: string) {\n const buf8 = this._buffer8;\n const buf32 = this._buffer32;\n let bufLen = this._bufferLength;\n let code: number;\n let i: number;\n\n for (i = 0; i < str.length; i += 1) {\n code = str.charCodeAt(i);\n if (code < 128) {\n buf8[bufLen++] = code;\n } else if (code < 0x800) {\n buf8[bufLen++] = (code >>> 6) + 0xc0;\n buf8[bufLen++] = (code & 0x3f) | 0x80;\n } else if (code < 0xd800 || code > 0xdbff) {\n buf8[bufLen++] = (code >>> 12) + 0xe0;\n buf8[bufLen++] = ((code >>> 6) & 0x3f) | 0x80;\n buf8[bufLen++] = (code & 0x3f) | 0x80;\n } else {\n code =\n (code - 0xd800) * 0x400 + (str.charCodeAt(++i) - 0xdc00) + 0x10000;\n if (code > 0x10ffff) {\n throw new Error(\n \"Unicode standard supports code points up to U+10FFFF\",\n );\n }\n buf8[bufLen++] = (code >>> 18) + 0xf0;\n buf8[bufLen++] = ((code >>> 12) & 0x3f) | 0x80;\n buf8[bufLen++] = ((code >>> 6) & 0x3f) | 0x80;\n buf8[bufLen++] = (code & 0x3f) | 0x80;\n }\n if (bufLen >= 64) {\n this._dataLength += 64;\n Md5._md5cycle(this._state, buf32);\n bufLen -= 64;\n buf32[0] = buf32[16] ?? 0;\n }\n }\n this._bufferLength = bufLen;\n return this;\n }\n\n /**\n * Append an ASCII string to the hash buffer\n * @param str String to append\n */\n public appendAsciiStr(str: string) {\n const buf8 = this._buffer8;\n const buf32 = this._buffer32;\n let bufLen = this._bufferLength;\n let i: number;\n let j = 0;\n\n for (;;) {\n i = Math.min(str.length - j, 64 - bufLen);\n while (i--) {\n buf8[bufLen++] = str.charCodeAt(j++);\n }\n if (bufLen < 64) {\n break;\n }\n this._dataLength += 64;\n Md5._md5cycle(this._state, buf32);\n bufLen = 0;\n }\n this._bufferLength = bufLen;\n return this;\n }\n\n /**\n * Append a byte array to the hash buffer\n * @param input array to append\n */\n public appendByteArray(input: Uint8Array) {\n const buf8 = this._buffer8;\n const buf32 = this._buffer32;\n let bufLen = this._bufferLength;\n let i: number;\n let j = 0;\n\n for (;;) {\n i = Math.min(input.length - j, 64 - bufLen);\n while (i--) {\n buf8[bufLen++] = input[j++] ?? 0;\n }\n if (bufLen < 64) {\n break;\n }\n this._dataLength += 64;\n Md5._md5cycle(this._state, buf32);\n bufLen = 0;\n }\n this._bufferLength = bufLen;\n return this;\n }\n\n /**\n * Get the state of the hash buffer\n */\n public getState(): HasherState {\n const s = this._state;\n\n return {\n buffer: String.fromCharCode.apply(null, Array.from(this._buffer8)),\n buflen: this._bufferLength,\n length: this._dataLength,\n state: [s[0] ?? 0, s[1] ?? 0, s[2] ?? 0, s[3] ?? 0],\n };\n }\n\n /**\n * Override the current state of the hash buffer\n * @param state New hash buffer state\n */\n public setState(state: HasherState) {\n const buf = state.buffer;\n const x = state.state;\n const s = this._state;\n let i: number;\n\n this._dataLength = state.length;\n this._bufferLength = state.buflen;\n s[0] = x[0] ?? 0;\n s[1] = x[1] ?? 0;\n s[2] = x[2] ?? 0;\n s[3] = x[3] ?? 0;\n\n for (i = 0; i < buf.length; i += 1) {\n this._buffer8[i] = buf.charCodeAt(i);\n }\n }\n\n /**\n * Hash the current state of the hash buffer and return the result\n * @param raw Whether to return the value as an `Int32Array`\n */\n public end(raw = false) {\n const bufLen = this._bufferLength;\n const buf8 = this._buffer8;\n const buf32 = this._buffer32;\n const i = (bufLen >> 2) + 1;\n\n this._dataLength += bufLen;\n const dataBitsLen = this._dataLength * 8;\n\n buf8[bufLen] = 0x80;\n buf8[bufLen + 1] = buf8[bufLen + 2] = buf8[bufLen + 3] = 0;\n buf32.set(Md5.buffer32Identity.subarray(i), i);\n\n if (bufLen > 55) {\n Md5._md5cycle(this._state, buf32);\n buf32.set(Md5.buffer32Identity);\n }\n\n // Do the final computation based on the tail and length\n // Beware that the final length may not fit in 32 bits so we take care of that\n if (dataBitsLen <= 0xffffffff) {\n buf32[14] = dataBitsLen;\n } else {\n const matches = dataBitsLen.toString(16).match(/(.*?)(.{0,8})$/);\n if (matches === null) {\n return;\n }\n\n const lo = Number.parseInt(matches[2] ?? \"\", 16);\n const hi = Number.parseInt(matches[1] ?? \"\", 16) || 0;\n\n buf32[14] = lo;\n buf32[15] = hi;\n }\n\n Md5._md5cycle(this._state, buf32);\n\n return raw ? this._state : Md5._hex(this._state);\n }\n}\n\nif (Md5.hashStr(\"hello\") !== \"5d41402abc4b2a76b9719d911017c592\") {\n throw new Error(\"Md5 self test failed.\");\n}\n","import { Effect } from \"effect\";\nimport { UploadistaError } from \"../errors/uploadista-error\";\n\n// only call a function once\nexport function once<T, A extends unknown[], Return>(\n fn: (this: T, ...args: A) => Return,\n) {\n let called = false;\n let value: Return | undefined;\n const f = function (this: T, ...args: A): Return {\n if (called) {\n if (value) {\n return value;\n }\n throw new Error(\"Function called more than once\");\n }\n called = true;\n value = fn.apply(this, args);\n return value;\n };\n return f;\n}\n\n/**\n * Effect-based once utilities\n */\nexport const OnceEffect = {\n /**\n * Creates an Effect-based once function that only executes once\n * @param effect - The effect to execute only once\n * @returns Effect that caches the result after first execution\n */\n make: <A, E, R>(\n effect: Effect.Effect<A, E, R>,\n ): Effect.Effect<A, E | UploadistaError, R> => {\n let cached: A | undefined;\n let called = false;\n\n return Effect.gen(function* () {\n if (called) {\n if (cached !== undefined) {\n return cached;\n }\n yield* new UploadistaError({\n code: \"UNKNOWN_ERROR\",\n status: 500,\n body: \"Effect called more than once with undefined result\",\n }).toEffect();\n }\n\n called = true;\n cached = yield* effect;\n return cached;\n });\n },\n\n /**\n * Creates a legacy once function wrapper\n * @param fn - Function to wrap\n * @returns Once-wrapped function\n */\n legacy: once,\n};\n","type DebounceOptions = {\n // Whether the first call to the debounced function is run immediately.\n leading?: boolean;\n\n // Whether the last call to the debounced function is run after delay\n // milliseconds have elapsed since the last call.\n trailing?: boolean;\n};\n\nconst defaultDebounceOptions: DebounceOptions = {\n leading: false,\n trailing: true,\n};\n\n/**\n * Returns `fn` wrapped by a function that delays invoking `fn` for `delay`\n * milliseconds since the last call. Set `options.leading` to invoke `fn` on\n * the leading edge of the delay, and/or set `options.trailing` to invoke `fn`\n * on the trailing edge of the delay (true by default).\n *\n * Example for `debounce(fn, 30, {leading: true, trailing: true})`,\n * where `fn` is called twice, with the second call made 20 ms after the first:\n *\n * Time: 0 20 50 (ms)\n * Timeline: |----------------------------------------------------------------|\n * ^ ^ ^\n * | | |\n * | First call. | Second call 20ms after the | End of delay.\n * | (instant leading | first. | (trailing edge\n * | edge call) | | call)\n * |-----------------------------|\n * | 30 ms delay for debounce. |\n *\n *\n * Note that if both `options.leading` and `options.trailing` are true, `fn`\n * will only be invoked on the trailing edge if the debounced function is called\n * more than once during the delay.\n *\n * @param fn - Function to debounce.\n * @param delay - Milliseconds to delay calling `fn` since the last call.\n * @param debounceOptions - See `DebounceOptions` and `defaultDebounceOptions`.\n * @returns A debounced `fn`.\n */\nexport function debounce<T, A extends unknown[]>(\n fn: (this: T, ...args: A) => void,\n delay: number,\n debounceOptions: DebounceOptions = {},\n): (this: T, ...args: A) => void {\n const options = { ...defaultDebounceOptions, ...debounceOptions };\n\n let timer: ReturnType<typeof setTimeout> | undefined;\n\n return function (this: T, ...args: A): void {\n if (options.leading && !timer) {\n // Leading edge.\n // Call fn on the leading edge, when debouncing hasn't started yet.\n console.log(\"leading\");\n fn.apply(this, args);\n\n // Debounce the next call.\n timer = setTimeout(() => {\n timer = undefined;\n }, delay);\n } else {\n // Trailing edge.\n // Postpone calling fn until the delay has elapsed since the last call.\n // Each call clears any previously delayed call and resets the delay, so\n // the postponed call will always be the last one.\n clearTimeout(timer);\n timer = setTimeout(() => {\n if (options.trailing) {\n // Call fn on the trailing edge.\n fn.apply(this, args);\n\n if (options.leading) {\n // Debounce next leading call since a trailing call was just made.\n setTimeout(() => {\n timer = undefined;\n }, delay);\n }\n } else {\n // No trailing call. Since the delay has elapsed since the last call,\n // immediately reset the debouncing delay.\n timer = undefined;\n }\n }, delay);\n }\n };\n}\n","import { debounce } from \"./debounce.js\";\n\nexport function throttle<T, A extends unknown[], Return>(\n fn: (this: T, ...args: A) => Return,\n wait: number,\n {\n leading = true,\n trailing = true,\n }: { leading?: boolean; trailing?: boolean } = {},\n) {\n return debounce(fn, wait, {\n leading,\n trailing,\n });\n}\n\n/**\n * Effect-based throttle utilities\n */\nexport const ThrottleEffect = {\n /**\n * Creates a legacy throttle function wrapper\n * @param fn - Function to throttle\n * @param wait - Wait time in milliseconds\n * @param options - Throttle options\n * @returns Throttled function\n */\n legacy: throttle,\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
require(`./types-BFrsfDaF.cjs`);const e=require(`./uploadista-error-DgO_3oBt.cjs`);require(`effect`);var t=class e{static hashStr(t,n=!1){return e.onePassHasher.start().appendStr(t).end(n)}static hashAsciiStr(t,n=!1){return e.onePassHasher.start().appendAsciiStr(t).end(n)}static stateIdentity=new Int32Array([1732584193,-271733879,-1732584194,271733878]);static buffer32Identity=new Int32Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]);static hexChars=`0123456789abcdef`;static hexOut=[];static onePassHasher=new e;static _hex(t){let n=e.hexChars,r=e.hexOut,i,a,o,s;for(s=0;s<4;s+=1)for(a=s*8,i=t[s]??0,o=0;o<8;o+=2)r[a+1+o]=n.charAt(i&15),i>>>=4,r[a+0+o]=n.charAt(i&15),i>>>=4;return r.join(``)}static _md5cycle(e,t){let n=e[0]??0,r=e[1]??0,i=e[2]??0,a=e[3]??0;n+=(r&i|~r&a)+(t[0]??0)-680876936|0,n=(n<<7|n>>>25)+r|0,a+=(n&r|~n&i)+(t[1]??0)-389564586|0,a=(a<<12|a>>>20)+n|0,i+=(a&n|~a&r)+(t[2]??0)+606105819|0,i=(i<<17|i>>>15)+a|0,r+=(i&a|~i&n)+(t[3]??0)-1044525330|0,r=(r<<22|r>>>10)+i|0,n+=(r&i|~r&a)+(t[4]??0)-176418897|0,n=(n<<7|n>>>25)+r|0,a+=(n&r|~n&i)+(t[5]??0)+1200080426|0,a=(a<<12|a>>>20)+n|0,i+=(a&n|~a&r)+(t[6]??0)-1473231341|0,i=(i<<17|i>>>15)+a|0,r+=(i&a|~i&n)+(t[7]??0)-45705983|0,r=(r<<22|r>>>10)+i|0,n+=(r&i|~r&a)+(t[8]??0)+1770035416|0,n=(n<<7|n>>>25)+r|0,a+=(n&r|~n&i)+(t[9]??0)-1958414417|0,a=(a<<12|a>>>20)+n|0,i+=(a&n|~a&r)+(t[10]??0)-42063|0,i=(i<<17|i>>>15)+a|0,r+=(i&a|~i&n)+(t[11]??0)-1990404162|0,r=(r<<22|r>>>10)+i|0,n+=(r&i|~r&a)+(t[12]??0)+1804603682|0,n=(n<<7|n>>>25)+r|0,a+=(n&r|~n&i)+(t[13]??0)-40341101|0,a=(a<<12|a>>>20)+n|0,i+=(a&n|~a&r)+(t[14]??0)-1502002290|0,i=(i<<17|i>>>15)+a|0,r+=(i&a|~i&n)+(t[15]??0)+1236535329|0,r=(r<<22|r>>>10)+i|0,n+=(r&a|i&~a)+(t[1]??0)-165796510|0,n=(n<<5|n>>>27)+r|0,a+=(n&i|r&~i)+(t[6]??0)-1069501632|0,a=(a<<9|a>>>23)+n|0,i+=(a&r|n&~r)+(t[11]??0)+643717713|0,i=(i<<14|i>>>18)+a|0,r+=(i&n|a&~n)+(t[0]??0)-373897302|0,r=(r<<20|r>>>12)+i|0,n+=(r&a|i&~a)+(t[5]??0)-701558691|0,n=(n<<5|n>>>27)+r|0,a+=(n&i|r&~i)+(t[10]??0)+38016083|0,a=(a<<9|a>>>23)+n|0,i+=(a&r|n&~r)+(t[15]??0)-660478335|0,i=(i<<14|i>>>18)+a|0,r+=(i&n|a&~n)+(t[4]??0)-405537848|0,r=(r<<20|r>>>12)+i|0,n+=(r&a|i&~a)+(t[9]??0)+568446438|0,n=(n<<5|n>>>27)+r|0,a+=(n&i|r&~i)+(t[14]??0)-1019803690|0,a=(a<<9|a>>>23)+n|0,i+=(a&r|n&~r)+(t[3]??0)-187363961|0,i=(i<<14|i>>>18)+a|0,r+=(i&n|a&~n)+(t[8]??0)+1163531501|0,r=(r<<20|r>>>12)+i|0,n+=(r&a|i&~a)+(t[13]??0)-1444681467|0,n=(n<<5|n>>>27)+r|0,a+=(n&i|r&~i)+(t[2]??0)-51403784|0,a=(a<<9|a>>>23)+n|0,i+=(a&r|n&~r)+(t[7]??0)+1735328473|0,i=(i<<14|i>>>18)+a|0,r+=(i&n|a&~n)+(t[12]??0)-1926607734|0,r=(r<<20|r>>>12)+i|0,n+=(r^i^a)+(t[5]??0)-378558|0,n=(n<<4|n>>>28)+r|0,a+=(n^r^i)+(t[8]??0)-2022574463|0,a=(a<<11|a>>>21)+n|0,i+=(a^n^r)+(t[11]??0)+1839030562|0,i=(i<<16|i>>>16)+a|0,r+=(i^a^n)+(t[14]??0)-35309556|0,r=(r<<23|r>>>9)+i|0,n+=(r^i^a)+(t[1]??0)-1530992060|0,n=(n<<4|n>>>28)+r|0,a+=(n^r^i)+(t[4]??0)+1272893353|0,a=(a<<11|a>>>21)+n|0,i+=(a^n^r)+(t[7]??0)-155497632|0,i=(i<<16|i>>>16)+a|0,r+=(i^a^n)+(t[10]??0)-1094730640|0,r=(r<<23|r>>>9)+i|0,n+=(r^i^a)+(t[13]??0)+681279174|0,n=(n<<4|n>>>28)+r|0,a+=(n^r^i)+(t[0]??0)-358537222|0,a=(a<<11|a>>>21)+n|0,i+=(a^n^r)+(t[3]??0)-722521979|0,i=(i<<16|i>>>16)+a|0,r+=(i^a^n)+(t[6]??0)+76029189|0,r=(r<<23|r>>>9)+i|0,n+=(r^i^a)+(t[9]??0)-640364487|0,n=(n<<4|n>>>28)+r|0,a+=(n^r^i)+(t[12]??0)-421815835|0,a=(a<<11|a>>>21)+n|0,i+=(a^n^r)+(t[15]??0)+530742520|0,i=(i<<16|i>>>16)+a|0,r+=(i^a^n)+(t[2]??0)-995338651|0,r=(r<<23|r>>>9)+i|0,n+=(i^(r|~a))+(t[0]??0)-198630844|0,n=(n<<6|n>>>26)+r|0,a+=(r^(n|~i))+(t[7]??0)+1126891415|0,a=(a<<10|a>>>22)+n|0,i+=(n^(a|~r))+(t[14]??0)-1416354905|0,i=(i<<15|i>>>17)+a|0,r+=(a^(i|~n))+(t[5]??0)-57434055|0,r=(r<<21|r>>>11)+i|0,n+=(i^(r|~a))+(t[12]??0)+1700485571|0,n=(n<<6|n>>>26)+r|0,a+=(r^(n|~i))+(t[3]??0)-1894986606|0,a=(a<<10|a>>>22)+n|0,i+=(n^(a|~r))+(t[10]??0)-1051523|0,i=(i<<15|i>>>17)+a|0,r+=(a^(i|~n))+(t[1]??0)-2054922799|0,r=(r<<21|r>>>11)+i|0,n+=(i^(r|~a))+(t[8]??0)+1873313359|0,n=(n<<6|n>>>26)+r|0,a+=(r^(n|~i))+(t[15]??0)-30611744|0,a=(a<<10|a>>>22)+n|0,i+=(n^(a|~r))+(t[6]??0)-1560198380|0,i=(i<<15|i>>>17)+a|0,r+=(a^(i|~n))+(t[13]??0)+1309151649|0,r=(r<<21|r>>>11)+i|0,n+=(i^(r|~a))+(t[4]??0)-145523070|0,n=(n<<6|n>>>26)+r|0,a+=(r^(n|~i))+(t[11]??0)-1120210379|0,a=(a<<10|a>>>22)+n|0,i+=(n^(a|~r))+(t[2]??0)+718787259|0,i=(i<<15|i>>>17)+a|0,r+=(a^(i|~n))+(t[9]??0)-343485551|0,r=(r<<21|r>>>11)+i|0,e[0]=n+(e[0]??0)|0,e[1]=r+(e[1]??0)|0,e[2]=i+(e[2]??0)|0,e[3]=a+(e[3]??0)|0}_dataLength=0;_bufferLength=0;_state=new Int32Array(4);_buffer=new ArrayBuffer(68);_buffer8;_buffer32;constructor(){this._buffer8=new Uint8Array(this._buffer,0,68),this._buffer32=new Uint32Array(this._buffer,0,17),this.start()}start(){return this._dataLength=0,this._bufferLength=0,this._state.set(e.stateIdentity),this}appendStr(t){let n=this._buffer8,r=this._buffer32,i=this._bufferLength,a,o;for(o=0;o<t.length;o+=1){if(a=t.charCodeAt(o),a<128)n[i++]=a;else if(a<2048)n[i++]=(a>>>6)+192,n[i++]=a&63|128;else if(a<55296||a>56319)n[i++]=(a>>>12)+224,n[i++]=a>>>6&63|128,n[i++]=a&63|128;else{if(a=(a-55296)*1024+(t.charCodeAt(++o)-56320)+65536,a>1114111)throw Error(`Unicode standard supports code points up to U+10FFFF`);n[i++]=(a>>>18)+240,n[i++]=a>>>12&63|128,n[i++]=a>>>6&63|128,n[i++]=a&63|128}i>=64&&(this._dataLength+=64,e._md5cycle(this._state,r),i-=64,r[0]=r[16]??0)}return this._bufferLength=i,this}appendAsciiStr(t){let n=this._buffer8,r=this._buffer32,i=this._bufferLength,a,o=0;for(;;){for(a=Math.min(t.length-o,64-i);a--;)n[i++]=t.charCodeAt(o++);if(i<64)break;this._dataLength+=64,e._md5cycle(this._state,r),i=0}return this._bufferLength=i,this}appendByteArray(t){let n=this._buffer8,r=this._buffer32,i=this._bufferLength,a,o=0;for(;;){for(a=Math.min(t.length-o,64-i);a--;)n[i++]=t[o++]??0;if(i<64)break;this._dataLength+=64,e._md5cycle(this._state,r),i=0}return this._bufferLength=i,this}getState(){let e=this._state;return{buffer:String.fromCharCode.apply(null,Array.from(this._buffer8)),buflen:this._bufferLength,length:this._dataLength,state:[e[0]??0,e[1]??0,e[2]??0,e[3]??0]}}setState(e){let t=e.buffer,n=e.state,r=this._state,i;for(this._dataLength=e.length,this._bufferLength=e.buflen,r[0]=n[0]??0,r[1]=n[1]??0,r[2]=n[2]??0,r[3]=n[3]??0,i=0;i<t.length;i+=1)this._buffer8[i]=t.charCodeAt(i)}end(t=!1){let n=this._bufferLength,r=this._buffer8,i=this._buffer32,a=(n>>2)+1;this._dataLength+=n;let o=this._dataLength*8;if(r[n]=128,r[n+1]=r[n+2]=r[n+3]=0,i.set(e.buffer32Identity.subarray(a),a),n>55&&(e._md5cycle(this._state,i),i.set(e.buffer32Identity)),o<=4294967295)i[14]=o;else{let e=o.toString(16).match(/(.*?)(.{0,8})$/);if(e===null)return;let t=Number.parseInt(e[2]??``,16),n=Number.parseInt(e[1]??``,16)||0;i[14]=t,i[15]=n}return e._md5cycle(this._state,i),t?this._state:e._hex(this._state)}};if(t.hashStr(`hello`)!==`5d41402abc4b2a76b9719d911017c592`)throw Error(`Md5 self test failed.`);function n(e){let t=!1,n;return function(...r){if(t){if(n)return n;throw Error(`Function called more than once`)}return t=!0,n=e.apply(this,r),n}}const r={make:t=>{let n,r=!1;return t.Effect.gen(function*(){if(r){if(n!==void 0)return n;yield*new e.n({code:`UNKNOWN_ERROR`,status:500,body:`Effect called more than once with undefined result`}).toEffect()}return r=!0,n=yield*t,n})},legacy:n},i={leading:!1,trailing:!0};function a(e,t,n={}){let r={...i,...n},a;return function(...n){r.leading&&!a?(console.log(`leading`),e.apply(this,n),a=setTimeout(()=>{a=void 0},t)):(clearTimeout(a),a=setTimeout(()=>{r.trailing?(e.apply(this,n),r.leading&&setTimeout(()=>{a=void 0},t)):a=void 0},t))}}function o(e,t,{leading:n=!0,trailing:r=!0}={}){return a(e,t,{leading:n,trailing:r})}const s={legacy:o};Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return s}});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uploadista/core",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3-beta.3",
|
|
4
4
|
"description": "Core package of Uploadista",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Uploadista",
|
|
@@ -72,12 +72,12 @@
|
|
|
72
72
|
"devDependencies": {
|
|
73
73
|
"@effect/vitest": "0.27.0",
|
|
74
74
|
"@types/node": "24.10.9",
|
|
75
|
-
"effect": "3.19.
|
|
75
|
+
"effect": "3.19.15",
|
|
76
76
|
"tsd": "0.33.0",
|
|
77
|
-
"tsdown": "0.
|
|
78
|
-
"vitest": "4.0.
|
|
79
|
-
"zod": "4.3.
|
|
80
|
-
"@uploadista/typescript-config": "0.1.
|
|
77
|
+
"tsdown": "0.20.1",
|
|
78
|
+
"vitest": "4.0.18",
|
|
79
|
+
"zod": "4.3.6",
|
|
80
|
+
"@uploadista/typescript-config": "0.1.3-beta.3"
|
|
81
81
|
},
|
|
82
82
|
"publishConfig": {
|
|
83
83
|
"access": "public",
|
package/src/flow/flow.ts
CHANGED
|
@@ -390,6 +390,25 @@ export function createFlowWithSchema<
|
|
|
390
390
|
return { graph, reverseGraph, inDegree };
|
|
391
391
|
};
|
|
392
392
|
|
|
393
|
+
// Build edge map for port-aware routing (conditional nodes)
|
|
394
|
+
// Maps: targetNodeId -> [{ source, sourcePort, targetPort }]
|
|
395
|
+
const edgesByTarget = new Map<
|
|
396
|
+
string,
|
|
397
|
+
Array<{ source: string; sourcePort?: string; targetPort?: string }>
|
|
398
|
+
>();
|
|
399
|
+
edges.forEach((edge) => {
|
|
400
|
+
const existing = edgesByTarget.get(edge.target) || [];
|
|
401
|
+
existing.push({
|
|
402
|
+
source: edge.source,
|
|
403
|
+
sourcePort: edge.sourcePort,
|
|
404
|
+
targetPort: edge.targetPort,
|
|
405
|
+
});
|
|
406
|
+
edgesByTarget.set(edge.target, existing);
|
|
407
|
+
});
|
|
408
|
+
|
|
409
|
+
// Track conditional node results (true/false) for port-based routing
|
|
410
|
+
const conditionalResults = new Map<string, boolean>();
|
|
411
|
+
|
|
393
412
|
// Topological sort to determine execution order
|
|
394
413
|
const topologicalSort = () => {
|
|
395
414
|
const { graph, inDegree } = buildGraph();
|
|
@@ -457,25 +476,127 @@ export function createFlowWithSchema<
|
|
|
457
476
|
return Effect.succeed(result);
|
|
458
477
|
};
|
|
459
478
|
|
|
460
|
-
// Get all inputs for a node
|
|
479
|
+
// Get all inputs for a node, considering port-based routing for conditional nodes
|
|
461
480
|
const getNodeInputs = (
|
|
462
481
|
nodeId: string,
|
|
463
482
|
nodeResults: Map<string, unknown>,
|
|
464
483
|
) => {
|
|
465
|
-
const
|
|
466
|
-
const incomingNodes = reverseGraph[nodeId] || [];
|
|
484
|
+
const incomingEdges = edgesByTarget.get(nodeId) || [];
|
|
467
485
|
const inputs: Record<string, unknown> = {};
|
|
468
486
|
|
|
469
|
-
|
|
487
|
+
incomingEdges.forEach((edge) => {
|
|
488
|
+
const sourceNodeId = edge.source;
|
|
470
489
|
const result = nodeResults.get(sourceNodeId);
|
|
471
|
-
|
|
472
|
-
|
|
490
|
+
|
|
491
|
+
if (result === undefined) {
|
|
492
|
+
return;
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
// Check if the source node is a conditional node
|
|
496
|
+
const sourceNode = nodes.find((n) => n.id === sourceNodeId);
|
|
497
|
+
if (sourceNode?.type === "conditional" && edge.sourcePort) {
|
|
498
|
+
// Only include input if the conditional result matches the edge's sourcePort
|
|
499
|
+
const condResult = conditionalResults.get(sourceNodeId);
|
|
500
|
+
const expectedPort = condResult ? "true" : "false";
|
|
501
|
+
if (edge.sourcePort !== expectedPort) {
|
|
502
|
+
// This edge doesn't match the conditional result, skip it
|
|
503
|
+
return;
|
|
504
|
+
}
|
|
473
505
|
}
|
|
506
|
+
|
|
507
|
+
inputs[sourceNodeId] = result;
|
|
474
508
|
});
|
|
475
509
|
|
|
476
510
|
return inputs;
|
|
477
511
|
};
|
|
478
512
|
|
|
513
|
+
/**
|
|
514
|
+
* Checks if a node should be skipped due to conditional routing.
|
|
515
|
+
* A node should be skipped if:
|
|
516
|
+
* 1. ALL its incoming edges from conditional nodes were filtered out (wrong branch)
|
|
517
|
+
* 2. ALL its inputs come from nodes that were previously skipped (cascading skip)
|
|
518
|
+
*
|
|
519
|
+
* @param nodeId - The node to check
|
|
520
|
+
* @param nodeResults - Map of node results (nodes that executed successfully)
|
|
521
|
+
* @param skippedNodes - Set of node IDs that were skipped due to conditional routing
|
|
522
|
+
* @returns "skip" if node should be skipped, "execute" if it should run, "wait" if dependencies aren't ready
|
|
523
|
+
*/
|
|
524
|
+
const shouldSkipDueToConditionalRouting = (
|
|
525
|
+
nodeId: string,
|
|
526
|
+
nodeResults: Map<string, unknown>,
|
|
527
|
+
skippedNodes: Set<string>,
|
|
528
|
+
): "skip" | "execute" | "wait" => {
|
|
529
|
+
const incomingEdges = edgesByTarget.get(nodeId) || [];
|
|
530
|
+
|
|
531
|
+
// Input nodes are never skipped via this mechanism
|
|
532
|
+
const node = nodes.find((n) => n.id === nodeId);
|
|
533
|
+
if (node?.type === "input") {
|
|
534
|
+
return "execute";
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
// If no incoming edges, can't determine - let normal flow handle it
|
|
538
|
+
if (incomingEdges.length === 0) {
|
|
539
|
+
return "execute";
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
let hasConditionalSkip = false;
|
|
543
|
+
let hasSkippedSource = false;
|
|
544
|
+
let hasValidInput = false;
|
|
545
|
+
let hasPendingDependency = false;
|
|
546
|
+
|
|
547
|
+
for (const edge of incomingEdges) {
|
|
548
|
+
const sourceNodeId = edge.source;
|
|
549
|
+
|
|
550
|
+
// Check if source node was skipped (cascading skip)
|
|
551
|
+
if (skippedNodes.has(sourceNodeId)) {
|
|
552
|
+
hasSkippedSource = true;
|
|
553
|
+
continue;
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
const result = nodeResults.get(sourceNodeId);
|
|
557
|
+
|
|
558
|
+
// Check if source node has produced a result
|
|
559
|
+
if (result === undefined) {
|
|
560
|
+
// Source hasn't run yet - could be waiting on dependencies
|
|
561
|
+
hasPendingDependency = true;
|
|
562
|
+
continue;
|
|
563
|
+
}
|
|
564
|
+
|
|
565
|
+
// Check if the source node is a conditional node with port routing
|
|
566
|
+
const sourceNode = nodes.find((n) => n.id === sourceNodeId);
|
|
567
|
+
if (sourceNode?.type === "conditional" && edge.sourcePort) {
|
|
568
|
+
const condResult = conditionalResults.get(sourceNodeId);
|
|
569
|
+
// If conditional hasn't run yet, wait
|
|
570
|
+
if (condResult === undefined) {
|
|
571
|
+
hasPendingDependency = true;
|
|
572
|
+
continue;
|
|
573
|
+
}
|
|
574
|
+
const expectedPort = condResult ? "true" : "false";
|
|
575
|
+
if (edge.sourcePort !== expectedPort) {
|
|
576
|
+
// This edge was filtered by conditional routing
|
|
577
|
+
hasConditionalSkip = true;
|
|
578
|
+
} else {
|
|
579
|
+
// This edge matches the conditional result - valid input
|
|
580
|
+
hasValidInput = true;
|
|
581
|
+
}
|
|
582
|
+
} else {
|
|
583
|
+
// Non-conditional edge with a result - valid input
|
|
584
|
+
hasValidInput = true;
|
|
585
|
+
}
|
|
586
|
+
}
|
|
587
|
+
|
|
588
|
+
const decision =
|
|
589
|
+
hasValidInput
|
|
590
|
+
? "execute"
|
|
591
|
+
: (hasConditionalSkip || hasSkippedSource) && !hasPendingDependency
|
|
592
|
+
? "skip"
|
|
593
|
+
: hasPendingDependency
|
|
594
|
+
? "wait"
|
|
595
|
+
: "execute";
|
|
596
|
+
|
|
597
|
+
return decision;
|
|
598
|
+
};
|
|
599
|
+
|
|
479
600
|
// Map flow inputs to input nodes
|
|
480
601
|
const mapFlowInputsToNodes = (
|
|
481
602
|
flowInputs: Record<string, z.infer<TFlowInputSchema>>,
|
|
@@ -799,27 +920,12 @@ export function createFlowWithSchema<
|
|
|
799
920
|
}
|
|
800
921
|
}
|
|
801
922
|
|
|
802
|
-
// Check condition for conditional nodes
|
|
923
|
+
// Check condition for conditional nodes and store result for port-based routing
|
|
803
924
|
if (node.type === "conditional") {
|
|
804
925
|
const conditionResult = yield* evaluateCondition(node, nodeInput);
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
yield* onEvent({
|
|
809
|
-
jobId,
|
|
810
|
-
flowId,
|
|
811
|
-
nodeId,
|
|
812
|
-
eventType: EventType.NodeEnd,
|
|
813
|
-
nodeName: node.name,
|
|
814
|
-
});
|
|
815
|
-
}
|
|
816
|
-
return {
|
|
817
|
-
nodeId,
|
|
818
|
-
result: nodeInput,
|
|
819
|
-
success: true,
|
|
820
|
-
waiting: false,
|
|
821
|
-
};
|
|
822
|
-
}
|
|
926
|
+
// Store the conditional result for port-based routing to downstream nodes
|
|
927
|
+
conditionalResults.set(nodeId, conditionResult);
|
|
928
|
+
// Conditional nodes always pass through - routing happens via sourcePort filtering
|
|
823
929
|
}
|
|
824
930
|
|
|
825
931
|
// Execute the node
|
|
@@ -1091,6 +1197,9 @@ export function createFlowWithSchema<
|
|
|
1091
1197
|
// Create node map for quick lookup
|
|
1092
1198
|
const nodeMap = new Map(nodes.map((node) => [node.id, node]));
|
|
1093
1199
|
|
|
1200
|
+
// Track nodes skipped due to conditional routing (for cascading skip detection)
|
|
1201
|
+
const skippedNodeIds = new Set<string>();
|
|
1202
|
+
|
|
1094
1203
|
// Determine execution strategy
|
|
1095
1204
|
const useParallelExecution = config.parallelExecution?.enabled ?? false;
|
|
1096
1205
|
|
|
@@ -1129,8 +1238,40 @@ export function createFlowWithSchema<
|
|
|
1129
1238
|
`Flow ${flowId}: Executing level ${level.level} with nodes: ${level.nodes.join(", ")}`,
|
|
1130
1239
|
);
|
|
1131
1240
|
|
|
1132
|
-
//
|
|
1133
|
-
const
|
|
1241
|
+
// Filter out nodes that should be skipped due to conditional routing
|
|
1242
|
+
const nodesToExecute: string[] = [];
|
|
1243
|
+
const levelSkippedNodes: string[] = [];
|
|
1244
|
+
for (const nodeId of level.nodes) {
|
|
1245
|
+
const skipStatus = shouldSkipDueToConditionalRouting(
|
|
1246
|
+
nodeId,
|
|
1247
|
+
nodeResults,
|
|
1248
|
+
skippedNodeIds,
|
|
1249
|
+
);
|
|
1250
|
+
if (skipStatus === "skip") {
|
|
1251
|
+
levelSkippedNodes.push(nodeId);
|
|
1252
|
+
skippedNodeIds.add(nodeId); // Track for cascading skips
|
|
1253
|
+
} else {
|
|
1254
|
+
nodesToExecute.push(nodeId);
|
|
1255
|
+
}
|
|
1256
|
+
}
|
|
1257
|
+
|
|
1258
|
+
// Log skipped nodes
|
|
1259
|
+
if (levelSkippedNodes.length > 0) {
|
|
1260
|
+
yield* Effect.logDebug(
|
|
1261
|
+
`Flow ${flowId}: Skipping nodes due to conditional routing: ${levelSkippedNodes.join(", ")}`,
|
|
1262
|
+
);
|
|
1263
|
+
}
|
|
1264
|
+
|
|
1265
|
+
// If all nodes in this level are skipped, continue to next level
|
|
1266
|
+
if (nodesToExecute.length === 0) {
|
|
1267
|
+
yield* Effect.logDebug(
|
|
1268
|
+
`Flow ${flowId}: All nodes in level ${level.level} skipped due to conditional routing`,
|
|
1269
|
+
);
|
|
1270
|
+
continue;
|
|
1271
|
+
}
|
|
1272
|
+
|
|
1273
|
+
// Create executor functions for nodes that should execute
|
|
1274
|
+
const nodeExecutors = nodesToExecute.map(
|
|
1134
1275
|
(nodeId) => () =>
|
|
1135
1276
|
Effect.gen(function* () {
|
|
1136
1277
|
// Emit NodeResume event if we're resuming from a paused state at this node
|
|
@@ -1215,6 +1356,24 @@ export function createFlowWithSchema<
|
|
|
1215
1356
|
).toEffect();
|
|
1216
1357
|
}
|
|
1217
1358
|
|
|
1359
|
+
// Check if this node should be skipped due to conditional routing
|
|
1360
|
+
// (e.g., it's on a branch that wasn't taken by the conditional)
|
|
1361
|
+
const skipStatus = shouldSkipDueToConditionalRouting(
|
|
1362
|
+
nodeId,
|
|
1363
|
+
nodeResults,
|
|
1364
|
+
skippedNodeIds,
|
|
1365
|
+
);
|
|
1366
|
+
if (skipStatus === "skip") {
|
|
1367
|
+
yield* Effect.logDebug(
|
|
1368
|
+
`Flow ${flowId}: Skipping node ${nodeId} due to conditional routing`,
|
|
1369
|
+
);
|
|
1370
|
+
// Track skipped node for cascading skip detection
|
|
1371
|
+
skippedNodeIds.add(nodeId);
|
|
1372
|
+
// Don't store any result - this node didn't execute
|
|
1373
|
+
// Downstream nodes depending only on this node will also be skipped
|
|
1374
|
+
continue;
|
|
1375
|
+
}
|
|
1376
|
+
|
|
1218
1377
|
// Emit NodeResume event if we're resuming from a paused state at this node
|
|
1219
1378
|
if (resumeFrom && i === startIndex && onEvent) {
|
|
1220
1379
|
const node = nodeMap.get(nodeId);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e=require(`./types-BLxcpPL9.cjs`),t=require(`./uploadista-error-BBFNPVsJ.cjs`);let n=require(`effect`);var r=class extends n.Context.Tag(`UploadistaGenerateIdService`)(){};const i=r.Service,a=r.of({generateId:()=>n.Effect.succeed(crypto.randomUUID())}),o=n.Layer.succeed(r,a),s=r.of({generateId:()=>n.Effect.succeed(`${Date.now()}-${Math.random().toString(36).slice(2,11)}`)}),c=[`sha256`];function l(e){return c.includes(e)}function u(e,r){return n.Effect.gen(function*(){if(!l(r))return yield*t.n.fromCode(`UNSUPPORTED_CHECKSUM_ALGORITHM`,{body:`Checksum algorithm '${r}' is not supported. Supported algorithms: ${c.join(`, `)}`,details:{algorithm:r,supportedAlgorithms:c}}).toEffect();let i=r.toUpperCase().replace(/\d+/,`-$&`),a=yield*n.Effect.tryPromise({try:()=>crypto.subtle.digest(i,e),catch:e=>t.n.fromCode(`UNKNOWN_ERROR`,{body:`Failed to compute checksum: ${e instanceof Error?e.message:`Unknown error`}`,cause:e,details:{algorithm:r}})});return Array.from(new Uint8Array(a)).map(e=>e.toString(16).padStart(2,`0`)).join(``)})}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return u}});
|