@socketsecurity/lib 3.2.5 → 3.2.7
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/CHANGELOG.md +25 -0
- package/dist/constants/node.js +1 -1
- package/dist/constants/packages.js +4 -4
- package/dist/external/@inquirer/confirm.js +3199 -18
- package/dist/external/@inquirer/input.js +3223 -18
- package/dist/external/@inquirer/password.js +3331 -18
- package/dist/external/@inquirer/search.js +3328 -21
- package/dist/external/@inquirer/select.js +3445 -21
- package/dist/external/@npmcli/package-json/lib/read-package.js +149 -2
- package/dist/external/@npmcli/package-json/lib/sort.js +96 -1
- package/dist/external/@npmcli/package-json.js +16758 -13
- package/dist/external/@npmcli/promise-spawn.js +480 -1
- package/dist/external/@socketregistry/is-unicode-supported.js +42 -1
- package/dist/external/@socketregistry/packageurl-js.js +6493 -2
- package/dist/external/@socketregistry/yocto-spinner.js +460 -4
- package/dist/external/@yarnpkg/extensions.js +1025 -1
- package/dist/external/cacache.js +13016 -12
- package/dist/external/debug.js +27 -1
- package/dist/external/del.js +7088 -2
- package/dist/external/fast-glob.js +5721 -2
- package/dist/external/fast-sort.js +140 -1
- package/dist/external/get-east-asian-width.js +90 -1
- package/dist/external/libnpmexec.js +33 -1
- package/dist/external/libnpmpack.js +67595 -129
- package/dist/external/make-fetch-happen.js +22595 -21
- package/dist/external/normalize-package-data.js +4474 -2
- package/dist/external/npm-package-arg.js +4511 -2
- package/dist/external/pacote.js +50270 -57
- package/dist/external/picomatch.js +1520 -1
- package/dist/external/semver.js +1930 -1
- package/dist/external/spdx-correct.js +1380 -1
- package/dist/external/spdx-expression-parse.js +1043 -1
- package/dist/external/streaming-iterables.js +1056 -1
- package/dist/external/validate-npm-package-name.js +100 -1
- package/dist/external/which.js +258 -1
- package/dist/external/yargs-parser.js +1075 -1
- package/dist/external/yoctocolors-cjs.js +88 -1
- package/dist/external/zod.js +15207 -13
- package/dist/lifecycle-script-names.js +3 -4
- package/dist/logger.js +2 -1
- package/dist/maintained-node-versions.js +3 -4
- package/dist/package-default-node-range.js +4 -5
- package/dist/package-default-socket-categories.js +3 -4
- package/dist/package-extensions.js +3 -4
- package/dist/stdio/prompts.js +2 -1
- package/dist/utils/get-ipc.js +3 -5
- package/package.json +1 -1
|
@@ -3,4 +3,1059 @@
|
|
|
3
3
|
* Bundled from streaming-iterables
|
|
4
4
|
* This is a zero-dependency bundle created by esbuild.
|
|
5
5
|
*/
|
|
6
|
-
"use strict";var Ae=Object.defineProperty;var o=(l,p)=>Ae(l,"name",{value:p,configurable:!0});var Ce=(l,p)=>()=>(p||l((p={exports:{}}).exports,p),p.exports);var Z=Ce((D,Y)=>{(function(l,p){typeof D=="object"&&typeof Y<"u"?p(D):typeof define=="function"&&define.amd?define(["exports"],p):(l=typeof globalThis<"u"?globalThis:l||self,p(l.streamingIterables={}))})(D,(function(l){"use strict";async function*p(e,t){let n=[];for await(let r of t)n.push(r),n.length===e&&(yield n,n=[]);n.length>0&&(yield n)}o(p,"_batch");function*$(e,t){let n=[];for(let r of t)n.push(r),n.length===e&&(yield n,n=[]);n.length>0&&(yield n)}o($,"_syncBatch");function P(e,t){return t===void 0?n=>P(e,n):t[Symbol.asyncIterator]?p(e,t):$(e,t)}o(P,"batch");let A=Symbol("TIMEOUT"),z=o(e=>{let t;return[new Promise(n=>{t=setTimeout(()=>n(A),e)}),()=>{clearTimeout(t)}]},"createTimer");async function*x(e,t,n){let r=n[Symbol.asyncIterator](),i,f=[],a,y,s=o(()=>{c(),[a,y]=z(t)},"startTimer"),c=o(()=>{y&&y(),a=void 0},"deleteTimer");for(i=r.next();;){let h=await(a?Promise.race([i,a]):i);if(h===A||h.done){if(f.length&&(yield f,f=[]),c(),h!==A)break;continue}if(i=r.next(),f.push(h.value),f.length===1&&s(),f.length===e){yield f,f=[],c();continue}}}o(x,"_batchWithTimeout");function L(e,t,n){return n===void 0?r=>L(e,t,r):n[Symbol.asyncIterator]&&t!==1/0?x(e,t,n):P(e,n)}o(L,"batchWithTimeout");function g(e){if(typeof e.next=="function")return e;if(typeof e[Symbol.iterator]=="function")return e[Symbol.iterator]();if(typeof e[Symbol.asyncIterator]=="function")return e[Symbol.asyncIterator]();throw new TypeError('"values" does not to conform to any of the iterator or iterable protocols')}o(g,"getIterator");function C(){let e,t;return{promise:new Promise((r,i)=>{t=r,e=i}),reject:e,resolve:t}}o(C,"defer");function ee(e,t){let n=g(t),r=[],i=[],f=!1,a=!1;function y(){for(;i.length>0&&r.length>0;){let u=i.shift(),{error:w,value:v}=r.shift();w?u.reject(w):u.resolve({done:!1,value:v})}for(;i.length>0&&a;){let{resolve:u}=i.shift();u({done:!0,value:void 0})}}o(y,"fulfillReadQueue");async function s(){if(!a&&!f&&!(r.length>=e)){f=!0;try{let{done:u,value:w}=await n.next();u?a=!0:r.push({value:w})}catch(u){a=!0,r.push({error:u})}y(),f=!1,s()}}o(s,"fillQueue");async function c(){if(r.length>0){let{error:w,value:v}=r.shift();if(w)throw w;return s(),{done:!1,value:v}}if(a)return{done:!0,value:void 0};let u=C();return i.push(u),s(),u.promise}o(c,"next");let h={next:c,[Symbol.asyncIterator]:()=>h};return h}o(ee,"_buffer");function*te(e,t){let n=[],r;try{for(let i of t)n.push(i),!(n.length<=e)&&(yield n.shift())}catch(i){r=i}for(let i of n)yield i;if(r)throw r}o(te,"syncBuffer");function _(e,t){return t===void 0?n=>_(e,n):e===0?t:t[Symbol.asyncIterator]?ee(e,t):te(e,t)}o(_,"buffer");async function ne(e){let t=[];for await(let n of e)t.push(n);return t}o(ne,"_collect");function re(e){return e[Symbol.asyncIterator]?ne(e):Array.from(e)}o(re,"collect");async function*oe(e){for await(let t of e)yield*t}o(oe,"_concat");function*ie(e){for(let t of e)yield*t}o(ie,"_syncConcat");function fe(...e){return e.find(n=>n[Symbol.asyncIterator]!==void 0)?oe(e):ie(e)}o(fe,"concat");async function ae(e){for await(let t of e);}o(ae,"_consume");function ue(e){if(e[Symbol.asyncIterator])return ae(e);for(let t of e);}o(ue,"consume");async function*le(e,t){let n=0;for await(let r of t){if(n<e){n++;continue}yield await r}}o(le,"_drop");function*se(e,t){let n=0;for(let r of t){if(n<e){n++;continue}yield r}}o(se,"_syncDrop");function F(e,t){return t===void 0?n=>F(e,n):t[Symbol.asyncIterator]?le(e,t):se(e,t)}o(F,"drop");async function*B(e,t){for await(let n of t)await e(n)&&(yield n)}o(B,"_filter");function I(e,t){return t===void 0?n=>B(e,n):B(e,t)}o(I,"filter");async function*T(e){for await(let t of e)t&&typeof t!="string"&&(t[Symbol.iterator]||t[Symbol.asyncIterator])?yield*T(t):yield t}o(T,"flatten");async function*R(e,t){for await(let n of t)yield await e(n)}o(R,"_map");function k(e,t){return t===void 0?n=>R(e,n):R(e,t)}o(k,"map");function j(e,t){return t===void 0?n=>j(e,n):I(n=>n!=null,T(k(e,t)))}o(j,"flatMap");function ce(e,t,n){let r=g(n),i=[],f=[],a=!1,y=!1,s=0,c=null;function h(){for(;f.length>0&&i.length>0;){let{resolve:m}=f.shift(),d=i.shift();m({done:!1,value:d})}for(;f.length>0&&s===0&&a;){let{resolve:m,reject:d}=f.shift();c?(d(c),c=null):m({done:!0,value:void 0})}}o(h,"fulfillReadQueue");async function u(){if(a){h();return}if(!y&&!(s+i.length>=e)){y=!0,s++;try{let{done:m,value:d}=await r.next();m?(a=!0,s--,h()):w(d)}catch(m){a=!0,s--,c=m,h()}y=!1,u()}}o(u,"fillQueue");async function w(m){try{let d=await t(m);if(d&&d[Symbol.asyncIterator])for await(let Pe of d)i.push(Pe);else i.push(d)}catch(d){a=!0,c=d}s--,h(),u()}o(w,"mapAndQueue");async function v(){if(i.length===0){let d=C();return f.push(d),u(),d.promise}let m=i.shift();return u(),{done:!1,value:m}}o(v,"next");let S={next:v,[Symbol.asyncIterator]:()=>S};return S}o(ce,"_flatTransform");function E(e,t,n){return t===void 0?(r,i)=>i?E(e,r,i):E(e,r):n===void 0?r=>E(e,t,r):I(r=>r!=null,T(ce(e,t,n)))}o(E,"flatTransform");async function de(e){return new Promise(t=>{e.once("readable",()=>{t()})})}o(de,"onceReadable");async function*ye(e){for(;;){let t=e.read();if(t!==null){yield t;continue}if(e._readableState.ended)break;await de(e)}}o(ye,"_fromStream");function he(e){return typeof e[Symbol.asyncIterator]=="function"?e:ye(e)}o(he,"fromStream");async function*me(...e){let t=new Set(e.map(g));for(;t.size>0;)for(let n of t){let r=await n.next();r.done?t.delete(n):yield r.value}}o(me,"merge");function N(e,...t){let n=e();for(let r of t)n=r(n);return n}o(N,"pipeline");async function*we(e,t,n){let r=null,i=o(s=>({value:t(s)}),"wrapFunc"),f=o(async function*(s){for await(let c of s){if(r)return;yield c}},"stopOnError"),a=N(()=>n,_(1),f,k(i),_(e-1)),y=g(a);for(;;){let{value:s,done:c}=await y.next();if(c)break;try{let h=await s.value;r||(yield h)}catch(h){r=h}}if(r)throw r}o(we,"_parallelMap");function Q(e,t,n){return t===void 0?(r,i)=>Q(e,r,i):n===void 0?r=>Q(e,t,r):e===1?k(t,n):we(e,t,n)}o(Q,"parallelMap");function b(e,t,n){return t===void 0?(r,i)=>i?b(e,r,i):b(e,r):n===void 0?r=>b(e,t,r):I(r=>r!=null,T(Q(e,t,n)))}o(b,"parallelFlatMap");async function*pe(...e){let t=e.map(g),n=new Set,r=new Map,i=null,f=null,a=null,y=o(u=>{i=u,f&&f(u)},"notifyError"),s=o(u=>{a&&a(u)},"notifyDone"),c=o(()=>new Promise((u,w)=>{if(i&&w(i),r.size>0)return u();a=u,f=w}),"waitForQueue"),h=o(u=>{let w=Promise.resolve(u.next()).then(async({done:v,value:S})=>{v||r.set(u,S),n.delete(w)});n.add(w),w.then(s,y)},"queueNext");for(let u of t)h(u);for(;;){if(n.size===0&&r.size===0)return;await c();for(let[u,w]of r)r.delete(u),yield w,h(u)}}o(pe,"parallelMerge");async function O(e,t,n){let r=t;for await(let i of n)r=await e(r,i);return r}o(O,"_reduce");function W(e,t,n){return t===void 0?(r,i)=>i?O(e,r,i):W(e,r):n===void 0?r=>W(e,t,r):O(e,t,n)}o(W,"reduce");async function*ve(e,t){let n=0;for await(let r of t)if(yield await r,n++,n>=e)break}o(ve,"_take");function*ge(e,t){let n=0;for(let r of t)if(yield r,n++,n>=e)break}o(ge,"_syncTake");function V(e,t){return t===void 0?n=>V(e,n):t[Symbol.asyncIterator]?ve(e,t):ge(e,t)}o(V,"take");async function*Se(e,t){let n=[];for await(let r of t)n.push(r),n.length>e&&n.shift();for(;n.length;)yield await n.shift()}o(Se,"_takeLast");function*Te(e,t){let n=[];for(let r of t)n.push(r),n.length>e&&n.shift();for(;n.length;)yield n.shift()}o(Te,"_syncTakeLast");function q(e,t){return t===void 0?n=>q(e,n):t[Symbol.asyncIterator]?Se(e,t):Te(e,t)}o(q,"takeLast");async function*U(e,t){for await(let n of t){if(!await e(n))return;yield n}}o(U,"_takeWhile");function _e(e,t){return t===void 0?n=>U(e,n):U(e,t)}o(_e,"takeWhile");async function*G(e,t){for await(let n of t)await e(n),yield n}o(G,"_asyncTap");function Ie(e,t){return t===void 0?n=>G(e,n):G(e,t)}o(Ie,"tap");let ke=o(e=>new Promise(t=>setTimeout(t,e)),"sleep");function H(e,t,n){if(!Number.isFinite(e))throw new TypeError("Expected `limit` to be a finite number");if(e<=0)throw new TypeError("Expected `limit` to be greater than 0");if(!Number.isFinite(t))throw new TypeError("Expected `interval` to be a finite number");return o((async function*(){let i=0,f;for await(let a of n){if(i<e){typeof f>"u"&&(f=Date.now()),i++,yield a;continue}let y=Date.now()-(f||0),s=t-y;s>0&&await ke(s),f=Date.now(),i=1,yield a}}),"__throttle")()}o(H,"_throttle");function Ee(e,t,n){return n===void 0?r=>H(e,t,r):H(e,t,n)}o(Ee,"throttle");function J(e,t){let n=e[0]+t[0],r=e[1]+t[1];if(r>=1e9){let i=r%1e9;n+=(r-i)/1e9,r=i}return[n,r]}o(J,"addTime");async function*Qe(e,t){let n=t[Symbol.asyncIterator](),r=[0,0];for(;;){let i=process.hrtime(),{value:f,done:a}=await n.next(),y=process.hrtime(i);if(r=J(r,y),e.progress&&e.progress(y,r),a)return e.total&&e.total(r),f;yield f}}o(Qe,"_asyncTime");function*be(e,t){let n=t[Symbol.iterator](),r=[0,0];for(;;){let i=process.hrtime(),{value:f,done:a}=n.next(),y=process.hrtime(i);if(r=J(r,y),e.progress&&e.progress(y,r),a)return e.total&&e.total(r),f;yield f}}o(be,"_syncTime");function K(e={},t){return t===void 0?n=>K(e,n):t[Symbol.asyncIterator]!==void 0?Qe(e,t):be(e,t)}o(K,"time");function Me(e,t,n){let r=g(n),i=[],f=[],a=!1,y=!1,s=0,c=null;function h(){for(;f.length>0&&i.length>0;){let{resolve:m}=f.shift(),d=i.shift();m({done:!1,value:d})}for(;f.length>0&&s===0&&a;){let{resolve:m,reject:d}=f.shift();c?(d(c),c=null):m({done:!0,value:void 0})}}o(h,"fulfillReadQueue");async function u(){if(a){h();return}if(!y&&!(s+i.length>=e)){y=!0,s++;try{let{done:m,value:d}=await r.next();m?(a=!0,s--,h()):w(d)}catch(m){a=!0,s--,c=m,h()}y=!1,u()}}o(u,"fillQueue");async function w(m){try{let d=await t(m);i.push(d)}catch(d){a=!0,c=d}s--,h(),u()}o(w,"mapAndQueue");async function v(){if(i.length===0){let d=C();return f.push(d),u(),d.promise}let m=i.shift();return u(),{done:!1,value:m}}o(v,"next");let S={next:v,[Symbol.asyncIterator]:()=>S};return S}o(Me,"_transform");function M(e,t,n){return t===void 0?(r,i)=>i?M(e,r,i):M(e,r):n===void 0?r=>M(e,t,r):Me(e,t,n)}o(M,"transform");async function X(e,t){let n=null,r=null,i=null,f=o(c=>{n=c,r&&r(c)},"notifyError"),a=o(()=>{i&&i()},"notifyDrain"),y=o(()=>{e.removeListener("error",f),e.removeListener("drain",a)},"cleanup");e.once("error",f);let s=o(()=>new Promise((c,h)=>{if(n)return h(n);e.once("drain",a),i=c,r=h}),"waitForDrain");for await(let c of t)if(e.write(c)===!1&&await s(),n)break;if(y(),n)throw n}o(X,"_writeToStream");function De(e,t){return t===void 0?n=>X(e,n):X(e,t)}o(De,"writeToStream"),l.batch=P,l.batchWithTimeout=L,l.buffer=_,l.collect=re,l.concat=fe,l.consume=ue,l.drop=F,l.filter=I,l.flatMap=j,l.flatTransform=E,l.flatten=T,l.fromStream=he,l.getIterator=g,l.map=k,l.merge=me,l.parallelFlatMap=b,l.parallelMap=Q,l.parallelMerge=pe,l.pipeline=N,l.reduce=W,l.take=V,l.takeLast=q,l.takeWhile=_e,l.tap=Ie,l.throttle=Ee,l.time=K,l.transform=M,l.writeToStream=De}))});var{parallelMap:We,transform:Le}=Z();module.exports={parallelMap:We,transform:Le};
|
|
6
|
+
"use strict";
|
|
7
|
+
var __defProp = Object.defineProperty;
|
|
8
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
9
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
10
|
+
var __commonJS = (cb, mod) => function __require() {
|
|
11
|
+
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
// node_modules/.pnpm/streaming-iterables@8.0.1/node_modules/streaming-iterables/dist/index.js
|
|
15
|
+
var require_dist = __commonJS({
|
|
16
|
+
"node_modules/.pnpm/streaming-iterables@8.0.1/node_modules/streaming-iterables/dist/index.js"(exports2, module2) {
|
|
17
|
+
(function(global, factory) {
|
|
18
|
+
typeof exports2 === "object" && typeof module2 !== "undefined" ? factory(exports2) : typeof define === "function" && define.amd ? define(["exports"], factory) : (global = typeof globalThis !== "undefined" ? globalThis : global || self, factory(global.streamingIterables = {}));
|
|
19
|
+
})(exports2, (function(exports3) {
|
|
20
|
+
"use strict";
|
|
21
|
+
async function* _batch(size, iterable) {
|
|
22
|
+
let dataBatch = [];
|
|
23
|
+
for await (const data of iterable) {
|
|
24
|
+
dataBatch.push(data);
|
|
25
|
+
if (dataBatch.length === size) {
|
|
26
|
+
yield dataBatch;
|
|
27
|
+
dataBatch = [];
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
if (dataBatch.length > 0) {
|
|
31
|
+
yield dataBatch;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
__name(_batch, "_batch");
|
|
35
|
+
function* _syncBatch(size, iterable) {
|
|
36
|
+
let dataBatch = [];
|
|
37
|
+
for (const data of iterable) {
|
|
38
|
+
dataBatch.push(data);
|
|
39
|
+
if (dataBatch.length === size) {
|
|
40
|
+
yield dataBatch;
|
|
41
|
+
dataBatch = [];
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
if (dataBatch.length > 0) {
|
|
45
|
+
yield dataBatch;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
__name(_syncBatch, "_syncBatch");
|
|
49
|
+
function batch(size, iterable) {
|
|
50
|
+
if (iterable === void 0) {
|
|
51
|
+
return (curriedIterable) => batch(size, curriedIterable);
|
|
52
|
+
}
|
|
53
|
+
if (iterable[Symbol.asyncIterator]) {
|
|
54
|
+
return _batch(size, iterable);
|
|
55
|
+
}
|
|
56
|
+
return _syncBatch(size, iterable);
|
|
57
|
+
}
|
|
58
|
+
__name(batch, "batch");
|
|
59
|
+
const TIMEOUT = Symbol("TIMEOUT");
|
|
60
|
+
const createTimer = /* @__PURE__ */ __name((duration) => {
|
|
61
|
+
let timeoutId;
|
|
62
|
+
return [
|
|
63
|
+
new Promise((resolve) => {
|
|
64
|
+
timeoutId = setTimeout(() => resolve(TIMEOUT), duration);
|
|
65
|
+
}),
|
|
66
|
+
() => {
|
|
67
|
+
clearTimeout(timeoutId);
|
|
68
|
+
}
|
|
69
|
+
];
|
|
70
|
+
}, "createTimer");
|
|
71
|
+
async function* _batchWithTimeout(size, timeout, iterable) {
|
|
72
|
+
const iterator = iterable[Symbol.asyncIterator]();
|
|
73
|
+
let pendingData;
|
|
74
|
+
let batchData = [];
|
|
75
|
+
let timer;
|
|
76
|
+
let clearTimer;
|
|
77
|
+
const startTimer = /* @__PURE__ */ __name(() => {
|
|
78
|
+
deleteTimer();
|
|
79
|
+
[timer, clearTimer] = createTimer(timeout);
|
|
80
|
+
}, "startTimer");
|
|
81
|
+
const deleteTimer = /* @__PURE__ */ __name(() => {
|
|
82
|
+
if (clearTimer) {
|
|
83
|
+
clearTimer();
|
|
84
|
+
}
|
|
85
|
+
timer = void 0;
|
|
86
|
+
}, "deleteTimer");
|
|
87
|
+
pendingData = iterator.next();
|
|
88
|
+
while (true) {
|
|
89
|
+
const res = await (timer ? Promise.race([pendingData, timer]) : pendingData);
|
|
90
|
+
if (res === TIMEOUT || res.done) {
|
|
91
|
+
if (batchData.length) {
|
|
92
|
+
yield batchData;
|
|
93
|
+
batchData = [];
|
|
94
|
+
}
|
|
95
|
+
deleteTimer();
|
|
96
|
+
if (res !== TIMEOUT) {
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
continue;
|
|
100
|
+
}
|
|
101
|
+
pendingData = iterator.next();
|
|
102
|
+
batchData.push(res.value);
|
|
103
|
+
if (batchData.length === 1) {
|
|
104
|
+
startTimer();
|
|
105
|
+
}
|
|
106
|
+
if (batchData.length === size) {
|
|
107
|
+
yield batchData;
|
|
108
|
+
batchData = [];
|
|
109
|
+
deleteTimer();
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
__name(_batchWithTimeout, "_batchWithTimeout");
|
|
115
|
+
function batchWithTimeout(size, timeout, iterable) {
|
|
116
|
+
if (iterable === void 0) {
|
|
117
|
+
return (curriedIterable) => batchWithTimeout(size, timeout, curriedIterable);
|
|
118
|
+
}
|
|
119
|
+
if (iterable[Symbol.asyncIterator] && timeout !== Infinity) {
|
|
120
|
+
return _batchWithTimeout(size, timeout, iterable);
|
|
121
|
+
}
|
|
122
|
+
return batch(size, iterable);
|
|
123
|
+
}
|
|
124
|
+
__name(batchWithTimeout, "batchWithTimeout");
|
|
125
|
+
function getIterator(iterable) {
|
|
126
|
+
if (typeof iterable.next === "function") {
|
|
127
|
+
return iterable;
|
|
128
|
+
}
|
|
129
|
+
if (typeof iterable[Symbol.iterator] === "function") {
|
|
130
|
+
return iterable[Symbol.iterator]();
|
|
131
|
+
}
|
|
132
|
+
if (typeof iterable[Symbol.asyncIterator] === "function") {
|
|
133
|
+
return iterable[Symbol.asyncIterator]();
|
|
134
|
+
}
|
|
135
|
+
throw new TypeError('"values" does not to conform to any of the iterator or iterable protocols');
|
|
136
|
+
}
|
|
137
|
+
__name(getIterator, "getIterator");
|
|
138
|
+
function defer() {
|
|
139
|
+
let reject;
|
|
140
|
+
let resolve;
|
|
141
|
+
const promise = new Promise((resolveFunc, rejectFunc) => {
|
|
142
|
+
resolve = resolveFunc;
|
|
143
|
+
reject = rejectFunc;
|
|
144
|
+
});
|
|
145
|
+
return {
|
|
146
|
+
promise,
|
|
147
|
+
reject,
|
|
148
|
+
resolve
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
__name(defer, "defer");
|
|
152
|
+
function _buffer(size, iterable) {
|
|
153
|
+
const iterator = getIterator(iterable);
|
|
154
|
+
const resultQueue = [];
|
|
155
|
+
const readQueue = [];
|
|
156
|
+
let reading = false;
|
|
157
|
+
let ended = false;
|
|
158
|
+
function fulfillReadQueue() {
|
|
159
|
+
while (readQueue.length > 0 && resultQueue.length > 0) {
|
|
160
|
+
const readDeferred = readQueue.shift();
|
|
161
|
+
const { error, value } = resultQueue.shift();
|
|
162
|
+
if (error) {
|
|
163
|
+
readDeferred.reject(error);
|
|
164
|
+
} else {
|
|
165
|
+
readDeferred.resolve({ done: false, value });
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
while (readQueue.length > 0 && ended) {
|
|
169
|
+
const { resolve } = readQueue.shift();
|
|
170
|
+
resolve({ done: true, value: void 0 });
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
__name(fulfillReadQueue, "fulfillReadQueue");
|
|
174
|
+
async function fillQueue() {
|
|
175
|
+
if (ended) {
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
if (reading) {
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
if (resultQueue.length >= size) {
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
reading = true;
|
|
185
|
+
try {
|
|
186
|
+
const { done, value } = await iterator.next();
|
|
187
|
+
if (done) {
|
|
188
|
+
ended = true;
|
|
189
|
+
} else {
|
|
190
|
+
resultQueue.push({ value });
|
|
191
|
+
}
|
|
192
|
+
} catch (error) {
|
|
193
|
+
ended = true;
|
|
194
|
+
resultQueue.push({ error });
|
|
195
|
+
}
|
|
196
|
+
fulfillReadQueue();
|
|
197
|
+
reading = false;
|
|
198
|
+
fillQueue();
|
|
199
|
+
}
|
|
200
|
+
__name(fillQueue, "fillQueue");
|
|
201
|
+
async function next() {
|
|
202
|
+
if (resultQueue.length > 0) {
|
|
203
|
+
const { error, value } = resultQueue.shift();
|
|
204
|
+
if (error) {
|
|
205
|
+
throw error;
|
|
206
|
+
}
|
|
207
|
+
fillQueue();
|
|
208
|
+
return { done: false, value };
|
|
209
|
+
}
|
|
210
|
+
if (ended) {
|
|
211
|
+
return { done: true, value: void 0 };
|
|
212
|
+
}
|
|
213
|
+
const deferred = defer();
|
|
214
|
+
readQueue.push(deferred);
|
|
215
|
+
fillQueue();
|
|
216
|
+
return deferred.promise;
|
|
217
|
+
}
|
|
218
|
+
__name(next, "next");
|
|
219
|
+
const asyncIterableIterator = {
|
|
220
|
+
next,
|
|
221
|
+
[Symbol.asyncIterator]: () => asyncIterableIterator
|
|
222
|
+
};
|
|
223
|
+
return asyncIterableIterator;
|
|
224
|
+
}
|
|
225
|
+
__name(_buffer, "_buffer");
|
|
226
|
+
function* syncBuffer(size, iterable) {
|
|
227
|
+
const valueQueue = [];
|
|
228
|
+
let e;
|
|
229
|
+
try {
|
|
230
|
+
for (const value of iterable) {
|
|
231
|
+
valueQueue.push(value);
|
|
232
|
+
if (valueQueue.length <= size) {
|
|
233
|
+
continue;
|
|
234
|
+
}
|
|
235
|
+
yield valueQueue.shift();
|
|
236
|
+
}
|
|
237
|
+
} catch (error) {
|
|
238
|
+
e = error;
|
|
239
|
+
}
|
|
240
|
+
for (const value of valueQueue) {
|
|
241
|
+
yield value;
|
|
242
|
+
}
|
|
243
|
+
if (e) {
|
|
244
|
+
throw e;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
__name(syncBuffer, "syncBuffer");
|
|
248
|
+
function buffer(size, iterable) {
|
|
249
|
+
if (iterable === void 0) {
|
|
250
|
+
return (curriedIterable) => buffer(size, curriedIterable);
|
|
251
|
+
}
|
|
252
|
+
if (size === 0) {
|
|
253
|
+
return iterable;
|
|
254
|
+
}
|
|
255
|
+
if (iterable[Symbol.asyncIterator]) {
|
|
256
|
+
return _buffer(size, iterable);
|
|
257
|
+
}
|
|
258
|
+
return syncBuffer(size, iterable);
|
|
259
|
+
}
|
|
260
|
+
__name(buffer, "buffer");
|
|
261
|
+
async function _collect(iterable) {
|
|
262
|
+
const values = [];
|
|
263
|
+
for await (const value of iterable) {
|
|
264
|
+
values.push(value);
|
|
265
|
+
}
|
|
266
|
+
return values;
|
|
267
|
+
}
|
|
268
|
+
__name(_collect, "_collect");
|
|
269
|
+
function collect(iterable) {
|
|
270
|
+
if (iterable[Symbol.asyncIterator]) {
|
|
271
|
+
return _collect(iterable);
|
|
272
|
+
}
|
|
273
|
+
return Array.from(iterable);
|
|
274
|
+
}
|
|
275
|
+
__name(collect, "collect");
|
|
276
|
+
async function* _concat(iterables) {
|
|
277
|
+
for await (const iterable of iterables) {
|
|
278
|
+
yield* iterable;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
__name(_concat, "_concat");
|
|
282
|
+
function* _syncConcat(iterables) {
|
|
283
|
+
for (const iterable of iterables) {
|
|
284
|
+
yield* iterable;
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
__name(_syncConcat, "_syncConcat");
|
|
288
|
+
function concat(...iterables) {
|
|
289
|
+
const hasAnyAsync = iterables.find((itr) => itr[Symbol.asyncIterator] !== void 0);
|
|
290
|
+
if (hasAnyAsync) {
|
|
291
|
+
return _concat(iterables);
|
|
292
|
+
} else {
|
|
293
|
+
return _syncConcat(iterables);
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
__name(concat, "concat");
|
|
297
|
+
async function _consume(iterable) {
|
|
298
|
+
for await (const _val of iterable) {
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
__name(_consume, "_consume");
|
|
302
|
+
function consume(iterable) {
|
|
303
|
+
if (iterable[Symbol.asyncIterator]) {
|
|
304
|
+
return _consume(iterable);
|
|
305
|
+
}
|
|
306
|
+
for (const _val of iterable) {
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
__name(consume, "consume");
|
|
310
|
+
async function* _drop(count, iterable) {
|
|
311
|
+
let skipped = 0;
|
|
312
|
+
for await (const val of iterable) {
|
|
313
|
+
if (skipped < count) {
|
|
314
|
+
skipped++;
|
|
315
|
+
continue;
|
|
316
|
+
}
|
|
317
|
+
yield await val;
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
__name(_drop, "_drop");
|
|
321
|
+
function* _syncDrop(count, iterable) {
|
|
322
|
+
let skipped = 0;
|
|
323
|
+
for (const val of iterable) {
|
|
324
|
+
if (skipped < count) {
|
|
325
|
+
skipped++;
|
|
326
|
+
continue;
|
|
327
|
+
}
|
|
328
|
+
yield val;
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
__name(_syncDrop, "_syncDrop");
|
|
332
|
+
function drop(count, iterable) {
|
|
333
|
+
if (iterable === void 0) {
|
|
334
|
+
return (curriedIterable) => drop(count, curriedIterable);
|
|
335
|
+
}
|
|
336
|
+
if (iterable[Symbol.asyncIterator]) {
|
|
337
|
+
return _drop(count, iterable);
|
|
338
|
+
}
|
|
339
|
+
return _syncDrop(count, iterable);
|
|
340
|
+
}
|
|
341
|
+
__name(drop, "drop");
|
|
342
|
+
async function* _filter(filterFunc, iterable) {
|
|
343
|
+
for await (const data of iterable) {
|
|
344
|
+
if (await filterFunc(data)) {
|
|
345
|
+
yield data;
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
__name(_filter, "_filter");
|
|
350
|
+
function filter(filterFunc, iterable) {
|
|
351
|
+
if (iterable === void 0) {
|
|
352
|
+
return (curriedIterable) => _filter(filterFunc, curriedIterable);
|
|
353
|
+
}
|
|
354
|
+
return _filter(filterFunc, iterable);
|
|
355
|
+
}
|
|
356
|
+
__name(filter, "filter");
|
|
357
|
+
async function* flatten(iterable) {
|
|
358
|
+
for await (const maybeItr of iterable) {
|
|
359
|
+
if (maybeItr && typeof maybeItr !== "string" && (maybeItr[Symbol.iterator] || maybeItr[Symbol.asyncIterator])) {
|
|
360
|
+
yield* flatten(maybeItr);
|
|
361
|
+
} else {
|
|
362
|
+
yield maybeItr;
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
__name(flatten, "flatten");
|
|
367
|
+
async function* _map(func, iterable) {
|
|
368
|
+
for await (const val of iterable) {
|
|
369
|
+
yield await func(val);
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
__name(_map, "_map");
|
|
373
|
+
function map(func, iterable) {
|
|
374
|
+
if (iterable === void 0) {
|
|
375
|
+
return (curriedIterable) => _map(func, curriedIterable);
|
|
376
|
+
}
|
|
377
|
+
return _map(func, iterable);
|
|
378
|
+
}
|
|
379
|
+
__name(map, "map");
|
|
380
|
+
function flatMap(func, iterable) {
|
|
381
|
+
if (iterable === void 0) {
|
|
382
|
+
return (curriedIterable) => flatMap(func, curriedIterable);
|
|
383
|
+
}
|
|
384
|
+
return filter((i) => i !== void 0 && i !== null, flatten(map(func, iterable)));
|
|
385
|
+
}
|
|
386
|
+
__name(flatMap, "flatMap");
|
|
387
|
+
function _flatTransform(concurrency, func, iterable) {
|
|
388
|
+
const iterator = getIterator(iterable);
|
|
389
|
+
const resultQueue = [];
|
|
390
|
+
const readQueue = [];
|
|
391
|
+
let ended = false;
|
|
392
|
+
let reading = false;
|
|
393
|
+
let inflightCount = 0;
|
|
394
|
+
let lastError = null;
|
|
395
|
+
function fulfillReadQueue() {
|
|
396
|
+
while (readQueue.length > 0 && resultQueue.length > 0) {
|
|
397
|
+
const { resolve } = readQueue.shift();
|
|
398
|
+
const value = resultQueue.shift();
|
|
399
|
+
resolve({ done: false, value });
|
|
400
|
+
}
|
|
401
|
+
while (readQueue.length > 0 && inflightCount === 0 && ended) {
|
|
402
|
+
const { resolve, reject } = readQueue.shift();
|
|
403
|
+
if (lastError) {
|
|
404
|
+
reject(lastError);
|
|
405
|
+
lastError = null;
|
|
406
|
+
} else {
|
|
407
|
+
resolve({ done: true, value: void 0 });
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
__name(fulfillReadQueue, "fulfillReadQueue");
|
|
412
|
+
async function fillQueue() {
|
|
413
|
+
if (ended) {
|
|
414
|
+
fulfillReadQueue();
|
|
415
|
+
return;
|
|
416
|
+
}
|
|
417
|
+
if (reading) {
|
|
418
|
+
return;
|
|
419
|
+
}
|
|
420
|
+
if (inflightCount + resultQueue.length >= concurrency) {
|
|
421
|
+
return;
|
|
422
|
+
}
|
|
423
|
+
reading = true;
|
|
424
|
+
inflightCount++;
|
|
425
|
+
try {
|
|
426
|
+
const { done, value } = await iterator.next();
|
|
427
|
+
if (done) {
|
|
428
|
+
ended = true;
|
|
429
|
+
inflightCount--;
|
|
430
|
+
fulfillReadQueue();
|
|
431
|
+
} else {
|
|
432
|
+
mapAndQueue(value);
|
|
433
|
+
}
|
|
434
|
+
} catch (error) {
|
|
435
|
+
ended = true;
|
|
436
|
+
inflightCount--;
|
|
437
|
+
lastError = error;
|
|
438
|
+
fulfillReadQueue();
|
|
439
|
+
}
|
|
440
|
+
reading = false;
|
|
441
|
+
fillQueue();
|
|
442
|
+
}
|
|
443
|
+
__name(fillQueue, "fillQueue");
|
|
444
|
+
async function mapAndQueue(itrValue) {
|
|
445
|
+
try {
|
|
446
|
+
const value = await func(itrValue);
|
|
447
|
+
if (value && value[Symbol.asyncIterator]) {
|
|
448
|
+
for await (const asyncVal of value) {
|
|
449
|
+
resultQueue.push(asyncVal);
|
|
450
|
+
}
|
|
451
|
+
} else {
|
|
452
|
+
resultQueue.push(value);
|
|
453
|
+
}
|
|
454
|
+
} catch (error) {
|
|
455
|
+
ended = true;
|
|
456
|
+
lastError = error;
|
|
457
|
+
}
|
|
458
|
+
inflightCount--;
|
|
459
|
+
fulfillReadQueue();
|
|
460
|
+
fillQueue();
|
|
461
|
+
}
|
|
462
|
+
__name(mapAndQueue, "mapAndQueue");
|
|
463
|
+
async function next() {
|
|
464
|
+
if (resultQueue.length === 0) {
|
|
465
|
+
const deferred = defer();
|
|
466
|
+
readQueue.push(deferred);
|
|
467
|
+
fillQueue();
|
|
468
|
+
return deferred.promise;
|
|
469
|
+
}
|
|
470
|
+
const value = resultQueue.shift();
|
|
471
|
+
fillQueue();
|
|
472
|
+
return { done: false, value };
|
|
473
|
+
}
|
|
474
|
+
__name(next, "next");
|
|
475
|
+
const asyncIterableIterator = {
|
|
476
|
+
next,
|
|
477
|
+
[Symbol.asyncIterator]: () => asyncIterableIterator
|
|
478
|
+
};
|
|
479
|
+
return asyncIterableIterator;
|
|
480
|
+
}
|
|
481
|
+
__name(_flatTransform, "_flatTransform");
|
|
482
|
+
function flatTransform(concurrency, func, iterable) {
|
|
483
|
+
if (func === void 0) {
|
|
484
|
+
return (curriedFunc, curriedIterable) => curriedIterable ? flatTransform(concurrency, curriedFunc, curriedIterable) : flatTransform(concurrency, curriedFunc);
|
|
485
|
+
}
|
|
486
|
+
if (iterable === void 0) {
|
|
487
|
+
return (curriedIterable) => flatTransform(concurrency, func, curriedIterable);
|
|
488
|
+
}
|
|
489
|
+
return filter((i) => i !== void 0 && i !== null, flatten(_flatTransform(concurrency, func, iterable)));
|
|
490
|
+
}
|
|
491
|
+
__name(flatTransform, "flatTransform");
|
|
492
|
+
async function onceReadable(stream) {
|
|
493
|
+
return new Promise((resolve) => {
|
|
494
|
+
stream.once("readable", () => {
|
|
495
|
+
resolve();
|
|
496
|
+
});
|
|
497
|
+
});
|
|
498
|
+
}
|
|
499
|
+
__name(onceReadable, "onceReadable");
|
|
500
|
+
async function* _fromStream(stream) {
|
|
501
|
+
while (true) {
|
|
502
|
+
const data = stream.read();
|
|
503
|
+
if (data !== null) {
|
|
504
|
+
yield data;
|
|
505
|
+
continue;
|
|
506
|
+
}
|
|
507
|
+
if (stream._readableState.ended) {
|
|
508
|
+
break;
|
|
509
|
+
}
|
|
510
|
+
await onceReadable(stream);
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
__name(_fromStream, "_fromStream");
|
|
514
|
+
function fromStream(stream) {
|
|
515
|
+
if (typeof stream[Symbol.asyncIterator] === "function") {
|
|
516
|
+
return stream;
|
|
517
|
+
}
|
|
518
|
+
return _fromStream(stream);
|
|
519
|
+
}
|
|
520
|
+
__name(fromStream, "fromStream");
|
|
521
|
+
async function* merge(...iterables) {
|
|
522
|
+
const sources = new Set(iterables.map(getIterator));
|
|
523
|
+
while (sources.size > 0) {
|
|
524
|
+
for (const iterator of sources) {
|
|
525
|
+
const nextVal = await iterator.next();
|
|
526
|
+
if (nextVal.done) {
|
|
527
|
+
sources.delete(iterator);
|
|
528
|
+
} else {
|
|
529
|
+
yield nextVal.value;
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
__name(merge, "merge");
|
|
535
|
+
function pipeline(firstFn, ...fns) {
|
|
536
|
+
let previousFn = firstFn();
|
|
537
|
+
for (const func of fns) {
|
|
538
|
+
previousFn = func(previousFn);
|
|
539
|
+
}
|
|
540
|
+
return previousFn;
|
|
541
|
+
}
|
|
542
|
+
__name(pipeline, "pipeline");
|
|
543
|
+
async function* _parallelMap(concurrency, func, iterable) {
|
|
544
|
+
let transformError = null;
|
|
545
|
+
const wrapFunc = /* @__PURE__ */ __name((value) => ({
|
|
546
|
+
value: func(value)
|
|
547
|
+
}), "wrapFunc");
|
|
548
|
+
const stopOnError = /* @__PURE__ */ __name(async function* (source) {
|
|
549
|
+
for await (const value of source) {
|
|
550
|
+
if (transformError) {
|
|
551
|
+
return;
|
|
552
|
+
}
|
|
553
|
+
yield value;
|
|
554
|
+
}
|
|
555
|
+
}, "stopOnError");
|
|
556
|
+
const output = pipeline(() => iterable, buffer(1), stopOnError, map(wrapFunc), buffer(concurrency - 1));
|
|
557
|
+
const itr = getIterator(output);
|
|
558
|
+
while (true) {
|
|
559
|
+
const { value, done } = await itr.next();
|
|
560
|
+
if (done) {
|
|
561
|
+
break;
|
|
562
|
+
}
|
|
563
|
+
try {
|
|
564
|
+
const val = await value.value;
|
|
565
|
+
if (!transformError) {
|
|
566
|
+
yield val;
|
|
567
|
+
}
|
|
568
|
+
} catch (error) {
|
|
569
|
+
transformError = error;
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
if (transformError) {
|
|
573
|
+
throw transformError;
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
__name(_parallelMap, "_parallelMap");
|
|
577
|
+
function parallelMap2(concurrency, func, iterable) {
|
|
578
|
+
if (func === void 0) {
|
|
579
|
+
return (curriedFunc, curriedIterable) => parallelMap2(concurrency, curriedFunc, curriedIterable);
|
|
580
|
+
}
|
|
581
|
+
if (iterable === void 0) {
|
|
582
|
+
return (curriedIterable) => parallelMap2(concurrency, func, curriedIterable);
|
|
583
|
+
}
|
|
584
|
+
if (concurrency === 1) {
|
|
585
|
+
return map(func, iterable);
|
|
586
|
+
}
|
|
587
|
+
return _parallelMap(concurrency, func, iterable);
|
|
588
|
+
}
|
|
589
|
+
__name(parallelMap2, "parallelMap");
|
|
590
|
+
function parallelFlatMap(concurrency, func, iterable) {
|
|
591
|
+
if (func === void 0) {
|
|
592
|
+
return (curriedFunc, curriedIterable) => curriedIterable ? parallelFlatMap(concurrency, curriedFunc, curriedIterable) : parallelFlatMap(concurrency, curriedFunc);
|
|
593
|
+
}
|
|
594
|
+
if (iterable === void 0) {
|
|
595
|
+
return (curriedIterable) => parallelFlatMap(concurrency, func, curriedIterable);
|
|
596
|
+
}
|
|
597
|
+
return filter((i) => i !== void 0 && i !== null, flatten(parallelMap2(concurrency, func, iterable)));
|
|
598
|
+
}
|
|
599
|
+
__name(parallelFlatMap, "parallelFlatMap");
|
|
600
|
+
async function* parallelMerge(...iterables) {
|
|
601
|
+
const inputs = iterables.map(getIterator);
|
|
602
|
+
const concurrentWork = /* @__PURE__ */ new Set();
|
|
603
|
+
const values = /* @__PURE__ */ new Map();
|
|
604
|
+
let lastError = null;
|
|
605
|
+
let errCb = null;
|
|
606
|
+
let valueCb = null;
|
|
607
|
+
const notifyError = /* @__PURE__ */ __name((err) => {
|
|
608
|
+
lastError = err;
|
|
609
|
+
if (errCb) {
|
|
610
|
+
errCb(err);
|
|
611
|
+
}
|
|
612
|
+
}, "notifyError");
|
|
613
|
+
const notifyDone = /* @__PURE__ */ __name((value) => {
|
|
614
|
+
if (valueCb) {
|
|
615
|
+
valueCb(value);
|
|
616
|
+
}
|
|
617
|
+
}, "notifyDone");
|
|
618
|
+
const waitForQueue = /* @__PURE__ */ __name(() => new Promise((resolve, reject) => {
|
|
619
|
+
if (lastError) {
|
|
620
|
+
reject(lastError);
|
|
621
|
+
}
|
|
622
|
+
if (values.size > 0) {
|
|
623
|
+
return resolve();
|
|
624
|
+
}
|
|
625
|
+
valueCb = resolve;
|
|
626
|
+
errCb = reject;
|
|
627
|
+
}), "waitForQueue");
|
|
628
|
+
const queueNext = /* @__PURE__ */ __name((input) => {
|
|
629
|
+
const nextVal = Promise.resolve(input.next()).then(async ({ done, value }) => {
|
|
630
|
+
if (!done) {
|
|
631
|
+
values.set(input, value);
|
|
632
|
+
}
|
|
633
|
+
concurrentWork.delete(nextVal);
|
|
634
|
+
});
|
|
635
|
+
concurrentWork.add(nextVal);
|
|
636
|
+
nextVal.then(notifyDone, notifyError);
|
|
637
|
+
}, "queueNext");
|
|
638
|
+
for (const input of inputs) {
|
|
639
|
+
queueNext(input);
|
|
640
|
+
}
|
|
641
|
+
while (true) {
|
|
642
|
+
if (concurrentWork.size === 0 && values.size === 0) {
|
|
643
|
+
return;
|
|
644
|
+
}
|
|
645
|
+
await waitForQueue();
|
|
646
|
+
for (const [input, value] of values) {
|
|
647
|
+
values.delete(input);
|
|
648
|
+
yield value;
|
|
649
|
+
queueNext(input);
|
|
650
|
+
}
|
|
651
|
+
}
|
|
652
|
+
}
|
|
653
|
+
__name(parallelMerge, "parallelMerge");
|
|
654
|
+
async function _reduce(func, start, iterable) {
|
|
655
|
+
let value = start;
|
|
656
|
+
for await (const nextItem of iterable) {
|
|
657
|
+
value = await func(value, nextItem);
|
|
658
|
+
}
|
|
659
|
+
return value;
|
|
660
|
+
}
|
|
661
|
+
__name(_reduce, "_reduce");
|
|
662
|
+
function reduce(func, start, iterable) {
|
|
663
|
+
if (start === void 0) {
|
|
664
|
+
return (curriedStart, curriedIterable) => curriedIterable ? _reduce(func, curriedStart, curriedIterable) : reduce(func, curriedStart);
|
|
665
|
+
}
|
|
666
|
+
if (iterable === void 0) {
|
|
667
|
+
return (curriedIterable) => reduce(func, start, curriedIterable);
|
|
668
|
+
}
|
|
669
|
+
return _reduce(func, start, iterable);
|
|
670
|
+
}
|
|
671
|
+
__name(reduce, "reduce");
|
|
672
|
+
async function* _take(count, iterable) {
|
|
673
|
+
let taken = 0;
|
|
674
|
+
for await (const val of iterable) {
|
|
675
|
+
yield await val;
|
|
676
|
+
taken++;
|
|
677
|
+
if (taken >= count) {
|
|
678
|
+
break;
|
|
679
|
+
}
|
|
680
|
+
}
|
|
681
|
+
}
|
|
682
|
+
__name(_take, "_take");
|
|
683
|
+
function* _syncTake(count, iterable) {
|
|
684
|
+
let taken = 0;
|
|
685
|
+
for (const val of iterable) {
|
|
686
|
+
yield val;
|
|
687
|
+
taken++;
|
|
688
|
+
if (taken >= count) {
|
|
689
|
+
break;
|
|
690
|
+
}
|
|
691
|
+
}
|
|
692
|
+
}
|
|
693
|
+
__name(_syncTake, "_syncTake");
|
|
694
|
+
function take(count, iterable) {
|
|
695
|
+
if (iterable === void 0) {
|
|
696
|
+
return (curriedIterable) => take(count, curriedIterable);
|
|
697
|
+
}
|
|
698
|
+
if (iterable[Symbol.asyncIterator]) {
|
|
699
|
+
return _take(count, iterable);
|
|
700
|
+
}
|
|
701
|
+
return _syncTake(count, iterable);
|
|
702
|
+
}
|
|
703
|
+
__name(take, "take");
|
|
704
|
+
async function* _takeLast(count, iterable) {
|
|
705
|
+
const buffer2 = [];
|
|
706
|
+
for await (const res of iterable) {
|
|
707
|
+
buffer2.push(res);
|
|
708
|
+
if (buffer2.length > count) {
|
|
709
|
+
buffer2.shift();
|
|
710
|
+
}
|
|
711
|
+
}
|
|
712
|
+
while (buffer2.length) {
|
|
713
|
+
yield await buffer2.shift();
|
|
714
|
+
}
|
|
715
|
+
}
|
|
716
|
+
__name(_takeLast, "_takeLast");
|
|
717
|
+
function* _syncTakeLast(count, iterable) {
|
|
718
|
+
const buffer2 = [];
|
|
719
|
+
for (const res of iterable) {
|
|
720
|
+
buffer2.push(res);
|
|
721
|
+
if (buffer2.length > count) {
|
|
722
|
+
buffer2.shift();
|
|
723
|
+
}
|
|
724
|
+
}
|
|
725
|
+
while (buffer2.length) {
|
|
726
|
+
yield buffer2.shift();
|
|
727
|
+
}
|
|
728
|
+
}
|
|
729
|
+
__name(_syncTakeLast, "_syncTakeLast");
|
|
730
|
+
function takeLast(count, iterable) {
|
|
731
|
+
if (iterable === void 0) {
|
|
732
|
+
return (curriedIterable) => takeLast(count, curriedIterable);
|
|
733
|
+
}
|
|
734
|
+
if (iterable[Symbol.asyncIterator]) {
|
|
735
|
+
return _takeLast(count, iterable);
|
|
736
|
+
}
|
|
737
|
+
return _syncTakeLast(count, iterable);
|
|
738
|
+
}
|
|
739
|
+
__name(takeLast, "takeLast");
|
|
740
|
+
async function* _takeWhile(predicate, iterable) {
|
|
741
|
+
for await (const data of iterable) {
|
|
742
|
+
if (!await predicate(data)) {
|
|
743
|
+
return;
|
|
744
|
+
}
|
|
745
|
+
yield data;
|
|
746
|
+
}
|
|
747
|
+
}
|
|
748
|
+
__name(_takeWhile, "_takeWhile");
|
|
749
|
+
function takeWhile(predicate, iterable) {
|
|
750
|
+
if (iterable === void 0) {
|
|
751
|
+
return (curriedIterable) => _takeWhile(predicate, curriedIterable);
|
|
752
|
+
}
|
|
753
|
+
return _takeWhile(predicate, iterable);
|
|
754
|
+
}
|
|
755
|
+
__name(takeWhile, "takeWhile");
|
|
756
|
+
async function* _asyncTap(func, iterable) {
|
|
757
|
+
for await (const val of iterable) {
|
|
758
|
+
await func(val);
|
|
759
|
+
yield val;
|
|
760
|
+
}
|
|
761
|
+
}
|
|
762
|
+
__name(_asyncTap, "_asyncTap");
|
|
763
|
+
function tap(func, iterable) {
|
|
764
|
+
if (iterable === void 0) {
|
|
765
|
+
return (curriedIterable) => _asyncTap(func, curriedIterable);
|
|
766
|
+
}
|
|
767
|
+
return _asyncTap(func, iterable);
|
|
768
|
+
}
|
|
769
|
+
__name(tap, "tap");
|
|
770
|
+
const sleep = /* @__PURE__ */ __name((ms) => new Promise((resolve) => setTimeout(resolve, ms)), "sleep");
|
|
771
|
+
function _throttle(limit, interval, iterable) {
|
|
772
|
+
if (!Number.isFinite(limit)) {
|
|
773
|
+
throw new TypeError("Expected `limit` to be a finite number");
|
|
774
|
+
}
|
|
775
|
+
if (limit <= 0) {
|
|
776
|
+
throw new TypeError("Expected `limit` to be greater than 0");
|
|
777
|
+
}
|
|
778
|
+
if (!Number.isFinite(interval)) {
|
|
779
|
+
throw new TypeError("Expected `interval` to be a finite number");
|
|
780
|
+
}
|
|
781
|
+
return (/* @__PURE__ */ __name((async function* __throttle() {
|
|
782
|
+
let sent = 0;
|
|
783
|
+
let time2;
|
|
784
|
+
for await (const val of iterable) {
|
|
785
|
+
if (sent < limit) {
|
|
786
|
+
if (typeof time2 === "undefined") {
|
|
787
|
+
time2 = Date.now();
|
|
788
|
+
}
|
|
789
|
+
sent++;
|
|
790
|
+
yield val;
|
|
791
|
+
continue;
|
|
792
|
+
}
|
|
793
|
+
const elapsedMs = Date.now() - (time2 || 0);
|
|
794
|
+
const waitFor = interval - elapsedMs;
|
|
795
|
+
if (waitFor > 0) {
|
|
796
|
+
await sleep(waitFor);
|
|
797
|
+
}
|
|
798
|
+
time2 = Date.now();
|
|
799
|
+
sent = 1;
|
|
800
|
+
yield val;
|
|
801
|
+
}
|
|
802
|
+
}), "__throttle"))();
|
|
803
|
+
}
|
|
804
|
+
__name(_throttle, "_throttle");
|
|
805
|
+
function throttle(limit, interval, iterable) {
|
|
806
|
+
if (iterable === void 0) {
|
|
807
|
+
return (curriedIterable) => _throttle(limit, interval, curriedIterable);
|
|
808
|
+
}
|
|
809
|
+
return _throttle(limit, interval, iterable);
|
|
810
|
+
}
|
|
811
|
+
__name(throttle, "throttle");
|
|
812
|
+
function addTime(a, b) {
|
|
813
|
+
let seconds = a[0] + b[0];
|
|
814
|
+
let nanoseconds = a[1] + b[1];
|
|
815
|
+
if (nanoseconds >= 1e9) {
|
|
816
|
+
const remainder = nanoseconds % 1e9;
|
|
817
|
+
seconds += (nanoseconds - remainder) / 1e9;
|
|
818
|
+
nanoseconds = remainder;
|
|
819
|
+
}
|
|
820
|
+
return [seconds, nanoseconds];
|
|
821
|
+
}
|
|
822
|
+
__name(addTime, "addTime");
|
|
823
|
+
async function* _asyncTime(config, iterable) {
|
|
824
|
+
const itr = iterable[Symbol.asyncIterator]();
|
|
825
|
+
let total = [0, 0];
|
|
826
|
+
while (true) {
|
|
827
|
+
const start = process.hrtime();
|
|
828
|
+
const { value, done } = await itr.next();
|
|
829
|
+
const delta = process.hrtime(start);
|
|
830
|
+
total = addTime(total, delta);
|
|
831
|
+
if (config.progress) {
|
|
832
|
+
config.progress(delta, total);
|
|
833
|
+
}
|
|
834
|
+
if (done) {
|
|
835
|
+
if (config.total) {
|
|
836
|
+
config.total(total);
|
|
837
|
+
}
|
|
838
|
+
return value;
|
|
839
|
+
}
|
|
840
|
+
yield value;
|
|
841
|
+
}
|
|
842
|
+
}
|
|
843
|
+
__name(_asyncTime, "_asyncTime");
|
|
844
|
+
function* _syncTime(config, iterable) {
|
|
845
|
+
const itr = iterable[Symbol.iterator]();
|
|
846
|
+
let total = [0, 0];
|
|
847
|
+
while (true) {
|
|
848
|
+
const start = process.hrtime();
|
|
849
|
+
const { value, done } = itr.next();
|
|
850
|
+
const delta = process.hrtime(start);
|
|
851
|
+
total = addTime(total, delta);
|
|
852
|
+
if (config.progress) {
|
|
853
|
+
config.progress(delta, total);
|
|
854
|
+
}
|
|
855
|
+
if (done) {
|
|
856
|
+
if (config.total) {
|
|
857
|
+
config.total(total);
|
|
858
|
+
}
|
|
859
|
+
return value;
|
|
860
|
+
}
|
|
861
|
+
yield value;
|
|
862
|
+
}
|
|
863
|
+
}
|
|
864
|
+
__name(_syncTime, "_syncTime");
|
|
865
|
+
function time(config = {}, iterable) {
|
|
866
|
+
if (iterable === void 0) {
|
|
867
|
+
return (curriedIterable) => time(config, curriedIterable);
|
|
868
|
+
}
|
|
869
|
+
if (iterable[Symbol.asyncIterator] !== void 0) {
|
|
870
|
+
return _asyncTime(config, iterable);
|
|
871
|
+
} else {
|
|
872
|
+
return _syncTime(config, iterable);
|
|
873
|
+
}
|
|
874
|
+
}
|
|
875
|
+
__name(time, "time");
|
|
876
|
+
function _transform(concurrency, func, iterable) {
|
|
877
|
+
const iterator = getIterator(iterable);
|
|
878
|
+
const resultQueue = [];
|
|
879
|
+
const readQueue = [];
|
|
880
|
+
let ended = false;
|
|
881
|
+
let reading = false;
|
|
882
|
+
let inflightCount = 0;
|
|
883
|
+
let lastError = null;
|
|
884
|
+
function fulfillReadQueue() {
|
|
885
|
+
while (readQueue.length > 0 && resultQueue.length > 0) {
|
|
886
|
+
const { resolve } = readQueue.shift();
|
|
887
|
+
const value = resultQueue.shift();
|
|
888
|
+
resolve({ done: false, value });
|
|
889
|
+
}
|
|
890
|
+
while (readQueue.length > 0 && inflightCount === 0 && ended) {
|
|
891
|
+
const { resolve, reject } = readQueue.shift();
|
|
892
|
+
if (lastError) {
|
|
893
|
+
reject(lastError);
|
|
894
|
+
lastError = null;
|
|
895
|
+
} else {
|
|
896
|
+
resolve({ done: true, value: void 0 });
|
|
897
|
+
}
|
|
898
|
+
}
|
|
899
|
+
}
|
|
900
|
+
__name(fulfillReadQueue, "fulfillReadQueue");
|
|
901
|
+
async function fillQueue() {
|
|
902
|
+
if (ended) {
|
|
903
|
+
fulfillReadQueue();
|
|
904
|
+
return;
|
|
905
|
+
}
|
|
906
|
+
if (reading) {
|
|
907
|
+
return;
|
|
908
|
+
}
|
|
909
|
+
if (inflightCount + resultQueue.length >= concurrency) {
|
|
910
|
+
return;
|
|
911
|
+
}
|
|
912
|
+
reading = true;
|
|
913
|
+
inflightCount++;
|
|
914
|
+
try {
|
|
915
|
+
const { done, value } = await iterator.next();
|
|
916
|
+
if (done) {
|
|
917
|
+
ended = true;
|
|
918
|
+
inflightCount--;
|
|
919
|
+
fulfillReadQueue();
|
|
920
|
+
} else {
|
|
921
|
+
mapAndQueue(value);
|
|
922
|
+
}
|
|
923
|
+
} catch (error) {
|
|
924
|
+
ended = true;
|
|
925
|
+
inflightCount--;
|
|
926
|
+
lastError = error;
|
|
927
|
+
fulfillReadQueue();
|
|
928
|
+
}
|
|
929
|
+
reading = false;
|
|
930
|
+
fillQueue();
|
|
931
|
+
}
|
|
932
|
+
__name(fillQueue, "fillQueue");
|
|
933
|
+
async function mapAndQueue(itrValue) {
|
|
934
|
+
try {
|
|
935
|
+
const value = await func(itrValue);
|
|
936
|
+
resultQueue.push(value);
|
|
937
|
+
} catch (error) {
|
|
938
|
+
ended = true;
|
|
939
|
+
lastError = error;
|
|
940
|
+
}
|
|
941
|
+
inflightCount--;
|
|
942
|
+
fulfillReadQueue();
|
|
943
|
+
fillQueue();
|
|
944
|
+
}
|
|
945
|
+
__name(mapAndQueue, "mapAndQueue");
|
|
946
|
+
async function next() {
|
|
947
|
+
if (resultQueue.length === 0) {
|
|
948
|
+
const deferred = defer();
|
|
949
|
+
readQueue.push(deferred);
|
|
950
|
+
fillQueue();
|
|
951
|
+
return deferred.promise;
|
|
952
|
+
}
|
|
953
|
+
const value = resultQueue.shift();
|
|
954
|
+
fillQueue();
|
|
955
|
+
return { done: false, value };
|
|
956
|
+
}
|
|
957
|
+
__name(next, "next");
|
|
958
|
+
const asyncIterableIterator = {
|
|
959
|
+
next,
|
|
960
|
+
[Symbol.asyncIterator]: () => asyncIterableIterator
|
|
961
|
+
};
|
|
962
|
+
return asyncIterableIterator;
|
|
963
|
+
}
|
|
964
|
+
__name(_transform, "_transform");
|
|
965
|
+
function transform2(concurrency, func, iterable) {
|
|
966
|
+
if (func === void 0) {
|
|
967
|
+
return (curriedFunc, curriedIterable) => curriedIterable ? transform2(concurrency, curriedFunc, curriedIterable) : transform2(concurrency, curriedFunc);
|
|
968
|
+
}
|
|
969
|
+
if (iterable === void 0) {
|
|
970
|
+
return (curriedIterable) => transform2(concurrency, func, curriedIterable);
|
|
971
|
+
}
|
|
972
|
+
return _transform(concurrency, func, iterable);
|
|
973
|
+
}
|
|
974
|
+
__name(transform2, "transform");
|
|
975
|
+
async function _writeToStream(stream, iterable) {
|
|
976
|
+
let lastError = null;
|
|
977
|
+
let errCb = null;
|
|
978
|
+
let drainCb = null;
|
|
979
|
+
const notifyError = /* @__PURE__ */ __name((err) => {
|
|
980
|
+
lastError = err;
|
|
981
|
+
if (errCb) {
|
|
982
|
+
errCb(err);
|
|
983
|
+
}
|
|
984
|
+
}, "notifyError");
|
|
985
|
+
const notifyDrain = /* @__PURE__ */ __name(() => {
|
|
986
|
+
if (drainCb) {
|
|
987
|
+
drainCb();
|
|
988
|
+
}
|
|
989
|
+
}, "notifyDrain");
|
|
990
|
+
const cleanup = /* @__PURE__ */ __name(() => {
|
|
991
|
+
stream.removeListener("error", notifyError);
|
|
992
|
+
stream.removeListener("drain", notifyDrain);
|
|
993
|
+
}, "cleanup");
|
|
994
|
+
stream.once("error", notifyError);
|
|
995
|
+
const waitForDrain = /* @__PURE__ */ __name(() => new Promise((resolve, reject) => {
|
|
996
|
+
if (lastError) {
|
|
997
|
+
return reject(lastError);
|
|
998
|
+
}
|
|
999
|
+
stream.once("drain", notifyDrain);
|
|
1000
|
+
drainCb = resolve;
|
|
1001
|
+
errCb = reject;
|
|
1002
|
+
}), "waitForDrain");
|
|
1003
|
+
for await (const value of iterable) {
|
|
1004
|
+
if (stream.write(value) === false) {
|
|
1005
|
+
await waitForDrain();
|
|
1006
|
+
}
|
|
1007
|
+
if (lastError) {
|
|
1008
|
+
break;
|
|
1009
|
+
}
|
|
1010
|
+
}
|
|
1011
|
+
cleanup();
|
|
1012
|
+
if (lastError) {
|
|
1013
|
+
throw lastError;
|
|
1014
|
+
}
|
|
1015
|
+
}
|
|
1016
|
+
__name(_writeToStream, "_writeToStream");
|
|
1017
|
+
function writeToStream(stream, iterable) {
|
|
1018
|
+
if (iterable === void 0) {
|
|
1019
|
+
return (curriedIterable) => _writeToStream(stream, curriedIterable);
|
|
1020
|
+
}
|
|
1021
|
+
return _writeToStream(stream, iterable);
|
|
1022
|
+
}
|
|
1023
|
+
__name(writeToStream, "writeToStream");
|
|
1024
|
+
exports3.batch = batch;
|
|
1025
|
+
exports3.batchWithTimeout = batchWithTimeout;
|
|
1026
|
+
exports3.buffer = buffer;
|
|
1027
|
+
exports3.collect = collect;
|
|
1028
|
+
exports3.concat = concat;
|
|
1029
|
+
exports3.consume = consume;
|
|
1030
|
+
exports3.drop = drop;
|
|
1031
|
+
exports3.filter = filter;
|
|
1032
|
+
exports3.flatMap = flatMap;
|
|
1033
|
+
exports3.flatTransform = flatTransform;
|
|
1034
|
+
exports3.flatten = flatten;
|
|
1035
|
+
exports3.fromStream = fromStream;
|
|
1036
|
+
exports3.getIterator = getIterator;
|
|
1037
|
+
exports3.map = map;
|
|
1038
|
+
exports3.merge = merge;
|
|
1039
|
+
exports3.parallelFlatMap = parallelFlatMap;
|
|
1040
|
+
exports3.parallelMap = parallelMap2;
|
|
1041
|
+
exports3.parallelMerge = parallelMerge;
|
|
1042
|
+
exports3.pipeline = pipeline;
|
|
1043
|
+
exports3.reduce = reduce;
|
|
1044
|
+
exports3.take = take;
|
|
1045
|
+
exports3.takeLast = takeLast;
|
|
1046
|
+
exports3.takeWhile = takeWhile;
|
|
1047
|
+
exports3.tap = tap;
|
|
1048
|
+
exports3.throttle = throttle;
|
|
1049
|
+
exports3.time = time;
|
|
1050
|
+
exports3.transform = transform2;
|
|
1051
|
+
exports3.writeToStream = writeToStream;
|
|
1052
|
+
}));
|
|
1053
|
+
}
|
|
1054
|
+
});
|
|
1055
|
+
|
|
1056
|
+
// src/external/streaming-iterables.js
|
|
1057
|
+
var { parallelMap, transform } = require_dist();
|
|
1058
|
+
module.exports = {
|
|
1059
|
+
parallelMap,
|
|
1060
|
+
transform
|
|
1061
|
+
};
|